你好 我写了一个代码,开仓b里加入了bbn=1,为何起不到作用,我想要的作用是:开仓b2加入一个限制(持有多仓时候,必须满足c-ma5<0.2才能开仓,空仓不限制)
请教代码哪里错了吗,为何起不到想要的上述作用?
加入之前的代码:
if nnb>=1 and nnb<=3 and bjb=0 and l-0.02<ma5 then begin
开多b_2:buy(1,1,market);
bjb:=1;
end
加入之后的代码如下:
if holding>0 and c-ma5<0.2 then begin
bbn:=1;//不开仓
end
if holding=0 then begin
bbn:=1;
end
if nnb>=1 and nnb<=3 and bbn=1 and bjb=0 and l-0.02<ma5 then begin
开多b_2:buy(1,1,market);
bjb:=1;
end
看不出你加bbn的意义在哪里,也不知道你的bbn是普通变量还是全局变量,如果要实现“开仓b2加入一个限制(持有多仓时候,必须满足c-ma5<0.2才能开仓,空仓不限制)
”,只要这样改:
if nnb>=1 and nnb<=3 and bbn=1 and bjb=0 and l-0.02<ma5 and holding>0 and c-ma5<0.2 then begin
开多b_2:buy(1,1,market);
bjb:=1;
end
这样写,空仓时候就给排除了 。而我要求,空仓时候不限制新的条件了,就nnb>=1 and nnb<=3 and bbn=1 and bjb=0 and l-0.02<ma5 then begin 就可以了
而如果此时,不是已经有多仓了,那么上述条件再加上个限制, c-ma5<0.2,然后才能开仓b2
if nnb>=1 and nnb<=3 and bjb=0 and l-0.02<ma5 and holding>0 and c-ma5<0.2 then begin
开多b_2:buy(1,1,market);
bjb:=1;
end
if nnb>=1 and nnb<=3 and bjb=0 and l-0.02<ma5 and holding=0 then begin
开多b_2:buy(1,1,market);
bjb:=1;
end
按我的要求帮我改下,谢谢,
你那样写,排除了 空仓这个情况 所以不行
麻烦用户把当前不开仓无持仓的情况称之为“无持仓”
“空仓”我一般理解为“有空头仓”