我同一个程序,同一个品种,我时间段选2017-6-1开始到现在,测试结果是每个月盈利的,但是我时间段选了2017-3-1开始到现在,测试结果却是6月7月亏损,8,9两个月也比前一个盈利差得多
不同时间段,数据不一样,计算结果肯定有差异。按照你说的后面选择的时间段涵盖了前面你选择的时间段,但是也是一样的道理啊。当你选择时间段是3月到现在的时候:你6月到现在的策略运行情况就会受到前面3月到6月的策略运行情况影响的。 和你单独选择6月到现在的运行结果肯定不一样啦。 你在图表上伸缩K线图(导致数据量变动)的时候开平信号都会出现变动的,就是这个道理。
//螺纹3分钟
INPUT:SS(1,1,10,1),ZS(20,5,100,1);
VARIABLE:趋买势:=0,k1:=0.7,k2:=0.7,y=:0;
u:=TODAYBAR;
开仓次数:=TOTALDAYTRADE;
nn:=barslast(vol=hhv(vol,todaybar));//今日最大交易量
bb:=ref(barpos,nn);//今日最大交易价格
今大量:=NN;
今大价:=BB;
N1:=ref(todaybar,u); //昨日k线数量
Znn:=ref(barslast(vol=hhv(vol,N1)),u);//昨日最大交易量
Zbb:=ref(barpos,znn); //昨日最大交易价格
T1:=TIME>=100000 AND TIME<225500;
T2:=TIME>225500 ;
手数:=SS;
//交易条件
开多条件:=C>BB AND BB>ZBB AND HOLDING=0 AND 开仓次数<1 ;
开空条件:=BB>C AND BB<ZBB AND HOLDING=0 AND 开仓次数<1 ;
//交易系统
开多:BUY(开多条件 AND T1,手数,MARKET);
开空:BUYSHORT(开空条件 AND T1,手数,MARKET);
//亏损*元自动止损可以写成这样
DZY:=AVGENTERPRICE+ZS*MINDIFF;
KZY:=AVGENTERPRICE-ZS*MINDIFF;
多止盈位:=DZY;
空止盈位:=KZY;
IF HOLDING>0 AND CROSS(C,多止盈位) THEN BEGIN
止盈平多:sell(1,手数,market);
END
IF HOLDING<0 AND CROSS(空止盈位,C) THEN BEGIN
止盈平空:sellshort(1,手数,market);
END
收盘平多:SELL(T2,手数,MARKET);
收盘平空:SELLSHORT(T2,手数,MARKET);
//最后每天收盘时重置全局变量
浮动盈亏:OPENPROFIT,LINETHICK0;
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值
你用的北京时间还是金字塔时间?
3分粥周期螺纹钢?
[此贴子已经被作者于2017/9/20 16:39:12编辑过]