以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请教,开多平多顺序等关键  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=81631)

--  作者:Q_Q
--  发布时间:2015/7/25 16:57:13
--  请教,开多平多顺序等关键
请教各位老师

我需要开多必须写在平多前面,不是100%开仓,有仓位控制,

且是T+1,即今天开仓的不能平

平多处如何写才能保证平掉的不是今天开仓的部分,谢谢指点


用enterbars>0 不行,假设今天又买进(开多)部分仓位,那么今天的enterbars是0,但是今天有平多条件,需要平掉今天之前开的仓,用holding>0 也不行,会变成t+0,假设今天是首次开多,那么满足平多条件当天就平多,不符合t+1规则

谢谢帮助

--  作者:Q_Q
--  发布时间:2015/7/25 18:44:54
--  
是限价交易,因此不能用market




--  作者:Q_Q
--  发布时间:2015/7/25 18:50:14
--  
必须用limitr交易
--  作者:Q_Q
--  发布时间:2015/7/25 22:50:01
--  
自己解决了

rp1:=ref(enterbars=0,1) and ref(kd,1);
rp2:=ref(exitbars>enterbars,1);

rp1+rp2>0

--  作者:Q_Q
--  发布时间:2015/7/25 22:50:53
--  
这里处理不好也会严重偷价,现在从利润率2400 变成199了,哈哈
--  作者:Q_Q
--  发布时间:2015/7/26 15:40:04
--  
4楼也不太对,还会一些时候t+0发生

继续求助高手

--  作者:jinzhe
--  发布时间:2015/7/27 9:04:11
--  
开仓手数是资金百分比还是固定手数?
--  作者:Q_Q
--  发布时间:2015/7/27 12:11:36
--  
谢谢jinzhe老师,请继续帮助

现金:=cash(0);
手数:=(现金/2)/ref(c,1);

--  作者:Q_Q
--  发布时间:2015/7/27 12:20:35
--  
比如我昨天有1000股仓位,今天符合开多条件的触价条件1,触价条件2可以再加仓两次即今天再开多2000股,但同时今天也满足平多条件,即昨天开仓的1000股可以高位卖出

这样今天的enterbars还是0,kd=1,我需要求助怎么实现把今天之前(可能是昨天开多的1000股也可能是几天前开多的1000股)按照今天的平多条件高位卖出,同时不影响今天在低位时继续开多,但是今天开多的仓位不能今天被平掉
[此贴子已经被作者于2015/7/27 12:21:51编辑过]

--  作者:Q_Q
--  发布时间:2015/7/27 12:41:10
--  
代码如下:

现:ROUND(cash(0)),NODRAW;
持:holding,nodraw;

L1:=REF(L,1)*1;
L2:=REF(L,1)*0.95;

BS1:=ROUND((现/2)/L1);
BS2:=ROUND((现/2)/L2);

H2:=REF(H,1)*1.05;
H1:=REF(H,1)*1;

B2:BUY(L<=L2 ,BS2,LIMITR,L2);
B1:BUY(L<=L1 ,BS1,LIMITR,L1);

S2:sell(holding>0 AND H>=H2,持/2,LIMITR,H2);
S1:sell(holding>0 AND H>=H1,持/2,LIMITR,H1);

请改代码,实现在开多和平多都满足的当日,当日开的仓不能被平掉,同时当日之前开的仓可以今天平掉