Где моя ошибка???

 

Помогите плиз указать мою ошибку!!!!!

Сделал советник на двух МА а ордера почему то не открываются! 

extern int     period_MA1           = 14,
               period_MA2           = 104,
               stoploss             = 100,
               takeprofit           = 200,
               slippage             = 10,
               buy_level1            = 30,
               sell_level1           = 70,
               Magic                = 777;
extern double  Lot                  = 0.1;
//--------------------------------------------------------------------
void OnTick()
{
   for (int i=0; i<OrdersTotal(); i++)
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
         if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber()) return;
         
   double MA0  = iMA(NULL,0,period_MA1,0,MODE_EMA,PRICE_CLOSE,0);
   double MA1  = iMA(NULL,0,period_MA1,0,MODE_EMA,PRICE_CLOSE,1);
   
   double buy_level  = iMA(NULL,0,period_MA2,0,MODE_EMA,PRICE_CLOSE,0);
   double sell_level  = iMA(NULL,0,period_MA2,0,MODE_EMA,PRICE_CLOSE,1);   
   
   double SL=0,TP=0;
   if (MA0 > buy_level && MA1 < buy_level)
   {
      if (takeprofit!=0) TP  = NormalizeDouble(Ask + takeprofit*Point,Digits);
      if (stoploss!=0)   SL  = NormalizeDouble(Ask - stoploss*  Point,Digits);    
      if (OrderSend(Symbol(),OP_BUY, Lot,NormalizeDouble(Ask,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
   }
   if (MA0 < sell_level && MA1 > sell_level)
   {
      if (takeprofit!=0) TP = NormalizeDouble(Bid - takeprofit*Point,Digits);
      if (stoploss!=0)   SL = NormalizeDouble(Bid + stoploss*  Point,Digits);            
      if (OrderSend(Symbol(),OP_SELL,Lot,NormalizeDouble(Bid,Digits),slippage,SL,TP,NULL,Magic)==-1) Print(GetLastError());
   }
}
//--------------------------------------------------------------------
 
Сергей Дыбленко:

Помогите плиз указать мою ошибку!!!!!

Сделал советник на двух МА а ордера почему то не открываются! 

зачем его делать, сов на МА уже полно в кодобазе, есть на любой вкус и цвет
 
Сергей Дыбленко:

Помогите плиз указать мою ошибку!!!!!

Сделал советник на двух МА а ордера почему то не открываются! 

В первых трёх строках скобок фигурных понаставь.

 
Oleg Papkov:
В первых трёх строках скобок фигурных понаставь.

Олег а по точнее можно?
 
Igor Yeremenko:
зачем его делать, сов на МА уже полно в кодобазе, есть на любой вкус и цвет
интересно самому что то слепить! )
 

void OnTick()
{
   for (int i=0; i<OrdersTotal(); i++)
   {
      if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         if (OrderSymbol()==Symbol() && Magic==OrderMagicNumber()) return;

добавил скобок но это ничего не дало.............(если я ток туда их вставил!)

 

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

И в журнал посмотри, может ошибку писать

 
у меня ничего не дало со скобками
 
Сергей Дыбленко:
у меня ничего не дало со скобками

Открывает он у тебя. Посмотри чтоб денег хватало на тестировании


 

Странно.........почему не срабыватывают лоси и профиты при моих настройках?

поставил 100 там и там - работает!

 
Сергей Дыбленко:

поставил 100 там и там - работает!

Ну вот. А мозги всем пудришь тут

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