以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  关于写日内策略时少用全平语句  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=64957)

--  作者:zjc
--  发布时间:2014/5/13 15:41:53
--  关于写日内策略时少用全平语句

提问前先搜索过,但没有,无法在原帖跟,现把以前复制的原帖附上,再提问。

 

原帖:

      写日内策略时少用全平语句

使用框架交易运行多个策略(尤其是非自编的策略),发现日内最后一根K线平仓时,有的策略把自己手动的持仓也平掉了。原因是写策略时写了sell(holding>0,0,market) sellshort(holding<0,0,market),应把此语句换成sell(holding>0,交易手数,market)和 sellshort(holding<0,交易手数,market)以避免此情况的发生。除非本意如此。

 

问题:但按先平后开原则,还是要把自己手动的持仓也平掉了。原帖的做法能起作用吗?

IF KD THEN BEGIN

         SELLSHORT(。。。);//先平空头

         BUY(。。。。。。。);//后开多头

      END


--  作者:jinzhe
--  发布时间:2014/5/13 15:48:39
--  

平仓语句写0就是把你账户栏里面对应的持仓全平了,不管是不是你自动下还是手工下的都平掉。

 

比如 :你自动下了3手多,手工下了2手多,那么sell(1,0,marekt)会把账户里里面全部的5手多仓全部给平了。所以这个问题不仅仅针对的是收盘前平仓,正常的开平仓,如果你不希望自己的手工仓被全平掉了,那么就用holding这个当前的虚拟持仓,而不是写0全平


--  作者:zjc
--  发布时间:2014/5/13 15:56:03
--  
老师,我是菜鸟,请问“如果你不希望自己的手工仓被全平掉了,那么就用holding这个当前的虚拟持仓,而不是写0全平”在先平后开原则里是如何表达的?
--  作者:zjc
--  发布时间:2014/5/13 16:12:28
--  

这样写对吗

IF KD THEN BEGIN

         SELLSHORT(HOLDING<0, HOLDING, THISCLOSE);//先平空头

         BUY(。。。。。。。);//后开多头

      END

 


--  作者:jinzhe
--  发布时间:2014/5/13 16:37:29
--  
对啊,这个不区分什么反手不反手之类的啊,只要在平仓语句里面写holding就行了
--  作者:zjc
--  发布时间:2014/5/13 16:46:25
--  
我不明白的是,如果自动下了3手空,手工下了2手空,按4楼的表达式,会平掉几手空单?
--  作者:jinzhe
--  发布时间:2014/5/13 16:46:50
--  
3手
--  作者:dlutzxj
--  发布时间:2014/5/14 11:04:57
--  
sellshort(holding<0,0,market) 改成 sellshort(holding<0,abs(holding),market);
貌似不能用holding替代吧。 holding有可能是负数。

--  作者:qq代人发帖
--  发布时间:2014/5/14 11:15:15
--  
直接写holding 就可以,不用区别正负
--  作者:jinzhe
--  发布时间:2014/5/14 11:16:48
--  
我觉得这样基本的问题,最好亲自测试一下,用不了多少时间