You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: hourly tickers/klines downloads as Lastra/Parquet streams (0.2.0)
Two new SDK methods that wrap the binary endpoints introduced in
net.qtsurfer:api-client v0.1.2:
QTSurfer#tickers(exchangeId, base, quote, hour[, format]) -> InputStream
QTSurfer#klines (exchangeId, base, quote, hour[, format]) -> InputStream
The default wire format is Lastra (application/vnd.lastra) which streams
the raw QTSurfer columnar bytes; pass DownloadFormat.PARQUET for
on-the-fly Parquet conversion server-side. The returned InputStream is
caller-owned (use try-with-resources / Files.copy / a Lastra reader).
HTTP errors surface as QTSDownloadError, a new subclass of QTSError.
Both methods are unit-tested against an in-process com.sun.net.httpserver
(URL building, format query param, bearer auth header, error mapping to
QTSDownloadError).
Bump api-client dependency to v0.1.2 (ExchangeBinaryDownloads).
This release also formalizes the v0.2 domain-objects work that was
already on main but never tagged: Strategy/Backtest handles plus the
removal of internal staging URLs from the integration test default.
See CHANGELOG.md for the consolidated entry.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+23Lines changed: 23 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,6 +6,29 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
7
7
## [Unreleased]
8
8
9
+
## [0.2.0] — 2026-05-01
10
+
11
+
### Added
12
+
13
+
-**Domain objects (`Strategy`, `Backtest`):**
14
+
-`QTSurfer#compile(...)` returns a reusable `Strategy` handle that can launch multiple backtests.
15
+
-`Strategy#backtest(...)` returns a `Backtest` handle exposing `id()`, `state()`, `progress()` (a `Flow.Publisher<BacktestProgress>`), `await()`, and `cancel()`.
16
+
-`QTSurfer#backtest(request, options)` shortcut now composes `compile → backtest → await` over the new objects.
17
+
-**Hourly tickers/klines downloads:**
18
+
-`QTSurfer#tickers(exchangeId, base, quote, hour[, format])` and `QTSurfer#klines(...)` — stream one hour of raw tickers or klines as `InputStream`.
19
+
-`DownloadFormat` enum (`LASTRA` default, `PARQUET` for on-the-fly conversion).
20
+
-`QTSDownloadError` (subclass of `QTSError`) — surfaced when the download fails (HTTP 4xx/5xx, transport error).
21
+
22
+
### Changed
23
+
24
+
-`api-client` dependency bumped to `v0.1.2` (adds `ExchangeBinaryDownloads`).
25
+
- Internal `Backtest` workflow class renamed to `BacktestWorkflow` to free the public `Backtest` name for the new domain handle.
26
+
27
+
### Removed
28
+
29
+
- Hardcoded staging URL from the integration test default; `QTSURFER_API_URL` is now required alongside `JWT_API_TOKEN` (the test skips when either is absent).
30
+
- Javadoc and README examples use the public domain (`api.qtsurfer.com`) instead of internal/staging URLs.
0 commit comments