刚编写了一个交易系统,目的是实现一个趋势跟踪系统。比最近一个最低点回升n1后买入,比最近一个高点下落n2后卖出。
具体的程序是:
n1,n2在参数表里定义,缺省值为0.1
Variable:low1=7000;
Variable:low2=0;
Variable:high1=0;
Variable:high2=7000;
if holding=0 then begin
if low<low1 then begin
low1=low;
low2=low1*(1+n1);
KD:=close>=low2; //开多条件
开多:BUY(KD,100%,THISCLOSE); //开多信号
end
end
else begin
if high>high1 then begin
high1=high;
high2=high*(1-n2);
PD:=close<=high2; //平多条件
平多:SELL(PD and holding>0,100%,THISCLOSE); //平多信号
end
end
虽然编译能通过,但是测试中发现全局变量low1,high1始终是初始值。
我想做到的是在空仓的时候如果low比low1低,把low的值赋值给low1.
请高手帮我解答一下,如何做到这样的赋值。谢谢!
用:和:=效果一样吗?
我之前用过:赋值,结果编译不通过,说对全局变量low1重复定义了。
不一样,冒号还有显示线段的作用,所以一个公式里面只能有一个同样名字的。冒号等号就不一样,可以随便用。