想篩選周KD黃金交叉,且站上上揚月線的標的,不知道哪裡有誤

  •   461 
  • 最後發表   Aeron  2025 一月 03
Aeron 發文於   2024/12/29

您好,如題,我寫了以下的選股條件,卻找出了一些周K<周D的標的,還請協助

 

// 宣告變數

Vars: periodK(9), periodD(3), smoothK(3); // KD指標參數

Vars: K(0), D(0), RawK(0);               // KD計算變數(使用 xf_Stochastic 輸出)

Vars: monthlyMA(0);                      // 月線數據

Vars: isGoldenCross(False), isAboveMonthlyMA(False), isMonthlyMAUp(False); // 條件變數

 

// 計算週線 KD 指標

xf_Stochastic("W", periodK, smoothK, periodD, RawK, K, D); // 使用 xf_Stochastic 計算週線 KD

 

// 確認週 K 值大於週 D 值

isGoldenCross = K > D; // 修正:只需判斷 K 是否大於 D

 

// 計算月線

monthlyMA = Average(Close, 20); // 使用 Average 函數計算20日均線

 

// 確認股價站上月線且月線上揚

isAboveMonthlyMA = Close > monthlyMA AND Close[1] <= monthlyMA[1];

isMonthlyMAUp = monthlyMA > monthlyMA[1];

 

// 印出變數值,幫助除錯

Print("週K值: ", K, " 週D值: ", D, " K > D: ", isGoldenCross);

Print("月線: ", monthlyMA, " 股價: ", Close, " 站上月線: ", isAboveMonthlyMA);

Print("月線上揚: ", isMonthlyMAUp);

 

// 綜合條件

If isGoldenCross AND isAboveMonthlyMA AND isMonthlyMAUp 

then ret = 1;

 

 

排序方式: 標準 | 最新
虎科大許教授 發文於   2024/12/30

資料筆數不夠。你是日跨週,我建議setTotalBar(1500);

  • 按讚來自於
  • aeron0708
XS小編 發文於   2025/01/03

Hello Aeron,

 

小編補充,有些函數 (如KD、MACD) 在計算時會需要前期變數值,故需要一定長度的資料讀取筆數才能夠計算出正確的值。

您可以比較選股腳本中print出來的值和指標上的值,可能是前者因資料讀取筆數不足導致計算出來的數值和後者有差。

關於所需的筆數可參考內建的選股腳本,由於是日跨週,所以要多乘以5 (一週五個工作天)。

  • 按讚來自於
  • aeron0708
Aeron 發文於   2025/01/03

謝謝您的建議,現在可以找出來了,且每一檔個股皆滿足條件,就是選股的時間很長,不知道還可以怎麼改善? 謝謝您

虎科大許教授 發文於   2025/01/03

這個沒辦法。計算技術指標需要足夠的資料筆數,資料筆數多,自然跑的時間較久。

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