Здравствуйте, уважаемые коллеги.
Возможно кто-то сталкивался с подобной проблемой.
Есть ли решение на MT5 по переносу отложенных ордеров через клиринги Мосбиржи?
Как избавиться от рутинных действий по переустановке своих отложенных ордеров при каждом клиринге?
Дело в том, что некоторые мои отложенные ордера актуальны по несколько дней.
P.S. Как известно Good Till Cancel (действует до отмены) на Мосбирже не работает, а во время клиринга отложенные ордера автоматически удаляются самой Биржей.
Есть.
Есть.
А расскажите, пожалуйста, поподробней.
А расскажите, пожалуйста, поподробней.
Использую для проброса ордеров через вечерний клиринг на FORTS:
ORDER_TIME_SPECIFIED_DAY | Ордер будет действовать до 23:59:59 указанного дня. Если это время не попадает на торговую сессию, истечение наступит в ближайшее торговое время. |
Есть более продолжительный вариант, но им не пользовался, так как таких потребностей у меня нет:
Ордер будет действовать до даты истечения |
Использую для проброса ордеров через вечерний клиринг на FORTS:
ORDER_TIME_SPECIFIED_DAY | Ордер будет действовать до 23:59:59 указанного дня. Если это время не попадает на торговую сессию, истечение наступит в ближайшее торговое время. |
Есть более продолжительный вариант, но им не пользовался, так как таких потребностей у меня нет:
Ордер будет действовать до даты истечения |
Я MQL5 пока не освоил, не пробовал на FORTS, но на Фондовой секции(акции) другую дату истечения ордера установить не получается (ругается, выдаёт ошибку),
И 23:50 и 18:45 Мосбиржа автоматом удаляет все мои отложки. То есть сейчас мне приходится выставлять их после 10ч(с началом основной сессии) и второй раз после 19ч(с началом вечерней сессии).
А утром всё по новой, всё с начала )
P.S. Кстати, на демо счете Фондовой секции такой проблемы нет, хоть на месяц вперед истечение можно выставить и ничего не трётся, ордера прекрасно живут изо дня в день.
Плохо, что эмуляцию клиринга для демо не сделали, было бы более правдоподобно и ближе к реалу (((
Здравствуйте, уважаемые коллеги.
Возможно кто-то сталкивался с подобной проблемой.
Есть ли решение на MT5 по переносу отложенных ордеров через клиринги Мосбиржи?
Как избавиться от рутинных действий по переустановке своих отложенных ордеров при каждом клиринге?
Дело в том, что некоторые мои отложенные ордера актуальны по несколько дней.
P.S. Как известно Good Till Cancel (действует до отмены) на Мосбирже не работает, а во время клиринга отложенные ордера автоматически удаляются самой Биржей.
С начала, при инициализации советника, нужно проверить какой режим экспирации ордеров поддерживается Биржей.
(В Вашем случае так)
int symbol_exp_type = int( SymbolInfoInteger(a_symbol, SYMBOL_EXPIRATION_MODE));if((symbol_exp_type & SYMBOL_EXPIRATION_SPECIFIED_DAY) != SYMBOL_EXPIRATION_SPECIFIED_DAY) { MessageBox("Символ " + a_symbol + " не поддерживает экспирацию SPECIFIED DAY!", "Ошибка", MB_OK | MB_ICONHAND); return(false); }
Если режим
SYMBOL_EXPIRATION_SPECIFIED_DAY
поддерживается Биржей
То при заполнении массива request ордера вводите этот тип экспирации и желаемое время
request.type_time = ORDER_TIME_SPECIFIED_DAY; request.expiration = TimeTradeServer() + datetime(24*3600); //В данном случае до конца вечерней сессии завтрашнего дня
Функция проверки для ФОРТС
//+------------------------------------------------------------------+ //| Expert Check Market Parameters function | //+------------------------------------------------------------------+ bool CheckMarketParam(const string a_symbol) { //--- Check real accaunt ENUM_ACCOUNT_TRADE_MODE acc_trade_mode = ENUM_ACCOUNT_TRADE_MODE(AccountInfoInteger(ACCOUNT_TRADE_MODE)); #ifdef DEBUG if(acc_trade_mode != ACCOUNT_TRADE_MODE_DEMO) { MessageBox("Эксперт запущен не на демо-счёте!", "Ошибка", MB_OK | MB_ICONHAND); return(false); } #else if(acc_trade_mode != ACCOUNT_TRADE_MODE_REAL) { MessageBox("Эксперт запущен не на реальном счёте!", "Ошибка", MB_OK | MB_ICONHAND); return(false); } #endif //--- Check margine mode ENUM_ACCOUNT_MARGIN_MODE margin_mode = ENUM_ACCOUNT_MARGIN_MODE(AccountInfoInteger(ACCOUNT_MARGIN_MODE)); if(margin_mode != ACCOUNT_MARGIN_MODE_RETAIL_NETTING) { MessageBox("Брокер не поддерживает биржевой расчёт маржи в режиме 'Неттинг'!", "Ошибка", MB_OK | MB_ICONHAND); return(false); } //--- Check symbol calc mode ENUM_SYMBOL_CALC_MODE calc_mode = ENUM_SYMBOL_CALC_MODE(SymbolInfoInteger(a_symbol, SYMBOL_TRADE_CALC_MODE)); if((calc_mode != SYMBOL_CALC_MODE_EXCH_FUTURES_FORTS) && (calc_mode != SYMBOL_CALC_MODE_EXCH_OPTIONS_MARGIN)) { MessageBox("Символ " + a_symbol + " не поддерживает расчёт фьючерсов для FORTS!", "Ошибка", MB_OK | MB_ICONHAND); Print("Текуший расчёт: ", EnumToString(calc_mode)); return( false ); } //--- Check for full mode ENUM_SYMBOL_TRADE_MODE trade_mode = ENUM_SYMBOL_TRADE_MODE(SymbolInfoInteger(a_symbol, SYMBOL_TRADE_MODE)); if(trade_mode != SYMBOL_TRADE_MODE_FULL) { MessageBox("Символ " + a_symbol + " не поддерживает полную торговлю!", "Ошибка", MB_OK | MB_ICONHAND); return(false); } //--- Check trade execution mode ENUM_SYMBOL_TRADE_EXECUTION market_info = ENUM_SYMBOL_TRADE_EXECUTION( SymbolInfoInteger(a_symbol, SYMBOL_TRADE_EXEMODE)); if((market_info & SYMBOL_TRADE_EXECUTION_EXCHANGE) != SYMBOL_TRADE_EXECUTION_EXCHANGE) { MessageBox("Символ " + a_symbol + " не поддерживает TRADE EXECUTION EXCHANGE режим!", "Ошибка", MB_OK | MB_ICONHAND); return(false); } //--- Check orders mode int order_mode = int(SymbolInfoInteger(a_symbol, SYMBOL_ORDER_MODE)); if((SYMBOL_ORDER_MARKET & order_mode) != SYMBOL_ORDER_MARKET) { MessageBox("Символ " + a_symbol + " не поддерживает Market Execution режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND); return(false); } if((SYMBOL_ORDER_LIMIT & order_mode) != SYMBOL_ORDER_LIMIT) { MessageBox("Символ " + a_symbol + " не поддерживает Limit режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND); return(false); } if((SYMBOL_ORDER_STOP_LIMIT & order_mode) != SYMBOL_ORDER_STOP_LIMIT) { MessageBox("Символ " + a_symbol + " не поддерживает Stop Limit режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND); return(false); } if((SYMBOL_ORDER_STOP & order_mode) != SYMBOL_ORDER_STOP) { MessageBox( "Символ " + a_symbol + " не поддерживает Stop режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND ); return(false); } if((SYMBOL_ORDER_SL & order_mode) != SYMBOL_ORDER_SL) { MessageBox( "Символ " + a_symbol + " не поддерживает Stop Loss режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND ); return(false); } if((SYMBOL_ORDER_TP & order_mode) != SYMBOL_ORDER_TP) { MessageBox( "Символ " + a_symbol + " не поддерживает Take Profit режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND ); return(false); } //---Filing mode int filling_mode = int(SymbolInfoInteger(a_symbol, SYMBOL_FILLING_MODE)); if((SYMBOL_FILLING_IOC & filling_mode) != SYMBOL_FILLING_IOC) { MessageBox("Символ " + a_symbol + " не поддерживает filling IOC режим исполнения ордеров!", "Ошибка", MB_OK | MB_ICONHAND); return(false); } if((SYMBOL_FILLING_FOK & filling_mode) != SYMBOL_FILLING_FOK) { MessageBox("Символ " + a_symbol + " не поддерживает filling FOK режим исполнения ордеров!", "Ошибка", MB_OK | MB_ICONHAND); return(false); } //---Ckeck expiration int symbol_exp_type = int( SymbolInfoInteger(a_symbol, SYMBOL_EXPIRATION_MODE)); //--- if((symbol_exp_type & SYMBOL_EXPIRATION_DAY) != SYMBOL_EXPIRATION_DAY) { MessageBox("Символ " + a_symbol + " не поддерживает экспирацию DAY!", "Ошибка", MB_OK | MB_ICONHAND); return(false); } if((symbol_exp_type & SYMBOL_EXPIRATION_SPECIFIED_DAY) != SYMBOL_EXPIRATION_SPECIFIED_DAY) { MessageBox("Символ " + a_symbol + " не поддерживает экспирацию SPECIFIED DAY!", "Ошибка", MB_OK | MB_ICONHAND); return(false); } return(true); }
На фортсе всегда, когда устанавливаю отложенный, задаю здесь дату +1 месяц:
и все хорошо, ордера не исчезают после клиринга. это бкс.
Я выше уже писал, что этот способ на реале Фондовой секции Мосбиржи не проходит(на демо, пожалуйста)
Я выше уже писал, что этот способ на реале Фондовой секции Мосбиржи не проходит(на демо, пожалуйста)
а если вместо отложенного ордера устанавливать Горизонтальную линию? или на бирже эксперты не работают?
- я к чему!? - есть эксперты которые открывают позиции от Горизонтальных или Трендовых линии.
Я выше уже писал, что этот способ на реале Фондовой секции Мосбиржи не проходит(на демо, пожалуйста)
Так на фондовой секции, или на ФОРТС? Если на фондовой, то причём тут клиринг? А если ФОРТС - всё работает.
а если вместо отложенного ордера устанавливать Горизонтальную линию? или на бирже эксперты не работают?
- я к чему!? - есть эксперты которые открывают позиции от Горизонтальных или Трендовых линии.
Да, так можно, но в этом случае, как вы сами написали нужен эксперт.
У меня уже есть на инструменте эксперт, поэтому в моём случае пришлось бы значительно дополнять и увязывать его функционал работой от линий.
Хотелось другого решения, но возможно именно ваш способ будет работать надёжней других методов.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте, уважаемые коллеги.
Возможно кто-то сталкивался с подобной проблемой.
Есть ли решение на MT5 по переносу отложенных ордеров через клиринги Мосбиржи?
Как избавиться от рутинных действий по переустановке своих отложенных ордеров при каждом клиринге?
Дело в том, что некоторые мои отложенные ордера актуальны по несколько дней.
P.S. Как известно Good Till Cancel (действует до отмены) на Мосбирже не работает, а во время клиринга отложенные ордера автоматически удаляются самой Биржей.