Skip to content
This repository was archived by the owner on Feb 10, 2026. It is now read-only.

Commit 83d0c59

Browse files
author
arylkou
committed
NOVA-689: fix nav_total_return and nav_discount_premium
1 parent 68e2360 commit 83d0c59

2 files changed

Lines changed: 16 additions & 5 deletions

File tree

links/etf.pine.link

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,16 @@ plot(aumPerf3Y, title="aum_perf.3Y")
7878
plot(aumPerf5Y, title="aum_perf.5Y")
7979
plot(aumPerfYTD, title="aum_perf.YTD")
8080

81+
// nav_total_return.<1M|3M|6M|YTD|1Y|3Y|5Y>
82+
navTotalReturns(finTicker) =>
83+
[navTotalReturn1M, navTotalReturn3M, navTotalReturn6M, navTotalReturn1Y, navTotalReturn3Y, navTotalReturn5Y, navTotalReturnYTD, timeClose, isLast] = request.security(finTicker, fundTF, [fundPerf(month1), fundPerf(month3), fundPerf(month6), fundPerf(years1), fundPerf(years3), fundPerf(years5), fundPerfYTD(), time_close, barstate.islast], lookahead = barmerge.lookahead_on, ignore_invalid_symbol=true)
84+
if isLast and time >= timeClose
85+
[na, na, na, na, na, na, na]
86+
else
87+
[navTotalReturn1M, navTotalReturn3M, navTotalReturn6M, navTotalReturn1Y, navTotalReturn3Y, navTotalReturn5Y, navTotalReturnYTD]
88+
8189
navAllTicker = __financial_tickerid(syminfo.tickerid, "NAV_ALL", "D")
82-
[navTotalReturn1M, navTotalReturn3M, navTotalReturn6M, navTotalReturn1Y, navTotalReturn3Y, navTotalReturn5Y, navTotalReturnYTD] = request.security(navAllTicker, fundTF, [fundPerf(month1), fundPerf(month3), fundPerf(month6), fundPerf(years1), fundPerf(years3), fundPerf(years5), fundPerfYTD()], ignore_invalid_symbol=true, gaps=barmerge.gaps_off)
90+
[navTotalReturn1M, navTotalReturn3M, navTotalReturn6M, navTotalReturn1Y, navTotalReturn3Y, navTotalReturn5Y, navTotalReturnYTD] = navTotalReturns(navAllTicker)
8391

8492
plot(navTotalReturn1M, title="nav_total_return.1M")
8593
plot(navTotalReturn3M, title="nav_total_return.3M")

links/nav_discount_premium.link

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@
22
symbolName = input.symbol("", title = "Symbol", confirm = false, __optional = true)
33
getSymbolName(symbol) => symbol == "" ? syminfo.tickerid : symbol
44
makeTicker(fund, symbol = "") => __financial_tickerid(getSymbolName(symbol), fund, "")
5+
getNAV(finTicker) =>
6+
[sec, timeClose, isLast] = request.security(finTicker, "D", [close, time_close, barstate.islast], lookahead = barmerge.lookahead_on, ignore_invalid_symbol=true)
7+
if isLast and time >= timeClose
8+
float(na)
9+
else
10+
sec
511
var finTicker = __financial_tickerid(getSymbolName(symbolName), "NAV", "D")
6-
nav = request.security(finTicker, "D", close, ignore_invalid_symbol=true, gaps=barmerge.gaps_on)
7-
var float nav_discount_premium = na
8-
if not na(nav)
9-
nav_discount_premium := ((close / nav) - 1) * 100
12+
nav_discount_premium = ((close / getNAV(finTicker)) - 1) * 100
1013
plot(nav_discount_premium, title = "nav_discount_premium")

0 commit comments

Comments
 (0)