¡Buenas tardes!
Estoy interesado en saber si es posible poner LR Correlación en la función OnTester(), con el fin de optimizar el Asesor Experto por este criterio, a través de Custom max?
Me interesa saber si es posible poner la Correlación LR en la función OnTester() ....
La descripción da un ejemplo con OnTrade(). Nada le impide mover los cálculos a OnTester().
La descripción da un ejemplo con OnTrade(). Nada te impide transferir los cálculos a OnTester().
No estoy muy familiarizado con mql5, así que por favor disculpe cualquier error obvio.
Intento hacer esto en el código del EA antes de OnDeinit:
double OnTester() { double lrk=TesterStatistics(STAT_LR_CORRELATION); return(lrk); }
Sale el error "'STAT_LR_CORRELATION' - can't convert enum".
Si es así:
double OnTester() { //--- bloquear peticiones repetidas al mismo seg. static datetime time_on_trade; if(time_on_trade==TimeTradeServer())return; time_on_trade=TimeTradeServer(); //--- actualizar estadísticas if(!m_stat.Calculate())Print(m_stat.GetLastErrorString()); }
Errores: "'return' - la función debe devolver un valor", " '}' - no todas las rutas de control devuelven un valor".
1 y 2 línea en el EA:
#include <CTradeStatistics.mqh>
CTradeStatistics m_stat;¿Dime qué está mal?
Lo hice por ensayo y error:
double OnTester() { CTradeStatistics m_stat; if(m_stat.Calculate()) PrintFormat("LR Correlation: %.2f",m_stat.LRCorrelation()); else Print(m_stat.GetLastErrorString()); double LRC=(double)m_stat.LRCorrelation(); return(LRC); }Creo que funcionó...
Andrei, hay algunos comentarios.
1. línea 500
if(m_balance_data.At(i)!=0.0) cambiar a if(m_balance_data.At(i-1)!=0.0)
2. Línea 511
no comprobar denominador m_initial_deposit a 0
3. asegúrese de especificar que está utilizando el cálculo m_sharpe_ratio para la opción Annual Sharpe Ratio con la opción RiskFreeRate
ya que ésta es sólo una de las opciones y es específicamente diferente de la estándar.
He descubierto que este código no puede calcular ninguna estadística relacionada con la reducción de la renta variable. ¿Alguien tiene un éxito para calcular la reducción del capital con su propio código?
¿Qué quieres decir? Debo estar malinterpretando tu pregunta porque esta simple respuesta no puede ser lo que estás buscando ¿verdad? ---> Equity - Balance = { draw-down if negative, profit if positive } cálculo bastante simple. con las clases de comercio MT5 puede crear un objeto de cuenta CAccountInfo acc; acc es el objeto de información de cuenta creado que le da acceso rápido a todas las funciones de detalle de la cuenta. entonces haz esto acc.Equity()-acc.Balance(). bueno para ser honesto puedes usar un codigo aun mas simple acc.Profit(). si es positivo es ganancia, si es negativo es draw-down no? equity negativo ganancia es lo mismo que draw-down. Profit() es la diferencia entre equity y balance
Si tu pregunta es más compleja por favor añade detalles ;)
¡trabajo perfecto!
si quieres evitar las advertencias de compilación
necesitas añadir el elemento null al enum deal_result:
//+------------------------------------------------------------------+
//| deal result |
//+------------------------------------------------------------------+
enum deal_result
{
NOVALUE=0, //<---- añadido
WIN=1,
LOSS
};
- 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
CTradeStatistics:
Autor: Andrey Voytenko