Скачать MetaTrader 5

return value of 'OrderSend' should be checked "8008" 33 13

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
xredkox
29
xredkox  
Прошу прощение за хламление OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+SPREAD,3,iHigh(Symbol(),PERIOD_D1,1)-SL*Point,iHigh(Symbol(),PERIOD_D1,1)+TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua); return value of 'OrderSend' should be checked 8008 33 13
Ihor Herasko
9751
Ihor Herasko  

Поставьте перед вызовом:

bool check = 
xredkox
29
xredkox  
OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1),3,iLow(Symbol(),PERIOD_D1,1)+SPREAD+SL*Point,iLow(Symbol(),PERIOD_D1,1)+SPREAD-TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
Спасибо вот еще вопрос где можно по учится павлик      return value of 'OrderSend' should be checked "8008" 37 10


Ihor Herasko
9751
Ihor Herasko  
AZIK_REDKO:
Спасибо вот еще вопрос где можно по учится павлик      return value of 'OrderSend' should be checked "8008" 37 10


К сожалению, не могу понять, какой именно вопрос Вы задаете. "Где можно поучиться ...." чего? Павлик - это мужское имя (Павел).
xredkox
29
xredkox  
         OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1),3,iLow(Symbol(),PERIOD_D1,1)+SPREAD+SL*Point,iLow(Symbol(),PERIOD_D1,1)+SPREAD-TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);

return value of 'OrderSend' should be checked   "8008"  37      10

         OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1),3,iHigh(Symbol(),PERIOD_D1,1)+SPREAD+SL*Point,iHigh(Symbol(),PERIOD_D1,1)+SPREAD-TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);

return value of 'OrderSend' should be checked   "8008"  44      10

         OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+SPREAD,3,iLow(Symbol(),PERIOD_D1,1)-SL*Point,iLow(Symbol(),PERIOD_D1,1)+TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);

return value of 'OrderSend' should be checked   "8008"  47      10


как можно эти исправить ошибки ? первое помогло bool check =  
Ihor Herasko
9751
Ihor Herasko  
AZIK_REDKO:
как можно эти исправить ошибки ? первое помогло bool check =  

И дальше то же самое. Только уже не нужно объявлять переменную check. Пишите:

bool check = OrderSend...
...
check = OrderSend...
...
check = OrderSend...
xredkox
29
xredkox  
Игорь у меня такой вопрос почему робот на демо-счете работает , а на реальном-счете при тестер не работает .
Ihor Herasko
9751
Ihor Herasko  
AZIK_REDKO:
Игорь у меня такой вопрос почему робот на демо-счете работает , а на реальном-счете при тестер не работает .
Трудно сказать. Приложите код эксперта, посмотрим. В крайнем случае (если нет возможности привести код эксперта) посмотрите, что в логах. Возможно, там есть сообщения об ошибках.
xredkox
29
xredkox  
#property copyright "TO"

extern int TYPE=0;
extern int TP = 20;
extern int SL = 50;
extern double lot=0.01; // сумма ставки в $
extern int Magic_Number=639713;

int init(){   return(0);}
int deinit(){   return(0);}
//===================================================================

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   double SPREAD=MarketInfo(Symbol(),MODE_SPREAD)*Point;
   double STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;
   if(Orders_Total(Magic_Number,Symbol())==0)
     {
      //Установка ордеров
      if(TYPE<=0)
        {
         // Здесь установим STOP-ордера
         if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD-STOPLEVEL>Ask)
      bool check = OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+SPREAD,3,iHigh(Symbol(),PERIOD_D1,1)-SL*Point,iHigh(Symbol(),PERIOD_D1,1)+TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
         Alert(GetLastError());                      // Сообщение об ошибке
         Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High");
         if(iLow(Symbol(),PERIOD_D1,1)+STOPLEVEL<Bid)
         check = OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1),3,iLow(Symbol(),PERIOD_D1,1)+SPREAD+SL*Point,iLow(Symbol(),PERIOD_D1,1)+SPREAD-TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
         else Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low");
        }
      if(TYPE>=1)
        {
         // Здесь установим LIMIT-ордера
         if(iHigh(Symbol(),PERIOD_D1,1)-STOPLEVEL>Bid)
         check = OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1),3,iHigh(Symbol(),PERIOD_D1,1)+SPREAD+SL*Point,iHigh(Symbol(),PERIOD_D1,1)+SPREAD-TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
         else Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High");
         if(iLow(Symbol(),PERIOD_D1,1)+STOPLEVEL<Ask)
         check = OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+SPREAD,3,iLow(Symbol(),PERIOD_D1,1)-SL*Point,iLow(Symbol(),PERIOD_D1,1)+TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
         else Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low");
        }
     }
   return(0);
  }
