Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Интересует заработок в MQL5 Cloud Network? Загляни в профиль!
xredkox
29
xredkox 2015.04.27 07:47 
Прошу прощение за хламление 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
9019
Ihor Herasko 2015.04.27 13:38  

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

bool check = 
xredkox
29
xredkox 2015.05.05 09:38  
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
9019
Ihor Herasko 2015.05.05 11:20  
AZIK_REDKO:
Спасибо вот еще вопрос где можно по учится павлик      return value of 'OrderSend' should be checked "8008" 37 10


К сожалению, не могу понять, какой именно вопрос Вы задаете. "Где можно поучиться ...." чего? Павлик - это мужское имя (Павел).
xredkox
29
xredkox 2015.05.05 13:29  
         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
9019
Ihor Herasko 2015.05.05 18:35  
AZIK_REDKO:
как можно эти исправить ошибки ? первое помогло bool check =  

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

bool check = OrderSend...
...
check = OrderSend...
...
check = OrderSend...
xredkox
29
xredkox 2015.05.06 13:47  
Игорь у меня такой вопрос почему робот на демо-счете работает , а на реальном-счете при тестер не работает .
Ihor Herasko
9019
Ihor Herasko 2015.05.06 15:15  
AZIK_REDKO:
Игорь у меня такой вопрос почему робот на демо-счете работает , а на реальном-счете при тестер не работает .
Трудно сказать. Приложите код эксперта, посмотрим. В крайнем случае (если нет возможности привести код эксперта) посмотрите, что в логах. Возможно, там есть сообщения об ошибках.
xredkox
29
xredkox 2015.05.07 08:37  
#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
9019
Ihor Herasko 2015.05.07 11:23  
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 2015.05.07 12:37  
пробовал на реальном счете в тестер стратегий он ставок не показывал . в журнале стратегий пишет  эти ошибки 
 Expertaddddd EURUSD,M15: OrderSend error 130
Expertaddddd EURUSD,M15: Alert("Невозможно установить OP_BUYSTOP, цена слишком близка или выше High");

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