求助大神,SAR指标调用问题 新评论 未来YOLO 2024.03.13 05:23 我把SAR指标做了封装处理。 指标定义 double Data::SAR(int count=0, double 步长=0.02, double 最大值=0.2, ENUM_TIMEFRAMES period=PERIOD_CURRENT, string symbol=NULL) { double a=0; int sar_handle=iSAR(symbol, period, 步长, 最大值); double data0[]; ArraySetAsSeries(data0, true); if(CopyBuffer(sar_handle, 0, 0, count+1, data0) > 0) { a = NormalizeDouble(data0[count], _Digits); } else { Print("SAR指标CopyBuffer失败,错误码: ", GetLastError()); } // 不要忘记释放指标句柄 IndicatorRelease(sar_handle); return(a); } 指标声明 double SAR(int count=0, double 步长=0.02, double 最大值=0.2, ENUM_TIMEFRAMES period=PERIOD_CURRENT, string symbol=NULL); 经过测试以上代码无编写问题,但是在EA中调用时不能进行÷运算 // 获取最新价格 double latestPrice = D.K_Close(0); // 调用SAR方法获取最新SAR值 double sarValue = D.SAR(0, JIEDUAN); Print("SAR",sarValue); // 计算最新价格与最新SAR值的比例差 double ratio = (latestPrice / sarValue) - 1; Print("比值",ratio); 以上代码也无编写错误,但是进行回测会报错,copybuffer失败,奇怪的是我进行对比和获取数据打印数据是正常的例如 // 获取最新价格 double latestPrice = D.K_Close(0); // 调用SAR方法获取最新SAR值 double sarValue = D.SAR(0, JIEDUAN); Print("SAR",sarValue); // 检查比例差是否大于A if(sarValue > latestPrice) { Print("你好"); } 不知道是哪里出了问题,怎么修改,请求大神援助。 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我把SAR指标做了封装处理。
指标定义
指标声明
经过测试以上代码无编写问题,但是在EA中调用时不能进行÷运算
以上代码也无编写错误,但是进行回测会报错,copybuffer失败,奇怪的是我进行对比和获取数据打印数据是正常的例如
不知道是哪里出了问题,怎么修改,请求大神援助。