//---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----//
int Orders_Total(int mn,string sym)
  {
   int num_orders=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      bool check = OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderMagicNumber()==mn && sym==OrderSymbol())
         num_orders++;
     }
   return(num_orders);
  };
//+------------------------------------------------------------------+
вот
Ihor Herasko
9751
Ihor Herasko  
AZIK_REDKO:
вот

В принципе каких-то грубых ошибок, которые бы не дали возможность советнику работать, нет. Хотя, конечно, много, чего не учтено (проверок почти нет). Если немного подрихтовать код, чтобы видеть реальные ошибки, то код станет таким:

#property copyright "TO"

extern int TYPE=0;
extern int TP = 20;
extern int SL = 50;
extern double lot=0.01; // сумма ставки в $
extern int Magic_Number=639713;

int init(){   return(0);}
int deinit(){   return(0);}
//===================================================================

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   double SPREAD=MarketInfo(Symbol(),MODE_SPREAD)*Point;
   double STOPLEVEL=MarketInfo(Symbol(),MODE_STOPLEVEL)*Point;
   if(Orders_Total(Magic_Number,Symbol())==0)
     {
      //Установка ордеров
      if(TYPE<=0)
        {
         // Здесь установим STOP-ордера
         if(iHigh(Symbol(),PERIOD_D1,1)+SPREAD-STOPLEVEL>Ask)
         {
            int ticket = OrderSend(Symbol(),OP_BUYSTOP,lot,iHigh(Symbol(),PERIOD_D1,1)+SPREAD,3,iHigh(Symbol(),PERIOD_D1,1)-SL*Point,iHigh(Symbol(),PERIOD_D1,1)+TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
            if (ticket < 0)
               Alert("Ошибка установки ордера Buy Stop: ", GetLastError());                      // Сообщение об ошибке
         }
         else
            Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High");
         if(iLow(Symbol(),PERIOD_D1,1)+STOPLEVEL<Bid)
         {
            ticket = OrderSend(Symbol(),OP_SELLSTOP,lot,iLow(Symbol(),PERIOD_D1,1),3,iLow(Symbol(),PERIOD_D1,1)+SPREAD+SL*Point,iLow(Symbol(),PERIOD_D1,1)+SPREAD-TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
            if (ticket < 0)
               Alert("Ошибка установки ордера Sell Stop: ", GetLastError());                      // Сообщение об ошибке
         }
         else 
            Alert("Невозможно установить OP_SELLSTOP, цена слишком близка или ниже Low");
        }
      if(TYPE>=1)
        {
         // Здесь установим LIMIT-ордера
         if(iHigh(Symbol(),PERIOD_D1,1)-STOPLEVEL>Bid)
         {
            ticket = OrderSend(Symbol(),OP_SELLLIMIT,lot,iHigh(Symbol(),PERIOD_D1,1),3,iHigh(Symbol(),PERIOD_D1,1)+SPREAD+SL*Point,iHigh(Symbol(),PERIOD_D1,1)+SPREAD-TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Magenta);
            if (ticket < 0)
               Alert("Ошибка установки ордера Sell Limit: ", GetLastError());                      // Сообщение об ошибке
         }
         else 
            Alert("Невозможно установить OP_SELLLIMIT, цена слишком близка или выше High");
         if(iLow(Symbol(),PERIOD_D1,1)+STOPLEVEL<Ask)
         {
            ticket = OrderSend(Symbol(),OP_BUYLIMIT,lot,iLow(Symbol(),PERIOD_D1,1)+SPREAD,3,iLow(Symbol(),PERIOD_D1,1)-SL*Point,iLow(Symbol(),PERIOD_D1,1)+TP*Point,NULL,Magic_Number,iTime(Symbol(),PERIOD_D1,0)+PERIOD_D1*60,Aqua);
            if (ticket < 0)
               Alert("Ошибка установки ордера Buy Limit: ", GetLastError());                      // Сообщение об ошибке
         }
         else 
            Alert("Невозможно установить OP_BUYLIMIT, цена слишком близка или ниже Low");
        }
     }
   return(0);
  }
//---- Возвращает количество ордеров указанного эксперта(Маджик,Символ) ----//
int Orders_Total(int mn,string sym)
  {
   int num_orders=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      bool check = OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
      if(OrderMagicNumber()==mn && sym==OrderSymbol())
         num_orders++;
     }
   return(num_orders);
  };
//+------------------------------------------------------------------+

 Здесь тоже далеко до совершенства, но работать во многих случаях будет (у меня работает).

Просто смотрите, какие ошибки выдает эксперт. 

xredkox
29
xredkox  
пробовал на реальном счете в тестер стратегий он ставок не показывал . в журнале стратегий пишет  эти ошибки 
 Expertaddddd EURUSD,M15: OrderSend error 130
Expertaddddd EURUSD,M15: Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High");

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий