關於計算回檔角度與上漲角度腳本中的 "請增加 settotalbar 長度或減少腳本計算的資料長度" 錯誤訊息

  •   400 
  • 最後發表   愛用者  2024 十月 02
愛用者 發文於   2024/10/02

小編好、大家好,我目前正在使用以下腳本來觀察回檔角度與上漲角度,但遇到了「請增加 settotalbar 長度或減少腳本計算的資料長度」的錯誤訊息。但即使已將 `settotalbar` 設定為 300,程式碼本身也不長,仍然無法正常運行。

 

腳本摘要:settotalBar(300);

 

input: period(60);

 

var:ld(0),hd(0),ldprice(0),hdprice(0),nowprice(0);

 

var:slope1(0),slope2(0);

 

//取得區間最高價與最低價相對位置

 

hd=highestBar(high,period);

 

ld=lowestBar(low,hd);

 

//取得區間最高價、最低價、當前收盤價

 

ldprice=getfield("Low", "D", Adjusted:=true)[ld];

 

hdprice=getfield("high", "D", Adjusted:=true)[hd];

 

nowprice=getfield("close", "D", Adjusted:=true);

 

///記算斜率

 

//分母可能為0會造成錯誤,所以要寫以下式子

 

if (hd-ld) <> 0

 

     then slope1=(ldprice-hdprice)/hdprice*100/(hd-ld)

 

else if (hd-ld)=0 

 

     then slope1 = 0;

 

if ld <> 0 

 

      then slope2 = (nowprice - ldprice) / hdprice * 100 / ld

 

else if ld=0 

 

      then slope2 = 0; 

 

//把斜率轉成角度

 

value1=arcTangent(slope1);

 

value2=arcTangent(slope2);

 

plot1(value1,"回檔角度");

 

plot2(value2,"上漲角度");

 

 遇到的問題:

 

`ld = lowestBar(low, hd);` 這行程式碼會導致「請增加 settotalbar 長度或減少腳本計算的資料長度」的錯誤訊息。我已將 `settotalbar` 設為 300,但仍然出現該錯誤。

 

我的理解是,這行程式碼的目的是從 `hd` 計算的最高點之後,尋找該區間內的最低價,但不確定為什麼會導致該錯誤。

 

請問有沒有人遇到過類似問題,或知道這個錯誤訊息原因?非常感謝!

排序方式: 標準 | 最新
虎科大許教授 發文於   2024/10/02

hd=highestBar(high,period);

if hd>0 then

ld=lowestBar(low,hd);

愛用者 發文於   2024/10/02

感謝許教授熱心回答 請受小弟一拜 

小弟不太懂為什麼打了這行:if hd>0 then 就可以正確執行了

虎科大許教授 發文於   2024/10/02

當今天的最高價就是這60天最高價,則hd為零,lowestBar(low,0)會出錯。

愛用者 發文於   2024/10/02

非常感謝許教授的回覆,受益良多

發表回覆
Close