K值突破50選股程式

  •   487 
  • 最後發表   Sagiter  2022 十月 26
Sagiter 發文於   2022/10/20

請問要如何寫出當日k值突破50的選股,但是條件是前幾日k值50以上的kd死亡交叉後,期間沒有再kd黃金交叉,k值直接掉到低於50後才又往上突破50,突破50選出的股票。謝謝

附加文件

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

 Hello Sagiter,

 

您可以使用 barslast 來確認近一次條件成立過了幾根Bar,搭配 trueall 確認是否沒有發生黃金交叉。

舉例來說:

input: Length(9), RSVt(3), Kt(3), _n(10);

variable: rsv(0), k(0), _d(0);

 

SetTotalBar(maxlist(Length,6) * 3 + _n);

 

SetInputName(1, "天數");

SetInputName(2, "RSVt權數");

SetInputName(3, "Kt權數");

SetInputName(4, "檢查期數");

 

Stochastic(Length, RSVt, Kt, rsv, k, _d);

 

value1 = barslast(k crosses below _d and k > 50);    //上一次KD死亡交叉到當下過了幾根Bar

condition1 = value1 > 0 and value1 <= _n and trueall(not (k cross over _d), value1);  //這幾根Bar都沒有發生黃金交差 (最多只檢查 _n 期)

condition2 = k cross over 50;    //k 向上突破 50

 

if condition1 and condition2 then ret = 1;

Sagiter 發文於   2022/10/24

謝謝您的回覆,我想請問一下如果要改為當下突破50和前一次發生向上突破50間不可有兩次以上的kd死亡交岔的話,要怎麼修改,有可檢查發生幾次條件的語法嗎?謝謝您。

XQ小幫手 發文於   2022/10/26

 Hello Sagiter,

 

您可以參考 countif 函數,可以計算區間內符合條件的次數。

所以您可以在前一次發生向上突破50時開始用變數計算經過幾根Bar,接著在發生向下突破50時用 countif 計算這段時間內發生 kd 死亡交岔的次數即可。

Sagiter 發文於   2022/10/26

謝謝。很清楚。

發表回覆
Close