Mira cómo descargar robots gratis
¡Búscanos en Telegram!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Librerías

CTradeStatistics - librería para MetaTrader 5

Visualizaciones:
972
Ranking:
(48)
Publicado:
2014.01.15 09:09
Actualizado:
2014.02.17 10:07
\MQL5\Scripts\ \MQL5\Include\
MQL5 Freelance ¿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

TradeStatisticsPanel TradeStatisticsPanel

Panel de la pantalla de parámetros estadísticos calculados en base al historial de las operaciones.

VininI_Trend_LRMA VininI_Trend_LRMA

Un 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.

VininI_Trend VininI_Trend

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.

BidAskChannel BidAskChannel

El indicador BidAskChannel está diseñado para mostrar el spread en la sombra de las velas.