Нужна помощь срочно! - страница 2

 
int start()
 {
//----
double HA1 = iCustom(NULL, 0, "Heiken Ashi", 0, 0);
double HA2 = iCustom(NULL, 0, "Heiken Ashi", 1, 0);
 //Comment(iCustom(NULL,0,"heiken ashi",0,1));  
 if (NormalizeDouble(HA1,4)>NormalizeDouble(HA2,4))
 {
 OrderSend(Symbol(),OP_SELL,0.01,Bid,10,Ask+100*Point,Bid-200*Point,"My order #",16384,0,Green);
 }
 if (NormalizeDouble(HA1,4)<NormalizeDouble(HA2,4))
 {
 OrderSend(Symbol(),OP_BUY,0.01,Ask,10,Bid-100*Point,Ask+200*Point,"My order #",16384,0,Green);
 }
//----
 return(0);
ну я вот так сделал ничего не открывает!
 
fate >>:
ну я вот так сделал ничего не открывает!






//+------------------------------------------------------------------+
//|                                                           HA.mq4 |
//|                                        Copyright © 2009, WalkMan |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, WalkMan"
#property link      ""
bool Work=true;                    // Эксперт будет работать.
extern double Lots = 0.01;
extern int magic = 12345;
int init()
  {

   return(0);
  }

int deinit()
  {

   return(0);
  }

int start()
  {

   
   if(Work==false)                              // Критическая ошибка
     {
      Alert("Критическая ошибка. Эксперт не работает.");
      return;                                   // Выход из start()
     }   
     
double HA1 = iCustom(NULL, 0, "Heiken Ashi", 0, 0);
double HA2 = iCustom(NULL, 0, "Heiken Ashi", 1, 0);
     
   int ticket = -1;
   int total = OrdersTotal();
   for (int i = total - 1; i >= 0; i--) {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if ((OrderSymbol() == Symbol()) && (OrderMagicNumber() == magic)) {
         int prevticket = OrderTicket();
          if (OrderType()==OP_BUY && NormalizeDouble(HA1,4)>NormalizeDouble(HA2,4))
    {
     OrderClose(prevticket,Lots,Bid,3,Blue);
    }
    
   if (OrderType()==OP_SELL && NormalizeDouble(HA1,4)<NormalizeDouble(HA2,4))
    {
     OrderClose(prevticket,Lots,Ask,3,Red);
    }
              return(0);
      }
   }   

    
   if (OrdersTotal()==0 && NormalizeDouble(HA1,4)>NormalizeDouble(HA2,4))
    {
     ticket =  OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0, WindowExpertName(), magic, 0, Red);
    }
    
   if (OrdersTotal()==0 && NormalizeDouble(HA1,4)<NormalizeDouble(HA2,4))
    {
     ticket =  OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0, WindowExpertName(), magic, 0, Blue);
    }
   return(0);
  }

//+------------------------------------------------------------------+
 
пишет 131 ошибку WalkMan  не подскажешь в чем дело?
 
fate >>:
пишет 131 ошибку WalkMan не подскажешь в чем дело?

https://book.mql4.com/ru/appendix/errors


ERR_INVALID_TRADE_VOLUME 131 Неправильный объем
 
Вроде как на лот в 0.01 деньги есть но ордеров нет
 
а блин все понял тут в терминале нет лота маленького такого спаибо за помощь WalkMan еще один вопрос такой как можно код модифицировать для того  что бы открывался ордер сразу после  одной свечи противоположного цвета
 
fate >>:
а блин все понял тут в терминале нет лота маленького такого спаибо за помощь WalkMan еще один вопрос такой как можно код модифицировать для того что бы открывался ордер сразу после одной свечи противоположного цвета

Свечи на графике или индикаторе?

 
на графике и еще для модификации ордера нужно использовать переменную Ticket
 
fate >>:
на графике и еще для модификации ордера нужно использовать переменную Ticket

Извиняюсь, но не совсем понимаю задачи.

Пока то, что просили до этого:

//+------------------------------------------------------------------+
//|                                                      HA_v1.1.mq4 |
//|                                        Copyright © 2009, WalkMan |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, WalkMan"
#property link      ""
bool Work=true;                    // Эксперт будет работать.
extern double Lots = 0.01;
extern int magic = 12345;
int init()
  {

   return(0);
  }

int deinit()
  {

   return(0);
  }

int start()
  {

   
   if(Work==false)                              // Критическая ошибка
     {
      Alert("Критическая ошибка. Эксперт не работает.");
      return;                                   // Выход из start()
     }   
     
double HA1 = iCustom(NULL, 0, "Heiken Ashi", 0, 0);
double HA2 = iCustom(NULL, 0, "Heiken Ashi", 1, 0);
double HA3 = iCustom(NULL, 0, "Heiken Ashi", 0, 1);
double HA4 = iCustom(NULL, 0, "Heiken Ashi", 1, 1);
     
   int ticket = -1;
   int total = OrdersTotal();
   for (int i = total - 1; i >= 0; i--) {
      OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
      if ((OrderSymbol() == Symbol()) && (OrderMagicNumber() == magic)) {
         int prevticket = OrderTicket();
          if (OrderType()==OP_BUY && NormalizeDouble(HA1,4)>NormalizeDouble(HA2,4))
    {
     OrderClose(prevticket,Lots,Bid,3,Blue);
    }
    
   if (OrderType()==OP_SELL && NormalizeDouble(HA1,4)<NormalizeDouble(HA2,4))
    {
     OrderClose(prevticket,Lots,Ask,3,Red);
    }
              return(0);
      }
   }   

    
   if (OrdersTotal()==0 && NormalizeDouble(HA1,4)>NormalizeDouble(HA2,4) && NormalizeDouble(HA3,4)>NormalizeDouble(HA4,4) && iClose(NULL,0,1)>iOpen(NULL,0,1))
    {
     ticket =  OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0, WindowExpertName(), magic, 0, Red);
    }
    
   if (OrdersTotal()==0 && NormalizeDouble(HA1,4)<NormalizeDouble(HA2,4) && NormalizeDouble(HA3,4)<NormalizeDouble(HA4,4) && iClose(NULL,0,1)<iOpen(NULL,0,1))
    {
     ticket =  OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0, WindowExpertName(), magic, 0, Blue);
    }
   return(0);
  }

//+------------------------------------------------------------------+
 
Мне необходимо ставить в определенное время в последнем открытом ордере стоп лосс до открытия нового подскажите WalkMan как это сделат в функции OrderModify() требуется указать уникальный номер ордера где его можно взять