KD之紀錄高低

  •   220 
  • 最後發表   風期會  2022 八月 19
風期會 發文於   2022/08/15

小幫手請教

我想要透過KD進入20,來紀錄有幾根K棒和這段進入20的最低價,

現在遇到困難點,若是採用_kk>20就將計數器歸0,

那麼_low就會消失,就無法運用_low做其他用運算,

是否有什麼方法可以確保_low不被歸0,感謝

腳本初步寫法如下

// KD指標
//
input: Length(9), RSVt(3), Kt(3);
variable: rsv(0), _kk(0), _dd(0);

SetInputName(1, "天數");
SetInputName(2, "RSVt權數");
SetInputName(3, "Kt權數");

Stochastic(Length, RSVt, Kt, rsv, _kk, _dd);

Plot2(_kk, "K(%)",checkbox:=1);
Plot3(_dd, "D(%)",checkbox:=1);

//紀錄
var:count_20(0),_low(0);

if _kk<=20 then
  begin
    count_20+=1;
    _low=lowest(l,count_20);
  end;

plot12(_low,"最低");

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

Hello 風期會,

 

當 KK > 20 時,您不需要執行 _low 的那行,這樣 _low 就會維持在之前運算的值。

另外,在記錄 _low 時也不需要用 lowest,只要直接更新值就可以。

舉例來說:

if _kk > 20 then count_20 = 0;   // 這樣 _low 不會被影響,會維持在最後一次 _kk <= 20 運算出的值

 

if _kk <= 20 then begin

    count_20 += 1;

    if count_20 = 1 then _low = low else if _low > low then _low = low;    //不需要特別用lowest,可以直接用當下的low來判斷,讓_low紀錄最低值,效能會比較好一些

    end;

 

 

  • 按讚來自於
  • greg750
風期會 發文於   2022/08/17

小幫手,不好意思,我沒表達清楚;

透過您的腳本,取出的價如圖藍框:高=18650,和低13850

只是進一步,因為我要透過每一段K進入20,以及K進入80,去定義是一個波段完成,

然後我會如下圖,再利用箱型切割去紀錄哪一個數值可以做多或做空,

如果變成是目前歷史高18650和階段性波段低13850,這樣空間太大了,對於操作會不容易下手,感謝您了。

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

Hello 風期會,

 

小幫手不太懂您的需求。

如果您不只要最近一個 _kk 小於 20 的最低價,而是最近幾個 _kk 小於20 的最低價的話,可以用變數或陣列來記錄。

舉例來說,要記錄最近2個價格的話:

var: _low(0), _low(1);

 

if _kk > 20 then count_20 = 0;   // 這樣 _low 不會被影響,會維持在最後一次 _kk <= 20 運算出的值

 

if _kk <= 20 then begin

    count_20 += 1;

    if count_20 = 1 then begin

        _low1 = _low;    // _low1保存上次的最低價

        _low = low;      // _low 保存這次的最低價

        end

    else if _low > low then _low = low;    //不需要特別用lowest,可以直接用當下的low來判斷,讓_low紀錄最低值,效能會比較好一些

    end;

風期會 發文於   2022/08/19

感謝小幫手,數值紀錄是我想像的了。

發表回覆
Close