Hi Hardy,
小幫手查看此選股程式碼,由於您沒有提供資料讀取筆數相關資料,
故小幫手依照 選股欄位放大鏡:談OutputField 教學在末段程式碼加入
outputfield1(value1,"DIF當期");
outputfield2(value1[1],"DIF前期");
觀察 value1 與 value1[1] 計算數值是否正確?
對照技術分析MACD副圖結果發現,算出來的數值有問題,
猜測應該是資料讀取筆數為預設值10筆,資料筆數不夠計算,造成算出來的數值不正確。
於是小幫手參考 選股腳本_MACD黃金交叉 資料讀取筆數設定的程式碼範例
SetTotalBar((maxlist(FastLength,SlowLength,6) + MACDLength) * 4);
並在您的程式碼添加此資料讀取筆數設定後的完整程式碼範例如下
// DIF上揚
input: FastLength(12), SlowLength(26), MACDLength(9);
variable: price(0);
SetInputName(1, "DIF短天數");
SetInputName(2, "DIF長天數");
SetInputName(3, "MACD天數");
SetTotalBar((maxlist(FastLength,SlowLength,6) + MACDLength) * 3 + 8);
price = WeightedClose();
Value1 = XAverage(price, FastLength) - XAverage(price, SlowLength);
ret = value1 > value1[1];
outputfield1(value1,"DIF當期");
outputfield2(value1[1],"DIF前期");
方才執行選股策略,跑出來的應該就會是正確的數值,如圖,呈請您試試看完整程式碼範例,謝謝。

1 評論