選股腳本選出來的跟設定的不太一樣

  •   41 
  • 最後發表   Benson_  2021 十一月 24
Benson_ 發文於   2021/11/23

小幫手您好

   我使用選股腳本想要找出符合以下條件的股票

   1.MACD雙線其中一條在0軸之上

   2.MACD當日柱狀體大於0

   3.MACD前一日柱狀體小於0

   4.MACD當日柱狀體大於昨天的

但是常常會選到一些完全不符合的,下面是我的腳本,請幫忙看一下是不是哪裡有問題,謝謝。

input: FastLength(12, "DIF短期期數"), SlowLength(26, "DIF長期期數"), MACDLength(9, "MACD期數"); //設定MACD相關的天期參數

variable: difValue(0), macdValue(0), oscValue(0); //宣告MACD各指標的變數名稱

SetTotalBar((maxlist(FastLength,SlowLength,6) + MACDLength) * 3 + 8); //指定腳本執行時的資料讀取筆數

SetInputName(1, "DIF短期期數");

SetInputName(2, "DIF長期期數");

SetInputName(3, "MACD期數");

 

MACD(weightedclose(), FastLength, SlowLength, MACDLength, difValue, macdValue, oscValue);

 

Ret = difValue Crosses Above 0 or macdValue Crosses Above 0 //MACD

and oscvalue > 0 

and oscvalue[1] < 0 

and oscvalue > oscvalue[1] 

排序方式: 標準 | 最新
XQ小幫手 發文於   2021/11/24

Hello Benson_,

 

您問題應該出在 1.MACD雙線其中一條在0軸之上 這條件上。

首先,crosses above 是要向上突破0,不是在0之上。

然後這兩個需要用括號,不然會變成 dif 向上跨越0 或 其他條件。

另外您條件中有oscValue一定會大於前期值,因為一根大於0,另一根小於0。

除非您是要柱體長度比較,那麼需要用上 absvalue 取其絕對值來比較。

小幫手修改後如下:

Ret = (difValue > 0 or macdValue > 0)

and oscValue > 0 

and oscValue[1] < 0

and oscValue > absvalue(oscValue[1]);

您可以試試看是否符合需求。

 

Benson_ 發文於   2021/11/24

感謝小幫手的協助。

發表回覆
Close