Советник не выставляет отложенные ордера - страница 3

 
Vladimir Karputov:

Зашли в редактор MetaEditor, нашли функцию PlaceOrder, выделили её и правильно вставили код в сообщение.

Это слово встречается 15 раз в коде, что присылать?

 
Rama77:

Это слово встречается 15 раз в коде, что присылать?

Нужна функция PlaceOrder. Я уже выше написал.

Находите ТЕЛО функции и копируете её.

Как найти тело: находите любое упоминание этой функции, ставите курсор мышки примерно в середину слова и нажимаете среднюю кнопку мышки - Вас перекинет на тело функции.

 
Vladimir Karputov:

Нужна функция PlaceOrder. Я уже выше написал.

Находите ТЕЛО функции и копируете её.

Как найти тело: находите любое упоминание этой функции, ставите курсор мышки примерно в середину слова и нажимаете среднюю кнопку мышки - Вас перекинет на тело функции.

Понял, спасибо!

void PlaceOrder(const string aSymbol,ulong &ticket,double price,const double volume,const ENUM_ORDER_TYPE type,string comm)
  {
   MqlTradeRequest request = {0};
   MqlTradeResult  result  = {0};
   ticket=0;

   double Ask=0;
   double Bid=0;
   MqlTick last_tick;
   ZeroMemory(last_tick);


   long ds=SymbolInfoInteger(_Symbol,SYMBOL_TRADE_FREEZE_LEVEL);

//--- Fill structure
   request.action = TRADE_ACTION_PENDING;
   request.magic  = Magic;
   request.symbol = aSymbol;
   request.volume = volume;
   request.type=type;
   request.price=price;
   request.comment=comm;
   request.type_filling=ORDER_FILLING_RETURN;
   request.type_time=ORDER_TIME_DAY;//ORDER_TIME_GTC

//--- Send order
   if(OrderSend(request,result))
     {
      if(result.retcode==TRADE_RETCODE_PLACED)
        {
         ticket=result.order;
        }
      else
        {
         //Print("PlaceOrder: Ордер не установлен!");
        }
     }
   else
     {
      //Print("PlaceOrder: Ордер не отослан! ");
     }
  }
 
Rama77:

Понял, спасибо!

Раскомментируйте эти строки:

//--- Send order
   if(OrderSend(request,result))
     {
      if(result.retcode==TRADE_RETCODE_PLACED)
        {
         ticket=result.order;
        }
      else
        {
         //Print("PlaceOrder: Ордер не установлен!");
        }
     }
   else
     {
      //Print("PlaceOrder: Ордер не отослан! ");
     }
  }

Так будете знать хоть куда копать.


А вообще код написан крайне скупо: нет обработки ошибок, нет сообщений об ошибках, нет проверок лота, не проверки на нехватку денег ...


Я вышел из диалога - дальше уже сами воюйте со своим программистом :)

 
Vladimir Karputov:

Раскомментируйте эти строки:

Так будете знать хоть куда копать.


А вообще код написан крайне скупо: нет обработки ошибок, нет сообщений об ошибках, нет проверок лота, не проверки на нехватку денег .

Раскомментировал, но все равно сообщений нет никаких... Буду заказывать переделку у другого человека, что делать... Жаль все эти рейтинги мало о чем говорят, а посмотреть на человека до заказа нельзя.

 
Rama77:

Раскомментировал, но все равно сообщений нет никаких... Буду заказывать переделку у другого человека, что делать... Жаль все эти рейтинги мало о чем говорят, а посмотреть на человека до заказа нельзя.

Это значит, что выполнение кода вообще не доходит до этой функции.

 
Может дело в условиях выставления ордеров. Например цена коснулась или пробила линию.
 
NightTrader:
Может дело в условиях выставления ордеров. Например цена коснулась или пробила линию.

Наверняка...