XQ語法 60日區間

  •   269 
  • 最後發表   微笑多一點  2023 六月 13
微笑多一點 發文於   2023/06/02

請問抓取區間60日  然後跟今日收盤價差異不超過10%的  第一最大成交量及第二最大成交量的收盤價之語法

排序方式: 標準 | 最新
XQ小幫手 發文於   2023/06/06

 Hello 微笑多一點,

 

網站上有教學區,裡面有XS語法的基礎和應用可以閱覽。

 

您可以使用 highestbar 來取得最大量的相對位置。

舉例來說:

value1 = highestbar(volume, 60);     //60根Bar內最大量的相對位置

value2 = close[value1];              //對應位置的收盤價

微笑多一點 發文於   2023/06/07

value11 = NthHighestBar(1,volume,60); //計算近60期最高的最高量的相對位置

value12 = close[value11]; //近60期最高成交量的收盤價

value13 = NthHighestBar(2,volume,60); //計算近60期次的次量的相對位置

value14= close[value13]; //近60期次成交量的收盤價

 

value21 = IFF(Close*1.1 >value12,value12,IFF(Close*1.1 >value14,value14,0));

請問我這樣可以嗎?

XQ小幫手 發文於   2023/06/08

 Hello 微笑多一點,

 

由於您上面描述的是差異不超過10%,所以應該是該價格介於今日收盤價的上下10%以內。

條件應該為 close * 1.1 > value12 adn close * 0.9 < value12。

建議您可以修改為

value21 = IFF(Close*1.1 >value12 and close * 0.9 < value12, value12, IFF(Close * 1.1 > value14 and close * 0.9 < value14,value14,0));

 

另外,這樣寫只會回傳一個數字 (value12 或 value14),就算兩個條件都符合也只會回傳 value12。

微笑多一點 發文於   2023/06/11

謝謝小幫手教學~

想請問如最後結果0  但我想以自訂文字取代

語法該如編譯

XQ小幫手 發文於   2023/06/13

 Hello 微笑多一點,

 

變數只能夠保存相同類型的資料,細節參考 Var 的說明。

value21 是數值變數,故無法保存字串。

 

但是您可以另外另變數,當 value21 為0時字串變數紀錄特別字串。

舉例來說:

value21 = IFF(Close*1.1 >value12 and close * 0.9 < value12, value12, IFF(Close * 1.1 > value14 and close * 0.9 < value14,value14,0));

 

var: _text("");

if value21 = 0 then _text = "條件不成立" else _text = "";

這樣當 value21 為0時 _text 會是 條件不成立 字串,其他狀況下則是空白字串。

發表回覆
Close