以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  有没有办法禁止某个策略在某个时间段内开仓?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=49002)

--  作者:双保险
--  发布时间:2013/2/27 19:50:53
--  有没有办法禁止某个策略在某个时间段内开仓?

多策略监控一个品种,现在要求

明天:

策略a,在九点到十一点之间禁止开仓,其余时间可以开仓。

其他策略,在上午可以开仓,下午不能开。

 

注意,这个每天要求不同的。能否临时盘中决定?

 

比如后天,又要求策略a,13点半之后不允许开仓。

 

谢谢。

[此贴子已经被作者于2013-2-27 19:51:53编辑过]

--  作者:双保险
--  发布时间:2013/2/27 20:06:03
--  
也就是说需要运行策略,但又不想开仓。也不能固定死某一天固定一个时段不开仓,是变化的。
--  作者:RogarZ
--  发布时间:2013/2/27 21:21:02
--  
你要怎么定,怎么改变这个取决你的逻辑。
你逻辑自己都没搞清。程序怎么去写??

if time>090000 and time<120000 then gotoXXXX
参考goto函数

--  作者:老贾
--  发布时间:2013/2/28 10:04:52
--  
以下是引用双保险在2013-2-27 20:06:03的发言:
也就是说需要运行策略,但又不想开仓。也不能固定死某一天固定一个时段不开仓,是变化的。

既然不能固定时段,而是你临时需要的时候才变,你只能人工调整,想临时禁止某个策略的时候把策略拿下就行


--  作者:qwe123
--  发布时间:2013/3/1 8:50:12
--  
看楼主的意思应该很好解决。
在参数表中设置参数Na;Nb;Nc;取值范围为-1,1,step2;-1为禁止交易,1允许交易。人工在需要时设置参数。
交易语句这么写
buy(a and Na>0,1,thisclose);
buyshort(a and Na>0,1,thisclose);
这样就禁止开仓了。

对于已经用a策略开仓的仓位,要考虑解决办法。
1.可以用其它策略去操作;
2.一旦我禁止a策略交易就平掉a策略所开的仓。这个要使用控制变量来区分各个策略的所开的仓。如果a策略开仓了ca:=1;如果a策略没有开仓ca:=-1;
...............
begin
sell(ca>0 and na<0,1,thisclose);
sellshort(ca>0 and na>0,1,thisclose);
ca:=-1;
end

使用这种方法一定要把逻辑关系搞清楚,多写注释,否则很快自己都晕了。

没有使用经验,仅供参考。

--  作者:qwe123
--  发布时间:2013/3/1 9:00:15
--  
补充一下,如果a,b,c,三个策略中a开仓了,而holding=0 或者a开的是多仓而holding<0,那么你必须区分a策略是开的多仓还空仓,并根据b,c策略的交易情况来处理,很绕人的,不过可以解决。
--  作者:双保险
--  发布时间:2013/3/1 20:15:38
--  
图片点击可在新窗口打开查看
qwe123十分感谢你的解答,虽然我还有点晕。。。
 
不过金字塔真的可以参考博易大师的条件单的暂停功能啊,更何况你们和博易是一个公司旗下的哦。

--  作者:qwe123
--  发布时间:2013/3/1 22:13:27
--  
谢谢,说句题外话,既然要程序化交易,就一定不要人工干预,否则很多问题说不清楚,影响自己的心情。把要考虑的东西都写到程序里,让程序自己去跑就行了。