以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  为什么买多的的信号会开仓,但卖多的信号不平仓  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=138855)

--  作者:baozijian
--  发布时间:2016/8/29 11:31:38
--  为什么买多的的信号会开仓,但卖多的信号不平仓
2016-08-29 10:38:38 触发了买多信号。300271下单5000股,但是2016-08-29 11:03:53触发了平多信号,可是我账户上的300271的5000股持仓还在,是什么原因呀?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:运行日志.txt


--  作者:wenarm
--  发布时间:2016/8/29 12:36:27
--  
016-08-29 11:03:53.242    【图表】实际持仓 0

实际持仓是0.没有可交易的数量,股票当天买的,不支持平今仓。


--  作者:baozijian
--  发布时间:2016/8/29 13:33:44
--  
是的,我也是刚才突然想到的,好傻,,最基本的东西都忘了,但还有一个问题,做回测的话,是按照股票交易规则T+1来开平仓的,还是按T+0来计算的
--  作者:wenarm
--  发布时间:2016/8/29 13:49:09
--  

T+0

这个你可以在代码中做一个限制。看下这个

http://www.weistock.com/bbs/dv_rss.asp?s=xhtml&boardid=2&id=94424&page=1

 


--  作者:baozijian
--  发布时间:2016/8/29 14:43:35
--  
我用了dayholding,公式看也没问题好像,但是回测一支股票还是发现第一笔交易就做了日内T+0,麻烦老师帮忙看一下

开仓股数:=BB;
可平:holding-dayholding;
SELL(D1 OR D2 OR D3 and 可平>0,可平,MARKET);
BUY( B1 OR B2 OR B3,开仓股数,MARKET);



--  作者:wenarm
--  发布时间:2016/8/29 16:31:44
--  

or 的优先级低于and  。

所以你的代码中的逻辑就是SELL(D1 OR D2 OR (D3 and 可平>0),可平,MARKET);

你要用括号提升or的优先级。

SELL((D1 OR D2 OR D3) and 可平>0,可平,MARKET);