最近看了下面链接的一篇文章,觉得很好,试着按文中思路编写代码,但在策略三的实现没达到文中所说的收益率,反而下降了,请老师们看看我写的有什么问题,如何改进达到策略三所说的测试结果呢,谢谢!
“根据数据切分算法得到的收益率曲线优于引用上一期30分钟K线数据的算法,收益率146.65%,胜率56.15%,均盈利/均亏损1.5,最大回撤9.31%,交易次数317次。和策略1的结果对比,交易次数有所减少,胜率和收益率改善明显,且最大回撤大幅降低,改进后的策略3提高了捕捉日内趋势的效果。”-----策略三的测试结果
http://qing.weibo.com/tj/6741d94933000ylj.html
以下为我的代码:
VARIABLE:DD:=0;
NN:=BARSLAST(DATE<>REF(DATE,1))+1;
HH:(VALUEWHEN(NN=6,HHV(H,NN)))*1.01;
LL:(VALUEWHEN(NN=6,LLV(L,NN)))*0.99;
死叉:=CROSS(MA(C,15),MA(C,5));
金叉:=CROSS(MA(C,5),MA(C,15));
IF CROSS(C,HH) AND 094500<=TIME<=151000 THEN BEGIN
平空:SELLSHORT(HOLDING=-1,1,THISCLOSE);
开多:BUY(HOLDING=0,1,THISCLOSE);
DD:=DATE;
END
IF CROSS(LL,C) AND 094500<=TIME<=151000 THEN BEGIN
平多:SELL(HOLDING=1,1,THISCLOSE);
开空:BUYSHORT(HOLDING=0,1,THISCLOSE);
DD:=DATE;
END
IF DATE>DD AND HOLDING<>0 THEN BEGIN //延长有利仓位直到均线交叉
IF 死叉 THEN
了结多:SELL(HOLDING=1,1,THISCLOSE);
IF 金叉 THEN
了结空:SELLSHORT(HOLDING=-1,1,THISCLOSE);
END
IF TIME>=151000 AND C<ENTERPRICE THEN //尾盘平掉亏损持仓
收盘平多:SELL(1,1,THISCLOSE);
IF TIME>=151000 AND C>ENTERPRICE THEN //尾盘平掉亏损持仓
收盘平空:SELLSHORT(1,1,THISCLOSE);
盈亏:ASSET,NOAXIS,COLORRED,LINETHICK2;
次数:TOTALTRADE,LINETHICK0;
持仓:HOLDING,,LINETHICK0;
直接去要源代码好了,这样改怎么可能改出一样的或者差不多的收益率
这个是有可能的,这篇是东兴王立立的研发报告。数据应该是1年前的吧?
他在报告中只是将一种想法去做尝试,当时得到的效果还不错。
但这种处理方式不是放之四海而皆准。
像某些策略加了止盈反而风险加大,盈利变小。具体策略具体分析吧