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

请问ALEX关于变量定义问题 [MC]

  • MC用户求助:

    从本质上来说,这两者的区别只是在于变量的初始值不一样,但是,设置不同的初始值可以优化代码。以计算最小价格来说明两个不同的写法带来的区别:
    //代码1
    var: min_low(0);

    if min_low=0 then
            min_low=low
    else if min_low>Low then
            min_low=low;


    //代码2
    var: min_low(9999); //初始值要设置的比商品合约的价格大很多

    if min_low>Low then
            min_low=low;


    两者的区别在代码中就很明显了。

     

  • MC回复讨论一:

    从本质上来说,这两者的区别只是在于变量的初始值不一样,但是,设置不同的初始值可以优化代码。以计算最小价格来说明两个不同的写法带来的区别:
    //代码1
    var: min_low(0);

    if min_low=0 then
            min_low=low
    else if min_low>Low then
            min_low=low;


    //代码2
    var: min_low(9999); //初始值要设置的比商品合约的价格大很多

    if min_low>Low then
            min_low=low;


    两者的区别在代码中就很明显了。

     

  • MC回复讨论二:

    第一种是需要再比较一下与0的价格,第二种就不需要了对吗

     

  • MC回复讨论三:

    对的。因为第一种情况,min_low的初始值为0,所以它始终比所有的价格低,如果通过代码2中的代码与价格比较的话,那么最后的结果肯定也是0,这个结果是不正确的。

    如果将min_low的初始值设置的足够大,例如9999,那么代码2中的程序第一次执行时就将min_low赋值为当根bar的最小值。

     

  • MC回复讨论四:

    对的。因为第一种情况,min_low的初始值为0,所以它始终比所有的价格低,如果通过代码2中的代码与价格比较的话,那么最后的结果肯定也是0,这个结果是不正确的。

    如果将min_low的初始值设置的足够大,例如9999,那么代码2中的程序第一次执行时就将min_low赋值为当根bar的最小值。

 

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

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


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

相关文章

    没有相关内容