Не срабатывает условие на счете типа NDD ?!

 

Братцы, на форуме поискал, похожей проблемы не нашел, а сам уже практически дошел до разжижения мозга :)

Суть проблемы - простое условие открытия ордера прекрасно работает на реале в парочке ДЦ, в других на счетах NDD как ни странно не открывает, при этом в журнале нет даже никаких попыток выставить ордер серверу! На тестере естественно все работает на всех вышеупомянутых, а на реале не смотря на очевидность условий - не открыл и все тут, из пяти терминалов одновременно работающих открыл (и регулярно это делает) в двух не НДД, и не открыл в трех терминала НДД..

Я уже ничего не понимаю - срочно помогите мне понять, что я не верблюд :))))

вот условие:

//---- sell conditions   
if( (Open[1]>ma && Close[1]<ma) || (Open[1]<ma && Close[1]<ma && Close[1]>(ma-(Range*Point*mult)) && (Open[1]<Close[1]) && pingControl) ) 
     {
      if(StopLoss>0) vStopLoss=(Bid+StopLoss*Point*mult); else vStopLoss=0;
      res=OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,slippage*mult,vStopLoss,Bid-TakeProfit*Point*mult,"MAZ2",MAGICMA,0,Red);
      return;
     }

даже не смотрим на опциональную вторую чсасть условия, первая часть - очевидна - тупой пробой МА. Его прекрасно видно и на графике, и как я уже говорил в других терминалах прекрасно отрабатывается пробой.

Буду очень рад понять - что же происходит :)

Спасибо.

 
exhumer, уберите, пожалуйста, названия финансовых организаций из поста, чтобы не нарушать Правила форума.
 
Mathemat:
exhumer, уберите, пожалуйста, названия финансовых организаций из поста, чтобы не нарушать Правила форума.

ок, сорри.
 

Попробуйте перед res=OrderSend( .....

добавить

{

res_=Comment(" Есть сигнал на открытие позиции селл, хи-хи "); 

 res=OrderSend( .....

и визуально на графике отследите,  - действительно ли при наличие сигнала  - позиции в онлайне не открываются ?

 

И/Или (чтоб не думалось) ещё можно добавить в глобальные переменные :

//-- Подключаемые модули --
#include <stdlib.mqh>

#include <stderror.mqh>
А после ф-и

  res=OrderSend(Symbo ...

добавьте :

if(res<0)   {Print ("Произошла страшная Ошибка открытия  позиции  селл, а НОМЕР ЭТОЙ ОШИБКИ -   ",GetLastError()); return(0);}  

 
exhumer:Я уже ничего не понимаю - срочно помогите мне понять, что я не верблюд :))))

Какой тип исполнения у Вашего ДЦ? Если Market Execution (т.е. запрещено выставление СЛ/ТП в ордере) то такое возможно. В тестере советник будет торговать, а в онлайне - нет. Сталкивался с такой бедой. Проверьте с нулевыми СЛ и ТП и вставьте принты как рекомендовал rid

 
goldtrader:

Какой тип исполнения у Вашего ДЦ? Если Market Execution (т.е. запрещено выставление СЛ/ТП в ордере) то такое возможно. В тестере советник будет торговать, а в онлайне - нет. Сталкивался с такой бедой. Проверьте с нулевыми СЛ и ТП и вставьте принты как рекомендовал rid

Черт побери! как говорил Семен Семеныч в незабвенной Бриллиантовой руке! Так оно и есть! Это НДД с потоком цен и СЛ/ТП выставлять нельзя! Какой же я осел :)))) Спасибо большое.

Спасибо to Rid, for идеи по отладке.

Я еще не проверял, но уверен, что вся собака порылась именно в типе исполнения ордеров. Пойду вставлять опцию EСNbroker в советника :)

Еще раз спасибо, простокамень с души сняли мне :)

Причина обращения: