Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
CTradeStatistics - librería para MetaTrader 5
- Visualizaciones:
- 977
- Ranking:
- Publicado:
- 2014.01.15 09:09
- Actualizado:
- 2014.02.17 10:07
- ¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
La clase CTradeStatistics contiene todos ENUM_STATISTICS cálculos de los parámetros de enumeración.
Todos los parámetros, excepto en la reducción de capital, pueden ser calculados por esta clase en base al historial de operaciones.
El principal propósito de la clase es eliminar las restricciones de la función TesterStatistics(), es decir, para poder obtener los datos estadísticos necesarios en cualquier momento durante la prueba, así como fuera del probador de estrategias.
Un ejemplo del uso fuera del probador
Todos los parámetros se calculan mediante una llamada a la función CTradeStatistics::Calculate(). Después de la exitosa ejecución de esta función, los resultados están disponibles a través de las llamadas de numerosos métodos, sus nombres siguen siendo similares a los nombres de los parámetros estadísticos.
Ejemplo de código:
CTradeStatistics m_stat; if(m_stat.Calculate()) PrintFormat("LR Correlation: %.2f",m_stat.LRCorrelation()); else Print(m_stat.GetLastErrorString());
Result:
2012.09.13 08:52:19 TradeStatistics (EURUSD,H1) LR Correlation: 0.97
La función CTradeStatistics::PrintStatistics() se puede utilizar para imprimir todos los parámetros en el registro.
if(m_stat.Calculate()) PrintStatistics();
Un ejemplo sencillo de su forma de trabajo con la clase se puede encontrar en el script TradeStatistics.mq5.
El TradeStatisticsPanel panel está diseñado para una mejor visualización de los resultados.
Un ejemplo de uso en el probador
Para calcular correctamente reducción de capital, se debe utilizar la función CTradeStatistics::CalculateEquityDD().
Ejemplo de código:
#include <CTradeStatistics.mqh> CTradeStatistics m_stat; //+------------------------------------------------------------------+ //| Función de inicialización del Experto | //+------------------------------------------------------------------+ int OnInit() { m_stat.CalculateEquityDD(CALC_INIT); return(0); } //+------------------------------------------------------------------+ //| Función de deinicialización del Experto | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { m_stat.CalculateEquityDD(CALC_DEINIT); if(m_stat.Calculate())m_stat.PrintStatistics(); } //+------------------------------------------------------------------+ //| Función de tick del Experto | //+------------------------------------------------------------------+ void OnTick() { m_stat.CalculateEquityDD(CALC_TICK); }
Cabe señalar que los valores de los indicadores estadísticos fiables se pueden obtener en cualquier punto del programa y no sólo al final de las pruebas utilizando los eventos OnTester() o OnDeinit(). Los cálculos se pueden actualizar mediante el evento OnTrade() como se muestra en el siguiente ejemplo:
void OnTrade() { //--- bloque de repetidas peticiones en mismo sec. static datetime time_on_trade; if(time_on_trade==TimeTradeServer())return; time_on_trade=TimeTradeServer(); //--- actualización de estadísticas if(!m_stat.Calculate())Print(m_stat.GetLastErrorString()); }
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/1081
Panel de la pantalla de parámetros estadísticos calculados en base al historial de las operaciones.
VininI_Trend_LRMAUn indicador de tendencia que determina sus valores en base a las señales tomadas de la media móvil LRMA y un grupo de sus líneas de señal cuyos períodos cambian en la progresión aritmética.
Indicador de tendencia que determina sus valores en base a las señales con el grupo de Medias Móviles cuyos períodos cambian en la progresión aritmética.
BidAskChannelEl indicador BidAskChannel está diseñado para mostrar el spread en la sombra de las velas.