group使用lowest問題

  •   61 
  • 最後發表   Y0  2025 六月 25
Y0 發文於   2025/06/24

settotalBar(270);
var:g_size(0),i(0);
input: mygroup(group);
g_size=groupSize(mygroup);

if time>=120000 and time<132500 then begin
    for i=1 to g_size begin
        print(time,mygroup[i],getsymbolField(mygroup[i],"l"),lowest(getsymbolField(mygroup[i],"l"),10));
    end;
end;

 

使用一分鐘的警示腳本單次洗價方式去打印以前的資料,雖然group的每根最低價打印正確,但是想用lowest去取個別商品十分鐘內的最低價,那個價格卻對不上。

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/06/24

我測試一個只有兩檔商品的群組,確實發現Lowest函數在計算個別商品時,mygroup[2]抓到的數值都是mygroup[1]計算的數值,且數值也有問題。這部份RD那邊會查找原因。

XS小編 發文於   2025/06/25

Hello Y0,

 

這是因為lowest是用節省效能的方式撰寫所導致,由於lowest在比較時只會比較當下的數值和"前期值",故會受到前次運算的影響。

而該lowest是在計算清單商品,導致"前期值"會受到清單商品的影響而錯誤 (並非個別商品各自計算)。

建議您可以使用 simplelowest 作為替代。

發表回覆
Close