barslast是取得「上一次」條件成立到當前的k棒數,
那如果我是要取得「上上一次」,請問該如何撰寫?
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 則是上上次條件成立時的相對位置了。
嗯…不是很理解,所以依小幫手給的範例中就完全不需要使用到barslast?(還有裡頭的 += 翻成白話文是什麼意思?)
比如我想要取得上次跟上上次5金叉10的k棒位置,並分別取得它們的收盤價,應該如何撰寫?
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語法的基礎與應用。
那些專門寫程式碼的人邏輯性真強,謝謝小幫手詳細的解答…但腦子還是卡卡,我再好好思考一下。
4 評論