ETF即時折溢價百分比

  •   132 
  • 最後發表   egor  2026 五月 15
egor 發文於   2026/05/14

其實只要當這個ETF以及他對應的淨值計算就好了
但我一直不知道要怎麼抓到對應的淨值
例如我在0050打開這個指標,他就會自動對應到0050N給我一個值

求大神

排序方式: 標準 | 最新
虎科大許教授 發文於   2026/05/14

if symbol="0050.TW" then plot1(GetsymbolField("0050N.TW","收盤價"));

  • 按讚來自於
  • MK-10-15
egor 發文於   2026/05/14

謝謝您的回覆,

那請問我可以不要指定0050嗎?

就是假設我打開圖表示哪一檔ETF,就對應到這一檔ETF以及這檔ETF的淨值

然後計算折溢價

謝謝!

虎科大許教授 發文於   2026/05/14

那你就需要用Switch Case結構逐一判斷是哪一檔ETF,然後對應它的淨值。

  • 按讚來自於
  • MK-10-15
egor 發文於   2026/05/15

例如我標的是0050,我用Symbol 拿到該標的的代號(0050.TW),然後用leftstr取出前面4個自字串(0050),然後在自己加入 +"N.TW"
當作ETF的淨值的代號,我將它命名為navsymbol,所以應該會變成0050N.TW , 我再把這個放到GetsymbolField(navsymbol,"CLOSE") 但是它就會錯誤,讀不到第一個參數,再麻煩許教授了

variable: targetname("");   

targetname = Symbol;   

 

variable:navsymbol("");   

navsymbol = leftStr(targetname,4)+"N.TW";   

variable: closeprice(0),navprice(0); 

closeprice = close; 

navprice = GetsymbolField("0050N.TW","Close"); 

 

variable:premiumrate(0); 

if navprice <> 0 then

premiumrate = ((closeprice-navprice)/navprice)*100; 

 

 

 

 

plot1(premiumrate,"折溢價率%"); 

if premiumrate >0 then

setplotcolor(2,RGB(255,0,0))

else

 

setplotcolor(2,RGB(0,255,0)); 

 

虎科大許教授 發文於   2026/05/15

GetSymbolField的第一個參數只接受固定的字串參數字串常數。不接受變數。

發表回覆
Close