以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  日内满仓交易时,平仓反手的实现方法  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=7202)

--  作者:阿火
--  发布时间:2011/7/13 22:43:44
--  日内满仓交易时,平仓反手的实现方法

日内满仓交易时,平仓反手的时候,有个问题要特别注意,就是在平仓单未成交前如果发出开仓委托单会出现保证金不足的情况造成无法自动开仓

这个问题是众所周知的

 

1,一般的处理方法是在每个下单指令的最后面加一个顺序下单控制符,如下:

hi:=ref(hhv(h,20),1);
lo:=ref(llv(l,20),1);
entertime:=time<=144500;
exittime:=time>=145700;
buycond:=c>hi;
sellcond:=c<lo;
if holding>0 and (sellcond or exittime) then sell(1,1,market),orderqueue;
if holding<0 and (buycond or exittime) then sellshort(1,1,market),orderqueue;
if holding=0 and entertime and buycond then buy(1,1,market),orderqueue;
if holding=0 and entertime and sellcond then buyshort(1,1,market),orderqueue;

 

这种方法基本上可以解决问题。orderqueue顺序下单的意思是委托单按先后顺序排队等待,依次处理

但也有不足的地方,就是在平仓单未及时成交时,依然会出现保证金不足的错误。如 A(平多)、B(开空),A未及时成交自动撤单后追单

自动追单的委托就排在后面了,也就是下单顺序就为 B、A 。B发送时就会提示错误,因为保证金并未释放。

 

2,现提出另一处理方法

问题的关键,就是要等平仓单完全成交后再发开仓单,这样才能避免出现保证金不足的情况

反手模型有个特点,就是平仓单成交后,仓位为0,而后台的tholding2这个函数就是表示实际持仓

于是:

hi:=ref(hhv(h,20),1);
lo:=ref(llv(l,20),1);
entertime:=time<=144500;
exittime:=time>=145700;
buycond:=ref(c>hi,1);
sellcond:=ref(c<lo,1);
abb:=not(islastbar) or (islastbar and tholding2=0);//这里要这样处理,否则tholding2会影响前面得信号
if holding>0 and (sellcond or exittime) then sell(1,1,market);
if holding<0 and (buycond or exittime) then sellshort(1,1,market);
if holding=0 and entertime and buycond and abb then buy(1,1,market);
if holding=0 and entertime and sellcond and abb then buyshort(1,1,market);

程序执行过程:1,平仓单发出后,不发开仓单,因为tholding2不为0.如果平仓单没及时成交,自动撤单后追单直至成交 

                    2,平仓单成交后,tholding2=0,此时开仓指令条件成立,发出开仓单。不会出现保证金不足的情况

                    3,注意,用的是tholding2,而非tholding,tholding会受未成交委托单影响。

以上适用的条件 :1,需要平仓委托在信号成立的K线内成交,才能发出开仓委托。模型基本符合这个条件

                        2,固定时间间隔或者高频。如果是K线走完模式,还需稍作修改为固定时间间隔模式

[此贴子已经被作者于2011-7-14 9:58:39编辑过]

--  作者:jinzhe
--  发布时间:2011/7/14 8:48:51
--  
图片点击可在新窗口打开查看给力啊老师,顶
--  作者:大海
--  发布时间:2011/7/14 10:38:15
--  
如果说反手平仓的时候刚好跳水,反复扯单,导致在下根K线才平仓成功,那么不就没办法开仓了吗?
--  作者:弦外之音
--  发布时间:2011/7/14 10:43:23
--  

反复扯单图片点击可在新窗口打开查看


--  作者:大海
--  发布时间:2011/7/14 10:44:00
--  

。。。。打错字了。。撤单财对。。

 


--  作者:弦外之音
--  发布时间:2011/7/14 10:44:38
--  
撤单财对图片点击可在新窗口打开查看
--  作者:大海
--  发布时间:2011/7/14 10:49:20
--  
。。。3楼是你特意要针对我吗?针对意思就好了。。
--  作者:大海
--  发布时间:2011/7/14 10:50:03
--  
。。。用智能拼音就是不好。。。老打错字
--  作者:大海
--  发布时间:2011/7/14 10:56:57
--  
版主大人,到底会不会出现我说的那个情况,给个话
--  作者:弦外之音
--  发布时间:2011/7/14 10:57:01
--  
顶!!!!!!!!!!!