fc:=close;for i=3 to DATACOUNT do
if fc[i]>fc[i-1] then
KD:=1;
开多:BUY(KD AND HOLDING=0,1,THISCLOSE);
一个简单的交易程序,调试单步运行到 if fc[i]>fc[i-1] then 语句时,出错,提示是二次重复用了未来函数,从提示看,好像是[]用了未来的数据。
运行模式是逐K模式,但勾选了仅刷最后一根k线的,怎么会出这样错误?
在逐K线模式下,引用数组,如果当前的BASPOS=1时,你如果使用了 XX[2]这样大于1的数据引用,即使用了未来数据的,你上面的公式其实是序列模式运行的,建议你好好理清思路,多在论坛看看逐K线模式的运行规律
改成如下公式:
if barpos<=2 then exit;
if close[barpos]>close[barpos-1] then
KD:=1;
开多:BUY(KD AND HOLDING=0,1,THISCLOSE);