以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请教if判断语句  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=142423)

--  作者:xiangquzi
--  发布时间:2016/11/9 13:27:33
--  请教if判断语句

你好  我写了一个代码,开仓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


--  作者:xiangquzi
--  发布时间:2016/11/9 13:34:03
--  
请回复   谢谢  
--  作者:jinzhe
--  发布时间:2016/11/9 13:38:08
--  

看不出你加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


--  作者:xiangquzi
--  发布时间:2016/11/9 13:43:46
--  
这样写,空仓不限制,满足吗
--  作者:xiangquzi
--  发布时间:2016/11/9 13:50:02
--  

这样写,空仓时候就给排除了 。而我要求,空仓时候不限制新的条件了,就nnb>=1 and nnb<=3 and bbn=1 and bjb=0 and l-0.02<ma5   then begin  就可以了

 

而如果此时,不是已经有多仓了,那么上述条件再加上个限制, c-ma5<0.2,然后才能开仓b2


--  作者:jinzhe
--  发布时间:2016/11/9 13:56:36
--  

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


--  作者:xiangquzi
--  发布时间:2016/11/9 13:56:57
--  

按我的要求帮我改下,谢谢,

你那样写,排除了 空仓这个情况 所以不行


--  作者:jinzhe
--  发布时间:2016/11/9 13:57:18
--  

麻烦用户把当前不开仓无持仓的情况称之为“无持仓”

“空仓”我一般理解为“有空头仓”