Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 477

 
#include <Trade/Trade.mqh>

void DeletePendingOrders(const string sSymbol, const ulong nMagic)
{
   CTrade oTrade;

   for(int i = OrdersTotal() - 1; i >= 0; i--)
   {
      ulong nOrderTicket = OrderGetTicket(i);
      
      if(nOrderTicket > 0)
      {
         if(OrderGetString(ORDER_SYMBOL) == sSymbol && OrderGetInteger(ORDER_MAGIC) == nMagic)
         {
            // удаляем только отложенники
            ENUM_ORDER_TYPE eType = (ENUM_ORDER_TYPE)OrderGetInteger(ORDER_TYPE);
            
            if(eType == ORDER_TYPE_BUY_STOP  || eType == ORDER_TYPE_SELL_STOP ||
               eType == ORDER_TYPE_BUY_LIMIT || eType == ORDER_TYPE_SELL_LIMIT ||
               eType == ORDER_TYPE_BUY_STOP_LIMIT || eType == ORDER_TYPE_SELL_STOP_LIMIT)
            {
               oTrade.OrderDelete(nOrderTicket);
            }
         }
      }
   }
}

Скрипт для МТ4 в пятёрке работать не будет, там совсем другие торговые функции.

 
Sergei Vladimirov:

Скрипт для МТ4 в пятёрке работать не будет, там совсем другие торговые функции.

Спасибо, как раз собирался с trade.mqh разобраться.
 
Подскажите, пожалуйста! Как можно узнать программно, а не логически, как был закрыт рыночный ордер - по TP, SL или по рынку?
 
-Aleks-:
Подскажите, пожалуйста! Как можно узнать программно, а не логически, как был закрыт рыночный ордер - по TP, SL или по рынку?
Сравнить цену закрытия с TP, SL. Если почти совпадают - ответ есть. Если не совпадают, то ответ тоже есть
 
Victor Nikolaev:
Сравнить цену закрытия с TP, SL. Если почти совпадают - ответ есть. Если не совпадают, то ответ тоже есть

Так я и спросил, как не сравнением? В терминале ордера подкрашиваются, значит есть у них флаг о том, как они были закрыты.

Мне не совсем ясно, как организовать "почти" - проскальзывание бывает слишком большим для сравнения.

 
-Aleks-:

Так я и спросил, как не сравнением? В терминале ордера подкрашиваются, значит есть у них флаг о том, как они были закрыты.

Мне не совсем ясно, как организовать "почти" - проскальзывание бывает слишком большим для сравнения.

С "почти" решается индивидуально в каждом случае по своему. На медленном рынке это одно, на быстром - другое
 
-Aleks-:
Подскажите, пожалуйста! Как можно узнать программно, а не логически, как был закрыт рыночный ордер - по TP, SL или по рынку?
В комментарии закрытого по стоплосс, приписывается [sl], закрытого по тейкпрофит, приписывается [tp].
 
Artyom Trishkin:
В комментарии закрытого по стоплосс, приписывается [sl], закрытого по тейкпрофит, приписывается [tp].
Проснулся?
 
Victor Nikolaev:
Проснулся?
С мобилы писал... во сне... храпя... сопя... мурлыкая...
 
Victor Nikolaev:
С "почти" решается индивидуально в каждом случае по своему. На медленном рынке это одно, на быстром - другое

Ага, вот я и ищу универсальное решение - если информацию надо получить на следующем баре после закрытия ордера, то тут как бы не сложно оценить волатильность, а вот если спустя день, то уже нужно считать сколько баров прошло и что там была за волатильность.

 

Artyom Trishkin:
В комментарии закрытого по стоплосс, приписывается [sl], закрытого по тейкпрофит, приписывается [tp].

Спасибо - сейчас попробую прочесть!

А в тестере такого комментария нет, верно?

Причина обращения: