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

NumericArrayRef arr编译出错? [开拓者 TB]

  • 咨询内容: 请教一下版主,我写了段程序想调用用户函数StandardDevArray和AverageArray来计算数组均值和标准差,但其中参数声明NumericArrayRef 总是编译报错c0108,参数声明的数据类型错误,能帮我看一下为啥么?程序如下,多谢啦
    //------------------------------------------------------------------------
    // 简称: spread_tl
    // 名称: spread_tl
    // 类别: 公式应用
    // 类型: 用户应用
    //------------------------------------------------------------------------

    Params
            Numeric Length1(35);
            Numeric Length2(75);
                    Numeric DataType(1);
                    NumericArrayRef arr;
    Vars
            NumericSeries Spread;
            NumericSeries High1;  
            NumericSeries High2;
            NumericSeries Low1;
            NumericSeries Low2;
            NumericSeries xx;
            Numeric Signlogo(0);      
            Numeric Lots(1);
                    Numeric arrSize;
                    Numeric Mean;

          
    Begin
        If(Data0.Close[1]!=InvalidNumeric&&Data1.Close[1]!=InvalidNumeric)
        {
            Spread=200*(Data0.Close[1]-Data1.Close[1])/(Data0.Close[1]+Data1.Close[1]); // 定义价差                                               
        }
             
            arrSize = GetNumericArraySize(arr);
                    Mean = AverageArray(arr);
                    xx = StandardDevArray(arrSize,DataType);

                     High1=Highest(Spread[1],Length1);
              High2=Highest(Spread[1],Length2);
              Low1=Lowest(Spread[1],Length1);  
              Low2=Lowest(Spread[1],Length2);  
            PlotNumeric("Spread",Spread);
            PlotNumeric("High1",High1);
            PlotNumeric("Low1",Low1);


          
          
            If(Spread[1]<Low1[1] && Spread>Low1)
            {
              Data1.Buy(Lots,Open);
              Data0.SellShort(Lots,Open);
              Signlogo = 1;
            }
        If(Spread[1]>High1[1] && Spread<High1)      
            {
              Data0.Buy(Lots,Open);
              Data1.SellShort(Lots,Open);
              Signlogo = -1;
            }
          
            If(Signlogo == 1 && Spread>High2 )
            {
              Data1.SellShort(0,Open);
              Data0.BuyToCover(0,Open);
            }
            If(Signlogo == -1 && Spread<Low2)
            {
              Data0.SellShort(0,Open);
              Data1.BuyToCover(0,Open);
            }
             
    End
    //------------------------------------------------------------------------
    // 编译版本        GS2010.12.08
    // 用户版本        2016-01-03 20:29:41
    // 版权所有        xyqh11806822
    // 更改声明        TradeBlazer Software保留对TradeBlazer平台
    //                        每一版本的TrabeBlazer公式修改和重写的权利
    //------------------------------------------------------------------------

     

  • TB技术人员: NumericArrayRef  是引用类型的声明,是用在用户函数中的

     

  • TB客服: 谢谢版主回复,但我如果要在用户应用调用用户函数StandardDevArray和AverageArray,应该怎么写?能帮我改一下么?我试着把声明NumericArrayRef arr; 这句改成NumericArray arr;好像也报错

 

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

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


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

相关文章

    没有相关内容