Обсуждение статьи "Рецепты MQL5 - Мультивалютный советник и работа с отложенными ордерами на MQL5" - страница 3

 

Отто... теперь вы можете использовать его :-)

Это делает сделки для меня.

 

Это очень хороший ответ. Спасибо!

Я просто хотел отметить, что авторы статей должны заботиться о них.

Все, что вам нужно сделать, это

CheckTradingPermission()
и весь MQL5xxx мусор, и он будет работать;)
 
Otto Pauser:

Это очень хороший ответ. Спасибо!

Я просто хотел отметить, что авторы статей должны заботиться о них.

Мммм... да, мы знаем.

И я придал этому некоторую выразительность.

Что-то вроде этого работает, вы замечаете это в других местах, даже если никто ничего не говорит об этом :-)

 
Christian:

Мммм... да, мы знаем.

И я дал этому выражение.

Что-то вроде этого работает, вы замечаете это в других местах, даже если никто ничего не говорит об этом :-)

Я хотел перепрограммировать MarketOrders в PendigOrders.

Кому пригодится, вот код, как это работает.

Это не полезный советник, а просто пример того, как его рассчитать. Надеюсь, что все правильно, в тестере все работает.

Это также не мой настоящий стиль программирования, но очень простой.

#include <Trade\Trade.mqh> CTrade Trade;

//+------------------------------------------------------------------+
input int    inp_Dist     =  120;   // Расстояние отложенного ордера (пункты)
input int    inp_Stop     =  125;   // SL (очки)
input int    inp_Take     =  150;   // TP (очки)
input double inp_Volume   = 0.01;   // Объем

//+------------------------------------------------------------------+
double distPend = inp_Dist*_Point;
double distStop = inp_Stop*_Point;
double distTake = inp_Take*_Point;

//+------------------------------------------------------------------+
bool   done     = false;
double ask;
double bid;
double levelSell;
double levelBuy;
double stopSell;
double stopBuy;
double takeSell;
double takeBuy;

void OnTick()
{
   if(done)
      return;
   
   ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);

   levelBuy =NormalizeDouble(bid-distPend,_Digits);
   levelSell=NormalizeDouble(ask+distPend,_Digits);

   stopBuy  =NormalizeDouble(levelBuy -distStop,_Digits);
   stopSell =NormalizeDouble(levelSell+distStop,_Digits);

   takeBuy  =NormalizeDouble(levelBuy +distTake,_Digits);
   takeSell =NormalizeDouble(levelSell-distTake,_Digits);

   SellLimit();
   BuyLimit();

   done=true;
}

bool BuyLimit()
{
   //return(Trade.BuyLimit (inp_Volume,levelBuy ));
   return(Trade.BuyLimit (inp_Volume,levelBuy ,_Symbol,stopBuy,takeBuy ));
}

bool SellLimit()
{
   //return(Trade.SellLimit(inp_Volume,levelSell));
   return(Trade.SellLimit(inp_Volume,levelSell,_Symbol,stopSell,takeSell));
}