請問…

  •   532 
  • 最後發表   wayne0402  2021 十一月 02
wayne0402 發文於   2021/10/26

barslast是取得「上一次」條件成立到當前的k棒數,

那如果我是要取得「上上一次」,請問該如何撰寫?

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

Hello wayne0402,

 

您可以自行寫變數紀錄目前與上上次條件成立時的Bar數。

舉例來說,假設條件是收盤向上穿越5期均線好了:

var: trigger(0);

if trigger = 1 then begin 

    value2 += 1;

    value3 += 1;

    end;

if close cross over value1 then begin

    value3 = value2;

    value2 = 0;

    plot3(close);

    trigger = 1;

    end;

這樣的話 value2 就會是上一次,而 value3 則是上上次條件成立時的相對位置了。

 

wayne0402 發文於   2021/10/29

嗯…不是很理解,所以依小幫手給的範例中就完全不需要使用到barslast?(還有裡頭的 += 翻成白話文是什麼意思?)

比如我想要取得上次跟上上次5金叉10的k棒位置,並分別取得它們的收盤價,應該如何撰寫?

XQ小幫手 發文於   2021/11/02

Hello wayne0402,

 

是的,小幫手的寫法是另外使用變數(value2和value3)來記錄上一次和上上次的相對位置,就不會用到barslast函數。

上面的範例漏了一句令value1等於5期均線(value1 = average(close, 5);)。

 

value2+=1 代表的意思就是 value2 = value2 + 1。

換句話說就是每過1根Bar value2 就會加1。

 

如果是要上次與上上次5期均線向上突破10期均線的話:

var: trigger(0);

value1 = average(close, 5);

value2 = average(close, 10);

 

if trigger = 1 then begin 

    value3 += 1;

    value4 += 1;

    end;

 

if value1 cross over value2 then begin

    value4 = value3;

    value3 = 0;

    trigger = 1;

    end;

其中value3就會是上一次,value4就會是上上次的相對位置。

 

小幫手建議您可以參考下官網的教學區,裡面有XS語法的基礎與應用。

wayne0402 發文於   2021/11/02

那些專門寫程式碼的人邏輯性真強,謝謝小幫手詳細的解答…但腦子還是卡卡,我再好好思考一下。

發表回覆
Close