Коллеги по увлечению помогите ( кто торгует в Open-Broker АКЦИИ ) , удавалось ли кому нибудь выставить отложки у этого чудесного брокера с врменем истечения
ORDER_TIME_GTC |
Ордер будет находится в очереди до тех пор, пока не будет снят |
ORDER_TIME_DAY |
Ордер будет действовать только в течение текущего торгового дня |
ORDER_TIME_SPECIFIED |
Ордер будет действовать до даты истечения |
ORDER_TIME_SPECIFIED_DAY |
Ордер будет действовать до 23:59:59 указанного дня. Если это время не попадает на торговую сессию, истечение наступит в ближайшее торговое время. |
Парни, не работают ENUM_ORDER_TYPE_TIME на отложках в Open-Broker , хотел было выставлять отложенные ордера по дате истечения не дает , может кто то знает в чем причина ?
Прежде чем устанавливать ордера, нужно проверять что поддерживает брокер
//+------------------------------------------------------------------+ //| 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); }
В вашем случае нужно проверить
int symbol_exp_type = int( SymbolInfoInteger(a_symbol, SYMBOL_EXPIRATION_MODE));
Прежде чем устанавливать ордера, нужно проверять что поддерживает брокер
В вашем случае нужно проверить
Спасибо большое, попробую.
Друзья по увлечению, подскажите пожалуйста где прочитать пояснение прчины, удаление отложенных ордеров по окончании сесссии. При торговле по уровням очень неудобно, еще растет история.
Вы проверили, поддерживает ли брокер ORDER_TIME_SPECIFIED_DAY ?
Если поддерживает, то так:
//+------------------------------------------------------------------+ //| Place order | //+------------------------------------------------------------------+ void Place(const double price, const double volume, const bool buy_sell) { MqlTradeRequest request = {0}; MqlTradeResult result = {0}; //--- Fill structure request.action = TRADE_ACTION_PENDING; request.magic = 90123456789; request.symbol = Symbol(); request.volume = volume; request.price = price; if(buy_sell) { request.type = ORDER_TYPE_BUY_LIMIT; } else { request.type = ORDER_TYPE_SELL_LIMIT; } request.comment = "Отложенный ордер..."; request.type_filling = ORDER_FILLING_RETURN; request.type_time = ORDER_TIME_SPECIFIED_DAY; request.expiration = datetime(ulong(TimeTradeServer() + 24 * 3600 * 5)); //Будет стоять 5 суток //--- Send order }
Вы проверили, поддерживает ли брокер ORDER_TIME_SPECIFIED_DAY ?
Если поддерживает, то так:
открывашка и тинек ( но судя по всему не они а биржа СПБ и ММВБ) удаляют вечером отложенные ордера , у тинька нет мт5, а в отрывашке перешел на квик т. к. в мт5 нет доступа к спб
Тут вопрос , почему по окончании сессии снимаются отложенные ордера.
открывашка и тинек ( но судя по всему не они а биржа СПБ и ММВБ) удаляют вечером отложенные ордера , у тинька нет мт5, а в отрывашке перешел на квик т. к. в мт5 нет доступа к спб
Тут вопрос , почему по окончании сессии снимаются отложенные ордера.
Да потому что в Квик их нужно правильно устанавливать
Да потому что в Квик их нужно правильно устанавливать
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
ORDER_TIME_GTC
Ордер будет находится в очереди до тех пор, пока не будет снят
ORDER_TIME_DAY
Ордер будет действовать только в течение текущего торгового дня
ORDER_TIME_SPECIFIED
Ордер будет действовать до даты истечения
ORDER_TIME_SPECIFIED_DAY
Ордер будет действовать до 23:59:59 указанного дня. Если это время не попадает на торговую сессию, истечение наступит в ближайшее торговое время.
Парни, не работают ENUM_ORDER_TYPE_TIME на отложках в Open-Broker , хотел было выставлять отложенные ордера по дате истечения не дает , может кто то знает в чем причина ?