我參考內建的xfmin_MACD函數,想把它改寫一個使用簡單平均值的跨頻MACD函數,想要修改的行數,我用**標出
原始內建函數如下:
input:
FreqType(string), //引用頻率
Price(numericseries),
FastLength(numericsimple), SlowLength(numericsimple), MACDLength(numericsimple),
DifValue(numericref), MACDValue(numericref), OscValue(numericref);
**DifValue = xfMin_XAverage(FreqType, Price, FastLength) - xfMin_XAverage(FreqType, Price, SlowLength);
**MACDValue = xfMin_XAverage(FreqType, DifValue, MACDLength);
OscValue = DifValue - MACDValue;
xfMin_macd = 1;
-----------------------------------------------------
我想把打**的那兩行修改成如下:
//計算兩條簡單平均值的差
DifValue = Average(getfield("close",FreqType), FastLength) - Average(getfield("close",FreqType), SlowLength);
//把某個頻率下,過去K棒的平均值計算出來
sumValue=0;
For i = 0 to MACDLength-1
begin
sumValue = sumValue + xf_GetValue("1",value1,i);
end;
MACDValue = sumValue/MACDLength;
但是按下編譯鈕後出現的第一個錯誤是"函數getfield:第二個參數應該是string"
所以我想知道要怎麼寫才能把string傳進函數讓getfield使用。(PS. 我沒有任何程式設計的背景,所以只是用我能理解的方式去寫)
感謝幫忙
3 評論