選股錯誤請協助

  •   259 
  • 最後發表   Pierce  2022 六月 24
Pierce 發文於   2022/06/13

選股條件為週收盤大於週20均,日MACD的OSC連續3天小於0的股票,但篩選出來的股票結果是錯的(日MACD的OSC卻是大於0,很怪),不知哪裡出錯了,請協助!! 

 

setbarBack(21, "W");

value1 = MACD(WeightedClose,12,26,9,value2,value3,value4);

//value1 = xf_MACD("D",xf_weightedclose("D"),12,26,9,value2,value3,value4);  若上面改為這行,指定日頻率也一樣篩選錯

if getField("收盤價", "W") > average(getField("收盤價", "W"), 20) and trueAll(value4 < 0, 3) then ret = 1;

 

 

排序方式: 標準 | 最新
XQ小幫手 發文於   2022/06/20

Hello Pierce,

 

小幫手推測應該是因為您的資料讀取筆數不足所導致。

MACD是一種需要大量前期值運算才能得出正確結果的指標。

您可以參考內建選股腳本所設定的SetTotalBar數值:

SetTotalBar((maxlist(FastLength,SlowLength,6) + MACDLength) * 4);

在您的腳本中就會是

SetTotalBar((26 + 9) * 4);

Pierce 發文於   2022/06/20

已經加入你的SetTotalBar((26 + 9) * 4); 還是一樣選錯,

更何況我之前已經用setbarBack(21, "W");有21周的資料跑日MACD怎可能不夠?

 

另外我單獨跑日MACD的OSC連續3天小於0的部分選出來是對的,但加入週收盤大於週20均的條件跑出來卻是錯的(日MACD的OSC會抓到>0的股票),感覺是有bug。

 

使用者多回復慢這我可以理解,但小幫手可以完整測試好確認問題在哪再回覆嗎? 不然這樣一來一往真的要好久。

XQ小幫手 發文於   2022/06/24

Hello Pierce,

 

小幫手這邊是計算正確的。(參考附圖)

可能是在您加入 getField("收盤價", "W") 的時候,選股策略設定的執行頻率變成 週,導致計算出來的MACD變成週的MACD,故不如您的預想。

但實際原因還是需要麻煩您提供選股中心匯出檔勾選(包含)選股腳本,並舉出有問題的商品和日期 (截圖亦可) 讓小幫手確認。

另外,setbackbar 和 settotalbar 是兩個完全不同的東西,細節可以參考 資料讀取範圍與腳本執行的關係

setbackbar 是設定資料引用筆數,這部分的資訊是不會運算的,一般來說選股不需要特別設定這個,因為選股預設是會將所有資訊拉出。

settotalbar 是設定資料讀取筆數,這部分的資料是會用來運算的,MACD就是要靠這個才能計算出正確數值。

 

並不是腳本寫對,就能出現您要的結果,策略的設定一樣會造成影響。

如果您不希望問題這樣來回很多次的話,小幫手建議您在一開始發問的時候可以提供詳細資訊,例如上述的檔案資訊,這樣小幫手就能對症下藥。

附加文件

  • 按讚來自於
  • t0214992
發表回覆
Close