Errores, fallos, preguntas - página 2127

 
Slava:

¿Qué quieres decir con "se convirtió"?

Siempre ha sido así. Desde el comienzo del nuevo cuatro.

No voy a discutir y probarlo, pero hace unas 2-3 semanas parece haber sido. Estaba arreglando un Asesor Experto para una persona con botones y campos de entrada.
Tuve que añadir un botón y un campo de entrada. Para determinar la sangría de la esquina, siempre creaba el objeto manualmente y después de colocarlo donde era necesario, miraba las propiedades y añadía estos valores al código. Después de todo, no podría haber soñado con algo así...

Podría suponer que estaba moviendo un objeto creado mediante programación. Pero eso también es imposible ahora. El objeto está resaltado, pero no puedes moverlo.

 
los agentes de prueba están desbordando el disco duro. Qué hacer - qué configurar. Hay 8 servidores de 120gb cada uno
 
MQL5 Cloud Europe 1     genetic pass  tested with error "wrong timeframe request in Open Prices mode in OnTick function (EURUSD,M1)" 


Hola a todos.

¿Alguien se ha encontrado con este error al optimizar en la nube sólo en Open Prices?


El error no es constante. Es decir, ocurre "muy raramente" pero cuando ejecuto 10.000 resultados, aparece 50 veces.

No cambio la TF durante la optimización.

 
Vladislav Andruschenko:

El error no es constante. Es decir, ocurre "muy raramente", pero cuando se ejecutan 10.000 resultados, aparece 50 veces.

Debe obtener toda la información que necesita del agente a través del marco para analizarlo.

 
fxsaber:

Es necesario obtener toda la información necesaria del Agente a través de un marco para el análisis.

Esto ocurre siempre al 19%. Encontré un hilo que dice que es por la historia.
Lo probaré.
 

Toda la secuencia de eventos OnTradeTransaction sigue a la finalización de OrderSend.

Asesor experto

void OnTradeTransaction ( const MqlTradeTransaction &Trans, const MqlTradeRequest&, const MqlTradeResult& )
{ 
  static bool FirstRun = true;  
  static ulong StartTime;
  
  if (FirstRun)
  {
    StartTime = GetMicrosecondCount();
    
    FirstRun = false;
  }

  Print(EnumToString(Trans.type));
  Print((GetMicrosecondCount() - StartTime) / 1000);    
}

Enviar manualmente una orden de comercio.

Registro

2018.02.14 09:41:46.671 '8854170': instant sell 1.00 EURUSD at 1.23673
2018.02.14 09:41:46.853 '8854170': accepted instant sell 1.00 EURUSD at 1.23673
2018.02.14 09:41:46.853 '8854170': deal #192088422 sell 1.00 EURUSD at 1.23673 done (based on order #208541700)
2018.02.14 09:41:46.853 '8854170': order #208541700 sell 1.00 / 1.00 EURUSD at 1.23673 done in 190.608 ms


Resultado del Asesor Experto

2018.02.14 09:41:46.853 TRADE_TRANSACTION_ORDER_ADD
2018.02.14 09:41:46.853 0
2018.02.14 09:41:46.853 TRADE_TRANSACTION_DEAL_ADD
2018.02.14 09:41:46.853 1
2018.02.14 09:41:46.853 TRADE_TRANSACTION_ORDER_DELETE
2018.02.14 09:41:46.853 1
2018.02.14 09:41:46.853 TRADE_TRANSACTION_HISTORY_ADD
2018.02.14 09:41:46.853 2
2018.02.14 09:41:46.853 TRADE_TRANSACTION_REQUEST
2018.02.14 09:41:46.853 2


Podemos ver perfectamente en la columna de tiempo y en los datos numéricos del EA que la duración de la ejecución de la orden comercial no tiene ningún efecto en la secuencia de eventos OnTradeTransaction. ¡Toda la asincronía se va al infierno! Se las han arreglado para estropearlo todo. Construye 1755.

 

El símbolo tiene Dígitos == 3

con muchos más dígitos mostrados en el registro

'18000903': failed modify order #896199 buy limit 0.01 BTCUSD at 616.00100 sl: 0.00000 tp: 0.00000 -> 616.00100, sl: 0.00000 tp: 616.10100 [Invalid request]
 
La columna "Comentario" no aparece en la vista "Órdenes y operaciones" del historial de operaciones.
 
No se trata de un fallo del terminal, sino de la plataforma MT5
#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define Bid SymbolInfoDouble(_Symbol, SYMBOL_BID)
#define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnStart()
{
  OrderSend(_Symbol, OP_BUY, 1, Ask, 100, 0, Bid);
  
//  OrderSend(_Symbol, OP_BUYLIMIT, 1, Ask, 100, 0, 0);
}

Ejecutar en MQ-Demo en algún símbolo de movimiento lento. Por ejemplo, EURHUF.

El script abre una posición de COMPRA con TP = Oferta. Es decir, la posición debe cerrarse inmediatamente. Pero se comprobará el cumplimiento de la condición de aceptación de TP sólo en el siguiente tick.

La posición no se cerrará inmediatamente hasta que se produzca el siguiente tick. Además, si el siguiente tick tiene Bid < TP, el TP se mantendrá sin ninguna aceptación.


Lo mismo ocurre con las órdenes limitadas (línea comentada). La situación es similar en el Probador.

 
fxsaber:
No se trata de un error en el Terminal, sino en la plataforma MT5

Ejecutar en MQ-Demo en algún símbolo de movimiento lento. Por ejemplo, EURHUF.

El script abre una posición de COMPRA con TP = Oferta. Es decir, la posición debe cerrarse inmediatamente. Pero se comprobará el cumplimiento de la condición de aceptación de TP sólo en el siguiente tick.

La posición no se cerrará inmediatamente hasta que se produzca el siguiente tick. Además, si el siguiente tick tiene Bid < TP, el TP se mantendrá sin ninguna aceptación.


Lo mismo ocurre con las órdenes limitadas (línea comentada). La situación es similar en el Probador de Estrategias.

Por favor, adjunte un código MQL5 limpio en las preguntas sobre MQL5.

Estoy harto de ver su publicidad NASTY de forma intermitente.