Здравствуйте, мне перед открытием нового отложенного ордера на покупку нужно удалить все уже имеющиеся отложенные ордера Buy Stop.
Кто-нибудь может подсказать код? Запутался в докуменатции...
Пример в виде скрипта: во входном параметре 'Delete all:' задаётся тип отложенного ордера и затем вызывается функция удаления 'DeleteOrders'
//+------------------------------------------------------------------+ //| Pending Delete.mq5 | //| Copyright © 2020, Vladimir Karputov | //+------------------------------------------------------------------+ #property copyright "Copyright © 2020, Vladimir Karputov" #property version "1.000" //--- #include <Trade\Trade.mqh> #include <Trade\OrderInfo.mqh> //--- CTrade m_trade; // object of CTrade class COrderInfo m_order; // object of COrderInfo class //--- #property script_show_inputs //--- //+------------------------------------------------------------------+ //| Enum Pending | //+------------------------------------------------------------------+ enum ENUM_PENDING { buy_limit=2, // Buy Limit sell_limit=3, // Sell limit buy_stop=4, // Buy Stop sell_stop=3, // Sell Stop }; //--- input parameters input ENUM_PENDING InpPending = buy_limit; // Delete all: //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { //--- DeleteOrders((ENUM_ORDER_TYPE)InpPending); } //+------------------------------------------------------------------+ //| Delete Orders | //+------------------------------------------------------------------+ void DeleteOrders(const ENUM_ORDER_TYPE order_type) { for(int i=OrdersTotal()-1; i>=0; i--) // returns the number of current orders if(m_order.SelectByIndex(i)) // selects the pending order by index for further access to its properties if(m_order.OrderType()==order_type) { m_trade.OrderDelete(m_order.Ticket()); continue; } } //+------------------------------------------------------------------+
здесь самый простой пример: нет фильтра по символу, нет фильтра по Magic number, нет проверки минимального расстояния (уровня заморозки) и нет цикла гарантирования удаления.
Пример в виде скрипта: во входном параметре 'Delete all:' задаётся тип отложенного ордера и затем вызывается функция удаления 'DeleteOrders'
здесь самый простой пример: нет фильтра по символу, нет фильтра по Magic number, нет проверки минимального расстояния (уровня заморозки) и нет цикла гарантирования удаления.
Благодарю!
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте, мне перед открытием нового отложенного ордера на покупку нужно удалить все уже имеющиеся отложенные ордера Buy Stop.
Кто-нибудь может подсказать код? Запутался в докуменатции...