想写一个思路很好的交易系统,但是遇到一点问题卡壳了,希望大佬可以帮忙看一下,后面无偿分享。。。

 

double 范围最高价=iHigh(Symbol(),0,iHighest(NULL,0,MODE_HIGH,蜡烛个数,1));      // 0~50根K最高的最高價

double 范围最低价= iLow(Symbol(),0,iLowest(NULL,0,MODE_LOW,蜡烛个数,1));

double 当前价格=iClose(Symbol(),0,1);

double XX=(范围最高价-当前价格)/(范围最高价-范围最低价);


这个思路想看看价格在50日内最高和最低点的哪一个位置,但是获取的值感觉对,不知道哪写错了,有大佬可以看下吗??


 

对你的策略没有兴趣。

可能存在的问题:

iHighest, iLowest 返回的值可能是-1,特别是在复盘测试时是有可能的,需要检验其返回值

2. 范围最高价 - 范围最低价 结果可能为0,要判断是否为0

https://www.mql5.com/zh/docs/series/ihighest

MQL5文档: 时间序列和指标访问 / iHighest
MQL5文档: 时间序列和指标访问 / iHighest
  • www.mql5.com
iHighest - 时间序列和指标访问 - MQL5参考 - 参考MetaTrader 5的算法/自动交易语言
原因: