您现在的位置:程序化交易>> 期货公式>> (MC)multicharts>> MC知识>>正文内容

MC,套利 [MC]

  • MC用户求助:

    一、对于您的这个问题,由于您的叙述过于简单,所以我只能给出比较粗糙的过程,并且给出简单的套利模板,请需要进一步的修改完善,在后面,我会给出相关的建议。

    二、对于套利策略,MC有两种方式可以实现;一种是开多个图表(因为一个图表只能交易一个商品合约),另一种是使用投资组合交易功能;以下,主要是通过新建三个图表,分别用于交易螺纹、焦碳、铁矿石,代码和相关的附图如下:

    三、代码解析
    {三个图表的最大bar设置需要一致,而且数据范围也要一致;由于螺纹的夜盘结束时间比其它两个合约早半个小时,所以需要您在报价管理器中将其它两个合约的夜盘结束时间调整到23:00}
    //shfe.rb hot,对应图1
    input: length(200);  //使用最近200根bar的收盘价计算价差均值和价差标准差
    var: var_rb(0,data1), var_i(0,data2), var_j(0,data3); //图表中,主图是rb合约,子图2是dce.i hot合约,子图3是dce.j hot合约

    var_rb=(close*bigpointvalue) data1;
    var_i=(close*bigpointvalue) data2;
    var_j=(close*bigpointvalue) data3;

    value1=5*var_j+16*var_i-40*var_rb;
    {5手焦碳的价值+16手铁矿石的价值-40倍螺纹的价值作为价差}

    value2=standarddev(value1,length,2);
    value3=average(value1,length);

    condition1=value1 cross above (value3+3*value2);
    condition2=value1 cross under (value3+value2);
    condition3=value1 cross under (value3-3*value2);
    condition4=value1 cross above (value3-value2);
    {当价差上穿最近length根bar的+3倍标准差时,做空价差;当价差下穿+1倍标准差时,平仓空头价差;当价差下穿-3倍标准差时做多价差;当价差上穿-1倍标准差时,平仓多头坐着}

    if condition1 then
            buy 40 shares next bar at market;  //做空价差,对应到螺纹上就是买入40手螺纹
    if condition2 then
            sell next bar at market;  //平仓空头价差,对应到螺纹上就是平仓多头螺纹
    if condition3 then
            sellshort 40 shares next bar at market;  //做多价差,对应到螺纹上就是卖出40手螺纹
    if condition4 then
            buytocover next bar at market;// 平仓多头价差,对应到螺纹上就是平仓空头螺纹

    {以上是关于交易螺纹的代码的介绍,交易铁矿石和焦炭的代码逻辑相似,您可以自己看看}

    //dce.i hot  对应图2
    input: length(200);
    var: var_rb(0,data2), var_i(0,data1), var_j(0,data3);

    var_rb=(close*bigpointvalue) data2;
    var_i=(close*bigpointvalue) data1;
    var_j=(close*bigpointvalue) data3;

    value1=5*var_j+16*var_i-40*var_rb;
    value2=standarddev(value1,length,2);
    value3=average(value1,length);

    condition1=value1 cross above (value3+3*value2);
    condition2=value1 cross under (value3+value2);
    condition3=value1 cross under (value3-3*value2);
    condition4=value1 cross above (value3-value2);

    if condition1 then
            sellshort 16 shares next bar at market;
    if condition2 then
            buytocover next bar at market;
    if condition3 then
            buy 16 shares next bar at market;
    if condition4 then
            sell next bar at market;

    // dce.j hot  对应图3
    input: length(200);
    var: var_rb(0,data3), var_i(0,data2), var_j(0,data1);

    var_rb=(close*bigpointvalue) data3;
    var_i=(close*bigpointvalue) data2;
    var_j=(close*bigpointvalue) data1;

    value1=5*var_j+16*var_i-40*var_rb;
    value2=standarddev(value1,length,2);
    value3=average(value1,length);

    condition1=value1 cross above (value3+3*value2);
    condition2=value1 cross under (value3+value2);
    condition3=value1 cross under (value3-3*value2);
    condition4=value1 cross above (value3-value2);

    if condition1 then
            sellshort 5 shares next bar at market;
    if condition2 then
            buytocover next bar at market;
    if condition3 then
            buy 5 shares next bar at market;
    if condition4 then
            sell next bar at market;

    图1 螺纹

     

     

    图2 铁矿石

     

    图3 焦碳

     

  • MC回复讨论一:

    一、对于您的这个问题,由于您的叙述过于简单,所以我只能给出比较粗糙的过程,并且给出简单的套利模板,请需要进一步的修改完善,在后面,我会给出相关的建议。

    二、对于套利策略,MC有两种方式可以实现;一种是开多个图表(因为一个图表只能交易一个商品合约),另一种是使用投资组合交易功能;以下,主要是通过新建三个图表,分别用于交易螺纹、焦碳、铁矿石,代码和相关的附图如下:

    三、代码解析
    {三个图表的最大bar设置需要一致,而且数据范围也要一致;由于螺纹的夜盘结束时间比其它两个合约早半个小时,所以需要您在报价管理器中将其它两个合约的夜盘结束时间调整到23:00}
    //shfe.rb hot,对应图1
    input: length(200);  //使用最近200根bar的收盘价计算价差均值和价差标准差
    var: var_rb(0,data1), var_i(0,data2), var_j(0,data3); //图表中,主图是rb合约,子图2是dce.i hot合约,子图3是dce.j hot合约

    var_rb=(close*bigpointvalue) data1;
    var_i=(close*bigpointvalue) data2;
    var_j=(close*bigpointvalue) data3;

    value1=5*var_j+16*var_i-40*var_rb;
    {5手焦碳的价值+16手铁矿石的价值-40倍螺纹的价值作为价差}

    value2=standarddev(value1,length,2);
    value3=average(value1,length);

    condition1=value1 cross above (value3+3*value2);
    condition2=value1 cross under (value3+value2);
    condition3=value1 cross under (value3-3*value2);
    condition4=value1 cross above (value3-value2);
    {当价差上穿最近length根bar的+3倍标准差时,做空价差;当价差下穿+1倍标准差时,平仓空头价差;当价差下穿-3倍标准差时做多价差;当价差上穿-1倍标准差时,平仓多头坐着}

    if condition1 then
            buy 40 shares next bar at market;  //做空价差,对应到螺纹上就是买入40手螺纹
    if condition2 then
            sell next bar at market;  //平仓空头价差,对应到螺纹上就是平仓多头螺纹
    if condition3 then
            sellshort 40 shares next bar at market;  //做多价差,对应到螺纹上就是卖出40手螺纹
    if condition4 then
            buytocover next bar at market;// 平仓多头价差,对应到螺纹上就是平仓空头螺纹

    {以上是关于交易螺纹的代码的介绍,交易铁矿石和焦炭的代码逻辑相似,您可以自己看看}

    //dce.i hot  对应图2
    input: length(200);
    var: var_rb(0,data2), var_i(0,data1), var_j(0,data3);

    var_rb=(close*bigpointvalue) data2;
    var_i=(close*bigpointvalue) data1;
    var_j=(close*bigpointvalue) data3;

    value1=5*var_j+16*var_i-40*var_rb;
    value2=standarddev(value1,length,2);
    value3=average(value1,length);

    condition1=value1 cross above (value3+3*value2);
    condition2=value1 cross under (value3+value2);
    condition3=value1 cross under (value3-3*value2);
    condition4=value1 cross above (value3-value2);

    if condition1 then
            sellshort 16 shares next bar at market;
    if condition2 then
            buytocover next bar at market;
    if condition3 then
            buy 16 shares next bar at market;
    if condition4 then
            sell next bar at market;

    // dce.j hot  对应图3
    input: length(200);
    var: var_rb(0,data3), var_i(0,data2), var_j(0,data1);

    var_rb=(close*bigpointvalue) data3;
    var_i=(close*bigpointvalue) data2;
    var_j=(close*bigpointvalue) data1;

    value1=5*var_j+16*var_i-40*var_rb;
    value2=standarddev(value1,length,2);
    value3=average(value1,length);

    condition1=value1 cross above (value3+3*value2);
    condition2=value1 cross under (value3+value2);
    condition3=value1 cross under (value3-3*value2);
    condition4=value1 cross above (value3-value2);

    if condition1 then
            sellshort 5 shares next bar at market;
    if condition2 then
            buytocover next bar at market;
    if condition3 then
            buy 5 shares next bar at market;
    if condition4 then
            sell next bar at market;

    图1 螺纹

     

     

    图2 铁矿石

     

    图3 焦碳

 

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

可联系技术人员 QQ: 511411198  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


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

相关文章

    没有相关内容