CTradeStatistics - MetaTrader 5程序库
- 显示:
- 1454
- 等级:
- 已发布:
- 2014.02.03 09:05
- 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
该 CTradeStatistics 类包含所有 ENUM_STATISTICS 枚举参数计算。
所有参数, 除去净值回撤, 均可以在此类中, 依据交易历史的基础上计算。
类的主要目的是移出 TesterStatistics() 函数限制, 即, 可以在测试期间, 在任何时间, 得到必要的统计数据, 如同在策略测试员之外。
使用测试员以外的例子
所有参数通过调用 CTradeStatistics::Calculate() 函数计算。在成功执行函数之后, 结果可通过调用许多方法得到, 它们的名字类似统计参数名。
代码例子:
CTradeStatistics m_stat; if(m_stat.Calculate()) PrintFormat("LR 相关性: %.2f",m_stat.LRCorrelation()); else Print(m_stat.GetLastErrorString());
结果:
2012.09.13 08:52:19 TradeStatistics (EURUSD,H1) LR 相关性: 0.97
该 CTradeStatistics::PrintStatistics() 函数可以用于输出所有参数至日志。
if(m_stat.Calculate()) PrintStatistics();
在 TradeStatistics.mq5 脚本中可以发现简单的与类工作的例子。
该 TradeStatisticsPanel 面板设计用于将结果更好的可视化。
在测试员中使用的例子
为了正确计算净值回撤, 应该使用 CTradeStatistics::CalculateEquityDD() 函数。
代码例子:
#include <CTradeStatistics.mqh> CTradeStatistics m_stat; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { m_stat.CalculateEquityDD(CALC_INIT); return(0); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { m_stat.CalculateEquityDD(CALC_DEINIT); if(m_stat.Calculate())m_stat.PrintStatistics(); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { m_stat.CalculateEquityDD(CALC_TICK); }
应当指出的是, 统计指标的可靠值可以在程序中的任何时间获得, 而不是仅在试验结束使用 OnTester() 或 OnDeinit() 的事件。计算可使用 OnTrade() 事件更新, 如下例所示:
void OnTrade() { //--- 阻断同一秒内的重复请求. static datetime time_on_trade; if(time_on_trade==TimeTradeServer())return; time_on_trade=TimeTradeServer(); //--- 更新统计 if(!m_stat.Calculate())Print(m_stat.GetLastErrorString()); }
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/1081
该指标显示较久时间帧的开盘价 (例如, 日线时间帧) 并绘制缩进线至开盘价, 从而形成一个范围。
交易信号模块: 纯 MA 交叉信号简单 MA 交叉信号用于 EA 向导