如何寫選股KD最近2次黃金交叉,分別設定不同的數值?

  •   1.3K 
  • 最後發表   Jack  2020 十月 31
Jack 發文於   2019/05/29

大家好,分享「如何寫選股KD最近2次黃金交叉,分別設定不同的數值?」

 

例如:

最近 15 天內,

第一次黃金交叉當日D值取出,判斷10~20之間,

第二次黃金交叉當日D值取出,判斷50~80之間,

以上兩個條件都有達成後,篩選出商品,

篩選出的商品旁邊欄位,可以顯示出第一次與第二次交叉的D值。

 

大致撰寫邏輯:

1. 使用 Stochastic 語法運算KD值

2. 使用A紀錄變數搭配 if 判斷在 「第一次黃金交叉當日D值取出,判斷10~20之間」時,A紀錄變數歸零;否則A紀錄變數累加,以利判斷在相對K棒位置第幾根條件達成。

3. 再使用B紀錄變數搭配 if 判斷在 「第二次黃金交叉當日D值取出,判斷50~80之間」時,B紀錄變數歸零;否則B紀錄變數累加,以利判斷在相對K棒位置第幾根條件達成。

4. 最後判斷 A紀錄變數 大於 B紀錄變數 且 A紀錄變數 小於 最近 15 天,則篩選出該檔股票。

5. 加入選股後,將資料讀取筆數設為 100,有足夠的筆數算出來的KD數值才會正確。

 

範例篩選結果如下圖:

 

範例選股腳本程式碼如下,範例選股策略匯出檔案如附檔,以上提供給大家參考:

input: Length(9,"天數"), RSVt(3,"RSVt權數"), Kt(3,"Kt權數"), Length_Cross(15,"最近N天內"), 
Dup_st(20,"第1次金叉D值上限"), Ddown_st(10,"第1次金叉D值下限"), Dup_nd(80,"第2次金叉D值上限"), Ddown_nd(50,"第2次金叉D值下限");
variable: rsv(0), k(0), _d(0), i_st(0), Record_Dst(0), i_nd(0), Record_Dnd(0);

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

if Dup_st >= _d and _d >= Ddown_st and k cross above _d then begin
    i_st = 0;
    Record_Dst = _d;
end else
    i_st += 1;

if Dup_nd >= _d and _d >= Ddown_nd and k cross above _d then begin
    i_nd = 0;
    Record_Dnd = _d;
end else
    i_nd += 1;

if i_st > i_nd and Length_Cross >= i_st then ret = 1;

outputfield1(Record_Dst,"第一次金叉D值");
outputfield2(Record_Dnd,"第二次金叉D值");

 

附加文件

  • 按讚來自於
  • kuoliang66
排序方式: 標準 | 最新
小張 發文於   2019/05/30

jack:

謝謝您的用心回覆

請問兩個KD金叉中間有不要有其他的金叉(只有一個死叉),要如何修改呢?

可否取出2個金叉當天的收盤價?顯示在欄位上

謝謝~~

Jack 發文於   2019/06/03

小張 兄

請問兩個KD金叉中間有不要有其他的金叉(只有一個死叉),要如何修改呢?

不太理解這段的敘述,請確認一下所述部分是否正確。

JIMWUWU 發文於   2020/10/31

感謝分享

請問如果想寫出最近某天數內,曾經交叉幾次,例如45天內,5日均及20日均曾經互相交叉3次以上的話,該怎麼寫呢,謝謝了

發表回覆
Close