jqery获取每个月天数_热门月你还在设定日历吗?快用GetHotChange

今天主要聊一聊GetHotChange,它是期货热门月换月和指定月到期日函数,可取到HOT热门月的具体月份以及距离结算日到期天数,国内外交易所商品期货&金融期货都适用。

1da32087797fc9ea50c3205efc5d6361.png

打开MC跟着一起操作吧:
透过GetHotChange抓到HOT商品目前的实际月份(上图显示在[HOT]的这一行),再透过GetContractsExpire可以收到商品距离结算日的剩余交易日,或是剩余日历日,也可直接回传对应的结算日期。
(具体函数内的参数说明,可通过在MC->公式编辑器函数上点击F1查看)  

var:vs1(""),vRemainDate(""),vSettlement(""),vTest(""),vs2("");

if LastBarOnChart andInstr(symbol,"HOT")<>0 then begin

vs1=GetHotChange(symbol,date,time_s);

vRemainDate=NumToStr(GetContractsExpire(2,vs1,date,time_s),0)+"days"; 

vs2=NumToStr(GetContractsExpire(3,vs1,date,time_s),0);

vSettlement=LeftStr(vs2,4)+"/"+MidStr(vs2,5,2)+"/"+rightstr(vs2,2);

plot1(vs1,"[HOT]");

plot2(vRemainDate,"[Remain]");

plot3(vSettlement,"[Settlement]");

SetPlotColor(1,RGB(196,166,0));

SetPlotColor(2,RGB(196,166,0));

SetPlotColor(3,RGB(196,166,0));

end;

通过GetHotChange 函数延伸而来( 仅用于回测中) 在回测中如何针对 HOT 行情换月后的跳空处理

信号原理:取到某个时间点前后的指定月份合约,然后当两者出现不一致时,即表明HOT行情有换月,然后通过先平仓再开仓进行换仓动作。

var:vHotSymbol(""),

    vNextHotSymbol(""),

    vCon1(false);

once cleardebug;

if InStr(symbol,"HOT")<>0 then begin

        vHotSymbol=GetHotChange(symbol,date,time_s);//获取当前的主力月份

        vNextHotSymbol=GetHotChange(symbol,calcdate(date,1),time_s);//获取下日的主力月份

    if Time = sess2endtime then begin  

// 在当个交易日收盘时执行当根K平仓&Next bar 开仓动作

          vCon1= vHotSymbol<>vNextHotSymbol;

          if vCon1 then

          begin

                ifmarketposition > 0 then begin

                        sell ("ChangeMonth_Sell") thisbar on Close ; // this bar 仅用于回测

                        buy ("ChangeMonth_Buy") nextbar at market;

                end;

                ifmarketposition < 0 then begin

                        buytocover ("ChangeMonth_Cover")this bar on Close ; //this bar 仅用于回测

                        sellshort("ChangeMonth_Short") next bar at market; 

                end;

          end ;

      end;

end ; 

图表实现效果如下:

7d938c2834027daf10e8ebb5a21725a5.png

此信号可直接作为单独信号-> 插入到原本策略的HOT图表上 需注意的是:中国金融期货交易所曾经于2016.01.01号有修改过收盘时间,从15:15 到15:00,而本身Sess2endtime取值是通过Quotemanager的收盘时段设置。故针对CFFEX 股指期货品种请注意收盘时间的相应改动。

想要了解跟多MC函数欢迎直接留言或添加MC小哥哥微信

▼▼▼ 

3a9c5a51a775b88c43469069132bc28a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值