以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  实现回测T+1的问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=138879)

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

开仓股数:=BB;
可平:holding-dayholding;
SELL(D1 OR D2 OR D3 and 可平>0,可平,MARKET);
BUY( B1 OR B2 OR B3,开仓股数,MARKET);
此主题相关图片如下:1.png
按此在新窗口浏览图片

此主题相关图片如下:2.png
按此在新窗口浏览图片

--  作者:jinzhe
--  发布时间:2016/8/29 15:30:03
--  
(d1 or d2 or d3) and 可平>0
--  作者:baozijian
--  发布时间:2016/8/29 15:39:37
--  
老师(d1 or d2 or d3) and 可平>0是实现了T+1,但我还有一个问题,比如1号买了5000股,2号买了5000,3号出现卖出信号,可是按这公式的话在3号就会卖出10000股,可是在3号我只想卖出5000股,这怎么办
--  作者:jinzhe
--  发布时间:2016/8/29 15:45:06
--  
那你平仓数量写5000
--  作者:baozijian
--  发布时间:2016/8/29 15:53:08
--  
老师能不能帮忙解释一下,D1 OR D2 OR D3 and 可平>0 和(D1 OR D2 OR D3) and 可平>0 的区别呀,我没想明白,谢谢
--  作者:jinzhe
--  发布时间:2016/8/29 15:55:51
--  

前面先算and,后面先算or


--  作者:baozijian
--  发布时间:2016/8/29 16:27:33
--  
老师,
开仓股数:=BB;
可平:holding-dayholding;
SELL(D1 OR D2 OR D3 and 可平>0,可平,MARKET);
BUY( B1 OR B2 OR B3,开仓股数,MARKET);

D1 OR D2 OR D3这加括号,回测结果是正常的,实现T+1,并且卖掉仓位为可平
但是有一个问题我没搞明白,就是如果回测股票,第一天的交易,如果可平数量为0的话是肯定平不了多的,但是用SELL(D1 OR D2 OR D3 and 可平>0,可平,MARKET);这个公式
我发现回测一支股票的结果是第一天的上午买了5000股,下午卖出了5000股,我始终没搞明白哪里的问题,因为按公式的逻辑的话,第一天的下午可平数量应该为0的呀

--  作者:jinzhe
--  发布时间:2016/8/29 16:29:57
--  
以下是引用jinzhe在2016-8-29 15:55:51的发言:

前面先算and,后面先算or

原因是这个,前面没有括号,相当于(D1) OR (D2) OR (D3 and 可平>0)

导致只有判断d3时才要去判断持仓。d1或者d2满足就可以直接平,不需要去判断持仓

 

后面加了括号就是先判断3个条件,然后再去判断持仓


--  作者:baozijian
--  发布时间:2016/8/29 16:48:44
--  
SELL(D1 OR D2 OR D3 and 可平>0,可平,MARKET);
这条公式是不是可以这么理解
SELL(D1):
SELL(D2);
SELL(D3 and 可平>0,可平,MARKET);


--  作者:jinzhe
--  发布时间:2016/8/29 16:55:13
--