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

关于一个模型的编写 [MC]

  • MC用户求助:

    input:length_A(20), length_B(30);

    var: mv_A(0), mv_B(0), state_A(-1), state_B(-1);

     

    mv_A=averagefc(close,length_A);  //A模型的均线值,存储到mv_A变量上

    mv_B=averagefc(close,length_B);  //B模型的均线值,存储到mv_B变量上

     

    if close cross above mv_A then

            state_A=1   //A模型的多仓状态,赋值变量state_A为1

    else if close cross under mv_A then

            state_A=0;  //A模型的空仓状态,赋值变量state_A为0

     

    if close cross above mv_B then

            state_B=1  //B模型的多仓状态,赋值变量state_B为1

    else if close cross under mv_B then

            state_B=0;  //B模型的空仓状态,赋值变量state_B为0

     

    if state_A=1 and state_B=1 and (state_A=1 and state_B=1)[1]=false and marketposition=0 then

            buy next bar at market;

    {当A和B模型都处于多仓状态时,开仓}

     

    if marketposition=1 and (close cross under mv_A or close cross under mv_B) then

            sell next bar at market;

    {当A模型或者B模型出现平仓信号时,执行平仓}

     

    对于其它的开平仓信号执行,您可以通过mv_A、mv_B、state_A、state_B进行组合;

    上面写的信号是针对同一个商品合约进行的,若您需要使AB两个模型分别针对不同的商品合约,您可以在图表上插入子图并且对上述代码进行微调;

    上面写的信号是针对一个商品下单,若您需要对不同的商品合约下单,您需要通过PT功能,投资组合下单。

    一、您所说的A模型和B模型,实际上可以编写在一个信号中,也就是一个策略,那么一个策略的绩效当然可以回测评定,和其它策略一样,加载到商品合约上、然后在策略属性中更改成您需要的设置,最后点击“视图”中的策略绩效报告即可。

     

    二、如果说,您需要A模型和B模型分别对不同的商品合约进行交易,那么您可以使用MC的投资组合回测和投资组合交易的功能,回测绩效是整体的绩效,当然也可以单独看绩效。

     

  • MC回复讨论一:

    input:length_A(20), length_B(30);

    var: mv_A(0), mv_B(0), state_A(-1), state_B(-1);

     

    mv_A=averagefc(close,length_A);  //A模型的均线值,存储到mv_A变量上

    mv_B=averagefc(close,length_B);  //B模型的均线值,存储到mv_B变量上

     

    if close cross above mv_A then

            state_A=1   //A模型的多仓状态,赋值变量state_A为1

    else if close cross under mv_A then

            state_A=0;  //A模型的空仓状态,赋值变量state_A为0

     

    if close cross above mv_B then

            state_B=1  //B模型的多仓状态,赋值变量state_B为1

    else if close cross under mv_B then

            state_B=0;  //B模型的空仓状态,赋值变量state_B为0

     

    if state_A=1 and state_B=1 and (state_A=1 and state_B=1)[1]=false and marketposition=0 then

            buy next bar at market;

    {当A和B模型都处于多仓状态时,开仓}

     

    if marketposition=1 and (close cross under mv_A or close cross under mv_B) then

            sell next bar at market;

    {当A模型或者B模型出现平仓信号时,执行平仓}

     

    对于其它的开平仓信号执行,您可以通过mv_A、mv_B、state_A、state_B进行组合;

    上面写的信号是针对同一个商品合约进行的,若您需要使AB两个模型分别针对不同的商品合约,您可以在图表上插入子图并且对上述代码进行微调;

    上面写的信号是针对一个商品下单,若您需要对不同的商品合约下单,您需要通过PT功能,投资组合下单。

    一、您所说的A模型和B模型,实际上可以编写在一个信号中,也就是一个策略,那么一个策略的绩效当然可以回测评定,和其它策略一样,加载到商品合约上、然后在策略属性中更改成您需要的设置,最后点击“视图”中的策略绩效报告即可。

     

    二、如果说,您需要A模型和B模型分别对不同的商品合约进行交易,那么您可以使用MC的投资组合回测和投资组合交易的功能,回测绩效是整体的绩效,当然也可以单独看绩效。

     

  • MC回复讨论二:

    其实我在文华上也咨询过同样的问题,因为A模型和B模型属于不同的周期,文华要加载某一周期上才能回测,所以针对这个要涉及两个周期的模型,文华不能回测。老师说MC可以回测分属于不同周期的模型,那么我应该加载在A模型的15分钟上回测,还是加载在B模型的周K线上回测?问题的焦点是MC如何处理A模型和B模型在不同周期上的数据调用?

     

  • MC回复讨论三:

    抱歉,上面编写的MC代码其实是加载到一个周期的商品合约上的,这个不是您真实需求的,也怪我对您之前的意思理解偏差了。

    您的两个模型是分别加载到同一个商品合约并且是不同周期的,而且两个模型之间还互相“联系”以确定开仓和平仓,那么您的这个需求可以通过投资组合交易来实现;目前MC8s只支持投资组合回测,您可以使MC8s版本的投资组合回测功能实现回测,组合回测中也包含单独的回测,实盘交易的话,您需要通过图表进行交易,两个图表之间需要通过全局变量进行传递信息以确定开仓和平仓;MCpro版本和MC精英版支持投资组合交易(当然投资组合回测也是可以的)。

    http://forums.icetech.com.cn/for ... &extra=page%3D2这个帖子您看一下

    您可能需要学习一下投资组合回测、投资组合交易及图表中使全局变量等相关内容了

     

  • MC回复讨论四:

    抱歉,上面编写的MC代码其实是加载到一个周期的商品合约上的,这个不是您真实需求的,也怪我对您之前的意思理解偏差了。

    您的两个模型是分别加载到同一个商品合约并且是不同周期的,而且两个模型之间还互相“联系”以确定开仓和平仓,那么您的这个需求可以通过投资组合交易来实现;目前MC8s只支持投资组合回测,您可以使MC8s版本的投资组合回测功能实现回测,组合回测中也包含单独的回测,实盘交易的话,您需要通过图表进行交易,两个图表之间需要通过全局变量进行传递信息以确定开仓和平仓;MCpro版本和MC精英版支持投资组合交易(当然投资组合回测也是可以的)。

    http://forums.icetech.com.cn/for ... &extra=page%3D2这个帖子您看一下

    您可能需要学习一下投资组合回测、投资组合交易及图表中使全局变量等相关内容了

 

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

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


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

相关文章

    没有相关内容