variable:num=0; //定义个全局变量控制
if high>open+atr/2 and num=0 then
num:=1;
if low<open-atr and num=0 then
num:=2;
判断下num的值,如果是1表示先达到开仓条件,为2表示先达到了止损条件。平仓后把num重新赋值成0即可
这个是在测试中测试不出来的,对吧,因为过去数据是没有办法知道先达到止损还是先达到开仓条件,只能通过模拟实盘才能看到这么修改是否有效,是这样的吗?
是的,历史只有高低价只有数据,并不知道谁先谁后的。你模拟运行试下
[此贴子已经被作者于2014/8/12 10:56:42编辑过]
你好,那如果判断条件num等于2的时候,就不进场做多了,那怎么去把num置为0,毕竟如果num=2 后一直就为2,后面永远进不了场了,怎么让策略到下一根新的K线把num变成0,variable 是全局的,还有个变量前面不加任何修饰字,比如a:=1,这个变量是公式扫描完就失效呢,还是在整个K线周期完成后失效,毕竟一个K线周期会扫描好多次呢。。。
if low<open-atr and num=0 then
begin
num:=2;
bar:=barpos;
end
if barpos>bar then //新一根k的时候重置num
num:=0;
a:=1就是普通的变量赋值,每次扫描都将a赋值1