第一筆變數結果不正確

  •   133 
  • 最後發表   SY  2020 四月 30
SY 發文於   2020/04/25

小幫手早:)

以下腳本 value2 的第一筆資料 value[20] 是錯的,因為 value1 只有 value1[20],value[19]...value[0], 但 value2 計算需用到 value1[21], 系統將之設為 0. 請問要如何避免此問題呢? 或是後續引用 value2 時,如何避開 value2[20] 這筆資料呢?

謝謝囉!

settotalbar(20);

variable: avg(0);

if avg=0 then avg=c;

value1=average(c,20)/avg;

value2=linearregangle(value1,2);

print(date,c,avg,value1,value2); //第一筆 value2 是錯的

排序方式: 標準 | 最新
XQ小幫手 發文於   2020/04/28

Hi SY

目前最建議的做法是將settotalbar(20)註解掉,藉由策略雷達版面的"資料筆數設定",去控制

可以直接使用預設的200筆,將資料運算的時間拉長,這樣就不會影響到後續的結果。

不過這樣使用不影響你後續的運算結果與判斷,理應是可以正常使用的。

不過小幫手也是有發現第一筆的運算狀況,確實有因為超出前一筆資料,被系統補0所致

小幫手會在與相關人員討論如何修正,謝謝。

SY 發文於   2020/04/29

依小幫手的建議將運算筆數拉長會產生的問題是畫圖時,有時縱座標易因第一筆錯誤資料造成 scale 失真。

關於上例 value2 引用 value1 進行計算,希望下一版改版 value1 會往前取資料計算,以提供 value2 正確的結果。

謝謝小幫手囉:)

XQ小幫手 發文於   2020/04/30

Hi  SY

小幫手猜想,為了避免這種情形,您可以在value2計算值之後加上以下語法

if value2 > 1 then return;

這樣就可以把第一筆給避掉了,請您先試試看,謝謝。

發表回覆
Close