add last close to returns

This commit is contained in:
Emil Lerch 2026-03-21 13:06:04 -07:00
parent 5ffd9c1c8e
commit 926fb64362
Signed by: lobo
GPG key ID: A7B62D657EF764F8

View file

@ -65,6 +65,7 @@ fn handleHelp(_: *App, _: *httpz.Request, res: *httpz.Response) !void {
\\ GET /symbols List of tracked symbols
\\
\\Returns fields:
\\ lastClose Last closing price
\\ trailing{1,3,5,10}YearReturn Total return with dividend reinvestment
\\ price{1,3,5,10}YearReturn Price-only return (from adjusted close)
\\ volatility Longest-term available annualized volatility
@ -150,6 +151,8 @@ fn handleReturns(app: *App, req: *httpz.Request, res: *httpz.Response) !void {
return;
}
const last_close = candles[candles.len - 1].close;
// Price-only returns (from adjusted close)
const price_ret = zfin.performance.trailingReturns(candles);
var date_buf: [10]u8 = undefined;
@ -203,6 +206,7 @@ fn handleReturns(app: *App, req: *httpz.Request, res: *httpz.Response) !void {
\\<returns>
\\ <ticker>{s}</ticker>
\\ <returnDate>{s}</returnDate>
\\ <lastClose>{d:.2}</lastClose>
\\ <trailing1YearReturn>{s}</trailing1YearReturn>
\\ <trailing3YearReturn>{s}</trailing3YearReturn>
\\ <trailing5YearReturn>{s}</trailing5YearReturn>
@ -222,6 +226,7 @@ fn handleReturns(app: *App, req: *httpz.Request, res: *httpz.Response) !void {
, .{
symbol,
date_str,
last_close,
fmtPct(arena, t1y),
fmtPct(arena, t3y),
fmtPct(arena, t5y),
@ -243,10 +248,11 @@ fn handleReturns(app: *App, req: *httpz.Request, res: *httpz.Response) !void {
res.content_type = httpz.ContentType.JSON;
res.body = try std.fmt.allocPrint(arena,
\\{{"ticker":"{s}","returnDate":"{s}","trailing1YearReturn":{s},"trailing3YearReturn":{s},"trailing5YearReturn":{s},"trailing10YearReturn":{s},"price1YearReturn":{s},"price3YearReturn":{s},"price5YearReturn":{s},"price10YearReturn":{s},"volatility":{s},"volatilityTerm":{s},"volatility1Year":{s},"volatility3Year":{s},"volatility5Year":{s},"volatility10Year":{s}}}
\\{{"ticker":"{s}","returnDate":"{s}","lastClose":{d:.2},"trailing1YearReturn":{s},"trailing3YearReturn":{s},"trailing5YearReturn":{s},"trailing10YearReturn":{s},"price1YearReturn":{s},"price3YearReturn":{s},"price5YearReturn":{s},"price10YearReturn":{s},"volatility":{s},"volatilityTerm":{s},"volatility1Year":{s},"volatility3Year":{s},"volatility5Year":{s},"volatility10Year":{s}}}
, .{
symbol,
date_str,
last_close,
fmtPct(arena, t1y),
fmtPct(arena, t3y),
fmtPct(arena, t5y),