您现在的位置:程序化交易>> 期货公式>> 文华财经>> 文华财经知识>>正文内容

套利模型加载在不同合约上的问题 [文华财经]

  • 咨询内容:

    同一个套利模型,其中涉及到价差的均值:MA(SPREAD,60),分别加载在第一腿和第二腿合约1分钟图上,由于第二腿合约是不活跃合约,1分钟数据有断的,这样MA(SPREAD,60)涉及到到60根K线的时间与第一腿就不同了。计算出来的价差均值也有差异。请问老师有没有什么办法可以解决?

     

  • 文华技术人员:

    目前WH8套利程序化仍在开发阶段,暂时没有很好的编写方式,您的SPREAD是怎么定义的呢?是通过跨周期模型编写的?

     

  • 文华客服:

    是的。加载在1分钟上,加载在8612和8609上的均值和方差不同,因为8612是非主力合约,有些1分钟没有成交,所以那根K线就没有。

     

    定义CC:

    C0:=CLOSE;

     

    定义价差:

    #IMPORT[8612,MIN5,CC] AS VAR1
    C1:=VAR1.C0;

    #IMPORT[8609,MIN5,CC] AS VAR2
    C2:=VAR2.C0;

    S:C1-C2;
    MEAN0:MA(S,270);
    SIGMA0:STD(S,270);

     

  • 网友回复:

    把跨周期模型修改以下S变量试试有没有帮助:

     

    #IMPORT[8612,MIN5,CC] AS VAR1
    C1:=VAR1.C0;

    #IMPORT[8609,MIN5,CC] AS VAR2
    C2:=VAR2.C0;

    S:IFELSE(MIN(C1,C2)>0,C1-C2,VALUEWHEN(C1>0,C1)-VALUEWHEN(C2>0,C2));//如果两个价格都大于0,取其差值,否则取各自最近一次大于0时的价差
    MEAN0:MA(S,270);
    SIGMA0:STD(S,270);

     

     

     

  • 网友回复:

    这个问题跟S的写法应该没关系,我之前的写法相当于是其中一个合约无成交的话是空值,您的写法是取前值。但关键不是S取什么值,而是K线的根数不同,比如:

    8609是主力合约,每1分钟都有成交,所以一天有270根1分钟K线,那么在当天收盘时MA(S,270)是当天所有1分钟K线对应的价差的均值;

    8612不是主力合约,不是每分钟都有成交,比如中间少了5根K线,那么在当天收盘时MA(S,270)是(当天所有1分钟K线+昨天最后5根K线)对应的价差的均值。

     

    我也试过把270用BARSLAST(DATE<>REF(DATE,1))+1替代,那么计算MA用到的数据区间是相同的,但是因为K线根数不同,所以MA的值还是不同。

     

    相当于前一种方式是MA=SUM/N中的SUM不同,后一种方式是MA=SUM/N中的N不同。

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 1145508240  有需要帮忙请点击这里留言!!!进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容