如何使用XS選股腳本撰寫MACD綠色Osc(Osc < 0)在收斂中的選股條件?

  •   2.4K 
  • 最後發表   Jack  2020 四月 13
Jack 發文於   2016/08/19

如何使用XS選股腳本撰寫MACD綠色Osc(Osc < 0)在收斂中的選股條件?

 

邏輯判斷大概說明:

挑選股票商品的條件為,在 Osc 小於 0 並且 Osc 連續期數的數值收斂中。

 

程式碼大概的寫法為:

1. 先用 Macd 系統函數算出 Osc 的數值

2. if Osc < 0 and TrueAll(osc > osc[1]) then ret = 1;

 

在內建的選股腳本中,已經有MACD黃金交叉的選股腳本,

因此,Jack 將該腳本,部分計算MACD數值的寫法,

Copy 至 MACD綠色Osc(Osc < 0)收斂 的腳本裡,

最後修改完成的程式碼範例如下:

input: FastLength(12), SlowLength(26), MACDLength(9), OscDecrease(5);
variable: difValue(0), macdValue(0), oscValue(0);

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

SetInputName(1, "DIF短期期數");
SetInputName(2, "DIF長期期數");
SetInputName(3, "MACD期數");
setinputname(4, "Osc收斂期數");

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

//  Osc綠柱收斂
if  oscValue < 0 and trueall(oscValue>oscValue[1], OscDecrease) then ret = 1;

 

程式碼修改處說明:

程式碼第4行,

設置讀取資料範圍,納入收斂K棒數,並以maxlist函數語法,

去判斷哪個讀取資料範圍較長,就設定此值為讀取資料範圍筆數。

 

程式碼第14行,

使用if/Then流程控制語法,判斷若

Osc 小於 0 並且 Osc 連續期數的數值收斂中

則將符合此條件的選股商品清單列出。

 

在此選股腳本中,有一個輸入參數OscDecrease(5),

此為Osc收斂期數,依照自己的需求調整,預設的Osc收斂期數為 5 期。

 

下圖為今日(11:16)執行完該選股策略後,選股清單商品的畫面

 

以上,提供給大家參考,謝謝。

 

 

 

 

 

 

排序方式: 標準 | 最新
JSUN 發文於   2020/02/14

「指標」腳本中無法使用「ret」。

請問如何排除這個問題

 

感謝

李九號 發文於   2020/02/15

//  Osc綠柱收斂
if  oscValue < 0 and trueall(oscValue>oscValue[1], OscDecrease) then Plot1(oscValue);

XQ小幫手 發文於   2020/02/19

Hi JSUN 

指標是不能使用ret的喔,會使用Plot功能將所需的結果畫在指標上,如上李九號大大的回覆使用,謝謝您的詢問。

提供給您相關的Plot使用說明,謝謝。

maisun 發文於   2020/04/13

如何使用XS選股腳本撰寫MACD綠色Osc(Osc < 0)在收斂中的選股條件?

 

邏輯判斷大概說明:

挑選股票商品的條件為,在 Osc 小於 0 並且 Osc 連續期數的數值收斂中。

 

程式碼大概的寫法為:

1. 先用 Macd 系統函數算出 Osc 的數值

2. if Osc < 0 and TrueAll(osc > osc[1]) then ret = 1;

 

在內建的選股腳本中,已經有MACD黃金交叉的選股腳本,

因此,Jack 將該腳本,部分計算MACD數值的寫法,

Copy 至 MACD綠色Osc(Osc < 0)收斂 的腳本裡,

最後修改完成的程式碼範例如下:

input: FastLength(12), SlowLength(26), MACDLength(9), OscDecrease(5);
variable: difValue(0), macdValue(0), oscValue(0);

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

SetInputName(1, "DIF短期期數");
SetInputName(2, "DIF長期期數");
SetInputName(3, "MACD期數");
setinputname(4, "Osc收斂期數");

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

//  Osc綠柱收斂
if  oscValue < 0 and trueall(oscValue>oscValue[1], OscDecrease) then ret = 1;

 

程式碼修改處說明:

程式碼第4行,

設置讀取資料範圍,納入收斂K棒數,並以maxlist函數語法,

去判斷哪個讀取資料範圍較長,就設定此值為讀取資料範圍筆數。

 

程式碼第14行,

使用if/Then流程控制語法,判斷若

Osc 小於 0 並且 Osc 連續期數的數值收斂中

則將符合此條件的選股商品清單列出。

 

在此選股腳本中,有一個輸入參數OscDecrease(5),

此為Osc收斂期數,依照自己的需求調整,預設的Osc收斂期數為 5 期。

 

下圖為今日(11:16)執行完該選股策略後,選股清單商品的畫面

 

以上,提供給大家參考,謝謝。

 

 Jack大您好

請問如果我希望找出   osc>0後 ''紅柱發散''含期數該如何修改?謝謝

 

 

 

 

發表回覆
Close