@livefolio/sdk 0.2.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/README.md +191 -0
- package/dist/auth/client.d.ts +4 -0
- package/dist/auth/client.d.ts.map +1 -0
- package/dist/auth/client.js +37 -0
- package/dist/auth/client.js.map +1 -0
- package/dist/auth/index.d.ts +3 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +6 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/types.d.ts +9 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +3 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +55 -0
- package/dist/index.js.map +1 -0
- package/dist/market/client.d.ts +4 -0
- package/dist/market/client.d.ts.map +1 -0
- package/dist/market/client.js +65 -0
- package/dist/market/client.js.map +1 -0
- package/dist/market/index.d.ts +3 -0
- package/dist/market/index.d.ts.map +1 -0
- package/dist/market/index.js +6 -0
- package/dist/market/index.js.map +1 -0
- package/dist/market/types.d.ts +20 -0
- package/dist/market/types.d.ts.map +1 -0
- package/dist/market/types.js +3 -0
- package/dist/market/types.js.map +1 -0
- package/dist/portfolio/client.d.ts +4 -0
- package/dist/portfolio/client.d.ts.map +1 -0
- package/dist/portfolio/client.js +7 -0
- package/dist/portfolio/client.js.map +1 -0
- package/dist/portfolio/index.d.ts +3 -0
- package/dist/portfolio/index.d.ts.map +1 -0
- package/dist/portfolio/index.js +6 -0
- package/dist/portfolio/index.js.map +1 -0
- package/dist/portfolio/types.d.ts +3 -0
- package/dist/portfolio/types.d.ts.map +1 -0
- package/dist/portfolio/types.js +3 -0
- package/dist/portfolio/types.js.map +1 -0
- package/dist/strategy/client.d.ts +4 -0
- package/dist/strategy/client.d.ts.map +1 -0
- package/dist/strategy/client.js +350 -0
- package/dist/strategy/client.js.map +1 -0
- package/dist/strategy/evaluate.d.ts +10 -0
- package/dist/strategy/evaluate.d.ts.map +1 -0
- package/dist/strategy/evaluate.js +498 -0
- package/dist/strategy/evaluate.js.map +1 -0
- package/dist/strategy/index.d.ts +6 -0
- package/dist/strategy/index.d.ts.map +1 -0
- package/dist/strategy/index.js +20 -0
- package/dist/strategy/index.js.map +1 -0
- package/dist/strategy/symbols.d.ts +4 -0
- package/dist/strategy/symbols.d.ts.map +1 -0
- package/dist/strategy/symbols.js +41 -0
- package/dist/strategy/symbols.js.map +1 -0
- package/dist/strategy/time.d.ts +9 -0
- package/dist/strategy/time.d.ts.map +1 -0
- package/dist/strategy/time.js +28 -0
- package/dist/strategy/time.js.map +1 -0
- package/dist/strategy/types.d.ts +107 -0
- package/dist/strategy/types.d.ts.map +1 -0
- package/dist/strategy/types.js +3 -0
- package/dist/strategy/types.js.map +1 -0
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../../src/strategy/time.ts"],"names":[],"mappings":"AAUA,wBAAgB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CASA;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAGxD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.utcToET = utcToET;
|
|
4
|
+
exports.isAtMarketClose = isAtMarketClose;
|
|
5
|
+
const ET_FORMATTER = new Intl.DateTimeFormat('en-US', {
|
|
6
|
+
timeZone: 'America/New_York',
|
|
7
|
+
year: 'numeric',
|
|
8
|
+
month: 'numeric',
|
|
9
|
+
day: 'numeric',
|
|
10
|
+
hour: 'numeric',
|
|
11
|
+
minute: 'numeric',
|
|
12
|
+
hourCycle: 'h23',
|
|
13
|
+
});
|
|
14
|
+
function utcToET(date) {
|
|
15
|
+
const parts = ET_FORMATTER.formatToParts(date);
|
|
16
|
+
return {
|
|
17
|
+
year: parseInt(parts.find((p) => p.type === 'year')?.value || '0', 10),
|
|
18
|
+
month: parseInt(parts.find((p) => p.type === 'month')?.value || '0', 10),
|
|
19
|
+
day: parseInt(parts.find((p) => p.type === 'day')?.value || '0', 10),
|
|
20
|
+
hour: parseInt(parts.find((p) => p.type === 'hour')?.value || '0', 10),
|
|
21
|
+
minute: parseInt(parts.find((p) => p.type === 'minute')?.value || '0', 10),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function isAtMarketClose(timestamp) {
|
|
25
|
+
const et = utcToET(timestamp);
|
|
26
|
+
return (et.hour === 16 && et.minute === 0) || (et.hour === 13 && et.minute === 0);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/strategy/time.ts"],"names":[],"mappings":";;AAUA,0BAeC;AAED,0CAGC;AA9BD,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;IACpD,QAAQ,EAAE,kBAAkB;IAC5B,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,SAAS;IAChB,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,SAAS;IACjB,SAAS,EAAE,KAAK;CACjB,CAAC,CAAC;AAEH,SAAgB,OAAO,CAAC,IAAU;IAOhC,MAAM,KAAK,GAAG,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,KAAK,IAAI,GAAG,EAAE,EAAE,CAAC;QACtE,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,KAAK,IAAI,GAAG,EAAE,EAAE,CAAC;QACxE,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,KAAK,IAAI,GAAG,EAAE,EAAE,CAAC;QACpE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,KAAK,IAAI,GAAG,EAAE,EAAE,CAAC;QACtE,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,KAAK,IAAI,GAAG,EAAE,EAAE,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED,SAAgB,eAAe,CAAC,SAAe;IAC7C,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AACpF,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import type { Observation } from '../market/types';
|
|
2
|
+
export type Comparison = '>' | '<' | '=';
|
|
3
|
+
export type IndicatorType = 'SMA' | 'EMA' | 'Price' | 'Return' | 'Volatility' | 'Drawdown' | 'RSI' | 'VIX' | 'VIX3M' | 'T3M' | 'T6M' | 'T1Y' | 'T2Y' | 'T3Y' | 'T5Y' | 'T7Y' | 'T10Y' | 'T20Y' | 'T30Y' | 'Month' | 'Day of Week' | 'Day of Month' | 'Day of Year' | 'Threshold';
|
|
4
|
+
export type Frequency = 'Daily' | 'Weekly' | 'Monthly' | 'Bi-monthly' | 'Quarterly' | 'Every 4 Months' | 'Semiannually' | 'Yearly';
|
|
5
|
+
export type Unit = '%' | '$' | null;
|
|
6
|
+
export interface Ticker {
|
|
7
|
+
symbol: string;
|
|
8
|
+
leverage: number;
|
|
9
|
+
}
|
|
10
|
+
export interface Indicator {
|
|
11
|
+
type: IndicatorType;
|
|
12
|
+
ticker: Ticker;
|
|
13
|
+
lookback: number;
|
|
14
|
+
delay: number;
|
|
15
|
+
unit: Unit;
|
|
16
|
+
threshold: number | null;
|
|
17
|
+
}
|
|
18
|
+
export interface Signal {
|
|
19
|
+
left: Indicator;
|
|
20
|
+
comparison: Comparison;
|
|
21
|
+
right: Indicator;
|
|
22
|
+
tolerance: number;
|
|
23
|
+
}
|
|
24
|
+
export interface Holding {
|
|
25
|
+
ticker: Ticker;
|
|
26
|
+
weight: number;
|
|
27
|
+
}
|
|
28
|
+
export interface Allocation {
|
|
29
|
+
condition: Condition;
|
|
30
|
+
holdings: Holding[];
|
|
31
|
+
}
|
|
32
|
+
export interface SignalExpr {
|
|
33
|
+
kind: 'signal';
|
|
34
|
+
signal: Signal;
|
|
35
|
+
}
|
|
36
|
+
export interface NotExpr {
|
|
37
|
+
kind: 'not';
|
|
38
|
+
signal: Signal;
|
|
39
|
+
}
|
|
40
|
+
export type UnaryExpr = SignalExpr | NotExpr;
|
|
41
|
+
export interface AndExpr {
|
|
42
|
+
kind: 'and';
|
|
43
|
+
args: UnaryExpr[];
|
|
44
|
+
}
|
|
45
|
+
export interface OrExpr {
|
|
46
|
+
kind: 'or';
|
|
47
|
+
args: AndExpr[];
|
|
48
|
+
}
|
|
49
|
+
export type Condition = OrExpr | AndExpr | UnaryExpr;
|
|
50
|
+
export interface NamedSignal {
|
|
51
|
+
name: string;
|
|
52
|
+
signal: Signal;
|
|
53
|
+
}
|
|
54
|
+
export interface NamedAllocation {
|
|
55
|
+
name: string;
|
|
56
|
+
allocation: Allocation;
|
|
57
|
+
}
|
|
58
|
+
export interface Trading {
|
|
59
|
+
frequency: Frequency;
|
|
60
|
+
offset: number;
|
|
61
|
+
}
|
|
62
|
+
export interface Strategy {
|
|
63
|
+
linkId: string;
|
|
64
|
+
name: string;
|
|
65
|
+
trading: Trading;
|
|
66
|
+
allocations: NamedAllocation[];
|
|
67
|
+
signals: NamedSignal[];
|
|
68
|
+
}
|
|
69
|
+
export interface EvaluationOptions {
|
|
70
|
+
at: Date;
|
|
71
|
+
batchSeries: Record<string, Observation[]>;
|
|
72
|
+
previousSignalStates?: Record<string, boolean>;
|
|
73
|
+
previousIndicatorMetadata?: Record<string, unknown>;
|
|
74
|
+
}
|
|
75
|
+
export interface IndicatorEvaluation {
|
|
76
|
+
timestamp: string;
|
|
77
|
+
value: number;
|
|
78
|
+
metadata?: unknown;
|
|
79
|
+
}
|
|
80
|
+
export interface AllocationEvaluation {
|
|
81
|
+
name: string;
|
|
82
|
+
holdings: Holding[];
|
|
83
|
+
}
|
|
84
|
+
export interface StrategyEvaluation {
|
|
85
|
+
asOf: Date;
|
|
86
|
+
allocation: AllocationEvaluation;
|
|
87
|
+
signals: Record<string, boolean>;
|
|
88
|
+
indicators: Record<string, IndicatorEvaluation>;
|
|
89
|
+
}
|
|
90
|
+
export interface BacktestOptions {
|
|
91
|
+
startDate: string;
|
|
92
|
+
endDate: string;
|
|
93
|
+
}
|
|
94
|
+
export interface BacktestResult {
|
|
95
|
+
}
|
|
96
|
+
export interface StrategyModule {
|
|
97
|
+
get(linkId: string): Promise<Strategy | null>;
|
|
98
|
+
getMany(linkIds: string[]): Promise<Record<string, Strategy>>;
|
|
99
|
+
evaluate(strategy: Strategy, at: Date): Promise<StrategyEvaluation>;
|
|
100
|
+
evaluateIndicator(indicator: Indicator, options: EvaluationOptions): IndicatorEvaluation;
|
|
101
|
+
evaluateSignal(signal: Signal, options: EvaluationOptions): boolean;
|
|
102
|
+
evaluateAllocation(allocation: Allocation, options: EvaluationOptions): boolean;
|
|
103
|
+
getEvaluationDate(trading: Trading, options: EvaluationOptions): Date;
|
|
104
|
+
extractSymbols(strategy: Strategy): string[];
|
|
105
|
+
backtest(strategy: Strategy, options: BacktestOptions): Promise<BacktestResult>;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/strategy/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/strategy/types.ts"],"names":[],"mappings":""}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@livefolio/sdk",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Livefolio SDK — market data, strategy evaluation, and portfolio management",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"default": "./dist/index.js"
|
|
11
|
+
},
|
|
12
|
+
"./market": {
|
|
13
|
+
"types": "./dist/market/index.d.ts",
|
|
14
|
+
"default": "./dist/market/index.js"
|
|
15
|
+
},
|
|
16
|
+
"./strategy": {
|
|
17
|
+
"types": "./dist/strategy/index.d.ts",
|
|
18
|
+
"default": "./dist/strategy/index.js"
|
|
19
|
+
},
|
|
20
|
+
"./portfolio": {
|
|
21
|
+
"types": "./dist/portfolio/index.d.ts",
|
|
22
|
+
"default": "./dist/portfolio/index.js"
|
|
23
|
+
},
|
|
24
|
+
"./auth": {
|
|
25
|
+
"types": "./dist/auth/index.d.ts",
|
|
26
|
+
"default": "./dist/auth/index.js"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"dist"
|
|
31
|
+
],
|
|
32
|
+
"scripts": {
|
|
33
|
+
"build": "tsc",
|
|
34
|
+
"clean": "rm -rf dist",
|
|
35
|
+
"test": "vitest run",
|
|
36
|
+
"test:watch": "vitest"
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"@livefolio/db": "*",
|
|
40
|
+
"@supabase/supabase-js": "^2"
|
|
41
|
+
},
|
|
42
|
+
"devDependencies": {
|
|
43
|
+
"@vitest/coverage-v8": "^4.0.18",
|
|
44
|
+
"typescript": "^5.5.3",
|
|
45
|
+
"vitest": "^4.0.18"
|
|
46
|
+
}
|
|
47
|
+
}
|