XS 警示 突破區間語法問題

  •   451 
  • 最後發表   殘破的韭菜  2022 八月 09
殘破的韭菜 發文於   2022/08/03

小請教小幫手 我目前用 highest 和 lowest 語法可以寫出突破N日的盤整區間了 N在自己設定參數

想請問是否有可能可以讀取 假設如30日K棒,然後今日若跳空開高或開低,讓系統去抓最大的盤整日期,並用RetMsg

寫出這突破的最大盤整日期 若是個股A跳空突破16日盤整就顯示16   個股B是3日盤整區間 就顯示3

若有能否請問該有什麼函數或語法寫目前沒有頭緒。

另外想請問關於突破區間目前用 highest(getfield"最高價","D")  但是若要盤除上下引線的話 (只有開盤收盤價作為區間)

有辦法嗎  

 

再麻煩撥空回覆感恩!

 

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

Hello 殘破的韭菜,

 

小幫手不知道您是怎麼用 highest 和 lowest 寫出突破N日的,不過N應該就是 highest 和 lowest 用的期數。

您可以用迴圈來跑N這個參數,舉例來說:

var: _n(0);

 

_n = 0

for value1 = 1 to 30 begin

    if 符合判斷條件 then _n = value1;  //判斷條件可能是highest(getfield("最高價","D"), value1) ...

    end;

 

需注意裡面必須要用 simplehighest 和 simplelowest 避免運算錯誤,且使用迴圈會相當的消耗效能。

 

若要排除上下引線的話,您可以用陣列來存每日的實體Bar高低,接著用 HighestArray 和 LowestArray  來取得資訊。

https://xshelp.xq.com.tw/XSHelp/?HelpName=HighestArray&group=PRICERELFUNC

https://xshelp.xq.com.tw/XSHelp/?HelpName=LowestArray&group=PRICERELFUNC

 

舉例來說:

Array: barH[5](0);

 

for value1 = 0 to 4 begin

    if getfield("Open", "D")[value1] >= getfield("Close", "D")[value1] then barH[value1+1] = getfield("Open", "D")[value1] else barH[value1+1] = getfield("Close", "D")[value1];

    end;

 

value1 = HighestArray(barH,5);

這樣就可以抓出近5期實體Bar的最高點。

發表回覆
Close