下午好!
我想知道是否有可能在 OnTester() 函数中加入 LR Correlation,以便通过 自定义 max以此标准优化智能交易系统 ?
我想知道是否可以将 LR Correlation 放入 OnTester() 函数....。
说明中举了一个 OnTrade() 的例子。没有什么可以阻止您将计算转移到 OnTester() 中。
说明以 OnTrade() 为例。您可以将计算转移到 OnTester()。
我对 mql5 不是很熟悉,如有明显错误,请原谅。
我尝试在 OnDeinit 之前的 EA 代码中这样做:
double OnTester() { double lrk=TesterStatistics(STAT_LR_CORRELATION); return(lrk); }
出现错误"'STAT_LR_CORRELATION' - 无法转换枚举"。
如果是这样:
double OnTester() { //--- 阻止同一秒钟内的重复请求。 static datetime time_on_trade; if(time_on_trade==TimeTradeServer())return; time_on_trade=TimeTradeServer(); //--- 更新统计数据 if(!m_stat.Calculate())Print(m_stat.GetLastErrorString()); }
错误:"'return' -函数 必须返回一个值","'}' 不是所有控制路径都返回一个值。- 并非所有控制路径都返回值"。
EA 中的 1 和 2 行:
#include <CTradeStatistics.mqh>
CTradeStatistics m_stat;
告诉我哪里出错了?
我是反复试验才成功的:
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); }我认为它成功了......?
安德烈,有一些意见。
1. 第 500 行
if(m_balance_data.At(i)!=0.0) 更正为 if(m_balance_data.At(i-1)!=0.0)
2.第 511 行
没有将分母 m_initial_deposit 检查为 0。
确保 使用 m_sharpe_ratio 计算年度夏普比率(Annual Sharpe Ratio)选项和无风险利率(RiskFreeRate)选项。
选项的 m_sharpe_ratio 计算,因为这只是选项之一,而且与标准选项特别不同。
我发现该代码无法计算与股票缩水相关的任何统计数据。有人能用自己的代码成功计算股票缩水吗?
我一定是误解了你的问题,因为这个简单的答案不可能是你想要的,对吗?---> 使用 MT5 交易类,您可以创建一个账户对象CAccountInfo acc;acc 是已创建的账户信息 对象,可以让您快速访问所有账户细节功能。老实说,您可以使用更简单的代码 acc.Profit(),如果是正数就是利润,如果是负数就是缩水,对吗? 负资产利润与缩水相同,Profit() 是资产和余额之间的差额。
如果您的问题更复杂,请补充细节;)
CTradeStatistics:
作者: Andrey Voytenko