diff --git a/src/main.zig b/src/main.zig index 18f8ec9..857ba4d 100644 --- a/src/main.zig +++ b/src/main.zig @@ -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 { \\ \\ {s} \\ {s} + \\ {d:.2} \\ {s} \\ {s} \\ {s} @@ -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),