// Возвращает true, если полностью выполнился OnTick() на последнее событие NewTick в тестере - окончание бэктеста. Иначе - false.staticbool BACKTEST::IsEnding(void)
{
return(::TesterStatistics(STAT_BALANCEMIN) > 0);
}
Slava: Y devolver el resultado de la medición como código de retorno de OnTester
Todavía no he probadoGetTickCount en el probador. Supuse que esta función sería emulada por el probador, lo que puede ser lógico en algunas situaciones.
Por cierto, ¿cómo entender el tiempo actual en el probador a los ms más cercanos? El SymbolInfoTick+Tick.time_msc puede utilizarse para averiguar la hora de llamada del símbolo principal OnTick. Y así hasta comprobar la corrección del modo de deslizamiento del probador. Pero parece que no hay otra manera.
En realidad, quería preguntar sobre otra cosa. Para automatizar un lote en el optimizador con la caída de los primeros y últimos valores, debo actuar a través de marcos (para pasar OnTester-resultado), o se distorsionará el resultado?
En realidad, quería preguntar sobre otra cosa. Para automatizar los bancos en el optimizador con descarte de los primeros y últimos valores, necesito actuar a través de marcos (para pasar el OnTester-resultado), o se distorsionará el resultado?
No debe. Se envía después de la medición. Prueba con
¿GetMicrosecondCount ralentiza el probador más que GetTickCount (o está emulado)?
¿O el fallo de EventSetMillisecondTimer fue intencionado?
Me refería a GetMicrosecondCount. No puedo decir con seguridad si ralentiza el servidor. Puede tener un efecto indirecto. Por lo tanto, es mejor utilizar el GetTickCount nativo del sistema
GetMicrosecondCount se utiliza para medir periodos cortos de ejecución de código. Para medir un gran número de ejecuciones OnTick, es mejor utilizar GetTickCount.
Intente utilizar GetMicrosecondsCount en lugar de GetTickCount cuando obtenga resultados estables. Me lo contarás aquí. Quizás me estoy preocupando demasiado.
En los pedidos es posible establecer el campo Request.expiration hasta LONG_MAX + 2 inclusive. Su valor estará totalmente disponible a través de ORDER_TIME_EXPIRATION si la orden está activa (no en la tabla de historial).
PositionIdentifier de las operaciones de saldo es cero. Por lo tanto, es fácil escribir, por ejemplo, esta función
// Возвращает сумму всех балансовых не торговых операций (начисления + списания)double GetSumBalanceOperations( void )
{
double Res = 0;
if (HistorySelectByPosition(0))
for (int i = HistoryDealsTotal() - 1; i >= 0; i--)
Res += HistoryDealGetDouble(HistoryDealGetTicket(i), DEAL_PROFIT);
return(Res);
}
DEAL_ENTRY de estas operaciones es DEAL_ENTRY_IN (0).
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Olvidaste especificar que el inicio de la medición es al comienzo del primer OnTick. El final de la medición está al principio de OnDeinit.
// После окончания бэктеста сначала вызывается OnTester, затем OnDeinitEn el tema
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
Bichos, errores, preguntas
fxsaber, 2016.08.25 11:13
Ciclo de vidaO al inicio del OnTester, como
Y devolver el resultado de la medición como código de retorno de OnTester
Todavía no he probadoGetTickCount en el probador. Supuse que esta función sería emulada por el probador, lo que puede ser lógico en algunas situaciones.
Por cierto, ¿cómo entender el tiempo actual en el probador a los ms más cercanos? El SymbolInfoTick+Tick.time_msc puede utilizarse para averiguar la hora de llamada del símbolo principal OnTick. Y así hasta comprobar la corrección del modo de deslizamiento del probador. Pero parece que no hay otra manera.
En realidad, quería preguntar sobre otra cosa. Para automatizar un lote en el optimizador con la caída de los primeros y últimos valores, debo actuar a través de marcos (para pasar OnTester-resultado), o se distorsionará el resultado?
En realidad, quería preguntar sobre otra cosa. Para automatizar los bancos en el optimizador con descarte de los primeros y últimos valores, necesito actuar a través de marcos (para pasar el OnTester-resultado), o se distorsionará el resultado?
No utilice un temporizador de microsegundos para las mediciones de masa. Utiliza el GetTickCount regular de milisegundos.
¿GetMicrosecondCount ralentiza el probador más que GetTickCount (o está emulado)?
¿O el fallo de EventSetMillisecondTimer fue intencionado?
¿GetMicrosecondCount ralentiza el probador más que GetTickCount (o está emulado)?
¿O el fallo de EventSetMillisecondTimer fue intencionado?
Me refería a GetMicrosecondCount. No puedo decir con seguridad si ralentiza el servidor. Puede tener un efecto indirecto. Por lo tanto, es mejor utilizar el GetTickCount nativo del sistema
GetMicrosecondCount se utiliza para medir periodos cortos de ejecución de código. Para medir un gran número de ejecuciones OnTick, es mejor utilizar GetTickCount.
Intente utilizar GetMicrosecondsCount en lugar de GetTickCount cuando obtenga resultados estables. Me lo contarás aquí. Quizás me estoy preocupando demasiado.
Su contenido sólo puede ser influenciado a través de las funciones de HistorySelect. Y ocurre lo siguiente
DEAL_ENTRY de estas operaciones es DEAL_ENTRY_IN (0).