以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  多个条件下的开仓和平仓语句  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=144548)

--  作者:987654jj
--  发布时间:2016/12/13 8:35:20
--  多个条件下的开仓和平仓语句
比如有3个做多的条件ABC:

同时满足3个条件就开3手多单
满足其中任意2个就保留一手多单
只满足其中任意一个条件就保留一手空单
3个都不满足则开3手空

这种情况下的开仓和平仓语句应该怎么写才合适呢

--  作者:jinzhe
--  发布时间:2016/12/13 8:57:15
--  
保留一手空单多单是上面意思?
--  作者:987654jj
--  发布时间:2016/12/13 9:16:21
--  
就是说 
3个都满足 3手多单
2个满足 一个不满足 1手多单
1个满足 2个不满足  1手空单
3个都不满足 3手空单

--  作者:jinzhe
--  发布时间:2016/12/13 9:31:58
--  

c1:=条件1;

c2:=条件2;

c3:=条件3;

 

if c1+c2+c3=3 then buy(holding=0,3,marketr);

if c1+c2+c3=2 then buy(holding=0,1,marketr);

 

if c1+c2+c3=1 then buyshort(holding=0,1,marketr);

if c1+c2+c3=0 then buyshort(holding=0,3,marketr);


--  作者:987654jj
--  发布时间:2016/12/13 9:45:00
--  
这个只是开仓呀  如果条件变动的情况下 需要平仓的话应该怎么写
--  作者:jinzhe
--  发布时间:2016/12/13 9:56:42
--  

我还以为你会自己加平仓进去

 

c1:=条件1;

c2:=条件2;

c3:=条件3;

 

if c1+c2+c3=3 then begin

   sellshort(1,0,marketr);

   buy(holding=0,3,marketr);

end

if c1+c2+c3=2 then begin

   sellshort(1,0,marketr);

   buy(holding=0,1,marketr);

end

 

if c1+c2+c3=1 then begin

   sell(1,0,marketr);

   buyshort(holding=0,1,marketr);

end

if c1+c2+c3=0 then begin

   sell(1,0,marketr);

   buyshort(holding=0,3,marketr);

end