¿Están todos negociando en el Open?
Tengo una cuenta en BCS, pero aún no he operado con robots allí. Puedo correr un spreader para spamear los límites para medir el tiempo de ejecución (si entiendo bien lo que necesitas).
¡Buenas tardes!
Por supuesto que has acertado.
Sólo tiene que colocar y eliminar las órdenes pendientes, pero sólo para un tiempo largo (preferiblemente todo el día) y muy preferiblemente para más de un símbolo.
Y luego adjuntar el archivo de registro aquí.
Muchas gracias de antemano.
No olvides que, de forma gratuita, puedes realizar 2000 transacciones.
P/S Si no recuerdo mal, el spreader pone órdenes muy cerca del mercado.
Hay que poner órdenes al precio MAX y MIN para que no se disparen.
Si no tienes un EA de este tipo, escribiré uno rápido.
Cosido esta mañana temprano, no lo he probado (mejor probarlo en una demo primero)
//+------------------------------------------------------------------+ //| 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(); } } }
Cosido esta mañana temprano, no lo he probado (mejor probarlo en una demo primero)
Ok, mañana estaré en la terminal a medio día y adjuntaré el archivo por la noche.
Lo he comprobado en la demo: ¡funciona correctamente!
Ajustado el Asesor Experto un poco (ver archivo adjunto)
Lo he comprobado en la demo: ¡funciona correctamente!
Ajustado el Asesor Experto un poco (ver archivo adjunto)
¿En qué instrumento de BCS debo probar la demo?
Tengo un demo en el real - no rellenado. Estoy pensando donde rellenarlo...
Fuertes - el acceso desde BCS está abierto en el real.
Hay una demo de MT 5 en forex-bcs.ru.
Hay instrumentos:
¿En qué instrumento de BCS debe probarse la demo?
Tengo en un real - no llenado DEP. Estoy pensando donde llenar...
Fuertes - el acceso desde BCS está abierto en el real.
Hay una demo de MT 5 en forex-bcs.ru.
Hay instrumentos:
¡Buenos días!
En cualquier instrumento FORTS (por ejemplo) Si-9.15
¡Buenas tardes!
En cualquier instrumento FORTS (por ejemplo) Si-9.15
¿Ri U5 encajará este septiembre?
Estaba mirando la hora. Le gana al reloj de Otkritie o de BCS... Me refiero a la hora de negociar...
Kamp trabaja todo el tiempo...
Vierte la imagen en el pre-post.
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
¡Buenas tardes!
Busco a alguien que opere en FORTS con robot MT5 NO en el Open.
Busco a alguien que opere en FORTS usando un robot MT5, no un Opener.
Por favor, hágame saber si tiene un problema serio que resolver.
https://www.mql5.com/ru/forum/38456