@livefolio/sdk 0.2.1 → 0.2.4
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/README.md +23 -146
- package/dist/market/client.d.ts.map +1 -1
- package/dist/market/client.js +28 -0
- package/dist/market/client.js.map +1 -1
- package/dist/market/index.d.ts +2 -0
- package/dist/market/index.d.ts.map +1 -1
- package/dist/market/index.js +4 -1
- package/dist/market/index.js.map +1 -1
- package/dist/market/trackedTickers.d.ts +4 -0
- package/dist/market/trackedTickers.d.ts.map +1 -0
- package/dist/market/trackedTickers.js +256 -0
- package/dist/market/trackedTickers.js.map +1 -0
- package/dist/market/types.d.ts +2 -0
- package/dist/market/types.d.ts.map +1 -1
- package/dist/strategy/backtest.d.ts +6 -0
- package/dist/strategy/backtest.d.ts.map +1 -0
- package/dist/strategy/backtest.js +662 -0
- package/dist/strategy/backtest.js.map +1 -0
- package/dist/strategy/cache.d.ts +7 -0
- package/dist/strategy/cache.d.ts.map +1 -0
- package/dist/strategy/cache.js +312 -0
- package/dist/strategy/cache.js.map +1 -0
- package/dist/strategy/client.d.ts.map +1 -1
- package/dist/strategy/client.js +12 -333
- package/dist/strategy/client.js.map +1 -1
- package/dist/strategy/evaluate.d.ts.map +1 -1
- package/dist/strategy/evaluate.js +35 -8
- package/dist/strategy/evaluate.js.map +1 -1
- package/dist/strategy/get.d.ts +5 -0
- package/dist/strategy/get.d.ts.map +1 -0
- package/dist/strategy/get.js +25 -0
- package/dist/strategy/get.js.map +1 -0
- package/dist/strategy/index.d.ts +6 -1
- package/dist/strategy/index.d.ts.map +1 -1
- package/dist/strategy/index.js +14 -1
- package/dist/strategy/index.js.map +1 -1
- package/dist/strategy/rules.d.ts +3 -0
- package/dist/strategy/rules.d.ts.map +1 -0
- package/dist/strategy/rules.js +100 -0
- package/dist/strategy/rules.js.map +1 -0
- package/dist/strategy/stream.d.ts +5 -0
- package/dist/strategy/stream.d.ts.map +1 -0
- package/dist/strategy/stream.js +58 -0
- package/dist/strategy/stream.js.map +1 -0
- package/dist/strategy/types.d.ts +92 -1
- package/dist/strategy/types.d.ts.map +1 -1
- package/package.json +6 -2
package/README.md
CHANGED
|
@@ -8,9 +8,7 @@ TypeScript SDK for market data, strategy evaluation, and portfolio management.
|
|
|
8
8
|
npm install @livefolio/sdk
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
##
|
|
12
|
-
|
|
13
|
-
All modules are created from a single Supabase client:
|
|
11
|
+
## Quick Start
|
|
14
12
|
|
|
15
13
|
```ts
|
|
16
14
|
import { createLivefolioClient } from '@livefolio/sdk';
|
|
@@ -20,171 +18,50 @@ const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY);
|
|
|
20
18
|
const livefolio = createLivefolioClient(supabase);
|
|
21
19
|
```
|
|
22
20
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
```ts
|
|
26
|
-
import { createMarket } from '@livefolio/sdk/market';
|
|
27
|
-
import { createAuth } from '@livefolio/sdk/auth';
|
|
28
|
-
import { createStrategy } from '@livefolio/sdk/strategy';
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
## Auth
|
|
34
|
-
|
|
35
|
-
Wraps Supabase Auth with a simplified interface.
|
|
36
|
-
|
|
37
|
-
| Method | Returns | Description |
|
|
38
|
-
|--------|---------|-------------|
|
|
39
|
-
| `getUser()` | `User \| null` | Get the current authenticated user, or `null` if not signed in |
|
|
40
|
-
| `getSession()` | `Session \| null` | Get the current session |
|
|
41
|
-
| `requireUser()` | `User` | Get the current user or throw if not authenticated |
|
|
42
|
-
| `onAuthStateChange(callback)` | `Subscription` | Subscribe to auth state changes (sign in, sign out, token refresh) |
|
|
43
|
-
| `signOut()` | `void` | Sign out the current user |
|
|
44
|
-
|
|
45
|
-
```ts
|
|
46
|
-
const user = await livefolio.auth.getUser();
|
|
47
|
-
|
|
48
|
-
const subscription = livefolio.auth.onAuthStateChange((event, session) => {
|
|
49
|
-
console.log(event, session);
|
|
50
|
-
});
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## Market
|
|
56
|
-
|
|
57
|
-
Provides historical price series, real-time quotes, and the trading calendar. Series and quotes are served through Supabase Edge Functions with transparent cache-through behavior — the SDK requests data and caching is handled server-side.
|
|
58
|
-
|
|
59
|
-
### Series
|
|
60
|
-
|
|
61
|
-
Retrieve historical daily observations for one or more symbols. Each observation has an ISO 8601 `timestamp` (market close) and a `value` (closing price).
|
|
62
|
-
|
|
63
|
-
```ts
|
|
64
|
-
const spy = await livefolio.market.getSeries('SPY');
|
|
65
|
-
// spy: Observation[] — [{ timestamp: '2025-01-10T21:00:00Z', value: 590.25 }, ...]
|
|
66
|
-
|
|
67
|
-
const batch = await livefolio.market.getBatchSeries(['SPY', 'QQQ', 'TLT']);
|
|
68
|
-
// batch: Record<string, Observation[]> — { SPY: [...], QQQ: [...], TLT: [...] }
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### Quotes
|
|
21
|
+
## Modules
|
|
72
22
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
const quotes = await livefolio.market.getBatchQuotes(['SPY', 'QQQ']);
|
|
80
|
-
// quotes: Record<string, Observation>
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
### Trading Calendar
|
|
84
|
-
|
|
85
|
-
Query the trading calendar for market open/close times. Dates are `YYYY-MM-DD` strings.
|
|
86
|
-
|
|
87
|
-
```ts
|
|
88
|
-
const days = await livefolio.market.getTradingDays('2025-01-01', '2025-12-31');
|
|
89
|
-
// days: TradingDay[] — [{ date, open, close, extended_open, extended_close }, ...]
|
|
90
|
-
|
|
91
|
-
const today = await livefolio.market.getTradingDay('2025-03-02');
|
|
92
|
-
// today: TradingDay | null
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## Strategy
|
|
98
|
-
|
|
99
|
-
Handles strategy retrieval, evaluation, and result caching. The module exposes two evaluation paths:
|
|
100
|
-
|
|
101
|
-
- **`evaluate()`** (async) — the primary API. Checks the DB cache for a prior result, returns it on hit, or runs a fresh evaluation and stores the result on miss. Consumers never need to manage caching manually.
|
|
102
|
-
- **Pure functions** (sync) — `evaluateIndicator`, `evaluateSignal`, `evaluateAllocation` for direct computation without DB interaction. Useful for testing, debugging, or custom pipelines.
|
|
103
|
-
|
|
104
|
-
### Retrieving Strategies
|
|
105
|
-
|
|
106
|
-
Fetch a fully-resolved strategy by its link ID. The `get()` method calls the `strategy` edge function, which looks up the strategy in the database and auto-imports from testfol.io if not found. The returned `Strategy` object contains all named signals, indicators, condition trees, and allocations ready for evaluation.
|
|
107
|
-
|
|
108
|
-
```ts
|
|
109
|
-
const strategy = await livefolio.strategy.get('abc-123');
|
|
110
|
-
// strategy: Strategy | null
|
|
111
|
-
|
|
112
|
-
const strategies = await livefolio.strategy.getMany(['abc-123', 'def-456']);
|
|
113
|
-
// strategies: Record<string, Strategy>
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
### Evaluating a Strategy
|
|
117
|
-
|
|
118
|
-
The `evaluate` method is the standard way to run a strategy. Pass a strategy and a date — everything else is handled internally:
|
|
119
|
-
|
|
120
|
-
1. Fetches historical series for all symbols used by the strategy
|
|
121
|
-
2. Computes the evaluation date
|
|
122
|
-
3. Checks the DB cache for a prior result on that trading day
|
|
123
|
-
4. On cache miss: fetches prior signal states (for hysteresis) and indicator metadata (for incremental EMA/RSI), runs the evaluation, and stores the result
|
|
124
|
-
5. On cache hit: returns the cached allocation and signal states
|
|
23
|
+
| Module | Description |
|
|
24
|
+
|--------|-------------|
|
|
25
|
+
| `livefolio.auth` | Authentication (user, session, sign-out) |
|
|
26
|
+
| `livefolio.market` | Historical series, real-time quotes, trading calendar |
|
|
27
|
+
| `livefolio.strategy` | Strategy retrieval, cached evaluation, live streaming |
|
|
28
|
+
| `livefolio.portfolio` | Brokerage account aggregation (stub) |
|
|
125
29
|
|
|
126
30
|
```ts
|
|
31
|
+
// Fetch and evaluate a strategy
|
|
127
32
|
const strategy = await livefolio.strategy.get('abc-123');
|
|
128
33
|
if (strategy) {
|
|
129
34
|
const result = await livefolio.strategy.evaluate(strategy, new Date());
|
|
130
|
-
|
|
131
|
-
result.allocation; // the winning allocation (name, holdings)
|
|
132
|
-
result.asOf; // Date the evaluation corresponds to (trading day market close)
|
|
133
|
-
result.signals; // Record<string, boolean> — all signal states
|
|
134
|
-
result.indicators; // Record<string, IndicatorEvaluation> — all indicator values
|
|
35
|
+
console.log(result.allocation.name, result.allocation.holdings);
|
|
135
36
|
}
|
|
136
|
-
```
|
|
137
37
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
| `extractSymbols(strategy)` | `string[]` | Collect all ticker symbols needed to evaluate a strategy (from signals + holdings) |
|
|
143
|
-
| `getEvaluationDate(trading, options)` | `Date` | Compute the evaluation date — requires `EvaluationOptions` with series data |
|
|
144
|
-
|
|
145
|
-
### Pure Evaluation Functions
|
|
38
|
+
// Market data
|
|
39
|
+
const series = await livefolio.market.getBatchSeries(['SPY', 'BND']);
|
|
40
|
+
const quote = await livefolio.market.getQuote('SPY');
|
|
41
|
+
```
|
|
146
42
|
|
|
147
|
-
|
|
43
|
+
Modules can also be imported individually:
|
|
148
44
|
|
|
149
45
|
```ts
|
|
150
|
-
import {
|
|
151
|
-
|
|
152
|
-
// Evaluate a single indicator
|
|
153
|
-
const smaResult = livefolio.strategy.evaluateIndicator(indicator, options);
|
|
154
|
-
|
|
155
|
-
// Evaluate a signal (comparison of two indicators)
|
|
156
|
-
const isAbove = livefolio.strategy.evaluateSignal(signal, options);
|
|
157
|
-
|
|
158
|
-
// Evaluate a full allocation condition tree
|
|
159
|
-
const matches = livefolio.strategy.evaluateAllocation(allocation, options);
|
|
46
|
+
import { createMarket } from '@livefolio/sdk/market';
|
|
47
|
+
import { createStrategy } from '@livefolio/sdk/strategy';
|
|
160
48
|
```
|
|
161
49
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
## Portfolio
|
|
50
|
+
## Documentation
|
|
165
51
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
---
|
|
52
|
+
Full method reference, arguments, return types, and usage examples: **[docs/](./docs/)**
|
|
169
53
|
|
|
170
54
|
## Development
|
|
171
55
|
|
|
172
56
|
```bash
|
|
173
|
-
npm install
|
|
174
57
|
npm run build # compile TypeScript → dist/
|
|
175
58
|
npm test # run tests
|
|
59
|
+
npm run ingest:init # backfill price_observations from Yahoo
|
|
60
|
+
npm run ingest:daily # refresh latest daily bars
|
|
61
|
+
npm run backtest:smoke -- --linkId <strategy-link-id>
|
|
176
62
|
```
|
|
177
63
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
- PRs to `main` run build + tests and enforce a version bump
|
|
181
|
-
- Merges to `main` auto-publish to npm and create a GitHub release
|
|
182
|
-
|
|
183
|
-
Before merging, bump the version:
|
|
184
|
-
|
|
185
|
-
```bash
|
|
186
|
-
npm version patch
|
|
187
|
-
```
|
|
64
|
+
PRs to `main` run build + tests and enforce a version bump. Merges auto-publish to npm.
|
|
188
65
|
|
|
189
66
|
## License
|
|
190
67
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/market/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAA2B,YAAY,EAAE,MAAM,SAAS,CAAC;AAErE,wBAAgB,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/market/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAA2B,YAAY,EAAE,MAAM,SAAS,CAAC;AAErE,wBAAgB,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,YAAY,CA+FtE"}
|
package/dist/market/client.js
CHANGED
|
@@ -13,6 +13,34 @@ function createMarket(client) {
|
|
|
13
13
|
const result = await this.getBatchSeries([symbol]);
|
|
14
14
|
return result[symbol];
|
|
15
15
|
},
|
|
16
|
+
async getBatchSeriesFromDb(symbols, startDate, endDate) {
|
|
17
|
+
const out = Object.fromEntries(symbols.map((symbol) => [symbol, []]));
|
|
18
|
+
if (symbols.length === 0)
|
|
19
|
+
return out;
|
|
20
|
+
const { data, error } = await client
|
|
21
|
+
.from('price_observations')
|
|
22
|
+
.select('symbol, date, price_400pm_et, timestamp_400pm_et')
|
|
23
|
+
.in('symbol', symbols)
|
|
24
|
+
.gte('date', startDate)
|
|
25
|
+
.lte('date', endDate)
|
|
26
|
+
.order('date', { ascending: true });
|
|
27
|
+
if (error)
|
|
28
|
+
throw new Error(`Failed to fetch price observations: ${error.message}`);
|
|
29
|
+
for (const row of data ?? []) {
|
|
30
|
+
const symbol = row.symbol;
|
|
31
|
+
if (!out[symbol])
|
|
32
|
+
out[symbol] = [];
|
|
33
|
+
out[symbol].push({
|
|
34
|
+
timestamp: row.timestamp_400pm_et ?? `${row.date}T21:00:00.000Z`,
|
|
35
|
+
value: row.price_400pm_et,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return out;
|
|
39
|
+
},
|
|
40
|
+
async getSeriesFromDb(symbol, startDate, endDate) {
|
|
41
|
+
const result = await this.getBatchSeriesFromDb([symbol], startDate, endDate);
|
|
42
|
+
return result[symbol];
|
|
43
|
+
},
|
|
16
44
|
async getBatchQuotes(symbols) {
|
|
17
45
|
const { data, error } = await client.functions.invoke('quote', { body: { symbols } });
|
|
18
46
|
if (error)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/market/client.ts"],"names":[],"mappings":";;AAGA,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/market/client.ts"],"names":[],"mappings":"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"}
|
package/dist/market/index.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export type { Observation, TradingDay, MarketModule } from './types';
|
|
2
2
|
export { createMarket } from './client';
|
|
3
|
+
export { TRACKED_TICKERS_DESCRIPTION, TRACKED_TICKERS_YFINANCE } from './trackedTickers';
|
|
4
|
+
export type { TrackedTicker } from './trackedTickers';
|
|
3
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/market/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/market/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,2BAA2B,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AACzF,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/market/index.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createMarket = void 0;
|
|
3
|
+
exports.TRACKED_TICKERS_YFINANCE = exports.TRACKED_TICKERS_DESCRIPTION = exports.createMarket = void 0;
|
|
4
4
|
var client_1 = require("./client");
|
|
5
5
|
Object.defineProperty(exports, "createMarket", { enumerable: true, get: function () { return client_1.createMarket; } });
|
|
6
|
+
var trackedTickers_1 = require("./trackedTickers");
|
|
7
|
+
Object.defineProperty(exports, "TRACKED_TICKERS_DESCRIPTION", { enumerable: true, get: function () { return trackedTickers_1.TRACKED_TICKERS_DESCRIPTION; } });
|
|
8
|
+
Object.defineProperty(exports, "TRACKED_TICKERS_YFINANCE", { enumerable: true, get: function () { return trackedTickers_1.TRACKED_TICKERS_YFINANCE; } });
|
|
6
9
|
//# sourceMappingURL=index.js.map
|
package/dist/market/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/market/index.ts"],"names":[],"mappings":";;;AACA,mCAAwC;AAA/B,sGAAA,YAAY,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/market/index.ts"],"names":[],"mappings":";;;AACA,mCAAwC;AAA/B,sGAAA,YAAY,OAAA;AACrB,mDAAyF;AAAhF,6HAAA,2BAA2B,OAAA;AAAE,0HAAA,wBAAwB,OAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const TRACKED_TICKERS_DESCRIPTION = "Curated default backtest/ingestion universe in Yahoo Finance symbol format.";
|
|
2
|
+
export declare const TRACKED_TICKERS_YFINANCE: readonly ["SPY", "QQQ", "IWM", "DIA", "TLT", "IEF", "SHY", "BIL", "GLD", "SLV", "USO", "UUP", "VNQ", "HYG", "LQD", "XLE", "XLF", "XLK", "XLV", "XLI", "XLP", "XLY", "XLU", "XLB", "XLRE", "^GSPC", "^NDX", "^DJI", "^RUT", "^VIX", "^VIX3M", "^IRX", "^FVX", "^TNX", "^TYX", "TQQQ", "SOXL", "QLD", "SSO", "SPXL", "TSLL", "UPRO", "NVDL", "TECL", "GDXU", "FAS", "BULZ", "USD", "FNGU", "TNA", "NUGT", "KORU", "GGLL", "UDOW", "ROM", "JNUG", "YINN", "UYG", "MSFU", "CONL", "NVDU", "DFEN", "AMDL", "NVDX", "LABU", "FNGO", "DDM", "DPST", "NAIL", "MSTU", "SPYU", "AMZU", "GUSH", "URTY", "MSTX", "ERX", "UWM", "FBL", "CWEB", "AVGX", "SPUU", "SHNY", "IONX", "EDC", "SMCX", "XDEC", "CURE", "MVV", "AAPU", "OKLL", "XJUN", "BRZU", "CHAU", "FNGG", "ROBN", "BABX", "XSEP", "DIG", "WEBL", "XBJA", "RXL", "BIB", "MIDU", "XDSQ", "HIMZ", "XBOC", "INDL", "EURL", "GOOX", "DUSL", "HIBL", "UTSL", "EET", "NRGU", "NFLU", "AMZZ", "UYM", "MSOX", "UXI", "EFO", "UMDD", "TSL", "RETL", "UBOT", "BNKU", "MEXX", "SAA", "TARK", "GMEU", "SMHB", "RIOX", "MSFX", "UPW", "WANT", "XTJL", "EZJ", "XTAP", "XTOC", "AVGU", "AAPB", "TPOR", "QTOC", "XTJA", "KPDD", "PILL", "QTJA", "UGE", "UPV", "HOOX", "XPP", "UCC", "DJTU", "RBLU", "MLPR", "LTL", "AAPX", "SCDL", "FLYU", "BDCX", "HDLB", "QULL", "MTUL", "IWDL", "IWML", "IWFL", "UCYB", "USML", "UBR", "CARU", "ARMU", "KBAB", "SKYU", "KBDU", "GDE", "RSSB", "RSST", "ZROZ", "AI", "TMF", "ALLW", "SIG", "UVXY", "VT", "ASGM", "BITX", "CTAP", "DBMF", "KMLM", "MA", "MSCI", "NTSX", "RSI", "RSSX", "SQQQ", "TFSA", "UGL", "UK", "AHLT", "ARQ", "AVDV", "BLNDX", "CAOS", "DAX", "DRIP", "EDV", "EMF", "ETHU", "EU", "FANG", "GDT", "GEM", "HFEQ", "HFGM", "HFMF", "IGV", "IMO", "LBRT", "LSE", "METU", "MIX", "MOOD", "NQ", "NTSE", "OIL", "ORR", "PLTU", "QDSIX", "QMNNX", "RKLX", "RKLZ", "RS", "RSBA", "RSBT", "RYTTX", "SARK", "SDMF", "SEC", "SIL", "SPLS", "TMV", "TSDD", "VOO", "VS", "VXUS", "WAY", "WTLS", "XQQI", "XSPI", "YEAR"];
|
|
3
|
+
export type TrackedTicker = (typeof TRACKED_TICKERS_YFINANCE)[number];
|
|
4
|
+
//# sourceMappingURL=trackedTickers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trackedTickers.d.ts","sourceRoot":"","sources":["../../src/market/trackedTickers.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,gFACuC,CAAC;AAEhF,eAAO,MAAM,wBAAwB,83DA0P3B,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC"}
|
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TRACKED_TICKERS_YFINANCE = exports.TRACKED_TICKERS_DESCRIPTION = void 0;
|
|
4
|
+
exports.TRACKED_TICKERS_DESCRIPTION = 'Curated default backtest/ingestion universe in Yahoo Finance symbol format.';
|
|
5
|
+
exports.TRACKED_TICKERS_YFINANCE = [
|
|
6
|
+
'SPY',
|
|
7
|
+
'QQQ',
|
|
8
|
+
'IWM',
|
|
9
|
+
'DIA',
|
|
10
|
+
'TLT',
|
|
11
|
+
'IEF',
|
|
12
|
+
'SHY',
|
|
13
|
+
'BIL',
|
|
14
|
+
'GLD',
|
|
15
|
+
'SLV',
|
|
16
|
+
'USO',
|
|
17
|
+
'UUP',
|
|
18
|
+
'VNQ',
|
|
19
|
+
'HYG',
|
|
20
|
+
'LQD',
|
|
21
|
+
'XLE',
|
|
22
|
+
'XLF',
|
|
23
|
+
'XLK',
|
|
24
|
+
'XLV',
|
|
25
|
+
'XLI',
|
|
26
|
+
'XLP',
|
|
27
|
+
'XLY',
|
|
28
|
+
'XLU',
|
|
29
|
+
'XLB',
|
|
30
|
+
'XLRE',
|
|
31
|
+
'^GSPC',
|
|
32
|
+
'^NDX',
|
|
33
|
+
'^DJI',
|
|
34
|
+
'^RUT',
|
|
35
|
+
'^VIX',
|
|
36
|
+
'^VIX3M',
|
|
37
|
+
'^IRX',
|
|
38
|
+
'^FVX',
|
|
39
|
+
'^TNX',
|
|
40
|
+
'^TYX',
|
|
41
|
+
'TQQQ',
|
|
42
|
+
'SOXL',
|
|
43
|
+
'QLD',
|
|
44
|
+
'SSO',
|
|
45
|
+
'SPXL',
|
|
46
|
+
'TSLL',
|
|
47
|
+
'UPRO',
|
|
48
|
+
'NVDL',
|
|
49
|
+
'TECL',
|
|
50
|
+
'GDXU',
|
|
51
|
+
'FAS',
|
|
52
|
+
'BULZ',
|
|
53
|
+
'USD',
|
|
54
|
+
'FNGU',
|
|
55
|
+
'TNA',
|
|
56
|
+
'NUGT',
|
|
57
|
+
'KORU',
|
|
58
|
+
'GGLL',
|
|
59
|
+
'UDOW',
|
|
60
|
+
'ROM',
|
|
61
|
+
'JNUG',
|
|
62
|
+
'YINN',
|
|
63
|
+
'UYG',
|
|
64
|
+
'MSFU',
|
|
65
|
+
'CONL',
|
|
66
|
+
'NVDU',
|
|
67
|
+
'DFEN',
|
|
68
|
+
'AMDL',
|
|
69
|
+
'NVDX',
|
|
70
|
+
'LABU',
|
|
71
|
+
'FNGO',
|
|
72
|
+
'DDM',
|
|
73
|
+
'DPST',
|
|
74
|
+
'NAIL',
|
|
75
|
+
'MSTU',
|
|
76
|
+
'SPYU',
|
|
77
|
+
'AMZU',
|
|
78
|
+
'GUSH',
|
|
79
|
+
'URTY',
|
|
80
|
+
'MSTX',
|
|
81
|
+
'ERX',
|
|
82
|
+
'UWM',
|
|
83
|
+
'FBL',
|
|
84
|
+
'CWEB',
|
|
85
|
+
'AVGX',
|
|
86
|
+
'SPUU',
|
|
87
|
+
'SHNY',
|
|
88
|
+
'IONX',
|
|
89
|
+
'EDC',
|
|
90
|
+
'SMCX',
|
|
91
|
+
'XDEC',
|
|
92
|
+
'CURE',
|
|
93
|
+
'MVV',
|
|
94
|
+
'AAPU',
|
|
95
|
+
'OKLL',
|
|
96
|
+
'XJUN',
|
|
97
|
+
'BRZU',
|
|
98
|
+
'CHAU',
|
|
99
|
+
'FNGG',
|
|
100
|
+
'ROBN',
|
|
101
|
+
'BABX',
|
|
102
|
+
'XSEP',
|
|
103
|
+
'DIG',
|
|
104
|
+
'WEBL',
|
|
105
|
+
'XBJA',
|
|
106
|
+
'RXL',
|
|
107
|
+
'BIB',
|
|
108
|
+
'MIDU',
|
|
109
|
+
'XDSQ',
|
|
110
|
+
'HIMZ',
|
|
111
|
+
'XBOC',
|
|
112
|
+
'INDL',
|
|
113
|
+
'EURL',
|
|
114
|
+
'GOOX',
|
|
115
|
+
'DUSL',
|
|
116
|
+
'HIBL',
|
|
117
|
+
'UTSL',
|
|
118
|
+
'EET',
|
|
119
|
+
'NRGU',
|
|
120
|
+
'NFLU',
|
|
121
|
+
'AMZZ',
|
|
122
|
+
'UYM',
|
|
123
|
+
'MSOX',
|
|
124
|
+
'UXI',
|
|
125
|
+
'EFO',
|
|
126
|
+
'UMDD',
|
|
127
|
+
'TSL',
|
|
128
|
+
'RETL',
|
|
129
|
+
'UBOT',
|
|
130
|
+
'BNKU',
|
|
131
|
+
'MEXX',
|
|
132
|
+
'SAA',
|
|
133
|
+
'TARK',
|
|
134
|
+
'GMEU',
|
|
135
|
+
'SMHB',
|
|
136
|
+
'RIOX',
|
|
137
|
+
'MSFX',
|
|
138
|
+
'UPW',
|
|
139
|
+
'WANT',
|
|
140
|
+
'XTJL',
|
|
141
|
+
'EZJ',
|
|
142
|
+
'XTAP',
|
|
143
|
+
'XTOC',
|
|
144
|
+
'AVGU',
|
|
145
|
+
'AAPB',
|
|
146
|
+
'TPOR',
|
|
147
|
+
'QTOC',
|
|
148
|
+
'XTJA',
|
|
149
|
+
'KPDD',
|
|
150
|
+
'PILL',
|
|
151
|
+
'QTJA',
|
|
152
|
+
'UGE',
|
|
153
|
+
'UPV',
|
|
154
|
+
'HOOX',
|
|
155
|
+
'XPP',
|
|
156
|
+
'UCC',
|
|
157
|
+
'DJTU',
|
|
158
|
+
'RBLU',
|
|
159
|
+
'MLPR',
|
|
160
|
+
'LTL',
|
|
161
|
+
'AAPX',
|
|
162
|
+
'SCDL',
|
|
163
|
+
'FLYU',
|
|
164
|
+
'BDCX',
|
|
165
|
+
'HDLB',
|
|
166
|
+
'QULL',
|
|
167
|
+
'MTUL',
|
|
168
|
+
'IWDL',
|
|
169
|
+
'IWML',
|
|
170
|
+
'IWFL',
|
|
171
|
+
'UCYB',
|
|
172
|
+
'USML',
|
|
173
|
+
'UBR',
|
|
174
|
+
'CARU',
|
|
175
|
+
'ARMU',
|
|
176
|
+
'KBAB',
|
|
177
|
+
'SKYU',
|
|
178
|
+
'KBDU',
|
|
179
|
+
'GDE',
|
|
180
|
+
'RSSB',
|
|
181
|
+
'RSST',
|
|
182
|
+
'ZROZ',
|
|
183
|
+
'AI',
|
|
184
|
+
'TMF',
|
|
185
|
+
'ALLW',
|
|
186
|
+
'SIG',
|
|
187
|
+
'UVXY',
|
|
188
|
+
'VT',
|
|
189
|
+
'ASGM',
|
|
190
|
+
'BITX',
|
|
191
|
+
'CTAP',
|
|
192
|
+
'DBMF',
|
|
193
|
+
'KMLM',
|
|
194
|
+
'MA',
|
|
195
|
+
'MSCI',
|
|
196
|
+
'NTSX',
|
|
197
|
+
'RSI',
|
|
198
|
+
'RSSX',
|
|
199
|
+
'SQQQ',
|
|
200
|
+
'TFSA',
|
|
201
|
+
'UGL',
|
|
202
|
+
'UK',
|
|
203
|
+
'AHLT',
|
|
204
|
+
'ARQ',
|
|
205
|
+
'AVDV',
|
|
206
|
+
'BLNDX',
|
|
207
|
+
'CAOS',
|
|
208
|
+
'DAX',
|
|
209
|
+
'DRIP',
|
|
210
|
+
'EDV',
|
|
211
|
+
'EMF',
|
|
212
|
+
'ETHU',
|
|
213
|
+
'EU',
|
|
214
|
+
'FANG',
|
|
215
|
+
'GDT',
|
|
216
|
+
'GEM',
|
|
217
|
+
'HFEQ',
|
|
218
|
+
'HFGM',
|
|
219
|
+
'HFMF',
|
|
220
|
+
'IGV',
|
|
221
|
+
'IMO',
|
|
222
|
+
'LBRT',
|
|
223
|
+
'LSE',
|
|
224
|
+
'METU',
|
|
225
|
+
'MIX',
|
|
226
|
+
'MOOD',
|
|
227
|
+
'NQ',
|
|
228
|
+
'NTSE',
|
|
229
|
+
'OIL',
|
|
230
|
+
'ORR',
|
|
231
|
+
'PLTU',
|
|
232
|
+
'QDSIX',
|
|
233
|
+
'QMNNX',
|
|
234
|
+
'RKLX',
|
|
235
|
+
'RKLZ',
|
|
236
|
+
'RS',
|
|
237
|
+
'RSBA',
|
|
238
|
+
'RSBT',
|
|
239
|
+
'RYTTX',
|
|
240
|
+
'SARK',
|
|
241
|
+
'SDMF',
|
|
242
|
+
'SEC',
|
|
243
|
+
'SIL',
|
|
244
|
+
'SPLS',
|
|
245
|
+
'TMV',
|
|
246
|
+
'TSDD',
|
|
247
|
+
'VOO',
|
|
248
|
+
'VS',
|
|
249
|
+
'VXUS',
|
|
250
|
+
'WAY',
|
|
251
|
+
'WTLS',
|
|
252
|
+
'XQQI',
|
|
253
|
+
'XSPI',
|
|
254
|
+
'YEAR',
|
|
255
|
+
];
|
|
256
|
+
//# sourceMappingURL=trackedTickers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trackedTickers.js","sourceRoot":"","sources":["../../src/market/trackedTickers.ts"],"names":[],"mappings":";;;AAAa,QAAA,2BAA2B,GACtC,6EAA6E,CAAC;AAEnE,QAAA,wBAAwB,GAAG;IACtC,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,IAAI;IACJ,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,IAAI;IACJ,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,IAAI;IACJ,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,IAAI;IACJ,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,IAAI;IACJ,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,IAAI;IACJ,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,IAAI;IACJ,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,IAAI;IACJ,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACE,CAAC"}
|
package/dist/market/types.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ export interface TradingDay {
|
|
|
12
12
|
export interface MarketModule {
|
|
13
13
|
getSeries(symbol: string): Promise<Observation[]>;
|
|
14
14
|
getBatchSeries(symbols: string[]): Promise<Record<string, Observation[]>>;
|
|
15
|
+
getSeriesFromDb(symbol: string, startDate: string, endDate: string): Promise<Observation[]>;
|
|
16
|
+
getBatchSeriesFromDb(symbols: string[], startDate: string, endDate: string): Promise<Record<string, Observation[]>>;
|
|
15
17
|
getQuote(symbol: string): Promise<Observation>;
|
|
16
18
|
getBatchQuotes(symbols: string[]): Promise<Record<string, Observation>>;
|
|
17
19
|
getTradingDays(startDate: string, endDate: string): Promise<TradingDay[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/market/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAE3B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAClD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/market/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAE3B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAClD,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IAC1E,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5F,oBAAoB,CAClB,OAAO,EAAE,MAAM,EAAE,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IAG1C,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/C,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAGxE,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC1E,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;CACzD"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { BacktestOptions, BacktestResult, Strategy, StrategyDraft } from './types';
|
|
2
|
+
import type { MarketModule } from '../market/types';
|
|
3
|
+
export declare function backtestWithMarketData(market: Pick<MarketModule, 'getBatchSeriesFromDb' | 'getTradingDays'>, strategy: Strategy, options: BacktestOptions): Promise<BacktestResult>;
|
|
4
|
+
export declare function backtestRulesWithMarketData(market: Pick<MarketModule, 'getBatchSeriesFromDb' | 'getTradingDays'>, strategyDraft: StrategyDraft, options: BacktestOptions): Promise<BacktestResult>;
|
|
5
|
+
export declare function backtest(strategy: Strategy, options: BacktestOptions): Promise<BacktestResult>;
|
|
6
|
+
//# sourceMappingURL=backtest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backtest.d.ts","sourceRoot":"","sources":["../../src/strategy/backtest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,eAAe,EAEf,cAAc,EAEd,QAAQ,EACR,aAAa,EACd,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,YAAY,EAA2B,MAAM,iBAAiB,CAAC;AA4c7E,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,sBAAsB,GAAG,gBAAgB,CAAC,EACrE,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CAEzB;AAED,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,sBAAsB,GAAG,gBAAgB,CAAC,EACrE,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CAGzB;AAED,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAwVpG"}
|