請問專業幫手(4)策略雷達腳本問題

  •   455 
  • 最後發表   施先生  2022 一月 24
施先生 發文於   2021/10/26

請問專業幫手,以下是策略雷達腳本  MACD 黃金交叉  頻率是1分鐘
因為每分鐘會爆發約100筆大量的警示,請問如何修改為濾除單量小於5

 

// MACD 黃金交叉 (dif向上穿越macd)

//

input: FastLength(12), SlowLength(26), MACDLength(9);

variable: difValue(0), macdValue(0), oscValue(0);

 

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 macdValue;



另外請教
1.可以指定difValue, macdValue在0軸之上才觸發警示嗎?

 

2.difValue, macdValue可以指定斜率在25度以上嗎?
麻煩您!

 

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

Hello 施先生,

 

如果您需要單量大於等於5的話,可以多加個條件為 condition1 = GetField("Volume", "Tick") >= 5;

 

1. condition2 = difValue > 0 and macdValue > 0;

2. 您可以參考 LinearRegSlope 函數。

   由於您要的是角度,所以需要搭配 ArcTangent 函數使用。

   需注意XQ的圖形為了讓使用者易於觀看,所以圖形X軸和Y軸的比例是不相等的。

   您覺得角度是 25,但實際上很有可能不是,您可以觀察實際print出來的資訊來對條件作調整。

 

小幫手建議您看一下官網的教學區,裡面有XS語法的基礎和運用。

附加文件

施先生 發文於   2021/10/29

讚!謝謝您!!

 

黑牛 發文於   2022/01/17

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

可以請教一下這一段的意思嗎,謝謝

XQ小幫手 發文於   2022/01/19

Hello 黑牛,

 

SetTotalBar 主要是用來設定腳本的運算範圍。

細節您可以參考此篇文章: 資料讀取範圍與腳本執行的關係

至於為什麼會需要設定這個,是因為MACD是一種會受到前期運算值影響的指標,要有一定長度的資料才能運算出正確的結果。

 

黑牛 發文於   2022/01/19

看不懂乘以3在加8是什麼意思

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

Hello 黑牛,

 

意思是MACD最少需要計算

(maxlist(FastLength,SlowLength,6) + MACDLength) * 3 + 8

筆歷史資料後當根Bar算出來的MACD才會是正確的值。

 

關於資料讀取筆數的相關資訊您可以參考小幫手上面附的連結。

發表回覆
Close