您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 金字塔知识>>正文内容

[求助]请教Stdind 函数引用能否是变量? [金字塔]

  • 咨询内容:

    如题:

    程序代码如下:

     

    intLookBackDays:=20;
    BolBandTrig:=2;

     

    upBand_1:STKINDI('','boll.upper(20,2)',0,DATAPERIOD);
    downBand_1:STKINDI('','boll.lower(20,2)',0,DATAPERIOD);

     

    upBand_2:STKINDI('','boll.upper(intLookBackDays,BolBandTrig)',0,DATAPERIOD);
    downBand_2:STKINDI('','boll.lower(intLookBackDays,BolBandTrig)',0,DATAPERIOD);

     

    在图上,upBand_1等正确显示,而upBand_2显示有问题,二者的区别在于后者使用了变量。在金字塔中函数引用不能使用变量?麻烦了,怎么解决?提供直接的类似 BollBand()函数解决? 如果我想引用自定义的函数呢?

     

    另外在公式帮助中没有Boll函数的说明,请补充。

     

    谢谢。

     

     

     

  • 金字塔客服:

    在引号中间应该是不能使用参数了,因为那是被当做字符串处理了。

     

    一个变通的办法是将参数数字转换成字符串,将字符串变量作为stkindi的参数。

    [此贴子已经被作者于2009-11-22 12:21:17编辑过]

     

  • 用户回复:

    我按照您的意见改成如下代码也不行:

     

    intLookBackDays:=20;
    BolBandTrig:=2;

    s1:=NUMTOSTR(intLookBackDays,0);
    s2:=NUMTOSTR(BolBandTrig,0);

     

    upBand1:STKINDI('','boll.upper(20,2)',0,DATAPERIOD);
    downBand1:STKINDI('','boll.lower(20,2)',0,DATAPERIOD);

     

    //upBand:STKINDI('','boll.upper(intLookBackDays,BolBandTrig)',0,DATAPERIOD);
    //downBand:STKINDI('','boll.lower(intLookBackDays,BolBandTrig)',0,DATAPERIOD);

     

    upBand_2:STKINDI('',"'boll.upper('+s1+','+s2+')'",0,DATAPERIOD);
    downBand_2:STKINDI('',"'boll.lower('+s1+','+s2+')'",0,DATAPERIOD);

     

    请版主帮忙写一下,谢谢。

     

  • 网友回复:

    intLookBackDays:=20;
    BolBandTrig:=2;

    s1:=NUMTOSTR(intLookBackDays,0);
    s2:=NUMTOSTR(BolBandTrig,0);

     

    //upBand1:STKINDI('','boll.upper(20,2)',0,6);
    //downBand1:STKINDI('','boll.lower(20,2)',0,6);

     

    //upBand:STKINDI('','boll.upper(intLookBackDays,BolBandTrig)',0,DATAPERIOD);
    //downBand:STKINDI('','boll.lower(intLookBackDays,BolBandTrig)',0,DATAPERIOD);

     
    fs1:='boll.upper('+s1+','+s2+')' ;
    upBand_2:STKINDI('',fs1,0,6);
    //downBand_2:STKINDI('',"'boll.lower('+s1+','+s2+')'",0,DATAPERIOD);

     

     

  • 网友回复:

    谢谢,程序通过了。

    我的第二个程序错误在于想当然多加了一对“”号,下面是改过的:

     

    upBand_2:STKINDI('','boll.upper('+s1+','+s2+')',0,DATAPERIOD);
    downBand_2:STKINDI('','boll.lower('+s1+','+s2+')',0,DATAPERIOD);

     

    谢谢。

     

    不过也确实不清楚,Stkind为什么不支持变量的调用,不会类似if 语句不能调用统计类函数吧?

     

 

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

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


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

相关文章

    没有相关内容