如何使用XS寫出"DIF-MACD值大於(小於)昨日"的選股腳本?

  •   1.8K 
  • 最後發表   Jack  2023 八月 18
Jack 發文於   2016/05/24

如何使用XS寫出"DIF-MACD值大於昨日"及"DIF-MACD值小於昨日"的選股腳本?

 

本文分為兩部分進行說明,分別為操作流程與腳本程式碼簡略說明。

 

1.操作流程:

開啟XScript編譯器後,請將下方的程式碼寫入選股腳本中,並按下編譯,即可完成"DIF-MACD值大於昨日"的選股腳本

input: FastLength(12), SlowLength(26), MACDLength(9);
SetTotalBar((maxlist(FastLength,SlowLength,6) + MACDLength) * 3 + 8);
SetInputName(1, "DIF短天數");
SetInputName(2, "DIF長天數");
SetInputName(3, "MACD天數");
macd(weightedclose, FastLength, SlowLength, MACDLength, value1, value2, value3);
if value3 > value3[1] then
   ret = 1;

 

2.程式碼簡略說明:

程式碼第1行,為輸入參數設定。

程式碼第2行,為設定資料讀取範圍。

程式碼第3至5行,為設定輸入參數名稱。

程式碼第6行,為計算MACD中的DIF、MACD與Osc的語法,上述三個數值分別以value1、value2與value3的數值變數,存取計算結果。

程式碼第7至8行,為判斷"DIF-MACD值大於昨日"的條件語法,而Osc=DIF-MACD,當Value3(當日Osc值)>Value3[1](前日Osc值)時,則將該股顯示於選股清單中,ret=1為顯示於選股單中的語法。

詳細的程式碼語法說明請至http://xshelp.xq.com.tw/查詢。

 

最後"DIF-MACD值小於昨日"的選股腳本,差別在程式碼第7行,改為小於,即可完成。

排序方式: 標準 | 最新
sunweilin 發文於   2023/08/09

如果DIF方向由下轉上要如何寫腳本,謝謝

XQ小幫手 發文於   2023/08/18

Hello sunweilin,

 

網站上有教學區,裡面有XS語法的基礎和應用可以閱覽。

如果您要判斷dif方向由下轉上的話,可以檢查近幾根Bar的 DIF值,舉例來說:

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

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

 

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

 

condition1 = difValue[2] > difValue[1] and difValue[1] < difValue;

 

condition1 就會是判斷當根 difValue 是否有大於前一根Bar的 difValue,且前一根Bar 的 difValue 是否有小於前前根Bar的 difValue。(V型)

發表回覆
Close