Вопрос новичка.

 

Подскажите пожалуйста. в чем ошибка у меня в коде?


  double MA_SIMPLE_72_CLOSE=iMA(NULL,0,72,0,MODE_SMA,PRICE_CLOSE,1);
   double MA_SIMPLE_72_CLOSE_PREV=iMA(NULL,0,72,0,MODE_SMA,PRICE_CLOSE,2);
   
   double MA_SIMPLE_12_CLOSE=iMA(NULL,0,12,0,MODE_SMA,PRICE_CLOSE,1);
   double MA_SIMPLE_12_CLOSE_PREV=iMA(NULL,0,12,0,MODE_SMA,PRICE_CLOSE,2);   
   
   DrawMyLinePrognoz('Graph');
   TP=DrawPrognoz('TP');
   SL=DrawPrognoz('SL');
   
   if ((MA_SIMPLE_72_CLOSE<=MA_SIMPLE_12_CLOSE)&&
       (MA_SIMPLE_72_CLOSE_PREV>=MA_SIMPLE_12_CLOSE_PREV)){       
       price=NormalizeDouble(Ask,Digits);        
       OrderSelect(0, SELECT_BY_POS, MODE_TRADES);                     
       OrderClose(OrderTicket(),OrderLots(),Bid,3,Red);
       OrderSend(Symbol(),OP_BUY,Lots,price,5,SL,TP,NULL,magik,0,Green);   
   }
 
   if ((MA_SIMPLE_72_CLOSE>=MA_SIMPLE_12_CLOSE)&&
       (MA_SIMPLE_72_CLOSE_PREV<=MA_SIMPLE_12_CLOSE_PREV)){       
       price=NormalizeDouble(Bid,Digits); 
       OrderSelect(0, SELECT_BY_POS, MODE_TRADES); 
       OrderClose(OrderTicket(),OrderLots(),Ask,3,Red);
       OrderSend(Symbol(),OP_SELL,Lots,price,5,SL,TP,NULL,magik,0,Green);   
   }

Код сильно урезал. Вопрос в следующем. почему у меня не срабатывает переход от МА72 к МА12, а только от МА12 к МА72


 

1) Попробуйте вместо ">=" писать ">", а вместо "<=" писать "<". А то в случае равенства МА получается совпадание сразу нескольких вариантов. Я понимаю, что вероятность равенства ненормализованных МА мала, но все же.

2) Пустяк, но тем не менее. Перед открытием Buy вы закрываете существующую позу, скорее всего Sell. В этом случае нужно закрывать сделку по Ask, а у вас по Bid. В случае с открытием Sell - также нужно заменить закрытие Buy по цене Bid вместо Ask.

 
xaozzzz писал (а) >>

Подскажите пожалуйста. в чем ошибка у меня в коде?

Код сильно урезал. Вопрос в следующем. почему у меня не срабатывает переход от МА72 к МА12, а только от МА12 к МА72

Посмотрите пересечение линий здесь https://book.mql4.com/ru/samples/indicators и здесь https://book.mql4.com/ru/build/conditions.

Правила проведения торговых операций здесь https://book.mql4.com/ru/trading/orders.

 
Scriptong писал (а) >>

1) Попробуйте вместо ">=" писать ">", а вместо "<=" писать "<". А то в случае равенства МА получается совпадание сразу нескольких вариантов. Я понимаю, что вероятность равенства ненормализованных МА мала, но все же.

пробывал (точнее так сначала и сделал), но неполучилось. поэтому 2ой раз попробывал с равенством (ну мало ли).


SK. писал (а) >>

Посмотрите пересечение линий здесь https://book.mql4.com/ru/samples/indicators и здесь https://book.mql4.com/ru/build/conditions.

Правила проведения торговых операций здесь https://book.mql4.com/ru/trading/orders.

спасибо, погляжу