我用了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

(d1 or d2 or d3) and 可平>0
老师,开仓股数:=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 15:55:51的发言:
前面先算and,后面先算or
原因是这个,前面没有括号,相当于(D1) OR (D2) OR (D3 and 可平>0)
导致只有判断d3时才要去判断持仓。d1或者d2满足就可以直接平,不需要去判断持仓
后面加了括号就是先判断3个条件,然后再去判断持仓
SELL(D1 OR D2 OR D3 and 可平>0,可平,MARKET);这条公式是不是可以这么理解
SELL(D1):
SELL(D2);
SELL(D3 and 可平>0,可平,MARKET);