@qtsurfer/api-client 0.15.0 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +885 -36
- package/dist/index.js +136 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/generated/schemas.gen.ts +723 -16
- package/src/generated/sdk.gen.ts +396 -15
- package/src/generated/types.gen.ts +773 -20
package/dist/index.d.ts
CHANGED
|
@@ -96,6 +96,107 @@ type HalLink = {
|
|
|
96
96
|
*/
|
|
97
97
|
templated?: boolean;
|
|
98
98
|
};
|
|
99
|
+
/**
|
|
100
|
+
* Your identity and tier limits. No database call behind this one — safe to fetch on every
|
|
101
|
+
* page load. Live usage against these limits is a separate resource, `GET /account/usage`,
|
|
102
|
+
* deliberately: usage changes on every upload/execution and costs a query to compute, this
|
|
103
|
+
* one doesn't.
|
|
104
|
+
*
|
|
105
|
+
*/
|
|
106
|
+
type Account = {
|
|
107
|
+
/**
|
|
108
|
+
* Your account id — the JWT `sub` claim.
|
|
109
|
+
*/
|
|
110
|
+
userId: string;
|
|
111
|
+
/**
|
|
112
|
+
* Your current subscription tier.
|
|
113
|
+
*/
|
|
114
|
+
tier: string;
|
|
115
|
+
/**
|
|
116
|
+
* Maximum number of active datasets your tier allows.
|
|
117
|
+
*/
|
|
118
|
+
maxDatasets: number;
|
|
119
|
+
/**
|
|
120
|
+
* Maximum size, in bytes, of a single dataset version.
|
|
121
|
+
*/
|
|
122
|
+
maxDatasetBytes: number;
|
|
123
|
+
/**
|
|
124
|
+
* Maximum combined storage, in bytes, across every dataset, strategy-execution signal,
|
|
125
|
+
* and registered strategy on your account — one shared pool, not a separate cap per
|
|
126
|
+
* resource type, since they all compete for the same underlying storage. See `GET
|
|
127
|
+
* /account/usage`'s `storageBytesUsed` for your current usage against this number.
|
|
128
|
+
*
|
|
129
|
+
*/
|
|
130
|
+
maxTotalStorageBytes: number;
|
|
131
|
+
_links: AccountLinks;
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* HAL `_links` for `GET /account`
|
|
135
|
+
*/
|
|
136
|
+
type AccountLinks = {
|
|
137
|
+
/**
|
|
138
|
+
* Link to this resource.
|
|
139
|
+
*/
|
|
140
|
+
self: HalLink;
|
|
141
|
+
/**
|
|
142
|
+
* Link to your live usage, `GET /account/usage`.
|
|
143
|
+
*/
|
|
144
|
+
usage: HalLink;
|
|
145
|
+
};
|
|
146
|
+
/**
|
|
147
|
+
* Your live usage of the shared storage pool `GET /account`'s `maxTotalStorageBytes` caps.
|
|
148
|
+
* Not guaranteed real-time — a just-completed upload or strategy execution may take a short
|
|
149
|
+
* moment to be reflected here.
|
|
150
|
+
*
|
|
151
|
+
*/
|
|
152
|
+
type AccountUsage = {
|
|
153
|
+
/**
|
|
154
|
+
* Active datasets counted — the same set `GET /account`'s `maxDatasets` limits.
|
|
155
|
+
*/
|
|
156
|
+
datasetsUsed: number;
|
|
157
|
+
/**
|
|
158
|
+
* Combined bytes of every active dataset's current version.
|
|
159
|
+
*/
|
|
160
|
+
datasetBytesUsed: number;
|
|
161
|
+
/**
|
|
162
|
+
* Recorded strategy-execution signal uploads.
|
|
163
|
+
*/
|
|
164
|
+
signalsUsed: number;
|
|
165
|
+
/**
|
|
166
|
+
* Combined bytes of every recorded signal upload.
|
|
167
|
+
*/
|
|
168
|
+
signalBytesUsed: number;
|
|
169
|
+
/**
|
|
170
|
+
* Registered strategies (see `GET /strategies`).
|
|
171
|
+
*/
|
|
172
|
+
strategiesUsed: number;
|
|
173
|
+
/**
|
|
174
|
+
* Combined bytes of each registered strategy's source plus its latest compiled
|
|
175
|
+
* bytecode. Superseded (non-latest) compilations aren't counted.
|
|
176
|
+
*
|
|
177
|
+
*/
|
|
178
|
+
strategyBytesUsed: number;
|
|
179
|
+
/**
|
|
180
|
+
* `datasetBytesUsed + signalBytesUsed + strategyBytesUsed` — the number checked
|
|
181
|
+
* against `GET /account`'s `maxTotalStorageBytes`.
|
|
182
|
+
*
|
|
183
|
+
*/
|
|
184
|
+
storageBytesUsed: number;
|
|
185
|
+
_links: AccountUsageLinks;
|
|
186
|
+
};
|
|
187
|
+
/**
|
|
188
|
+
* HAL `_links` for `GET /account/usage`
|
|
189
|
+
*/
|
|
190
|
+
type AccountUsageLinks = {
|
|
191
|
+
/**
|
|
192
|
+
* Link to this resource.
|
|
193
|
+
*/
|
|
194
|
+
self: HalLink;
|
|
195
|
+
/**
|
|
196
|
+
* Link to your tier limits, `GET /account`.
|
|
197
|
+
*/
|
|
198
|
+
account: HalLink;
|
|
199
|
+
};
|
|
99
200
|
/**
|
|
100
201
|
* Exchange instrument with per-data-type coverage and market info
|
|
101
202
|
*/
|
|
@@ -171,8 +272,17 @@ type Exchange = {
|
|
|
171
272
|
};
|
|
172
273
|
/**
|
|
173
274
|
* Managed exchange data sources available for backtesting.
|
|
275
|
+
*
|
|
276
|
+
* * `ticker` — trades. Can be prepared, executed and swept.
|
|
277
|
+
* * `kline` — aggregated bars (candlesticks). Can be prepared, executed and swept. A run reads
|
|
278
|
+
* bars of the `cadence` the data was prepared at: you choose the bar width when you prepare,
|
|
279
|
+
* and the strategy does not fix it. See `PrepareRequest.cadence` for the accepted values.
|
|
280
|
+
* * `funding` — funding rates. Can be **prepared but not executed or swept yet**: a `funding`
|
|
281
|
+
* request to `execute` or `executeSweep` is rejected with `400` before anything is queued,
|
|
282
|
+
* and the message names the sources that can be run.
|
|
283
|
+
*
|
|
174
284
|
*/
|
|
175
|
-
type DataSourceType = "ticker";
|
|
285
|
+
type DataSourceType = "ticker" | "kline" | "funding";
|
|
176
286
|
/**
|
|
177
287
|
* Two shapes, chosen by the `exchangeId` path segment. Against a managed exchange,
|
|
178
288
|
* `instrument` is required and `datasetId`/`datasetVersionId` are ignored. Against the
|
|
@@ -221,9 +331,14 @@ type PrepareRequest = {
|
|
|
221
331
|
* than the source, or not an exact multiple of it, returns `400`. What's accepted, and
|
|
222
332
|
* what omitting it means, depends on the source:
|
|
223
333
|
*
|
|
224
|
-
* * Managed exchange — one of `1s`, `5s`, `1m`, `3m`, `5m`, `15m`,
|
|
225
|
-
* `4h`, `8h`, `12h`, `1d`, `1w`, `1q`; any other label returns `400`.
|
|
226
|
-
* the publisher's native cadence.
|
|
334
|
+
* * Managed exchange, `ticker` or `funding` — one of `1s`, `5s`, `1m`, `3m`, `5m`, `15m`,
|
|
335
|
+
* `30m`, `1h`, `2h`, `4h`, `8h`, `12h`, `1d`, `1w`, `1q`; any other label returns `400`.
|
|
336
|
+
* Omitted = `1s`, the publisher's native cadence.
|
|
337
|
+
* * Managed exchange, `kline` — one of `1s`, `1m`, `5m`, `15m`, `30m`, `1h`, `4h`, `1d`;
|
|
338
|
+
* any other label, including `5s`, `3m` and `8h`, returns `400` and names the accepted
|
|
339
|
+
* ones. Omitted = `1s`. This is the width of the bars a run reads: it is chosen here,
|
|
340
|
+
* once, and the same strategy can be run at several cadences by preparing the range at
|
|
341
|
+
* each.
|
|
227
342
|
* * Dataset (`exchangeId: user`) — omitted = the dataset version's own discovered
|
|
228
343
|
* `cadence` (see `DatasetVersion.cadence`), served as-is. Any cadence equal to or
|
|
229
344
|
* coarser than it and an exact multiple of it is accepted, including ones outside the
|
|
@@ -944,8 +1059,9 @@ type EquityCurveResult = {
|
|
|
944
1059
|
};
|
|
945
1060
|
/**
|
|
946
1061
|
* Unique identifier for a compiled strategy, derived from the source itself: the same code
|
|
947
|
-
* always yields the same id, for every caller
|
|
948
|
-
* `POST /strategy` for exactly which rewrites preserve it and which do
|
|
1062
|
+
* always yields the same id, for every caller. How much formatting the id ignores depends on
|
|
1063
|
+
* the language — see `POST /strategy` for exactly which rewrites preserve it and which do
|
|
1064
|
+
* not.
|
|
949
1065
|
*
|
|
950
1066
|
*/
|
|
951
1067
|
type StrategyId = string;
|
|
@@ -1117,9 +1233,10 @@ type StrategyState = {
|
|
|
1117
1233
|
* A dataset's own metadata — not its data. `currentVersionId` is what a prepare against
|
|
1118
1234
|
* `exchangeId: user` reads by default; see `DatasetVersion` for what a version carries.
|
|
1119
1235
|
*
|
|
1120
|
-
* `from`/`to`/`cadence` mirror that
|
|
1121
|
-
*
|
|
1122
|
-
*
|
|
1236
|
+
* `from`/`to`/`cadence`/`timestampUnit`/`bytes`/`rows`/`gaps`/`largestGapSteps` mirror that
|
|
1237
|
+
* current version's own discovered range, cadence, timestamp unit and metrics, so you don't
|
|
1238
|
+
* need a second call to `GET /datasets/{datasetId}/uploads/{uploadId}` just to see what a
|
|
1239
|
+
* dataset covers.
|
|
1123
1240
|
*
|
|
1124
1241
|
*/
|
|
1125
1242
|
type Dataset = {
|
|
@@ -1171,6 +1288,47 @@ type Dataset = {
|
|
|
1171
1288
|
*
|
|
1172
1289
|
*/
|
|
1173
1290
|
cadence?: string;
|
|
1291
|
+
/**
|
|
1292
|
+
* `currentVersionId`'s own timestamp unit (see `DatasetVersion.timestampUnit`) — decode
|
|
1293
|
+
* the `timestamp` column of `dataUrl`'s file accordingly. Present only when `status` is
|
|
1294
|
+
* `ready`.
|
|
1295
|
+
*
|
|
1296
|
+
*/
|
|
1297
|
+
timestampUnit?: "iso" | "s" | "ms" | "us";
|
|
1298
|
+
/**
|
|
1299
|
+
* * `ready` — `currentVersionId` is set; `from`/`to`/`cadence`/`bytes`/`rows`/`gaps`/
|
|
1300
|
+
* `largestGapSteps` describe it.
|
|
1301
|
+
* * `failed` — the most recent upload/import attempt failed. `currentVersionId` and the
|
|
1302
|
+
* fields above are absent — there is nothing to read yet. See `error`.
|
|
1303
|
+
* * `pending` — nothing has ever been attempted (just created, or an upload was never
|
|
1304
|
+
* finalized).
|
|
1305
|
+
*
|
|
1306
|
+
*/
|
|
1307
|
+
status: "ready" | "failed" | "pending";
|
|
1308
|
+
/**
|
|
1309
|
+
* Size of `currentVersionId`'s own stored file. Present only when `status` is `ready` —
|
|
1310
|
+
* see `DatasetVersion.bytes` for what it measures exactly.
|
|
1311
|
+
*
|
|
1312
|
+
*/
|
|
1313
|
+
bytes?: number;
|
|
1314
|
+
/**
|
|
1315
|
+
* `currentVersionId`'s own row count. Present only when `status` is `ready`.
|
|
1316
|
+
*/
|
|
1317
|
+
rows?: number;
|
|
1318
|
+
/**
|
|
1319
|
+
* `currentVersionId`'s own gap count at its discovered cadence. Present only when `status` is `ready`.
|
|
1320
|
+
*/
|
|
1321
|
+
gaps?: number;
|
|
1322
|
+
/**
|
|
1323
|
+
* `currentVersionId`'s own largest gap, in units of its discovered cadence step. Present only when `status` is `ready`.
|
|
1324
|
+
*/
|
|
1325
|
+
largestGapSteps?: number;
|
|
1326
|
+
/**
|
|
1327
|
+
* A human-readable reason the most recent upload/import attempt failed. Present only
|
|
1328
|
+
* when `status` is `failed`.
|
|
1329
|
+
*
|
|
1330
|
+
*/
|
|
1331
|
+
error?: string;
|
|
1174
1332
|
};
|
|
1175
1333
|
/**
|
|
1176
1334
|
* A `Dataset` plus a self link. Returned by `GET /datasets/{datasetId}`.
|
|
@@ -1188,8 +1346,9 @@ type DatasetWithLinks = Dataset & {
|
|
|
1188
1346
|
/**
|
|
1189
1347
|
* Which format `dataUrl` is actually in — check this rather than assuming it
|
|
1190
1348
|
* matches how you uploaded it. `lastra` — our native columnar format — for a CSV (or
|
|
1191
|
-
* gzip/zip of one) upload, always converted on ingest
|
|
1192
|
-
*
|
|
1349
|
+
* gzip/zip of one) upload, always converted on ingest, or for a lastra upload,
|
|
1350
|
+
* stored as-is (the value alone doesn't tell you which). `parquet` for a parquet
|
|
1351
|
+
* upload, also stored as-is today.
|
|
1193
1352
|
*
|
|
1194
1353
|
*/
|
|
1195
1354
|
dataFormat?: "lastra" | "parquet";
|
|
@@ -1306,8 +1465,9 @@ type DatasetVersion = {
|
|
|
1306
1465
|
/**
|
|
1307
1466
|
* Which format `dataUrl` is actually in — check this rather than assuming it matches
|
|
1308
1467
|
* how you uploaded it. `lastra` — our native columnar format — for a CSV (or gzip/zip
|
|
1309
|
-
* of one) upload, always converted on ingest
|
|
1310
|
-
*
|
|
1468
|
+
* of one) upload, always converted on ingest, or for a lastra upload, stored as-is
|
|
1469
|
+
* (the value alone doesn't tell you which). `parquet` for a parquet upload, also
|
|
1470
|
+
* stored as-is today.
|
|
1311
1471
|
*
|
|
1312
1472
|
*/
|
|
1313
1473
|
dataFormat?: "lastra" | "parquet";
|
|
@@ -1518,6 +1678,239 @@ type AuthTokenError = {
|
|
|
1518
1678
|
*/
|
|
1519
1679
|
message: string;
|
|
1520
1680
|
};
|
|
1681
|
+
/**
|
|
1682
|
+
* One market feed a live run consumes. Exactly one entry per run today.
|
|
1683
|
+
*/
|
|
1684
|
+
type LiveSource = {
|
|
1685
|
+
/**
|
|
1686
|
+
* Venue category. `cx` (centralized exchange) is the only one live runs support today.
|
|
1687
|
+
*/
|
|
1688
|
+
venueType: string;
|
|
1689
|
+
exchange: string;
|
|
1690
|
+
segment: string;
|
|
1691
|
+
/**
|
|
1692
|
+
* Both `ticker` and `kline` connect to the lightest (fastest) cadence available for the exchange — today, 1 tick/second on every supported exchange. Choosing a specific cadence is not offered yet.
|
|
1693
|
+
*/
|
|
1694
|
+
type: "ticker" | "kline";
|
|
1695
|
+
/**
|
|
1696
|
+
* Instrument symbols, or `["*"]` for every instrument the exchange/segment offers (tier-gated).
|
|
1697
|
+
*/
|
|
1698
|
+
instruments: Array<string>;
|
|
1699
|
+
};
|
|
1700
|
+
type StartLiveRequest = {
|
|
1701
|
+
sources: [LiveSource];
|
|
1702
|
+
/**
|
|
1703
|
+
* Strategy parameters to start with. Opaque key/value pairs — see this strategy's own `declaredProperties` (from `POST /strategy`) for the keys it accepts.
|
|
1704
|
+
*/
|
|
1705
|
+
params?: {
|
|
1706
|
+
[key: string]: unknown;
|
|
1707
|
+
};
|
|
1708
|
+
/**
|
|
1709
|
+
* A `public` run appears in `GET /live/public` and its signal channel accepts subscriptions from anyone, not only you.
|
|
1710
|
+
*/
|
|
1711
|
+
visibility?: "private" | "public";
|
|
1712
|
+
/**
|
|
1713
|
+
* Request that this run's signals be relayed over its WebSocket channel once it reaches the `live` stage — see the "Live execution" guide. Has no effect while the run is still in the `sandbox` stage, regardless of this value.
|
|
1714
|
+
*/
|
|
1715
|
+
relay?: boolean;
|
|
1716
|
+
name?: string;
|
|
1717
|
+
description?: string;
|
|
1718
|
+
};
|
|
1719
|
+
type UpdateLiveRequest = {
|
|
1720
|
+
visibility?: "private" | "public";
|
|
1721
|
+
name?: string;
|
|
1722
|
+
description?: string;
|
|
1723
|
+
};
|
|
1724
|
+
type UpdateLiveParamsRequest = {
|
|
1725
|
+
/**
|
|
1726
|
+
* Must be non-empty; every key must be a property your strategy declares.
|
|
1727
|
+
*/
|
|
1728
|
+
params: {
|
|
1729
|
+
[key: string]: unknown;
|
|
1730
|
+
};
|
|
1731
|
+
};
|
|
1732
|
+
/**
|
|
1733
|
+
* A live run's full state, as returned by starting, reading, or stopping it through its strategy.
|
|
1734
|
+
*/
|
|
1735
|
+
type LiveRun = {
|
|
1736
|
+
strategyId: StrategyId;
|
|
1737
|
+
/**
|
|
1738
|
+
* This run's own id — its canonical identity for `PATCH`/`PUT .../params` and for `GET /live/public`.
|
|
1739
|
+
*/
|
|
1740
|
+
runId: string;
|
|
1741
|
+
name?: string;
|
|
1742
|
+
description?: string;
|
|
1743
|
+
visibility: "private" | "public";
|
|
1744
|
+
/**
|
|
1745
|
+
* A new run always starts `SANDBOX` — a trial run compared against a second execution for agreement — and moves to `LIVE` once it passes.
|
|
1746
|
+
*/
|
|
1747
|
+
stage: "SANDBOX" | "LIVE";
|
|
1748
|
+
/**
|
|
1749
|
+
* `STARTING` until first observed running; otherwise the runner's own reported state (e.g. `RUNNING`).
|
|
1750
|
+
*/
|
|
1751
|
+
state: string;
|
|
1752
|
+
/**
|
|
1753
|
+
* What you last asked for. `state` can lag this briefly after `DELETE`.
|
|
1754
|
+
*/
|
|
1755
|
+
desired: "RUNNING" | "STOPPED";
|
|
1756
|
+
/**
|
|
1757
|
+
* Present only when the run stopped because it exceeded its resource allowance.
|
|
1758
|
+
*/
|
|
1759
|
+
reason?: string;
|
|
1760
|
+
sources: Array<LiveSource>;
|
|
1761
|
+
params: {
|
|
1762
|
+
[key: string]: unknown;
|
|
1763
|
+
};
|
|
1764
|
+
/**
|
|
1765
|
+
* Increments on every accepted `PUT .../params` call, including one that resends the current values.
|
|
1766
|
+
*/
|
|
1767
|
+
paramsVersion: number;
|
|
1768
|
+
/**
|
|
1769
|
+
* Whether this run's signals are being relayed over the WebSocket channel described in the "Live execution" guide, right now. This is the effective value — `false` on a `sandbox` run regardless of what was requested at start; matches the requested value once `stage` reaches `live`.
|
|
1770
|
+
*/
|
|
1771
|
+
relay: boolean;
|
|
1772
|
+
/**
|
|
1773
|
+
* Epoch milliseconds.
|
|
1774
|
+
*/
|
|
1775
|
+
startedAtMs: number;
|
|
1776
|
+
/**
|
|
1777
|
+
* The sandbox trial's promotion verdict, once one exists. Shape is not yet stabilized as public API — treat as opaque diagnostics.
|
|
1778
|
+
*/
|
|
1779
|
+
gate?: {
|
|
1780
|
+
[key: string]: unknown;
|
|
1781
|
+
};
|
|
1782
|
+
};
|
|
1783
|
+
/**
|
|
1784
|
+
* A run's state as returned by `PATCH /live/{runId}` — narrower than `LiveRun` (no `strategyId`, `params`, or `desired`), since this endpoint is addressed by `runId` alone.
|
|
1785
|
+
*/
|
|
1786
|
+
type LiveRunCompact = {
|
|
1787
|
+
runId: string;
|
|
1788
|
+
name?: string;
|
|
1789
|
+
description?: string;
|
|
1790
|
+
visibility: "private" | "public";
|
|
1791
|
+
stage: "SANDBOX" | "LIVE";
|
|
1792
|
+
state: string;
|
|
1793
|
+
sources: Array<LiveSource>;
|
|
1794
|
+
};
|
|
1795
|
+
/**
|
|
1796
|
+
* A run as it appears in `GET /live/public` — never reveals who owns it or which strategy it runs.
|
|
1797
|
+
*/
|
|
1798
|
+
type PublicLiveRun = {
|
|
1799
|
+
runId: string;
|
|
1800
|
+
name?: string;
|
|
1801
|
+
description?: string;
|
|
1802
|
+
sources: Array<LiveSource>;
|
|
1803
|
+
state: string;
|
|
1804
|
+
createdAtMs: number;
|
|
1805
|
+
};
|
|
1806
|
+
type PublicLiveListResponse = {
|
|
1807
|
+
runs: Array<PublicLiveRun>;
|
|
1808
|
+
_links?: PublicLiveListLinks;
|
|
1809
|
+
};
|
|
1810
|
+
/**
|
|
1811
|
+
* Present only when another page exists.
|
|
1812
|
+
*/
|
|
1813
|
+
type PublicLiveListLinks = {
|
|
1814
|
+
next?: PublicLiveNextLink;
|
|
1815
|
+
};
|
|
1816
|
+
type PublicLiveNextLink = {
|
|
1817
|
+
href?: string;
|
|
1818
|
+
};
|
|
1819
|
+
/**
|
|
1820
|
+
* One page of a run's recorded signals, oldest first.
|
|
1821
|
+
*/
|
|
1822
|
+
type LiveSignalPage = {
|
|
1823
|
+
signals: Array<LiveSignal>;
|
|
1824
|
+
/**
|
|
1825
|
+
* The oldest moment this run's signals can still be read from. Absent when the run has produced nothing yet. It moves forward over time as older signals are discarded, so a `sinceMs` earlier than this is served from here instead.
|
|
1826
|
+
*/
|
|
1827
|
+
availableSinceMs?: number;
|
|
1828
|
+
_links?: PublicLiveListLinks;
|
|
1829
|
+
};
|
|
1830
|
+
/**
|
|
1831
|
+
* One signal, in the same shape the real-time signal channel delivers.
|
|
1832
|
+
*/
|
|
1833
|
+
type LiveSignal = {
|
|
1834
|
+
/**
|
|
1835
|
+
* Envelope schema version.
|
|
1836
|
+
*/
|
|
1837
|
+
v: number;
|
|
1838
|
+
/**
|
|
1839
|
+
* Stable id for this exact signal — dedupe on it across reconnects or overlapping reads.
|
|
1840
|
+
*/
|
|
1841
|
+
signalId: string;
|
|
1842
|
+
runId: string;
|
|
1843
|
+
/**
|
|
1844
|
+
* The stage the run was in when this signal was produced.
|
|
1845
|
+
*/
|
|
1846
|
+
stage: "sandbox" | "live";
|
|
1847
|
+
/**
|
|
1848
|
+
* The parameter set in force when this signal was produced.
|
|
1849
|
+
*/
|
|
1850
|
+
paramsVersion?: number;
|
|
1851
|
+
type: "hint" | "info" | "marker" | "command";
|
|
1852
|
+
/**
|
|
1853
|
+
* `BUY`/`SELL` for a `hint`, the command name for a `command`, absent otherwise.
|
|
1854
|
+
*/
|
|
1855
|
+
kind?: string | null;
|
|
1856
|
+
/**
|
|
1857
|
+
* Market time the signal was produced.
|
|
1858
|
+
*/
|
|
1859
|
+
eventTsMs: number;
|
|
1860
|
+
/**
|
|
1861
|
+
* Time it was published — always at or after `eventTsMs`.
|
|
1862
|
+
*/
|
|
1863
|
+
emittedAtMs: number;
|
|
1864
|
+
instrument: LiveSignalInstrument;
|
|
1865
|
+
order?: LiveSignalOrder;
|
|
1866
|
+
/**
|
|
1867
|
+
* The signal's own free-form payload.
|
|
1868
|
+
*/
|
|
1869
|
+
data?: {
|
|
1870
|
+
[key: string]: unknown;
|
|
1871
|
+
};
|
|
1872
|
+
/**
|
|
1873
|
+
* `true` only for a signal republished to fill a gap in the record.
|
|
1874
|
+
*/
|
|
1875
|
+
regenerated?: boolean;
|
|
1876
|
+
/**
|
|
1877
|
+
* Content hash, for checking that two independent deliveries of the same signal agree.
|
|
1878
|
+
*/
|
|
1879
|
+
digest: string;
|
|
1880
|
+
};
|
|
1881
|
+
type LiveSignalInstrument = {
|
|
1882
|
+
exchange?: string;
|
|
1883
|
+
segment?: string;
|
|
1884
|
+
/**
|
|
1885
|
+
* Slashed form, e.g. `BTC/USDT`.
|
|
1886
|
+
*/
|
|
1887
|
+
symbol?: string;
|
|
1888
|
+
};
|
|
1889
|
+
/**
|
|
1890
|
+
* Present only for a `hint`.
|
|
1891
|
+
*/
|
|
1892
|
+
type LiveSignalOrder = {
|
|
1893
|
+
orderKind?: string;
|
|
1894
|
+
price?: string | null;
|
|
1895
|
+
amount?: string | null;
|
|
1896
|
+
stopPrice?: string | null;
|
|
1897
|
+
trailPct?: string | null;
|
|
1898
|
+
} | null;
|
|
1899
|
+
type LiveConnectionToken = {
|
|
1900
|
+
/**
|
|
1901
|
+
* Pass as the `token` field of the WebSocket `connect` command — see the "Live execution" guide.
|
|
1902
|
+
*/
|
|
1903
|
+
token: string;
|
|
1904
|
+
expiresAtMs: number;
|
|
1905
|
+
};
|
|
1906
|
+
type LiveParamsUpdateResult = {
|
|
1907
|
+
runId: string;
|
|
1908
|
+
paramsVersion: number;
|
|
1909
|
+
/**
|
|
1910
|
+
* Epoch milliseconds — the earliest moment the new values are guaranteed to be in effect.
|
|
1911
|
+
*/
|
|
1912
|
+
effectiveAtMs: number;
|
|
1913
|
+
};
|
|
1521
1914
|
type AuthenticateData = {
|
|
1522
1915
|
body?: never;
|
|
1523
1916
|
path?: never;
|
|
@@ -1542,6 +1935,32 @@ type AuthenticateResponses = {
|
|
|
1542
1935
|
200: AuthTokenResponse;
|
|
1543
1936
|
};
|
|
1544
1937
|
type AuthenticateResponse = AuthenticateResponses[keyof AuthenticateResponses];
|
|
1938
|
+
type GetAccountData = {
|
|
1939
|
+
body?: never;
|
|
1940
|
+
path?: never;
|
|
1941
|
+
query?: never;
|
|
1942
|
+
url: "/account";
|
|
1943
|
+
};
|
|
1944
|
+
type GetAccountResponses = {
|
|
1945
|
+
/**
|
|
1946
|
+
* Your account
|
|
1947
|
+
*/
|
|
1948
|
+
200: Account;
|
|
1949
|
+
};
|
|
1950
|
+
type GetAccountResponse = GetAccountResponses[keyof GetAccountResponses];
|
|
1951
|
+
type GetAccountUsageData = {
|
|
1952
|
+
body?: never;
|
|
1953
|
+
path?: never;
|
|
1954
|
+
query?: never;
|
|
1955
|
+
url: "/account/usage";
|
|
1956
|
+
};
|
|
1957
|
+
type GetAccountUsageResponses = {
|
|
1958
|
+
/**
|
|
1959
|
+
* Your current usage
|
|
1960
|
+
*/
|
|
1961
|
+
200: AccountUsage;
|
|
1962
|
+
};
|
|
1963
|
+
type GetAccountUsageResponse = GetAccountUsageResponses[keyof GetAccountUsageResponses];
|
|
1545
1964
|
type ListExchangesData = {
|
|
1546
1965
|
body?: never;
|
|
1547
1966
|
path?: never;
|
|
@@ -1743,7 +2162,7 @@ type ListStrategiesResponses = {
|
|
|
1743
2162
|
type ListStrategiesResponse = ListStrategiesResponses[keyof ListStrategiesResponses];
|
|
1744
2163
|
type CompileStrategyData = {
|
|
1745
2164
|
/**
|
|
1746
|
-
* Raw strategy Java
|
|
2165
|
+
* Raw strategy source code, Java or QTScript
|
|
1747
2166
|
*/
|
|
1748
2167
|
body: string;
|
|
1749
2168
|
path?: never;
|
|
@@ -1752,7 +2171,8 @@ type CompileStrategyData = {
|
|
|
1752
2171
|
};
|
|
1753
2172
|
type CompileStrategyErrors = {
|
|
1754
2173
|
/**
|
|
1755
|
-
* The source is not valid
|
|
2174
|
+
* The source is not valid; the message carries the diagnostics — the compiler's for Java,
|
|
2175
|
+
* and for QTScript `Line N, Column M:` entries against your own source. Nothing is
|
|
1756
2176
|
* registered, so there is no id to look up afterwards.
|
|
1757
2177
|
*
|
|
1758
2178
|
*/
|
|
@@ -1893,7 +2313,7 @@ type GetStrategyCodeResponses = {
|
|
|
1893
2313
|
200: {
|
|
1894
2314
|
strategyId: StrategyId;
|
|
1895
2315
|
/**
|
|
1896
|
-
* Raw strategy Java
|
|
2316
|
+
* Raw strategy source code (Java or QTScript), exactly as registered.
|
|
1897
2317
|
*/
|
|
1898
2318
|
code: string;
|
|
1899
2319
|
};
|
|
@@ -1922,7 +2342,9 @@ type PrepareBacktestData = {
|
|
|
1922
2342
|
type PrepareBacktestErrors = {
|
|
1923
2343
|
/**
|
|
1924
2344
|
* Invalid request or parameters. Also returned when `from` is older than the configured
|
|
1925
|
-
* lookback window or `to` is in the future
|
|
2345
|
+
* lookback window or `to` is in the future, or when `type` is `kline` and `cadence` is not
|
|
2346
|
+
* one of the cadences kline data is available at (the message lists them). For
|
|
2347
|
+
* `exchangeId: user`, also returned when
|
|
1926
2348
|
* the dataset's current upload has not finished ingesting, or `cadence` asks for a finer
|
|
1927
2349
|
* granularity than the dataset's own discovered cadence (or one that isn't an exact
|
|
1928
2350
|
* multiple of it), or the requested range exceeds your tier's range limit.
|
|
@@ -2005,7 +2427,9 @@ type ExecuteSweepData = {
|
|
|
2005
2427
|
};
|
|
2006
2428
|
type ExecuteSweepErrors = {
|
|
2007
2429
|
/**
|
|
2008
|
-
* Invalid sweep specification
|
|
2430
|
+
* Invalid sweep specification, a `type` that cannot be swept yet (`funding`), or the
|
|
2431
|
+
* expanded grid exceeds the server limit.
|
|
2432
|
+
*
|
|
2009
2433
|
*/
|
|
2010
2434
|
400: ResponseError;
|
|
2011
2435
|
/**
|
|
@@ -2239,7 +2663,9 @@ type ExecuteBacktestData = {
|
|
|
2239
2663
|
};
|
|
2240
2664
|
type ExecuteBacktestErrors = {
|
|
2241
2665
|
/**
|
|
2242
|
-
* Invalid request or parameters
|
|
2666
|
+
* Invalid request or parameters. Also returned for a `type` that cannot be executed yet
|
|
2667
|
+
* (`funding`); the message names the sources that can.
|
|
2668
|
+
*
|
|
2243
2669
|
*/
|
|
2244
2670
|
400: ResponseError;
|
|
2245
2671
|
/**
|
|
@@ -2504,6 +2930,12 @@ type FinalizeDatasetUploadErrors = {
|
|
|
2504
2930
|
* The uploaded file exceeds your tier's size limit for a dataset.
|
|
2505
2931
|
*/
|
|
2506
2932
|
413: ResponseError;
|
|
2933
|
+
/**
|
|
2934
|
+
* Your account's total storage limit (`GET /account`'s `maxTotalStorageBytes`) is
|
|
2935
|
+
* reached or would be exceeded. Delete a dataset to free space, or upgrade.
|
|
2936
|
+
*
|
|
2937
|
+
*/
|
|
2938
|
+
429: ResponseError;
|
|
2507
2939
|
};
|
|
2508
2940
|
type FinalizeDatasetUploadError = FinalizeDatasetUploadErrors[keyof FinalizeDatasetUploadErrors];
|
|
2509
2941
|
type FinalizeDatasetUploadResponses = {
|
|
@@ -2573,7 +3005,10 @@ type ImportDatasetErrors = {
|
|
|
2573
3005
|
*/
|
|
2574
3006
|
409: ResponseError;
|
|
2575
3007
|
/**
|
|
2576
|
-
* Your tier's dataset count limit is reached
|
|
3008
|
+
* Your tier's dataset count limit is reached, or your account's total storage limit
|
|
3009
|
+
* (`GET /account`'s `maxTotalStorageBytes`) is already reached. Delete a dataset to free
|
|
3010
|
+
* a slot or space, or upgrade.
|
|
3011
|
+
*
|
|
2577
3012
|
*/
|
|
2578
3013
|
429: ResponseError;
|
|
2579
3014
|
};
|
|
@@ -2615,6 +3050,252 @@ type GetDatasetImportResponses = {
|
|
|
2615
3050
|
200: DatasetImportState;
|
|
2616
3051
|
};
|
|
2617
3052
|
type GetDatasetImportResponse = GetDatasetImportResponses[keyof GetDatasetImportResponses];
|
|
3053
|
+
type StopLiveData = {
|
|
3054
|
+
body?: never;
|
|
3055
|
+
path: {
|
|
3056
|
+
/**
|
|
3057
|
+
* The id returned by `POST /strategy`
|
|
3058
|
+
*/
|
|
3059
|
+
strategyId: StrategyId;
|
|
3060
|
+
};
|
|
3061
|
+
query?: never;
|
|
3062
|
+
url: "/strategy/{strategyId}/live";
|
|
3063
|
+
};
|
|
3064
|
+
type StopLiveErrors = {
|
|
3065
|
+
/**
|
|
3066
|
+
* You have never started a live run for this strategy.
|
|
3067
|
+
*/
|
|
3068
|
+
404: ResponseError;
|
|
3069
|
+
};
|
|
3070
|
+
type StopLiveError = StopLiveErrors[keyof StopLiveErrors];
|
|
3071
|
+
type StopLiveResponses = {
|
|
3072
|
+
/**
|
|
3073
|
+
* Stop requested (or already stopped) — the run's current state
|
|
3074
|
+
*/
|
|
3075
|
+
200: LiveRun;
|
|
3076
|
+
};
|
|
3077
|
+
type StopLiveResponse = StopLiveResponses[keyof StopLiveResponses];
|
|
3078
|
+
type GetLiveData = {
|
|
3079
|
+
body?: never;
|
|
3080
|
+
path: {
|
|
3081
|
+
/**
|
|
3082
|
+
* The id returned by `POST /strategy`
|
|
3083
|
+
*/
|
|
3084
|
+
strategyId: StrategyId;
|
|
3085
|
+
};
|
|
3086
|
+
query?: never;
|
|
3087
|
+
url: "/strategy/{strategyId}/live";
|
|
3088
|
+
};
|
|
3089
|
+
type GetLiveErrors = {
|
|
3090
|
+
/**
|
|
3091
|
+
* You have never started a live run for this strategy.
|
|
3092
|
+
*/
|
|
3093
|
+
404: ResponseError;
|
|
3094
|
+
};
|
|
3095
|
+
type GetLiveError = GetLiveErrors[keyof GetLiveErrors];
|
|
3096
|
+
type GetLiveResponses = {
|
|
3097
|
+
/**
|
|
3098
|
+
* The run's current state
|
|
3099
|
+
*/
|
|
3100
|
+
200: LiveRun;
|
|
3101
|
+
};
|
|
3102
|
+
type GetLiveResponse = GetLiveResponses[keyof GetLiveResponses];
|
|
3103
|
+
type StartLiveData = {
|
|
3104
|
+
body: StartLiveRequest;
|
|
3105
|
+
path: {
|
|
3106
|
+
/**
|
|
3107
|
+
* The id returned by `POST /strategy`
|
|
3108
|
+
*/
|
|
3109
|
+
strategyId: StrategyId;
|
|
3110
|
+
};
|
|
3111
|
+
query?: never;
|
|
3112
|
+
url: "/strategy/{strategyId}/live";
|
|
3113
|
+
};
|
|
3114
|
+
type StartLiveErrors = {
|
|
3115
|
+
/**
|
|
3116
|
+
* Malformed `sources` (not exactly one entry, missing field, unsupported `type`), or an invalid `visibility`.
|
|
3117
|
+
*/
|
|
3118
|
+
400: ResponseError;
|
|
3119
|
+
/**
|
|
3120
|
+
* No such registered strategy for this user, or it has never been compiled.
|
|
3121
|
+
*/
|
|
3122
|
+
404: ResponseError;
|
|
3123
|
+
/**
|
|
3124
|
+
* A run for this strategy is already active. Stop it first.
|
|
3125
|
+
*/
|
|
3126
|
+
409: ResponseError;
|
|
3127
|
+
/**
|
|
3128
|
+
* Your plan does not include live runs, would exceed your concurrent-run or
|
|
3129
|
+
* instrument-count limit, or the platform is at capacity right now. Carries a
|
|
3130
|
+
* `Retry-After` header.
|
|
3131
|
+
*
|
|
3132
|
+
*/
|
|
3133
|
+
429: ResponseError;
|
|
3134
|
+
};
|
|
3135
|
+
type StartLiveError = StartLiveErrors[keyof StartLiveErrors];
|
|
3136
|
+
type StartLiveResponses = {
|
|
3137
|
+
/**
|
|
3138
|
+
* Started — the run's own state, in the sandbox stage
|
|
3139
|
+
*/
|
|
3140
|
+
201: LiveRun;
|
|
3141
|
+
};
|
|
3142
|
+
type StartLiveResponse = StartLiveResponses[keyof StartLiveResponses];
|
|
3143
|
+
type ListPublicLiveData = {
|
|
3144
|
+
body?: never;
|
|
3145
|
+
path?: never;
|
|
3146
|
+
query?: {
|
|
3147
|
+
/**
|
|
3148
|
+
* The `runId` from a previous page's `_links.next.href`. Omit for the first page.
|
|
3149
|
+
*/
|
|
3150
|
+
cursor?: string;
|
|
3151
|
+
/**
|
|
3152
|
+
* Page size. Larger values are capped, not rejected.
|
|
3153
|
+
*/
|
|
3154
|
+
limit?: number;
|
|
3155
|
+
};
|
|
3156
|
+
url: "/live/public";
|
|
3157
|
+
};
|
|
3158
|
+
type ListPublicLiveErrors = {
|
|
3159
|
+
/**
|
|
3160
|
+
* An invalid `cursor` or `limit`.
|
|
3161
|
+
*/
|
|
3162
|
+
400: ResponseError;
|
|
3163
|
+
};
|
|
3164
|
+
type ListPublicLiveError = ListPublicLiveErrors[keyof ListPublicLiveErrors];
|
|
3165
|
+
type ListPublicLiveResponses = {
|
|
3166
|
+
/**
|
|
3167
|
+
* A page of public runs
|
|
3168
|
+
*/
|
|
3169
|
+
200: PublicLiveListResponse;
|
|
3170
|
+
};
|
|
3171
|
+
type ListPublicLiveResponse = ListPublicLiveResponses[keyof ListPublicLiveResponses];
|
|
3172
|
+
type UpdateLiveData = {
|
|
3173
|
+
body?: UpdateLiveRequest;
|
|
3174
|
+
path: {
|
|
3175
|
+
/**
|
|
3176
|
+
* The `runId` from `POST`/`GET`/`DELETE` `.../live` or from `GET /live/public`
|
|
3177
|
+
*/
|
|
3178
|
+
runId: string;
|
|
3179
|
+
};
|
|
3180
|
+
query?: never;
|
|
3181
|
+
url: "/live/{runId}";
|
|
3182
|
+
};
|
|
3183
|
+
type UpdateLiveErrors = {
|
|
3184
|
+
/**
|
|
3185
|
+
* `visibility` present but not `private`/`public`.
|
|
3186
|
+
*/
|
|
3187
|
+
400: ResponseError;
|
|
3188
|
+
/**
|
|
3189
|
+
* No such run, or you do not own it — the two look identical on purpose.
|
|
3190
|
+
*/
|
|
3191
|
+
404: ResponseError;
|
|
3192
|
+
};
|
|
3193
|
+
type UpdateLiveError = UpdateLiveErrors[keyof UpdateLiveErrors];
|
|
3194
|
+
type UpdateLiveResponses = {
|
|
3195
|
+
/**
|
|
3196
|
+
* Updated
|
|
3197
|
+
*/
|
|
3198
|
+
200: LiveRunCompact;
|
|
3199
|
+
};
|
|
3200
|
+
type UpdateLiveResponse = UpdateLiveResponses[keyof UpdateLiveResponses];
|
|
3201
|
+
type UpdateLiveParamsData = {
|
|
3202
|
+
body: UpdateLiveParamsRequest;
|
|
3203
|
+
path: {
|
|
3204
|
+
runId: string;
|
|
3205
|
+
};
|
|
3206
|
+
query?: never;
|
|
3207
|
+
url: "/live/{runId}/params";
|
|
3208
|
+
};
|
|
3209
|
+
type UpdateLiveParamsErrors = {
|
|
3210
|
+
/**
|
|
3211
|
+
* `params` missing, not an object, empty, or contains a key your strategy does not declare.
|
|
3212
|
+
*/
|
|
3213
|
+
400: ResponseError;
|
|
3214
|
+
/**
|
|
3215
|
+
* No such run, or you do not own it.
|
|
3216
|
+
*/
|
|
3217
|
+
404: ResponseError;
|
|
3218
|
+
/**
|
|
3219
|
+
* This run's compilation has no declared properties on record — recompile the strategy to enable runtime parameter updates.
|
|
3220
|
+
*/
|
|
3221
|
+
409: ResponseError;
|
|
3222
|
+
};
|
|
3223
|
+
type UpdateLiveParamsError = UpdateLiveParamsErrors[keyof UpdateLiveParamsErrors];
|
|
3224
|
+
type UpdateLiveParamsResponses = {
|
|
3225
|
+
/**
|
|
3226
|
+
* Accepted
|
|
3227
|
+
*/
|
|
3228
|
+
200: LiveParamsUpdateResult;
|
|
3229
|
+
};
|
|
3230
|
+
type UpdateLiveParamsResponse = UpdateLiveParamsResponses[keyof UpdateLiveParamsResponses];
|
|
3231
|
+
type GetLiveRunSignalsData = {
|
|
3232
|
+
body?: never;
|
|
3233
|
+
path: {
|
|
3234
|
+
/**
|
|
3235
|
+
* The run whose signals to read.
|
|
3236
|
+
*/
|
|
3237
|
+
runId: string;
|
|
3238
|
+
};
|
|
3239
|
+
query?: {
|
|
3240
|
+
/**
|
|
3241
|
+
* Start from this moment (epoch ms). Omitted, or older than the available window, starts at `availableSinceMs`. Ignored when `cursor` is given.
|
|
3242
|
+
*/
|
|
3243
|
+
sinceMs?: number;
|
|
3244
|
+
/**
|
|
3245
|
+
* Narrow to one or more instruments. Omitted, or `*`, returns every instrument the run
|
|
3246
|
+
* covers. Accepts a single pair (`BTC/USDT`), either half as a wildcard (`*USDT` for any
|
|
3247
|
+
* base against that quote, `BTC*` for that base against any quote), or a comma-separated
|
|
3248
|
+
* list of pairs (`BTC/USDT,ETH/EUR`). Symbols are matched exactly, case included — pass
|
|
3249
|
+
* them as this API reports them.
|
|
3250
|
+
*
|
|
3251
|
+
*/
|
|
3252
|
+
instrument?: string;
|
|
3253
|
+
/**
|
|
3254
|
+
* Continue from a previous page's `_links.next`. Takes precedence over `sinceMs`.
|
|
3255
|
+
*/
|
|
3256
|
+
cursor?: string;
|
|
3257
|
+
/**
|
|
3258
|
+
* Page size.
|
|
3259
|
+
*/
|
|
3260
|
+
limit?: number;
|
|
3261
|
+
};
|
|
3262
|
+
url: "/live/{runId}/signals";
|
|
3263
|
+
};
|
|
3264
|
+
type GetLiveRunSignalsErrors = {
|
|
3265
|
+
/**
|
|
3266
|
+
* `instrument`, `sinceMs`, `limit` or `cursor` is malformed.
|
|
3267
|
+
*/
|
|
3268
|
+
400: ResponseError;
|
|
3269
|
+
/**
|
|
3270
|
+
* No such run, or not one you may read.
|
|
3271
|
+
*/
|
|
3272
|
+
404: ResponseError;
|
|
3273
|
+
/**
|
|
3274
|
+
* The cursor's position is no longer available — restart from the `availableSinceMs` named in the message.
|
|
3275
|
+
*/
|
|
3276
|
+
410: ResponseError;
|
|
3277
|
+
};
|
|
3278
|
+
type GetLiveRunSignalsError = GetLiveRunSignalsErrors[keyof GetLiveRunSignalsErrors];
|
|
3279
|
+
type GetLiveRunSignalsResponses = {
|
|
3280
|
+
/**
|
|
3281
|
+
* One page of signals
|
|
3282
|
+
*/
|
|
3283
|
+
200: LiveSignalPage;
|
|
3284
|
+
};
|
|
3285
|
+
type GetLiveRunSignalsResponse = GetLiveRunSignalsResponses[keyof GetLiveRunSignalsResponses];
|
|
3286
|
+
type MintLiveConnectionTokenData = {
|
|
3287
|
+
body?: never;
|
|
3288
|
+
path?: never;
|
|
3289
|
+
query?: never;
|
|
3290
|
+
url: "/live/token";
|
|
3291
|
+
};
|
|
3292
|
+
type MintLiveConnectionTokenResponses = {
|
|
3293
|
+
/**
|
|
3294
|
+
* Token minted
|
|
3295
|
+
*/
|
|
3296
|
+
200: LiveConnectionToken;
|
|
3297
|
+
};
|
|
3298
|
+
type MintLiveConnectionTokenResponse = MintLiveConnectionTokenResponses[keyof MintLiveConnectionTokenResponses];
|
|
2618
3299
|
type ClientOptions = {
|
|
2619
3300
|
baseUrl: "https://api.qtsurfer.net/v1" | "https://api.qtsurfer.com/v1" | (string & {});
|
|
2620
3301
|
};
|
|
@@ -2645,6 +3326,24 @@ type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean
|
|
|
2645
3326
|
*
|
|
2646
3327
|
*/
|
|
2647
3328
|
declare const authenticate: <ThrowOnError extends boolean = false>(options?: Options<AuthenticateData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<AuthTokenResponse, unknown, ThrowOnError>;
|
|
3329
|
+
/**
|
|
3330
|
+
* Get your account's identity and tier limits
|
|
3331
|
+
* Your userId, current tier, and that tier's limits — no database call, safe to fetch on
|
|
3332
|
+
* every page load. For live usage against these limits, see `_links.usage`
|
|
3333
|
+
* (`GET /account/usage`).
|
|
3334
|
+
*
|
|
3335
|
+
*/
|
|
3336
|
+
declare const getAccount: <ThrowOnError extends boolean = false>(options?: Options<GetAccountData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<Account, unknown, ThrowOnError>;
|
|
3337
|
+
/**
|
|
3338
|
+
* Get your live storage usage
|
|
3339
|
+
* How much of your account's shared storage pool (`GET /account`'s `maxTotalStorageBytes`)
|
|
3340
|
+
* you're currently using. Datasets, strategy-execution signals, and registered strategies
|
|
3341
|
+
* all count against the same total — they compete for the same underlying storage, so
|
|
3342
|
+
* there's one number to watch, not one per resource type. Not guaranteed real-time — a
|
|
3343
|
+
* just-completed upload or strategy execution may take a short moment to be reflected here.
|
|
3344
|
+
*
|
|
3345
|
+
*/
|
|
3346
|
+
declare const getAccountUsage: <ThrowOnError extends boolean = false>(options?: Options<GetAccountUsageData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<AccountUsage, unknown, ThrowOnError>;
|
|
2648
3347
|
/**
|
|
2649
3348
|
* List the available exchanges
|
|
2650
3349
|
*/
|
|
@@ -2730,22 +3429,35 @@ declare const listStrategies: <ThrowOnError extends boolean = false>(options?: O
|
|
|
2730
3429
|
* Compile and register a strategy
|
|
2731
3430
|
* Compiles raw strategy source and registers it, returning its `strategyId`.
|
|
2732
3431
|
*
|
|
2733
|
-
*
|
|
3432
|
+
* The source is either **Java** — a class extending a strategy base class — or **QTScript**
|
|
3433
|
+
* (beta), a compact strategy language whose braced bodies are plain Java. QTScript source
|
|
3434
|
+
* begins with the `strategy` keyword — whitespace and comments (`//` or `* *`) before it
|
|
3435
|
+
* are ignored — and that is how the two are told apart: there is no separate endpoint and
|
|
3436
|
+
* no header to set. Once registered, a strategy is used the same way
|
|
3437
|
+
* whichever language it was written in.
|
|
3438
|
+
*
|
|
3439
|
+
* **This answers one question: is the source valid.** It compiles, registers, and hands
|
|
2734
3440
|
* back the id — nothing more. Whether the class can actually run is
|
|
2735
3441
|
* `POST /strategy/{strategyId}/validate`, and everything known about a strategy, validation
|
|
2736
3442
|
* included, is read from `GET /strategy/{strategyId}`. One place to ask, so there is no second
|
|
2737
3443
|
* answer to keep in step.
|
|
2738
3444
|
*
|
|
2739
|
-
*
|
|
2740
|
-
* comment, inserting a blank line, re-indenting, reordering imports, or
|
|
2741
|
-
* all return the **same** id — you have not created a second strategy.
|
|
2742
|
-
* changing an identifier's case, reordering fields, or reordering
|
|
2743
|
-
* return a **different** one.
|
|
3445
|
+
* For **Java**, the `strategyId` is derived from what the code *means*, not from how it is
|
|
3446
|
+
* written. Adding a comment, inserting a blank line, re-indenting, reordering imports, or
|
|
3447
|
+
* moving a method around all return the **same** id — you have not created a second strategy.
|
|
3448
|
+
* Renaming a variable, changing an identifier's case, reordering fields, or reordering
|
|
3449
|
+
* statements inside a method return a **different** one.
|
|
3450
|
+
*
|
|
3451
|
+
* For **QTScript**, the id is derived from the text, because indentation is part of its
|
|
3452
|
+
* grammar. Only differences that cannot change the strategy are ignored: a byte-order mark, the
|
|
3453
|
+
* style of line endings, whitespace at the end of a line, and blank lines before the first and
|
|
3454
|
+
* after the last line. Anything else — a comment, the indentation, a blank line in between —
|
|
3455
|
+
* returns a **different** id.
|
|
2744
3456
|
*
|
|
2745
3457
|
* Two rules follow, and they are worth designing around:
|
|
2746
3458
|
*
|
|
2747
|
-
* - re-submitting a strategy you have only reformatted is free, and gives you back the id
|
|
2748
|
-
* already had, along with any validation already recorded against it;
|
|
3459
|
+
* - re-submitting a Java strategy you have only reformatted is free, and gives you back the id
|
|
3460
|
+
* you already had, along with any validation already recorded against it;
|
|
2749
3461
|
* - the id says nothing about *behaviour*. Two sources that compute the same thing by
|
|
2750
3462
|
* different means are two strategies, because deciding otherwise would mean deciding program
|
|
2751
3463
|
* equivalence.
|
|
@@ -2825,6 +3537,10 @@ declare const getStrategyCode: <ThrowOnError extends boolean = false>(options: O
|
|
|
2825
3537
|
* The same params always return the same `jobId` (idempotent). Repeated calls with identical
|
|
2826
3538
|
* params do not enqueue duplicate work — they reuse the existing job.
|
|
2827
3539
|
*
|
|
3540
|
+
* Every source in `DataSourceType` can be prepared, but not every one can then be run: `funding`
|
|
3541
|
+
* data can be prepared and is rejected by `execute` and `executeSweep`. A `kline` prepare takes
|
|
3542
|
+
* the bar width from `cadence` — see `PrepareRequest`.
|
|
3543
|
+
*
|
|
2828
3544
|
* **`exchangeId: user` is reserved for your own uploaded data.** Instead of a managed
|
|
2829
3545
|
* exchange, it prepares from a dataset you created via `POST /datasets` (see the **Dataset**
|
|
2830
3546
|
* endpoints) — send `datasetId` in place of `instrument`. See `PrepareRequest` below for the
|
|
@@ -2848,6 +3564,10 @@ declare const getPrepareStatus: <ThrowOnError extends boolean = false>(options:
|
|
|
2848
3564
|
* The backend expands and executes the matrix internally; clients poll the returned
|
|
2849
3565
|
* `sweepId` for incremental results.
|
|
2850
3566
|
*
|
|
3567
|
+
* `type` must be `ticker` or `kline`; a `kline` sweep, walk-forward included, runs over bars of
|
|
3568
|
+
* the cadence the request was prepared at. `funding` can be prepared but not swept yet: it is
|
|
3569
|
+
* rejected with `400` before anything is queued.
|
|
3570
|
+
*
|
|
2851
3571
|
* Supplying `walkForward` runs the sweep in a different mode entirely. Instead of scoring
|
|
2852
3572
|
* every parameter vector once over the whole range, the data is split into F sequential
|
|
2853
3573
|
* folds; each fold optimizes the full grid on its own window and then scores only its winner
|
|
@@ -2954,6 +3674,11 @@ declare const getSweepRunEquityCurve: <ThrowOnError extends boolean = false>(opt
|
|
|
2954
3674
|
* Returns immediately with a `jobId`; poll `GET /backtest/{exchangeId}/{type}/execute/{jobId}`
|
|
2955
3675
|
* for the result.
|
|
2956
3676
|
*
|
|
3677
|
+
* `type` must be a source that can be executed: `ticker` or `kline`. A `kline` strategy is fed
|
|
3678
|
+
* bars of the cadence its `prepareJobId` was prepared at — chosen by you when preparing, not by
|
|
3679
|
+
* the strategy. `funding` can be prepared but not executed yet: it is rejected with `400`
|
|
3680
|
+
* before anything is queued.
|
|
3681
|
+
*
|
|
2957
3682
|
* Optionally takes `params`: strategy properties for this one run, applied without
|
|
2958
3683
|
* recompiling. This is how a sweep leaderboard winner gets re-run for its `equityCurve` —
|
|
2959
3684
|
* a sweep row carries the ten ranking metrics but never a curve, whatever its size. Compile
|
|
@@ -3029,16 +3754,21 @@ declare const listDatasets: <ThrowOnError extends boolean = false>(options?: Opt
|
|
|
3029
3754
|
* response. `instrument` must be a plain spot pair (`BASE/QUOTE`, exactly one `/`); derivative
|
|
3030
3755
|
* forms (e.g. `BTC/USDT:USDT`) are rejected.
|
|
3031
3756
|
*
|
|
3032
|
-
* **Upload format.** A CSV with a header row,
|
|
3033
|
-
* name
|
|
3034
|
-
*
|
|
3035
|
-
*
|
|
3036
|
-
*
|
|
3757
|
+
* **Upload format.** A CSV with a header row, a parquet file with the same columns by
|
|
3758
|
+
* name, or a lastra file — our own native columnar format, the same one a dataset's
|
|
3759
|
+
* `dataUrl` hands back by default, so a downloaded dataset can be handed to another user to
|
|
3760
|
+
* upload with no conversion in between. For CSV/parquet, required: `timestamp` (ISO-8601, or
|
|
3761
|
+
* numeric epoch seconds/millis/micros — detected from the first row, then enforced for every
|
|
3762
|
+
* later row), `close`. Optional: `open`, `high`, `low`, `volume`, `quoteVolume`, `bid`,
|
|
3763
|
+
* `bidSize`, `ask`, `askSize`. A lastra upload carries its own fixed column set instead and
|
|
3764
|
+
* only needs a timestamp series and a close series present. Cadence and timestamp unit are
|
|
3765
|
+
* discovered from the data, not declared, for all three.
|
|
3037
3766
|
*
|
|
3038
3767
|
* A CSV upload is converted to our native columnar format (`lastra`) for storage. A parquet
|
|
3039
|
-
* upload is stored as-is today. Either way, always check `dataFormat` on
|
|
3768
|
+
* or lastra upload is stored as-is today. Either way, always check `dataFormat` on
|
|
3040
3769
|
* `GET /datasets/{datasetId}` and `GET /datasets/{datasetId}/uploads/{uploadId}` for which
|
|
3041
|
-
* one `dataUrl` actually is, rather than assuming from how you uploaded it
|
|
3770
|
+
* one `dataUrl` actually is, rather than assuming from how you uploaded it (a converted CSV
|
|
3771
|
+
* and an uploaded lastra file both report `dataFormat: "lastra"`).
|
|
3042
3772
|
*
|
|
3043
3773
|
* The bytes PUT to `upload.url` may be that file directly, gzipped (`.gz`), or zipped
|
|
3044
3774
|
* (`.zip`, exactly one file inside — a dataset is one file regardless of how it travels).
|
|
@@ -3134,7 +3864,126 @@ declare const importDataset: <ThrowOnError extends boolean = false>(options: Opt
|
|
|
3134
3864
|
*
|
|
3135
3865
|
*/
|
|
3136
3866
|
declare const getDatasetImport: <ThrowOnError extends boolean = false>(options: Options<GetDatasetImportData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<DatasetImportState, ResponseError, ThrowOnError>;
|
|
3867
|
+
/**
|
|
3868
|
+
* Stop this strategy's live run
|
|
3869
|
+
* Requests a stop. The run winds down at its own next check-in rather than instantly —
|
|
3870
|
+
* poll `GET`/`PATCH` `.../live` and expect `state` to remain `RUNNING` for a short window
|
|
3871
|
+
* after `desired` flips to `STOPPED`. Calling this again on an already-stopped run is not an
|
|
3872
|
+
* error; it returns the same (unchanged) state.
|
|
3873
|
+
*
|
|
3874
|
+
*/
|
|
3875
|
+
declare const stopLive: <ThrowOnError extends boolean = false>(options: Options<StopLiveData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<LiveRun, ResponseError, ThrowOnError>;
|
|
3876
|
+
/**
|
|
3877
|
+
* Get this strategy's current (or most recent) live run
|
|
3878
|
+
* The run you last started for this strategy — its most complete state, including `params`
|
|
3879
|
+
* and the promotion `gate` once the sandbox trial has one to report. Returns the run's last
|
|
3880
|
+
* known state even after it has stopped; this endpoint never disappears history.
|
|
3881
|
+
*
|
|
3882
|
+
*/
|
|
3883
|
+
declare const getLive: <ThrowOnError extends boolean = false>(options: Options<GetLiveData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<LiveRun, ResponseError, ThrowOnError>;
|
|
3884
|
+
/**
|
|
3885
|
+
* Start a strategy on a live market feed
|
|
3886
|
+
* Starts your strategy against a live market feed. A new run always begins in the **sandbox**
|
|
3887
|
+
* stage — a short trial that compares an independent second execution against the first for
|
|
3888
|
+
* agreement — before it is eligible for promotion to the live stage where it actually
|
|
3889
|
+
* publishes signals other systems can act on. Poll `GET /strategy/{strategyId}/live` (or
|
|
3890
|
+
* `PATCH`/`DELETE` `/live/{runId}` once you have the `runId`) to watch `stage` move from
|
|
3891
|
+
* `SANDBOX` to `LIVE`.
|
|
3892
|
+
*
|
|
3893
|
+
* Only one run per strategy at a time — starting again while one is already running is `409`;
|
|
3894
|
+
* stop the current one first.
|
|
3895
|
+
*
|
|
3896
|
+
* `sources` takes exactly one entry today (multi-source strategies are not supported yet).
|
|
3897
|
+
* `type` is `ticker` or `kline`; anything else is rejected. Both connect to the lightest
|
|
3898
|
+
* (fastest) cadence available for the exchange — today that is 1 tick/second on every
|
|
3899
|
+
* supported exchange; choosing among several cadences is not offered yet.
|
|
3900
|
+
*
|
|
3901
|
+
* `params` is passed straight through to the strategy at start — the same free-form object
|
|
3902
|
+
* `POST /strategy/{strategyId}/validate` and the backtest endpoints already accept. To change
|
|
3903
|
+
* a parameter **while the run is live**, use `PUT /live/{runId}/params` instead; this endpoint
|
|
3904
|
+
* only sets the values a run starts with.
|
|
3905
|
+
*
|
|
3906
|
+
* Consuming a run's own output — its signals, and updating its parameters over a live
|
|
3907
|
+
* connection instead of polling — is a WebSocket protocol on top of these REST endpoints; see
|
|
3908
|
+
* the "Live execution" guide linked from this tag's description for the full flow (minting a
|
|
3909
|
+
* connection token, the channel and RPC method).
|
|
3910
|
+
*
|
|
3911
|
+
*/
|
|
3912
|
+
declare const startLive: <ThrowOnError extends boolean = false>(options: Options<StartLiveData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<LiveRun, ResponseError, ThrowOnError>;
|
|
3913
|
+
/**
|
|
3914
|
+
* Browse public live runs
|
|
3915
|
+
* Every run whose owner marked it `public` and is currently live and running — anyone's,
|
|
3916
|
+
* yours included, and listed without revealing who owns it. Most recently started first.
|
|
3917
|
+
*
|
|
3918
|
+
* This is the only `Live Execution` endpoint that needs no `Authorization` header.
|
|
3919
|
+
*
|
|
3920
|
+
*/
|
|
3921
|
+
declare const listPublicLive: <ThrowOnError extends boolean = false>(options?: Options<ListPublicLiveData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<PublicLiveListResponse, ResponseError, ThrowOnError>;
|
|
3922
|
+
/**
|
|
3923
|
+
* Change a run's visibility, name, or description
|
|
3924
|
+
* Owner only, addressed by `runId` directly rather than through its strategy — this is a
|
|
3925
|
+
* run's own canonical identity, independent of which strategy started it.
|
|
3926
|
+
*
|
|
3927
|
+
* Setting `visibility` from `public` back to `private` also evicts anyone currently connected
|
|
3928
|
+
* to the run's live signal channel who is not its owner — best-effort; the change to this
|
|
3929
|
+
* record is not rolled back if that eviction fails.
|
|
3930
|
+
*
|
|
3931
|
+
*/
|
|
3932
|
+
declare const updateLive: <ThrowOnError extends boolean = false>(options: Options<UpdateLiveData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<LiveRunCompact, ResponseError, ThrowOnError>;
|
|
3933
|
+
/**
|
|
3934
|
+
* Change a running strategy's parameters
|
|
3935
|
+
* Updates one or more parameters of a run **while it stays live** — unlike `params` on
|
|
3936
|
+
* `POST /strategy/{strategyId}/live`, which only sets the starting values. Owner only.
|
|
3937
|
+
*
|
|
3938
|
+
* Every key in `params` must be one your strategy declares (see `declaredProperties` on
|
|
3939
|
+
* `POST /strategy`) as of the compilation this run is executing — recompiling the strategy
|
|
3940
|
+
* later never changes what an already-running instance accepts; start a new run for that.
|
|
3941
|
+
*
|
|
3942
|
+
* The change does not take effect the instant this call returns: `effectiveAtMs` is the
|
|
3943
|
+
* earliest moment it is guaranteed to apply, a few seconds out, so both the REST and
|
|
3944
|
+
* WebSocket paths to this same update (see the "Live execution" guide) land on the exact same
|
|
3945
|
+
* value at the exact same moment.
|
|
3946
|
+
*
|
|
3947
|
+
*/
|
|
3948
|
+
declare const updateLiveParams: <ThrowOnError extends boolean = false>(options: Options<UpdateLiveParamsData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<LiveParamsUpdateResult, ResponseError, ThrowOnError>;
|
|
3949
|
+
/**
|
|
3950
|
+
* Read a run's signals
|
|
3951
|
+
* Returns one page of the signals a run has already produced, newest-last, optionally from a
|
|
3952
|
+
* given time and narrowed to one or more instruments.
|
|
3953
|
+
*
|
|
3954
|
+
* This is the counterpart to the real-time WebSocket channel: that channel only carries what
|
|
3955
|
+
* happens while you are connected, and only for a run that asked for `relay`. A run's signals
|
|
3956
|
+
* are recorded either way, so this endpoint serves them whether or not `relay` was ever on,
|
|
3957
|
+
* in both the `sandbox` and `live` stages — use it to catch up after a disconnect, to read a
|
|
3958
|
+
* run you never relayed, or to page back over what has already happened.
|
|
3959
|
+
*
|
|
3960
|
+
* **The available window moves.** Signals are kept for a limited span, and the oldest are
|
|
3961
|
+
* continuously discarded as new ones arrive, so how far back you can read is not a fixed
|
|
3962
|
+
* number of hours: on a busy run it can be a good deal shorter. Every response carries
|
|
3963
|
+
* `availableSinceMs`, the oldest moment that can still be answered for. Asking for a
|
|
3964
|
+
* `sinceMs` older than that is not an error — you get everything from `availableSinceMs`
|
|
3965
|
+
* onwards, and that field tells you it happened.
|
|
3966
|
+
*
|
|
3967
|
+
* **A cursor can expire, and on a busy run it expires quickly.** If the position a cursor
|
|
3968
|
+
* points at has since been discarded, the next page answers `410` rather than silently
|
|
3969
|
+
* serving a shortened page that looks complete. Treat that as a normal outcome: read
|
|
3970
|
+
* `availableSinceMs` from the error and start again from there.
|
|
3971
|
+
*
|
|
3972
|
+
* Readable by the run's owner, and by anyone if the run is `public` — the same rule the
|
|
3973
|
+
* signal channel applies to a subscription.
|
|
3974
|
+
*
|
|
3975
|
+
*/
|
|
3976
|
+
declare const getLiveRunSignals: <ThrowOnError extends boolean = false>(options: Options<GetLiveRunSignalsData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<LiveSignalPage, ResponseError, ThrowOnError>;
|
|
3977
|
+
/**
|
|
3978
|
+
* Mint a WebSocket connection token
|
|
3979
|
+
* Mints a short-lived token for the WebSocket connection used to receive a run's signals in
|
|
3980
|
+
* real time and to call `live.params` (the WebSocket form of `PUT /live/{runId}/params`) —
|
|
3981
|
+
* see the "Live execution" guide linked from this tag's description for the full protocol.
|
|
3982
|
+
* Carries no request body.
|
|
3983
|
+
*
|
|
3984
|
+
*/
|
|
3985
|
+
declare const mintLiveConnectionToken: <ThrowOnError extends boolean = false>(options?: Options<MintLiveConnectionTokenData, ThrowOnError>) => _hey_api_client_fetch.RequestResult<LiveConnectionToken, unknown, ThrowOnError>;
|
|
3137
3986
|
|
|
3138
3987
|
declare const client: _hey_api_client_fetch.Client;
|
|
3139
3988
|
|
|
3140
|
-
export { type AcceptedJob, type AuthTokenError, type AuthTokenResponse, type AuthenticateData, type AuthenticateError, type AuthenticateErrors, type AuthenticateResponse, type AuthenticateResponses, type BacktestJobResult, type CancelBacktestData, type CancelBacktestError, type CancelBacktestErrors, type CancelBacktestResponse, type CancelBacktestResponses, type CancelSweepData, type CancelSweepError, type CancelSweepErrors, type CancelSweepResponse, type CancelSweepResponses, type ClientOptions, type CompileStrategyData, type CompileStrategyError, type CompileStrategyErrors, type CompileStrategyResponse, type CompileStrategyResponses, type CoverageWindow, type CreateDatasetData, type CreateDatasetError, type CreateDatasetErrors, type CreateDatasetResponse, type CreateDatasetResponses, type DataSourceType, type Dataset, type DatasetCreated, type DatasetImportCreated, type DatasetImportDexRequest, type DatasetImportRequest, type DatasetImportState, type DatasetUploadSession, type DatasetUploadState, type DatasetUploadTarget, type DatasetVersion, type DatasetWithLinks, type DeclaredProperty, type DeleteDatasetData, type DeleteDatasetError, type DeleteDatasetErrors, type DeleteDatasetResponse, type DeleteDatasetResponses, type DeleteStrategyData, type DeleteStrategyError, type DeleteStrategyErrors, type DeleteStrategyResponse, type DeleteStrategyResponses, type DownloadKlinesData, type DownloadKlinesError, type DownloadKlinesErrors, type DownloadKlinesResponse, type DownloadKlinesResponses, type DownloadTickersData, type DownloadTickersError, type DownloadTickersErrors, type DownloadTickersResponse, type DownloadTickersResponses, type EquityCurveMeta, type EquityCurveOptions, type EquityCurveOutMode, type EquityCurveRequest, type EquityCurveResult, type EquityPoint, type Exchange, type ExecuteBacktestData, type ExecuteBacktestError, type ExecuteBacktestErrors, type ExecuteBacktestResponse, type ExecuteBacktestResponses, type ExecuteSweepAccepted, type ExecuteSweepData, type ExecuteSweepError, type ExecuteSweepErrors, type ExecuteSweepRequest, type ExecuteSweepResponse, type ExecuteSweepResponses, type ExecuteSweepResult, type FinalizeDatasetUploadData, type FinalizeDatasetUploadError, type FinalizeDatasetUploadErrors, type FinalizeDatasetUploadResponse, type FinalizeDatasetUploadResponses, type GetBacktestResultData, type GetBacktestResultError, type GetBacktestResultErrors, type GetBacktestResultResponse, type GetBacktestResultResponses, type GetDatasetData, type GetDatasetError, type GetDatasetErrors, type GetDatasetImportData, type GetDatasetImportError, type GetDatasetImportErrors, type GetDatasetImportResponse, type GetDatasetImportResponses, type GetDatasetResponse, type GetDatasetResponses, type GetDatasetUploadData, type GetDatasetUploadError, type GetDatasetUploadErrors, type GetDatasetUploadResponse, type GetDatasetUploadResponses, type GetPrepareStatusData, type GetPrepareStatusError, type GetPrepareStatusErrors, type GetPrepareStatusResponse, type GetPrepareStatusResponses, type GetStrategyCodeData, type GetStrategyCodeError, type GetStrategyCodeErrors, type GetStrategyCodeResponse, type GetStrategyCodeResponses, type GetStrategyData, type GetStrategyError, type GetStrategyErrors, type GetStrategyResponse, type GetStrategyResponses, type GetSweepResultData, type GetSweepResultError, type GetSweepResultErrors, type GetSweepResultResponse, type GetSweepResultResponses, type GetSweepRunEquityCurveData, type GetSweepRunEquityCurveError, type GetSweepRunEquityCurveErrors, type GetSweepRunEquityCurveResponse, type GetSweepRunEquityCurveResponses, type GetSweepSensitivityData, type GetSweepSensitivityError, type GetSweepSensitivityErrors, type GetSweepSensitivityResponse, type GetSweepSensitivityResponses, type HalLink, type ImportDatasetData, type ImportDatasetError, type ImportDatasetErrors, type ImportDatasetResponse, type ImportDatasetResponses, type Instrument, type InstrumentCoverage, type InstrumentDetail, type InstrumentLinks, type InstrumentListMeta, type InstrumentListResponse, type JobState, type ListDatasetsData, type ListDatasetsResponse, type ListDatasetsResponses, type ListExchangesData, type ListExchangesResponse, type ListExchangesResponses, type ListInstrumentsData, type ListInstrumentsError, type ListInstrumentsErrors, type ListInstrumentsResponse, type ListInstrumentsResponses, type ListSegmentInstrumentsData, type ListSegmentInstrumentsError, type ListSegmentInstrumentsErrors, type ListSegmentInstrumentsResponse, type ListSegmentInstrumentsResponses, type ListStrategiesData, type ListStrategiesResponse, type ListStrategiesResponses, type Notice, type OpenDatasetUploadData, type OpenDatasetUploadError, type OpenDatasetUploadErrors, type OpenDatasetUploadResponse, type OpenDatasetUploadResponses, type Options, type PrepareBacktestData, type PrepareBacktestError, type PrepareBacktestErrors, type PrepareBacktestResponse, type PrepareBacktestResponses, type PrepareJobState, type PrepareRequest, type ResponseError, type ResultMap, type ScalarStrategyParamValue, type StrategyId, type StrategyLinks, type StrategyState, type StrategySummary, type SweepAxis, type SweepBaseConfig, type SweepHeatmap, type SweepHeatmapCell, type SweepMarginal, type SweepMarginalPoint, type SweepProgress, type SweepRunRow, type SweepSensitivity, type SweepSpecRequest, type ValidateStrategyData, type ValidateStrategyError, type ValidateStrategyErrors, type ValidateStrategyResponse, type ValidateStrategyResponses, type WalkForwardAccepted, type WalkForwardFold, type WalkForwardRequest, type WalkForwardResult, authenticate, cancelBacktest, cancelSweep, client, compileStrategy, createDataset, deleteDataset, deleteStrategy, downloadKlines, downloadTickers, executeBacktest, executeSweep, finalizeDatasetUpload, getBacktestResult, getDataset, getDatasetImport, getDatasetUpload, getPrepareStatus, getStrategy, getStrategyCode, getSweepResult, getSweepRunEquityCurve, getSweepSensitivity, importDataset, listDatasets, listExchanges, listInstruments, listSegmentInstruments, listStrategies, openDatasetUpload, prepareBacktest, validateStrategy };
|
|
3989
|
+
export { type AcceptedJob, type Account, type AccountLinks, type AccountUsage, type AccountUsageLinks, type AuthTokenError, type AuthTokenResponse, type AuthenticateData, type AuthenticateError, type AuthenticateErrors, type AuthenticateResponse, type AuthenticateResponses, type BacktestJobResult, type CancelBacktestData, type CancelBacktestError, type CancelBacktestErrors, type CancelBacktestResponse, type CancelBacktestResponses, type CancelSweepData, type CancelSweepError, type CancelSweepErrors, type CancelSweepResponse, type CancelSweepResponses, type ClientOptions, type CompileStrategyData, type CompileStrategyError, type CompileStrategyErrors, type CompileStrategyResponse, type CompileStrategyResponses, type CoverageWindow, type CreateDatasetData, type CreateDatasetError, type CreateDatasetErrors, type CreateDatasetResponse, type CreateDatasetResponses, type DataSourceType, type Dataset, type DatasetCreated, type DatasetImportCreated, type DatasetImportDexRequest, type DatasetImportRequest, type DatasetImportState, type DatasetUploadSession, type DatasetUploadState, type DatasetUploadTarget, type DatasetVersion, type DatasetWithLinks, type DeclaredProperty, type DeleteDatasetData, type DeleteDatasetError, type DeleteDatasetErrors, type DeleteDatasetResponse, type DeleteDatasetResponses, type DeleteStrategyData, type DeleteStrategyError, type DeleteStrategyErrors, type DeleteStrategyResponse, type DeleteStrategyResponses, type DownloadKlinesData, type DownloadKlinesError, type DownloadKlinesErrors, type DownloadKlinesResponse, type DownloadKlinesResponses, type DownloadTickersData, type DownloadTickersError, type DownloadTickersErrors, type DownloadTickersResponse, type DownloadTickersResponses, type EquityCurveMeta, type EquityCurveOptions, type EquityCurveOutMode, type EquityCurveRequest, type EquityCurveResult, type EquityPoint, type Exchange, type ExecuteBacktestData, type ExecuteBacktestError, type ExecuteBacktestErrors, type ExecuteBacktestResponse, type ExecuteBacktestResponses, type ExecuteSweepAccepted, type ExecuteSweepData, type ExecuteSweepError, type ExecuteSweepErrors, type ExecuteSweepRequest, type ExecuteSweepResponse, type ExecuteSweepResponses, type ExecuteSweepResult, type FinalizeDatasetUploadData, type FinalizeDatasetUploadError, type FinalizeDatasetUploadErrors, type FinalizeDatasetUploadResponse, type FinalizeDatasetUploadResponses, type GetAccountData, type GetAccountResponse, type GetAccountResponses, type GetAccountUsageData, type GetAccountUsageResponse, type GetAccountUsageResponses, type GetBacktestResultData, type GetBacktestResultError, type GetBacktestResultErrors, type GetBacktestResultResponse, type GetBacktestResultResponses, type GetDatasetData, type GetDatasetError, type GetDatasetErrors, type GetDatasetImportData, type GetDatasetImportError, type GetDatasetImportErrors, type GetDatasetImportResponse, type GetDatasetImportResponses, type GetDatasetResponse, type GetDatasetResponses, type GetDatasetUploadData, type GetDatasetUploadError, type GetDatasetUploadErrors, type GetDatasetUploadResponse, type GetDatasetUploadResponses, type GetLiveData, type GetLiveError, type GetLiveErrors, type GetLiveResponse, type GetLiveResponses, type GetLiveRunSignalsData, type GetLiveRunSignalsError, type GetLiveRunSignalsErrors, type GetLiveRunSignalsResponse, type GetLiveRunSignalsResponses, type GetPrepareStatusData, type GetPrepareStatusError, type GetPrepareStatusErrors, type GetPrepareStatusResponse, type GetPrepareStatusResponses, type GetStrategyCodeData, type GetStrategyCodeError, type GetStrategyCodeErrors, type GetStrategyCodeResponse, type GetStrategyCodeResponses, type GetStrategyData, type GetStrategyError, type GetStrategyErrors, type GetStrategyResponse, type GetStrategyResponses, type GetSweepResultData, type GetSweepResultError, type GetSweepResultErrors, type GetSweepResultResponse, type GetSweepResultResponses, type GetSweepRunEquityCurveData, type GetSweepRunEquityCurveError, type GetSweepRunEquityCurveErrors, type GetSweepRunEquityCurveResponse, type GetSweepRunEquityCurveResponses, type GetSweepSensitivityData, type GetSweepSensitivityError, type GetSweepSensitivityErrors, type GetSweepSensitivityResponse, type GetSweepSensitivityResponses, type HalLink, type ImportDatasetData, type ImportDatasetError, type ImportDatasetErrors, type ImportDatasetResponse, type ImportDatasetResponses, type Instrument, type InstrumentCoverage, type InstrumentDetail, type InstrumentLinks, type InstrumentListMeta, type InstrumentListResponse, type JobState, type ListDatasetsData, type ListDatasetsResponse, type ListDatasetsResponses, type ListExchangesData, type ListExchangesResponse, type ListExchangesResponses, type ListInstrumentsData, type ListInstrumentsError, type ListInstrumentsErrors, type ListInstrumentsResponse, type ListInstrumentsResponses, type ListPublicLiveData, type ListPublicLiveError, type ListPublicLiveErrors, type ListPublicLiveResponse, type ListPublicLiveResponses, type ListSegmentInstrumentsData, type ListSegmentInstrumentsError, type ListSegmentInstrumentsErrors, type ListSegmentInstrumentsResponse, type ListSegmentInstrumentsResponses, type ListStrategiesData, type ListStrategiesResponse, type ListStrategiesResponses, type LiveConnectionToken, type LiveParamsUpdateResult, type LiveRun, type LiveRunCompact, type LiveSignal, type LiveSignalInstrument, type LiveSignalOrder, type LiveSignalPage, type LiveSource, type MintLiveConnectionTokenData, type MintLiveConnectionTokenResponse, type MintLiveConnectionTokenResponses, type Notice, type OpenDatasetUploadData, type OpenDatasetUploadError, type OpenDatasetUploadErrors, type OpenDatasetUploadResponse, type OpenDatasetUploadResponses, type Options, type PrepareBacktestData, type PrepareBacktestError, type PrepareBacktestErrors, type PrepareBacktestResponse, type PrepareBacktestResponses, type PrepareJobState, type PrepareRequest, type PublicLiveListLinks, type PublicLiveListResponse, type PublicLiveNextLink, type PublicLiveRun, type ResponseError, type ResultMap, type ScalarStrategyParamValue, type StartLiveData, type StartLiveError, type StartLiveErrors, type StartLiveRequest, type StartLiveResponse, type StartLiveResponses, type StopLiveData, type StopLiveError, type StopLiveErrors, type StopLiveResponse, type StopLiveResponses, type StrategyId, type StrategyLinks, type StrategyState, type StrategySummary, type SweepAxis, type SweepBaseConfig, type SweepHeatmap, type SweepHeatmapCell, type SweepMarginal, type SweepMarginalPoint, type SweepProgress, type SweepRunRow, type SweepSensitivity, type SweepSpecRequest, type UpdateLiveData, type UpdateLiveError, type UpdateLiveErrors, type UpdateLiveParamsData, type UpdateLiveParamsError, type UpdateLiveParamsErrors, type UpdateLiveParamsRequest, type UpdateLiveParamsResponse, type UpdateLiveParamsResponses, type UpdateLiveRequest, type UpdateLiveResponse, type UpdateLiveResponses, type ValidateStrategyData, type ValidateStrategyError, type ValidateStrategyErrors, type ValidateStrategyResponse, type ValidateStrategyResponses, type WalkForwardAccepted, type WalkForwardFold, type WalkForwardRequest, type WalkForwardResult, authenticate, cancelBacktest, cancelSweep, client, compileStrategy, createDataset, deleteDataset, deleteStrategy, downloadKlines, downloadTickers, executeBacktest, executeSweep, finalizeDatasetUpload, getAccount, getAccountUsage, getBacktestResult, getDataset, getDatasetImport, getDatasetUpload, getLive, getLiveRunSignals, getPrepareStatus, getStrategy, getStrategyCode, getSweepResult, getSweepRunEquityCurve, getSweepSensitivity, importDataset, listDatasets, listExchanges, listInstruments, listPublicLive, listSegmentInstruments, listStrategies, mintLiveConnectionToken, openDatasetUpload, prepareBacktest, startLive, stopLive, updateLive, updateLiveParams, validateStrategy };
|