NumericArrayRef arr編譯出錯?
作者:開拓者 TB 來源:cxh99.com 發布時間:2016年02月21日
- 咨詢內容:
請教一下版主,我寫了段程序想調用用戶函數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;好像也報錯