我们利用程式化交易评测时,如果只持有但方向的单子是没有问题的,但是如果多个策略一起测试或者单个策略同时有多单与空单时就会只开第一个出现的单子。
比如下面的代码,只会开多单而不不能开空单。如果我设置系统只能开空单时,那么只有空单运作。如果允许只开多单或者双向时,则只会开多单。
这样导致我不能测试自己的策略。请问如何解决?
该代码用在15分钟周期
VARIABLE:Long_PositionCount=0,Short_PositionCount=0,SellSign=0;
VARIABLE:EntAndExitSign=1,EntPoint=0,ExitPoint=0;
entertime1:=time>091500 and time<093001;
entertime2:=time>093000 and time<094501;
exittime:=time>150000;
IF entertime1 THEN BEGIN
BUY(1,SV,limitr,close);
Long_PositionCount:=1;
END;
IF entertime2 THEN BEGIN
BUYSHORT(1,SV,limitr,open);
Short_PositionCount:=1;
END;
你只是为了测试。
1,开了多单,接下来如果开空条件成立,那就把多单平掉,
2,一开始多单,接下来下空单,在收盘时2个方向的单子都平仓。
以上两种方法效果其实是一样的
其实可能不一样。
举例来说,开了多头,价格为l1,仓位比例50%;等价格达到一定条件,如h1;此时如果还在向上的趋势中,但可能在短线回调,你的意思是平多头;然后回调到l2时重新开多头;我的想法是可以开空头锁仓,等回调到l2时平空头;如果趋势一直向上,则效果完全一样;但如果在h1为趋势终点时或者不能确定时,如果能同时实现持有多头和空头仓位,则设计策略时,会更加灵活一些?
我不一定对。
谢谢
不管多少个策略,多少个系统。最后的表现都是净头寸的增加、减少。锁仓其实也是净头寸的减少,在做历史测试时,锁仓是没有任何用处的。
是否可以融合的最好验证办法是 把你要融合的2个系统提出来,然后进行融合
看看是否“不同策略分开测试的结果的累加 = 融合后的系统的测试结果。”