以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 有关在同样条件下历史回测时结果不同的问题 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=183253) |
-- 作者:yzg512999 -- 发布时间:2020/11/30 9:22:15 -- 有关在同样条件下历史回测时结果不同的问题 你之前说:如果是均线,可以用过去四周的周线价格+当前小周期价格计算,来替代直接调用大周期的五日均线。 我按照你的思路来进行改变代码了: 新建MM指标: M2:CLOSE; CC:REF(ma(c,4),1); DD:REF(ma(c,9),1); EE:REF(ma(c,19),1); -------------------------------------------------------- II:="MM.M2#MIN5"; CCC:="MM.CC#WEEK"; CCCC:=(CCC*4+ii)/5;//引用的5周线 DDD:="MM.DD#WEEK"; DDDD:=(DDD*9+ii)/10;//引用的10周线 EEE:="MM.CC#DAY"; EEEE:=(EEE*4+ii)/5;//引用的5日线 FFF:="MM.DD#DAY"; FFFF:=(FFF*9+ii)/10;//引用的10日线 GGG:="MM.EE#DAY"; GGGG:=(GGG*19+ii)/20;//引用的20日线 AAA:= ii>CCCC AND ii>DDDD AND ii>EEEE AND ii>FFFF AND ii>GGGG ; //收盘价大于5周线、10周线、5日线、10日线、20日线 BBB:=ii<CCCC AND ii<DDDD AND ii<EEEE AND ii<FFFF AND ii<GGGG ; //收盘价大于5周线、10周线、5日线、10日线、20日线 A:=C>MA(C,5) AND C>MA(C,10) AND C>MA(C,20) ; B:=C<MA(C,5) AND C<MA(C,10) AND C<MA(C,20) ; IF A AND AAA THEN BUY(HOLDING=0,35%,MARKET),PERTRADER;//无持仓返回0 IF B AND BBB THEN BUYSHORT(HOLDING=0,35%,MARKET),PERTRADER;//无持仓返回0 IF C<MA(C,10) THEN SELL(HOLDING>0,HOLDING,MARKET);//多仓返回正数 IF C>MA(C,10) THEN SELLSHORT(HOLDING<0,HOLDING,MARKET);//空仓返回负数 然后我加载到60分钟K线进行多期货品种回测,然后把以上的II:="MM.M2#MIN5";进行改变,在其他所有条件都一模一样时,其具体结果如下: 当为II:="MM.M2#MIN5",其总收益率为52.96% 当为II:="MM.M2#MIN15",其总收益率为54.56% 当为II:="MM.M2#MIN30",其总收益率为52.96% 当为II:="MM.M2#MIN60",其总收益率为52.96% 然后我加载到2小时K线进行多期货品种回测,然后把以上的II:="MM.M2#MIN5";进行改变,在其他所有条件都一模一样时,其具体结果如下: 当为II:="MM.M2#MIN5",其总收益率为112.67% 当为II:="MM.M2#MIN15",其总收益率为116.24% 当为II:="MM.M2#MIN30",其总收益率为112.67% 当为II:="MM.M2#MIN60",其总收益率为96.79% 本来按照正常情况的话,引用的都是小级别K线的收盘价,照道理来说,它们的回测结果应该是完全一样的, 可在其他所有条件都一模一样时进行回测时,为什么有些情况的结果会不一样呢?深层次原因在哪里呢? |
-- 作者:FireScript -- 发布时间:2020/11/30 9:42:28 -- 你对比的是60分钟周期和2小时周期的回测结果吗?这个周期不一样,没理由回测结果一致的啊。除非你交易不涉及当前周期的任何数据,否则肯定不会一致的呀。 A:=C>MA(C,5) AND C>MA(C,10) AND C>MA(C,20) ; B:=C<MA(C,5) AND C<MA(C,10) AND C<MA(C,20) ; 这2个条件都是直接和本周期数据挂钩的。 |
-- 作者:yzg512999 -- 发布时间:2020/11/30 10:26:00 -- 只加载到2小时K线进行回测。 当为II:="MM.M2#MIN5",其总收益率为112.67% 当为II:="MM.M2#MIN15",其总收益率为116.24% 当为II:="MM.M2#MIN30",其总收益率为112.67% 当为II:="MM.M2#MIN60",其总收益率为96.79% 为何会不一样呢??小级别k线的收盘价应该都是一样的吧 不管是用15分还是30分钟 |
-- 作者:yzg512999 -- 发布时间:2020/11/30 10:49:36 -- 我指的是在加载在同一个级别K线中,然后改变小级别k线的周期,结果却有些不同,是这个意思。 |
-- 作者:FireScript -- 发布时间:2020/11/30 10:59:13 -- 我知道你的意思了, 你是说大引小的情况下这四个值应该是一样的是吧? 先指出一个问题,这个涉及到K线划分的问题,前三个正常就是一样的,但是小时线那个,II:="MM.M2#MIN60" 。在11:30结束的那个K上,调用到的价格是不一样,这个不好解释,先搁置下,先给你解决方案。 这个用STKINDI(\'\',\'MM.M2\',0,21,60); 替换下即可。 然后你再检查下回测的设置,我本地也试下 等下给你截图看下。 |
-- 作者:yzg512999 -- 发布时间:2020/11/30 11:09:36 -- 明白了,原来是K线划分导致的。 当为II:="MM.M2#MIN5",其总收益率为112.67% 当为II:="MM.M2#MIN15",其总收益率为116.24% 当为II:="MM.M2#MIN30",其总收益率为112.67% 那其中改为min15分时怎么有点略微差别呢? 照道理如你所说应该三者是一样的吧?不过差别不大,可以忽略 |
-- 作者:yzg512999 -- 发布时间:2020/11/30 15:21:53 -- 那其中改为min15分时怎么有点略微差别呢? 加载到60分钟k线,也是min15的情况有点不一样?为什么呢 [此贴子已经被作者于2020/11/30 15:23:03编辑过]
|
-- 作者:yzg512999 -- 发布时间:2020/11/30 15:23:49 -- 如图所示 |
-- 作者:FireScript -- 发布时间:2020/11/30 15:50:05 -- 你回测的品种,交易时段,是否复权说明下,我试下。但是你这个策略这个信号非常少,你确定OK的吗? |
-- 作者:yzg512999 -- 发布时间:2020/11/30 16:38:00 -- 信号还可以吧,你就随机选几个吧。看结果怎么样 |