請教current drawdown指標的語法如何寫?

  •   290 
  • 最後發表   馬克A  2024 九月 03
馬克A 發文於   2024/09/02

想了解目前收盤價相對於歷史最高的收盤價的下滑幅度。

以下指標的寫法,出現{請檢查腳本算式是否有分母為零}的資訊?!

想詢問我的語法哪兒有問題?感謝~

setbackbar(2500);

setTotalBar(2501);

 

var: drawdown(0);

 

if close > highest(close , 2500) then value1 = close;

drawdown = (close - value1)/ value1 *100;

 

plot1(drawdown,"drawdown");

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

若 close > highest(close , 2500) 條件沒有符合,value1就不會被賦予數值,而是預設的零,所以會有除以零的錯誤。

請改成:

drawdown = (close - highest(close , 2500))/ highest(close , 2500) *100;

馬克A 發文於   2024/09/03

我這樣的寫法有個盲點,是高點發生在約2500天內的才成立,若是發生在十年前的可能就會Miss掉。
好奇是否有語法,可找出歷史最高的收盤價?

虎科大許教授 發文於   2024/09/03

在選股腳本可以使用GetFieldStartOffset("收盤價","D")抓到第一筆資料的相對位置。

value1=GetFieldStartOffset("收盤價","D");

歷史最高收盤價就是highest(close , value1+1)。

drawdown = (close - highest(close , value1+1))/ highest(close , value1+1) *100;

由於GetFieldStartOffset只能用在選股,而你用的是指標腳本(指標腳本裡面的value1都是0),因此可以先用選股腳本獲得(以台積電為例)value1是7593,再將此值寫入指標腳本計算歷史最高收盤價1080:

value2=simpleHighest(GetField("收盤價","D"),7594);

 

 

馬克A 發文於   2024/09/03

感謝老師無私分享。

發表回覆
Close