Неужели все торгуют в Открывашке?
У меня есть счет в БКС, но роботами не торговал там пока что. Могу запустить спредер, чтобы поспамил лимитками для замера времени исполнения (если я правильно понял то что вам нужно).
Добрый день!
Конечно правильно поняли.
Нужно просто выставлять и удалять отложенные ордера, но только долго (желательно весь день) и очень желательно не по одному инструменту.
А потом прикрепить лог-файл здесь.
Заранее ОГРОМНОЕ СПАСИБО!
Не забудьте, что бесплатно, Вы можете сделать 2000 транзакций.
P/S Как мне помнится, спредер выставляет ордера очень близко к рынку.
Нужно ставить ордера по MAX и MIN цене, чтобы они не сработали.
Если у Вас нет такого советника, я напишу по-быстренькому.
Настрочил рано утром, не проверял (лучше проверить сначала на демо)
//+------------------------------------------------------------------+ //| BKS_Test.mq5 | //| Copyright 2015, Mikalas | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2015, Mikalas" #property link "https://www.mql5.com" #property version "1.00" // double sell_price; double buy_price; ulong buy_ticket; ulong sell_ticket; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { sell_price = 0; buy_price = 0; buy_ticket = 0; sell_ticket = 0; //--- if ( !GlobalVariableCheck( "trans_count" ) ) { datetime a_time = GlobalVariableSet( "trans_count", 0 ); if ( ulong( a_time ) == 0 ) { MessageBox( "Глобальная переменная терминала 'Счётчик транзакций' не создана!", "Ошибка", MB_OK | MB_ICONHAND ); return( INIT_FAILED ); } } //--- if ( !MarketBookAdd( _Symbol ) ) { MessageBox( "Не добавлен стакан по символу " + _Symbol, "Ошибка", MB_OK | MB_ICONHAND ); return( INIT_FAILED ); } return( INIT_SUCCEEDED ); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { MarketBookRelease( _Symbol ); } //+------------------------------------------------------------------+ //| Expert Set transaction count function | //+------------------------------------------------------------------+ void SetTransCount( const bool up_down ) { double tr_count; uint i = 0; do { i++; if ( GlobalVariableGet( "trans_count", tr_count ) ) { if ( up_down ) { if ( GlobalVariableSetOnCondition( "trans_count", tr_count + 1, tr_count ) ) { i = 100; } } else { if ( GlobalVariableSetOnCondition( "trans_count", tr_count - 1, tr_count ) ) { i = 100; } } } } while( i < 100 ); } //+------------------------------------------------------------------+ //| Remove order function | //+------------------------------------------------------------------+ void RemoveOrder( ulong &ticket ) { MqlTradeRequest request = {0}; MqlTradeResult result = {0}; request.action = TRADE_ACTION_REMOVE; request.order = ticket; if ( OrderSend( request, result ) ) { if ( result.retcode == TRADE_RETCODE_PLACED ) { ticket = 0; SetTransCount( true ); } } else { Print( "Ордер не удалён. Билет = ", ticket ); } } //+------------------------------------------------------------------+ //| Set order function | //+------------------------------------------------------------------+ void SetOrder( ulong &ticket, const double price, const bool buy_sell ) { ticket = 0; MqlTradeRequest request = {0}; MqlTradeResult result = {0}; //--- Fill structure request.action = TRADE_ACTION_PENDING; request.magic = 987654321; request.symbol = _Symbol; request.volume = 1; 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_DAY; //--- Send order if ( OrderSend( request, result ) ) { if ( result.retcode == TRADE_RETCODE_PLACED ) { ticket = result.order; SetTransCount( true ); } } else { Print( "Ордер не установлен! ", _Symbol, ", Цена = ", price, "; Код возврата = ", result.retcode ); } } //+------------------------------------------------------------------+ // Expert Check orders timer function | //+------------------------------------------------------------------+ bool CheckOrdersTimer( const uint start_value, const uint per_value ) { uint end_value = GetTickCount(); if ( end_value < start_value ) { if ( ( start_value - end_value ) >= per_value ) return( true ); } else { if ( ( end_value - start_value ) >= per_value ) return( true ); } return( false ); } //+------------------------------------------------------------------+ //| BookEvent function | //+------------------------------------------------------------------+ void OnBookEvent(const string &symbol) { if ( symbol == _Symbol ) { double trc_value = GlobalVariableGet( "trans_count" ); //--- if ( long( trc_value ) < 2000 ) { uint st_val = GetTickCount(); int tick_cnt = 1; sell_price = SymbolInfoDouble( _Symbol, SYMBOL_SESSION_PRICE_LIMIT_MAX ); buy_price = SymbolInfoDouble( _Symbol, SYMBOL_SESSION_PRICE_LIMIT_MIN ); //--- while ( !CheckOrdersTimer( st_val, 2000 ) ) //Используем вместо sleep 2 сек { tick_cnt--; tick_cnt++; } //--- if ( ( sell_ticket > 0 ) && ( OrderSelect( sell_ticket ) ) ) { RemoveOrder( sell_ticket ); } else { SetOrder( sell_ticket, sell_price, false); } //--- if ( ( buy_ticket > 0 ) && ( OrderSelect( buy_ticket ) ) ) { RemoveOrder( buy_ticket ); } else { SetOrder( buy_ticket, buy_price, true ); } } else { if ( ( sell_ticket > 0 ) && ( OrderSelect( sell_ticket ) ) ) { RemoveOrder( sell_ticket ); } if ( ( buy_ticket > 0 ) && ( OrderSelect( buy_ticket ) ) ) { RemoveOrder( buy_ticket ); } ExpertRemove(); } } }
Настрочил рано утром, не проверял (лучше проверить сначала на демо)
Хорошо, завтра буду у терминала с середины дня и вечером прикреплю файл.
Щас проверил на демо Открывашки - работает правильно!
Немного подправил советник (см. вложение)
На каком инструменте от БКС демо надо тестировать?
У меня на реал - не залит дЕп. Размышляю куда залить...
Фортс - доступ от БКС открыт на реале.
Есть демо МТ 5 на forex-bcs.ru.
Есть инструменты:
Добрый день!
На любом инструменте ФОРТС (н-р) Si-9.15
Добрый день!
На любом инструменте ФОРТС (н-р) Si-9.15
Ри У5 это сентябрь подойдёт?
По времени смотрел. Бьёт по часам что с Открытия, что у БКС... Я о времени торговли...
Камп работает постоянно...
Картинку в пред посте залил.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день!
Ищу человека, который торгует на ФОРТС роботом МТ5 НЕ в Открывашке.
Большая просьба отозваться, т.к нужно решить
серьёзную проблему касающуюся всех.
https://www.mql5.com/ru/forum/38456