@continuumdao/continuum-node-sdk 1.2.29 → 1.3.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/core/ta/calculate.d.ts +15 -0
- package/dist/core/ta/calculate.d.ts.map +1 -0
- package/dist/core/ta/calculate.js +275 -0
- package/dist/core/ta/calculate.js.map +1 -0
- package/dist/core/ta/catalog.d.ts +26 -0
- package/dist/core/ta/catalog.d.ts.map +1 -0
- package/dist/core/ta/catalog.js +215 -0
- package/dist/core/ta/catalog.js.map +1 -0
- package/dist/core/ta/index.d.ts +5 -0
- package/dist/core/ta/index.d.ts.map +1 -0
- package/dist/core/ta/index.js +5 -0
- package/dist/core/ta/index.js.map +1 -0
- package/dist/core/ta/normalize-input.d.ts +30 -0
- package/dist/core/ta/normalize-input.d.ts.map +1 -0
- package/dist/core/ta/normalize-input.js +193 -0
- package/dist/core/ta/normalize-input.js.map +1 -0
- package/dist/core/ta/schemas.d.ts +151 -0
- package/dist/core/ta/schemas.d.ts.map +1 -0
- package/dist/core/ta/schemas.js +95 -0
- package/dist/core/ta/schemas.js.map +1 -0
- package/dist/mcp/ta/register.d.ts +6 -0
- package/dist/mcp/ta/register.d.ts.map +1 -0
- package/dist/mcp/ta/register.js +51 -0
- package/dist/mcp/ta/register.js.map +1 -0
- package/dist/mcp/ta/resources/indicators.md +86 -0
- package/dist/mcp/ta-server/index.d.ts +2 -0
- package/dist/mcp/ta-server/index.d.ts.map +1 -0
- package/dist/mcp/ta-server/index.js +12 -0
- package/dist/mcp/ta-server/index.js.map +1 -0
- package/package.json +7 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { SdkResult } from '../result.js';
|
|
2
|
+
import { catalogEntryForList } from './catalog.js';
|
|
3
|
+
import type { CalculateTechnicalIndicatorInput } from './schemas.js';
|
|
4
|
+
export declare function listTechnicalIndicators(): SdkResult<{
|
|
5
|
+
indicators: ReturnType<typeof catalogEntryForList>[];
|
|
6
|
+
}>;
|
|
7
|
+
export declare function calculateTechnicalIndicator(input: CalculateTechnicalIndicatorInput): SdkResult<{
|
|
8
|
+
indicator: string;
|
|
9
|
+
params: Record<string, unknown>;
|
|
10
|
+
inputLength: number;
|
|
11
|
+
outputLength: number;
|
|
12
|
+
warmupCount: number;
|
|
13
|
+
result: number[] | Array<Record<string, unknown>> | boolean[];
|
|
14
|
+
}>;
|
|
15
|
+
//# sourceMappingURL=calculate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculate.d.ts","sourceRoot":"","sources":["../../../src/core/ta/calculate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAC5C,OAAO,EACN,mBAAmB,EAMnB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAC,gCAAgC,EAAC,MAAM,cAAc,CAAC;AAqNnE,wBAAgB,uBAAuB,IAAI,SAAS,CAAC;IACpD,UAAU,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,EAAE,CAAC;CACrD,CAAC,CAOD;AAED,wBAAgB,2BAA2B,CAC1C,KAAK,EAAE,gCAAgC,GACrC,SAAS,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC;CAC9D,CAAC,CAwED"}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import { catalogEntryForList, getIndicatorMeta, listIndicatorCatalog, resolveIndicatorId, suggestIndicator, } from './catalog.js';
|
|
3
|
+
import { normalizeInput } from './normalize-input.js';
|
|
4
|
+
const require = createRequire(import.meta.url);
|
|
5
|
+
const ti = require('fast-technical-indicators');
|
|
6
|
+
function asTiFn(fn) {
|
|
7
|
+
return fn;
|
|
8
|
+
}
|
|
9
|
+
const FN_MAP = {
|
|
10
|
+
sma: asTiFn(ti.sma),
|
|
11
|
+
ema: asTiFn(ti.ema),
|
|
12
|
+
wma: asTiFn(ti.wma),
|
|
13
|
+
wema: asTiFn(ti.wema),
|
|
14
|
+
macd: asTiFn(ti.macd),
|
|
15
|
+
rsi: asTiFn(ti.rsi),
|
|
16
|
+
cci: asTiFn(ti.cci),
|
|
17
|
+
awesomeoscillator: asTiFn(ti.awesomeoscillator),
|
|
18
|
+
roc: asTiFn(ti.roc),
|
|
19
|
+
stochastic: asTiFn(ti.stochastic),
|
|
20
|
+
williamsr: asTiFn(ti.williamsr),
|
|
21
|
+
trix: asTiFn(ti.trix),
|
|
22
|
+
stochasticrsi: asTiFn(ti.stochasticrsi),
|
|
23
|
+
psar: asTiFn(ti.psar),
|
|
24
|
+
kst: asTiFn(ti.kst),
|
|
25
|
+
ultimateoscillator: asTiFn(ti.ultimateoscillator),
|
|
26
|
+
dpo: asTiFn(ti.dpo),
|
|
27
|
+
priceoscillator: asTiFn(ti.priceoscillator),
|
|
28
|
+
ppo: asTiFn(ti.ppo),
|
|
29
|
+
obv: asTiFn(ti.obv),
|
|
30
|
+
adl: asTiFn(ti.adl),
|
|
31
|
+
vwap: asTiFn(ti.vwap),
|
|
32
|
+
forceindex: asTiFn(ti.forceindex),
|
|
33
|
+
mfi: asTiFn(ti.mfi),
|
|
34
|
+
volumeprofile: asTiFn(ti.volumeprofile),
|
|
35
|
+
bollingerbands: asTiFn(ti.bollingerbands),
|
|
36
|
+
atr: asTiFn(ti.atr),
|
|
37
|
+
keltnerchannel: asTiFn(ti.keltnerchannel),
|
|
38
|
+
chandelierexit: asTiFn(ti.chandelierexit),
|
|
39
|
+
donchianchannels: asTiFn(ti.donchianchannels),
|
|
40
|
+
volatilityindex: asTiFn(ti.volatilityindex),
|
|
41
|
+
truerange: asTiFn(ti.truerange),
|
|
42
|
+
adx: asTiFn(ti.adx),
|
|
43
|
+
plusdm: asTiFn(ti.plusdm),
|
|
44
|
+
minusdm: asTiFn(ti.minusdm),
|
|
45
|
+
ichimokukinkouhyou: asTiFn(ti.ichimokukinkouhyou),
|
|
46
|
+
supertrend: asTiFn(ti.supertrend),
|
|
47
|
+
aroon: asTiFn(ti.aroon),
|
|
48
|
+
aroonoscillator: asTiFn(ti.aroonoscillator),
|
|
49
|
+
linearregression: asTiFn(ti.linearregression),
|
|
50
|
+
maenvelope: asTiFn(ti.maenvelope),
|
|
51
|
+
pivotpoints: asTiFn(ti.pivotpoints),
|
|
52
|
+
doji: asTiFn(ti.doji),
|
|
53
|
+
bullishengulfingpattern: asTiFn(ti.bullishengulfingpattern),
|
|
54
|
+
bearishengulfingpattern: asTiFn(ti.bearishengulfingpattern),
|
|
55
|
+
hammer: asTiFn(ti.hammer),
|
|
56
|
+
hangingman: asTiFn(ti.hangingman),
|
|
57
|
+
shootingstar: asTiFn(ti.shootingstar),
|
|
58
|
+
spinningtop: asTiFn(ti.spinningtop),
|
|
59
|
+
marubozu: asTiFn(ti.marubozu),
|
|
60
|
+
dragonflydoji: asTiFn(ti.dragonflydoji),
|
|
61
|
+
gravestonedoji: asTiFn(ti.gravestonedoji),
|
|
62
|
+
threewhitesoldiers: asTiFn(ti.threewhitesoldiers),
|
|
63
|
+
threeblackcrows: asTiFn(ti.threeblackcrows),
|
|
64
|
+
bullishharami: asTiFn(ti.bullishharami),
|
|
65
|
+
bearishharami: asTiFn(ti.bearishharami),
|
|
66
|
+
piercingline: asTiFn(ti.piercingline),
|
|
67
|
+
darkcloudcover: asTiFn(ti.darkcloudcover),
|
|
68
|
+
morningstar: asTiFn(ti.morningstar),
|
|
69
|
+
eveningstar: asTiFn(ti.eveningstar),
|
|
70
|
+
tweezerbottom: asTiFn(ti.tweezerbottom),
|
|
71
|
+
tweezertop: asTiFn(ti.tweezertop),
|
|
72
|
+
abandonedbaby: asTiFn(ti.abandonedbaby),
|
|
73
|
+
bullishmarubozu: asTiFn(ti.bullishmarubozu),
|
|
74
|
+
bearishmarubozu: asTiFn(ti.bearishmarubozu),
|
|
75
|
+
bullishinvertedhammer: asTiFn(ti.bullishinvertedhammer),
|
|
76
|
+
bearishinvertedhammer: asTiFn(ti.bearishinvertedhammer),
|
|
77
|
+
morningdojistar: asTiFn(ti.morningdojistar),
|
|
78
|
+
eveningdojistar: asTiFn(ti.eveningdojistar),
|
|
79
|
+
downsidetasukigap: asTiFn(ti.downsidetasukigap),
|
|
80
|
+
bullishspinningtop: asTiFn(ti.bullishspinningtop),
|
|
81
|
+
bearishspinningtop: asTiFn(ti.bearishspinningtop),
|
|
82
|
+
bullish: asTiFn(ti.bullish),
|
|
83
|
+
bearish: asTiFn(ti.bearish),
|
|
84
|
+
bullishharamicross: asTiFn(ti.bullishharamicross),
|
|
85
|
+
bearishharamicross: asTiFn(ti.bearishharamicross),
|
|
86
|
+
hammerpatternunconfirmed: asTiFn(ti.hammerpatternunconfirmed),
|
|
87
|
+
hangingmanunconfirmed: asTiFn(ti.hangingmanunconfirmed),
|
|
88
|
+
shootingstarunconfirmed: asTiFn(ti.shootingstarunconfirmed),
|
|
89
|
+
bullishhammerstick: asTiFn(ti.bullishhammerstick),
|
|
90
|
+
bearishhammerstick: asTiFn(ti.bearishhammerstick),
|
|
91
|
+
heikinashi: asTiFn(ti.heikinashi),
|
|
92
|
+
renko: asTiFn(ti.renko),
|
|
93
|
+
typicalprice: asTiFn(ti.typicalprice),
|
|
94
|
+
fibonacci: asTiFn(ti.fibonacci),
|
|
95
|
+
fibonacciExtensions: asTiFn(ti.fibonacciExtensions),
|
|
96
|
+
fibonacciProjection: asTiFn(ti.fibonacciProjection),
|
|
97
|
+
highest: asTiFn(ti.highest),
|
|
98
|
+
lowest: asTiFn(ti.lowest),
|
|
99
|
+
sum: asTiFn(ti.sum),
|
|
100
|
+
sd: asTiFn(ti.sd),
|
|
101
|
+
averagegain: asTiFn(ti.averageGain),
|
|
102
|
+
averageloss: asTiFn(ti.averageLoss),
|
|
103
|
+
crossup: asTiFn(ti.crossUp),
|
|
104
|
+
crossdown: asTiFn(ti.crossDown),
|
|
105
|
+
};
|
|
106
|
+
function countWarmup(result) {
|
|
107
|
+
for (let i = 0; i < result.length; i++) {
|
|
108
|
+
const item = result[i];
|
|
109
|
+
if (item === undefined || item === null) {
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
if (typeof item === 'number' && Number.isNaN(item)) {
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
if (typeof item === 'object') {
|
|
116
|
+
const obj = item;
|
|
117
|
+
const values = Object.values(obj);
|
|
118
|
+
if (values.length === 0 || values.every(v => v === undefined || v === null)) {
|
|
119
|
+
continue;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return i;
|
|
123
|
+
}
|
|
124
|
+
return result.length;
|
|
125
|
+
}
|
|
126
|
+
function computeWarmupCount(result, inputLength) {
|
|
127
|
+
const leading = countWarmup(result);
|
|
128
|
+
if (leading > 0 && leading < result.length) {
|
|
129
|
+
return leading;
|
|
130
|
+
}
|
|
131
|
+
if (result.length > 0 && result.length <= inputLength) {
|
|
132
|
+
return inputLength - result.length;
|
|
133
|
+
}
|
|
134
|
+
return leading;
|
|
135
|
+
}
|
|
136
|
+
function sanitizeResult(raw) {
|
|
137
|
+
if (!Array.isArray(raw)) {
|
|
138
|
+
return [raw];
|
|
139
|
+
}
|
|
140
|
+
return raw.map(item => {
|
|
141
|
+
if (typeof item !== 'object' || item === null) {
|
|
142
|
+
return item;
|
|
143
|
+
}
|
|
144
|
+
return JSON.parse(JSON.stringify(item));
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
function buildLibraryInput(meta, normalized, params) {
|
|
148
|
+
const base = { ...params };
|
|
149
|
+
switch (meta.inputProfile) {
|
|
150
|
+
case 'close_series':
|
|
151
|
+
return { ...base, values: normalized.values };
|
|
152
|
+
case 'ohl_series':
|
|
153
|
+
return { ...base, high: normalized.high, low: normalized.low };
|
|
154
|
+
case 'ohlc_series':
|
|
155
|
+
return {
|
|
156
|
+
...base,
|
|
157
|
+
high: normalized.high,
|
|
158
|
+
low: normalized.low,
|
|
159
|
+
close: normalized.close,
|
|
160
|
+
};
|
|
161
|
+
case 'hlcv_series':
|
|
162
|
+
return {
|
|
163
|
+
...base,
|
|
164
|
+
high: normalized.high,
|
|
165
|
+
low: normalized.low,
|
|
166
|
+
close: normalized.close,
|
|
167
|
+
volume: normalized.volume,
|
|
168
|
+
};
|
|
169
|
+
case 'close_volume_series':
|
|
170
|
+
return { ...base, close: normalized.close, volume: normalized.volume };
|
|
171
|
+
case 'ohlcv_series':
|
|
172
|
+
return {
|
|
173
|
+
...base,
|
|
174
|
+
open: normalized.open,
|
|
175
|
+
high: normalized.high,
|
|
176
|
+
low: normalized.low,
|
|
177
|
+
close: normalized.close,
|
|
178
|
+
volume: normalized.volume,
|
|
179
|
+
};
|
|
180
|
+
case 'candle_objects':
|
|
181
|
+
return { candles: normalized.candles };
|
|
182
|
+
case 'range_scalar':
|
|
183
|
+
return { ...base, ...normalized.range };
|
|
184
|
+
case 'dual_series':
|
|
185
|
+
return { lineA: normalized.lineA, lineB: normalized.lineB };
|
|
186
|
+
case 'special':
|
|
187
|
+
if (meta.id === 'renko') {
|
|
188
|
+
return { candles: normalized.candles, brickSize: base.brickSize ?? 1 };
|
|
189
|
+
}
|
|
190
|
+
if (meta.id === 'fibonacciProjection') {
|
|
191
|
+
return {
|
|
192
|
+
prices: normalized.prices,
|
|
193
|
+
swingPoints: normalized.swingPoints,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
throw new Error(`Unhandled special indicator: ${meta.id}`);
|
|
197
|
+
default:
|
|
198
|
+
throw new Error(`Unhandled input profile for ${meta.id}`);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
export function listTechnicalIndicators() {
|
|
202
|
+
return {
|
|
203
|
+
ok: true,
|
|
204
|
+
data: {
|
|
205
|
+
indicators: listIndicatorCatalog().map(catalogEntryForList),
|
|
206
|
+
},
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
export function calculateTechnicalIndicator(input) {
|
|
210
|
+
const resolvedId = resolveIndicatorId(input.indicator);
|
|
211
|
+
if (!resolvedId) {
|
|
212
|
+
const suggestion = suggestIndicator(input.indicator);
|
|
213
|
+
const hint = suggestion
|
|
214
|
+
? ` Did you mean "${suggestion}"?`
|
|
215
|
+
: ' Call list_technical_indicators for valid ids.';
|
|
216
|
+
return { ok: false, reason: `Unknown indicator: ${input.indicator}.${hint}` };
|
|
217
|
+
}
|
|
218
|
+
const meta = getIndicatorMeta(resolvedId);
|
|
219
|
+
if (!meta) {
|
|
220
|
+
return { ok: false, reason: `Unknown indicator: ${input.indicator}.` };
|
|
221
|
+
}
|
|
222
|
+
const fn = FN_MAP[meta.fnKey];
|
|
223
|
+
if (!fn) {
|
|
224
|
+
return { ok: false, reason: `Indicator ${resolvedId} is not wired for computation.` };
|
|
225
|
+
}
|
|
226
|
+
const mergedParams = { ...meta.defaultParams, ...input.params };
|
|
227
|
+
let normalized;
|
|
228
|
+
try {
|
|
229
|
+
normalized = normalizeInput(resolvedId, meta.inputProfile, input.input);
|
|
230
|
+
}
|
|
231
|
+
catch (error) {
|
|
232
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
233
|
+
return { ok: false, reason: message };
|
|
234
|
+
}
|
|
235
|
+
let libraryInput;
|
|
236
|
+
try {
|
|
237
|
+
libraryInput = buildLibraryInput(meta, normalized, mergedParams);
|
|
238
|
+
}
|
|
239
|
+
catch (error) {
|
|
240
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
241
|
+
return { ok: false, reason: message };
|
|
242
|
+
}
|
|
243
|
+
let rawResult;
|
|
244
|
+
try {
|
|
245
|
+
rawResult = fn(libraryInput);
|
|
246
|
+
}
|
|
247
|
+
catch (error) {
|
|
248
|
+
console.error(`calculateTechnicalIndicator(${resolvedId}) failed:`, error);
|
|
249
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
250
|
+
return { ok: false, reason: `Calculation failed: ${message}` };
|
|
251
|
+
}
|
|
252
|
+
let result = sanitizeResult(rawResult);
|
|
253
|
+
const warmupCount = computeWarmupCount(result, normalized.inputLength);
|
|
254
|
+
if (input.options?.trimWarmup && warmupCount > 0) {
|
|
255
|
+
if (result.length === normalized.inputLength) {
|
|
256
|
+
result = result.slice(warmupCount);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
const maxPoints = input.options?.maxPoints ?? 500;
|
|
260
|
+
if (result.length > maxPoints) {
|
|
261
|
+
result = result.slice(-maxPoints);
|
|
262
|
+
}
|
|
263
|
+
return {
|
|
264
|
+
ok: true,
|
|
265
|
+
data: {
|
|
266
|
+
indicator: resolvedId,
|
|
267
|
+
params: mergedParams,
|
|
268
|
+
inputLength: normalized.inputLength,
|
|
269
|
+
outputLength: result.length,
|
|
270
|
+
warmupCount,
|
|
271
|
+
result: result,
|
|
272
|
+
},
|
|
273
|
+
};
|
|
274
|
+
}
|
|
275
|
+
//# sourceMappingURL=calculate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calculate.js","sourceRoot":"","sources":["../../../src/core/ta/calculate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { InputProfile, OutputKind } from './schemas.js';
|
|
2
|
+
export interface IndicatorMeta {
|
|
3
|
+
id: string;
|
|
4
|
+
category: string;
|
|
5
|
+
inputProfile: InputProfile;
|
|
6
|
+
defaultParams: Record<string, number | boolean>;
|
|
7
|
+
outputKind: OutputKind;
|
|
8
|
+
description: string;
|
|
9
|
+
aliases?: string[];
|
|
10
|
+
fnKey: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const INDICATOR_CATALOG: IndicatorMeta[];
|
|
13
|
+
export declare function resolveIndicatorId(name: string): string | undefined;
|
|
14
|
+
export declare function getIndicatorMeta(id: string): IndicatorMeta | undefined;
|
|
15
|
+
export declare function listIndicatorCatalog(): IndicatorMeta[];
|
|
16
|
+
export declare function suggestIndicator(name: string): string | undefined;
|
|
17
|
+
export declare function catalogEntryForList(meta: IndicatorMeta): {
|
|
18
|
+
id: string;
|
|
19
|
+
aliases: string[] | undefined;
|
|
20
|
+
category: string;
|
|
21
|
+
inputProfile: "close_series" | "ohl_series" | "ohlc_series" | "hlcv_series" | "ohlcv_series" | "close_volume_series" | "candle_objects" | "range_scalar" | "dual_series" | "special";
|
|
22
|
+
defaultParams: Record<string, number | boolean>;
|
|
23
|
+
outputKind: "numbers" | "objects" | "booleans" | "levels";
|
|
24
|
+
description: string;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/core/ta/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAE,UAAU,EAAC,MAAM,cAAc,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IAChD,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACd;AA4BD,eAAO,MAAM,iBAAiB,EAAE,aAAa,EAuP5C,CAAC;AAYF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAUnE;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAEtE;AAED,wBAAgB,oBAAoB,IAAI,aAAa,EAAE,CAEtD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAsBjE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa;;;;;;;;EAUtD"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
function e(id, category, inputProfile, outputKind, description, defaultParams = {}, aliases, fnKey) {
|
|
2
|
+
return {
|
|
3
|
+
id,
|
|
4
|
+
category,
|
|
5
|
+
inputProfile,
|
|
6
|
+
defaultParams,
|
|
7
|
+
outputKind,
|
|
8
|
+
description,
|
|
9
|
+
aliases,
|
|
10
|
+
fnKey: fnKey ?? id,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
const CANDLESTICK = 'candlestick';
|
|
14
|
+
const candle = (id, description) => e(id, CANDLESTICK, 'candle_objects', 'booleans', description);
|
|
15
|
+
export const INDICATOR_CATALOG = [
|
|
16
|
+
e('sma', 'moving_averages', 'close_series', 'numbers', 'Simple moving average', {
|
|
17
|
+
period: 20,
|
|
18
|
+
}),
|
|
19
|
+
e('ema', 'moving_averages', 'close_series', 'numbers', 'Exponential moving average', {
|
|
20
|
+
period: 20,
|
|
21
|
+
}),
|
|
22
|
+
e('wma', 'moving_averages', 'close_series', 'numbers', 'Weighted moving average', {
|
|
23
|
+
period: 20,
|
|
24
|
+
}),
|
|
25
|
+
e('wema', 'moving_averages', 'close_series', 'numbers', "Wilder's smoothed moving average", {
|
|
26
|
+
period: 20,
|
|
27
|
+
}),
|
|
28
|
+
e('macd', 'moving_averages', 'close_series', 'objects', 'MACD line, signal, and histogram', {
|
|
29
|
+
fastPeriod: 12,
|
|
30
|
+
slowPeriod: 26,
|
|
31
|
+
signalPeriod: 9,
|
|
32
|
+
}),
|
|
33
|
+
e('rsi', 'oscillators', 'close_series', 'numbers', 'Relative strength index', { period: 14 }),
|
|
34
|
+
e('cci', 'oscillators', 'ohlc_series', 'numbers', 'Commodity channel index', { period: 20 }),
|
|
35
|
+
e('awesomeoscillator', 'oscillators', 'ohl_series', 'numbers', 'Awesome oscillator from high/low midpoints', { fastPeriod: 5, slowPeriod: 34 }),
|
|
36
|
+
e('roc', 'momentum', 'close_series', 'numbers', 'Rate of change', { period: 12 }),
|
|
37
|
+
e('stochastic', 'momentum', 'ohlc_series', 'objects', 'Stochastic oscillator %K and %D', { period: 14, signalPeriod: 3 }),
|
|
38
|
+
e('williamsr', 'momentum', 'ohlc_series', 'numbers', 'Williams %R', { period: 14 }),
|
|
39
|
+
e('trix', 'momentum', 'close_series', 'numbers', 'TRIX momentum oscillator', { period: 18 }),
|
|
40
|
+
e('stochasticrsi', 'momentum', 'close_series', 'objects', 'Stochastic RSI', { rsiPeriod: 14, stochasticPeriod: 14, kPeriod: 3, dPeriod: 3 }),
|
|
41
|
+
e('psar', 'momentum', 'ohlc_series', 'objects', 'Parabolic SAR', {
|
|
42
|
+
step: 0.02,
|
|
43
|
+
max: 0.2,
|
|
44
|
+
}),
|
|
45
|
+
e('kst', 'momentum', 'close_series', 'objects', 'Know Sure Thing oscillator'),
|
|
46
|
+
e('ultimateoscillator', 'momentum', 'ohlc_series', 'numbers', 'Ultimate oscillator', { shortPeriod: 7, mediumPeriod: 14, longPeriod: 28 }),
|
|
47
|
+
e('dpo', 'momentum', 'close_series', 'numbers', 'Detrended price oscillator', {
|
|
48
|
+
period: 20,
|
|
49
|
+
}),
|
|
50
|
+
e('priceoscillator', 'momentum', 'close_series', 'numbers', 'Price oscillator', { fastPeriod: 12, slowPeriod: 26 }),
|
|
51
|
+
e('ppo', 'momentum', 'close_series', 'numbers', 'Percentage price oscillator', {
|
|
52
|
+
fastPeriod: 12,
|
|
53
|
+
slowPeriod: 26,
|
|
54
|
+
}),
|
|
55
|
+
e('obv', 'volume', 'close_volume_series', 'numbers', 'On-balance volume'),
|
|
56
|
+
e('adl', 'volume', 'hlcv_series', 'numbers', 'Accumulation/distribution line'),
|
|
57
|
+
e('vwap', 'volume', 'hlcv_series', 'numbers', 'Volume weighted average price'),
|
|
58
|
+
e('forceindex', 'volume', 'close_volume_series', 'numbers', 'Force index', { period: 13 }),
|
|
59
|
+
e('mfi', 'volume', 'hlcv_series', 'numbers', 'Money flow index', { period: 14 }),
|
|
60
|
+
e('volumeprofile', 'volume', 'ohlcv_series', 'objects', 'Volume profile by price range', { noOfBars: 12 }),
|
|
61
|
+
e('bollingerbands', 'volatility', 'close_series', 'objects', 'Bollinger bands', {
|
|
62
|
+
period: 20,
|
|
63
|
+
stdDev: 2,
|
|
64
|
+
}),
|
|
65
|
+
e('atr', 'volatility', 'ohlc_series', 'numbers', 'Average true range', { period: 14 }),
|
|
66
|
+
e('keltnerchannel', 'volatility', 'ohlc_series', 'objects', 'Keltner channels', { period: 20, multiplier: 2 }, ['keltnerchannels']),
|
|
67
|
+
e('chandelierexit', 'volatility', 'ohlc_series', 'objects', 'Chandelier exit stop levels', { period: 22, multiplier: 3 }),
|
|
68
|
+
e('donchianchannels', 'volatility', 'ohlc_series', 'objects', 'Donchian channels', { period: 20 }),
|
|
69
|
+
e('volatilityindex', 'volatility', 'ohlc_series', 'numbers', 'Volatility index', { period: 14 }),
|
|
70
|
+
e('truerange', 'directional', 'ohlc_series', 'numbers', 'True range'),
|
|
71
|
+
e('adx', 'directional', 'ohlc_series', 'numbers', 'Average directional index', { period: 14 }),
|
|
72
|
+
e('plusdm', 'directional', 'ohlc_series', 'numbers', 'Plus directional movement', {
|
|
73
|
+
period: 14,
|
|
74
|
+
}),
|
|
75
|
+
e('minusdm', 'directional', 'ohlc_series', 'numbers', 'Minus directional movement', {
|
|
76
|
+
period: 14,
|
|
77
|
+
}),
|
|
78
|
+
e('ichimokukinkouhyou', 'trend', 'ohlc_series', 'objects', 'Ichimoku cloud', { conversionPeriod: 9, basePeriod: 26, spanPeriod: 52, displacement: 26 }, ['ichimokucloud']),
|
|
79
|
+
e('supertrend', 'trend', 'ohlc_series', 'objects', 'SuperTrend indicator', {
|
|
80
|
+
period: 10,
|
|
81
|
+
multiplier: 3,
|
|
82
|
+
}),
|
|
83
|
+
e('aroon', 'trend', 'ohlc_series', 'objects', 'Aroon up/down', { period: 14 }),
|
|
84
|
+
e('aroonoscillator', 'trend', 'ohlc_series', 'numbers', 'Aroon oscillator', {
|
|
85
|
+
period: 14,
|
|
86
|
+
}),
|
|
87
|
+
e('linearregression', 'trend', 'close_series', 'objects', 'Linear regression trend line', {
|
|
88
|
+
period: 14,
|
|
89
|
+
}),
|
|
90
|
+
e('maenvelope', 'trend', 'close_series', 'objects', 'Moving average envelope', {
|
|
91
|
+
period: 20,
|
|
92
|
+
}),
|
|
93
|
+
e('pivotpoints', 'trend', 'ohlc_series', 'objects', 'Classic pivot points'),
|
|
94
|
+
candle('doji', 'Doji candlestick pattern'),
|
|
95
|
+
candle('bullishengulfingpattern', 'Bullish engulfing pattern'),
|
|
96
|
+
candle('bearishengulfingpattern', 'Bearish engulfing pattern'),
|
|
97
|
+
candle('hammer', 'Hammer pattern'),
|
|
98
|
+
candle('hangingman', 'Hanging man pattern'),
|
|
99
|
+
candle('shootingstar', 'Shooting star pattern'),
|
|
100
|
+
candle('spinningtop', 'Spinning top pattern'),
|
|
101
|
+
candle('marubozu', 'Marubozu pattern'),
|
|
102
|
+
candle('dragonflydoji', 'Dragonfly doji pattern'),
|
|
103
|
+
candle('gravestonedoji', 'Gravestone doji pattern'),
|
|
104
|
+
candle('threewhitesoldiers', 'Three white soldiers pattern'),
|
|
105
|
+
candle('threeblackcrows', 'Three black crows pattern'),
|
|
106
|
+
candle('bullishharami', 'Bullish harami pattern'),
|
|
107
|
+
candle('bearishharami', 'Bearish harami pattern'),
|
|
108
|
+
candle('piercingline', 'Piercing line pattern'),
|
|
109
|
+
candle('darkcloudcover', 'Dark cloud cover pattern'),
|
|
110
|
+
candle('morningstar', 'Morning star pattern'),
|
|
111
|
+
candle('eveningstar', 'Evening star pattern'),
|
|
112
|
+
candle('tweezerbottom', 'Tweezer bottom pattern'),
|
|
113
|
+
candle('tweezertop', 'Tweezer top pattern'),
|
|
114
|
+
candle('abandonedbaby', 'Abandoned baby pattern'),
|
|
115
|
+
candle('bullishmarubozu', 'Bullish marubozu pattern'),
|
|
116
|
+
candle('bearishmarubozu', 'Bearish marubozu pattern'),
|
|
117
|
+
candle('bullishinvertedhammer', 'Bullish inverted hammer pattern'),
|
|
118
|
+
candle('bearishinvertedhammer', 'Bearish inverted hammer pattern'),
|
|
119
|
+
candle('morningdojistar', 'Morning doji star pattern'),
|
|
120
|
+
candle('eveningdojistar', 'Evening doji star pattern'),
|
|
121
|
+
candle('downsidetasukigap', 'Downside tasuki gap pattern'),
|
|
122
|
+
candle('bullishspinningtop', 'Bullish spinning top pattern'),
|
|
123
|
+
candle('bearishspinningtop', 'Bearish spinning top pattern'),
|
|
124
|
+
candle('bullish', 'Generic bullish pattern'),
|
|
125
|
+
candle('bearish', 'Generic bearish pattern'),
|
|
126
|
+
candle('bullishharamicross', 'Bullish harami cross pattern'),
|
|
127
|
+
candle('bearishharamicross', 'Bearish harami cross pattern'),
|
|
128
|
+
candle('hammerpatternunconfirmed', 'Unconfirmed hammer pattern'),
|
|
129
|
+
candle('hangingmanunconfirmed', 'Unconfirmed hanging man pattern'),
|
|
130
|
+
candle('shootingstarunconfirmed', 'Unconfirmed shooting star pattern'),
|
|
131
|
+
candle('bullishhammerstick', 'Bullish hammer stick pattern'),
|
|
132
|
+
candle('bearishhammerstick', 'Bearish hammer stick pattern'),
|
|
133
|
+
e('heikinashi', 'chart', 'candle_objects', 'objects', 'Heikin-Ashi transformed candles'),
|
|
134
|
+
e('renko', 'chart', 'special', 'objects', 'Renko bricks from candles', { brickSize: 1 }),
|
|
135
|
+
e('typicalprice', 'chart', 'ohlc_series', 'numbers', 'Typical price (HLC/3)'),
|
|
136
|
+
e('fibonacci', 'drawing', 'range_scalar', 'levels', 'Fibonacci retracement levels', {}, ['fibonacciretracement']),
|
|
137
|
+
e('fibonacciExtensions', 'drawing', 'range_scalar', 'levels', 'Fibonacci extension levels'),
|
|
138
|
+
e('fibonacciProjection', 'drawing', 'special', 'levels', 'Fibonacci projection from swing points'),
|
|
139
|
+
e('highest', 'utility', 'close_series', 'numbers', 'Highest value over period', {
|
|
140
|
+
period: 14,
|
|
141
|
+
}),
|
|
142
|
+
e('lowest', 'utility', 'close_series', 'numbers', 'Lowest value over period', {
|
|
143
|
+
period: 14,
|
|
144
|
+
}),
|
|
145
|
+
e('sum', 'utility', 'close_series', 'numbers', 'Rolling sum', { period: 14 }),
|
|
146
|
+
e('sd', 'utility', 'close_series', 'numbers', 'Rolling standard deviation', {
|
|
147
|
+
period: 14,
|
|
148
|
+
}),
|
|
149
|
+
e('averagegain', 'utility', 'close_series', 'numbers', 'Average gain over period', {
|
|
150
|
+
period: 14,
|
|
151
|
+
}),
|
|
152
|
+
e('averageloss', 'utility', 'close_series', 'numbers', 'Average loss over period', {
|
|
153
|
+
period: 14,
|
|
154
|
+
}),
|
|
155
|
+
e('crossup', 'utility', 'dual_series', 'booleans', 'Cross up detector'),
|
|
156
|
+
e('crossdown', 'utility', 'dual_series', 'booleans', 'Cross down detector'),
|
|
157
|
+
];
|
|
158
|
+
const catalogById = new Map();
|
|
159
|
+
const aliasToId = new Map();
|
|
160
|
+
for (const meta of INDICATOR_CATALOG) {
|
|
161
|
+
catalogById.set(meta.id, meta);
|
|
162
|
+
for (const alias of meta.aliases ?? []) {
|
|
163
|
+
aliasToId.set(alias.toLowerCase(), meta.id);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
export function resolveIndicatorId(name) {
|
|
167
|
+
const lower = name.toLowerCase();
|
|
168
|
+
if (catalogById.has(lower)) {
|
|
169
|
+
return lower;
|
|
170
|
+
}
|
|
171
|
+
const alias = aliasToId.get(lower);
|
|
172
|
+
if (alias) {
|
|
173
|
+
return alias;
|
|
174
|
+
}
|
|
175
|
+
return undefined;
|
|
176
|
+
}
|
|
177
|
+
export function getIndicatorMeta(id) {
|
|
178
|
+
return catalogById.get(id);
|
|
179
|
+
}
|
|
180
|
+
export function listIndicatorCatalog() {
|
|
181
|
+
return INDICATOR_CATALOG;
|
|
182
|
+
}
|
|
183
|
+
export function suggestIndicator(name) {
|
|
184
|
+
const resolved = resolveIndicatorId(name);
|
|
185
|
+
if (resolved) {
|
|
186
|
+
return resolved;
|
|
187
|
+
}
|
|
188
|
+
const lower = name.toLowerCase();
|
|
189
|
+
const candidates = INDICATOR_CATALOG.flatMap(meta => [
|
|
190
|
+
meta.id,
|
|
191
|
+
...(meta.aliases ?? []),
|
|
192
|
+
]);
|
|
193
|
+
const prefix = candidates.filter(id => id.toLowerCase().startsWith(lower));
|
|
194
|
+
if (prefix.length >= 1) {
|
|
195
|
+
const best = [...prefix].sort((a, b) => a.length - b.length || a.localeCompare(b))[0];
|
|
196
|
+
return resolveIndicatorId(best) ?? best;
|
|
197
|
+
}
|
|
198
|
+
const contains = candidates.filter(id => id.toLowerCase().includes(lower));
|
|
199
|
+
if (contains.length === 1) {
|
|
200
|
+
return resolveIndicatorId(contains[0]) ?? contains[0];
|
|
201
|
+
}
|
|
202
|
+
return undefined;
|
|
203
|
+
}
|
|
204
|
+
export function catalogEntryForList(meta) {
|
|
205
|
+
return {
|
|
206
|
+
id: meta.id,
|
|
207
|
+
aliases: meta.aliases,
|
|
208
|
+
category: meta.category,
|
|
209
|
+
inputProfile: meta.inputProfile,
|
|
210
|
+
defaultParams: meta.defaultParams,
|
|
211
|
+
outputKind: meta.outputKind,
|
|
212
|
+
description: meta.description,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
//# sourceMappingURL=catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/core/ta/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { listTechnicalIndicators, calculateTechnicalIndicator, } from './calculate.js';
|
|
2
|
+
export { listIndicatorCatalog, resolveIndicatorId, suggestIndicator, catalogEntryForList, type IndicatorMeta, } from './catalog.js';
|
|
3
|
+
export { maxSeriesLength } from './normalize-input.js';
|
|
4
|
+
export { CalculateTechnicalIndicatorInputSchema, ListTechnicalIndicatorsOutputSchema, CalculateTechnicalIndicatorOutputSchema, TaSeriesInputSchema, type CalculateTechnicalIndicatorInput, type InputProfile, type OutputKind, } from './schemas.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/ta/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,uBAAuB,EACvB,2BAA2B,GAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,aAAa,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACN,sCAAsC,EACtC,mCAAmC,EACnC,uCAAuC,EACvC,mBAAmB,EACnB,KAAK,gCAAgC,EACrC,KAAK,YAAY,EACjB,KAAK,UAAU,GACf,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { listTechnicalIndicators, calculateTechnicalIndicator, } from './calculate.js';
|
|
2
|
+
export { listIndicatorCatalog, resolveIndicatorId, suggestIndicator, catalogEntryForList, } from './catalog.js';
|
|
3
|
+
export { maxSeriesLength } from './normalize-input.js';
|
|
4
|
+
export { CalculateTechnicalIndicatorInputSchema, ListTechnicalIndicatorsOutputSchema, CalculateTechnicalIndicatorOutputSchema, TaSeriesInputSchema, } from './schemas.js';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/ta/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,uBAAuB,EACvB,2BAA2B,GAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACN,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GAEnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,eAAe,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACN,sCAAsC,EACtC,mCAAmC,EACnC,uCAAuC,EACvC,mBAAmB,GAInB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { InputProfile } from './schemas.js';
|
|
2
|
+
import type { TaSeriesInput } from './schemas.js';
|
|
3
|
+
export interface NormalizedSeries {
|
|
4
|
+
values?: number[];
|
|
5
|
+
open?: number[];
|
|
6
|
+
high?: number[];
|
|
7
|
+
low?: number[];
|
|
8
|
+
close?: number[];
|
|
9
|
+
volume?: number[];
|
|
10
|
+
candles?: Array<{
|
|
11
|
+
open: number;
|
|
12
|
+
high: number;
|
|
13
|
+
low: number;
|
|
14
|
+
close: number;
|
|
15
|
+
volume?: number;
|
|
16
|
+
}>;
|
|
17
|
+
range?: {
|
|
18
|
+
high: number;
|
|
19
|
+
low: number;
|
|
20
|
+
trend?: 'up' | 'down';
|
|
21
|
+
};
|
|
22
|
+
lineA?: number[];
|
|
23
|
+
lineB?: number[];
|
|
24
|
+
prices?: number[];
|
|
25
|
+
swingPoints?: number[];
|
|
26
|
+
inputLength: number;
|
|
27
|
+
}
|
|
28
|
+
export declare function maxSeriesLength(): number;
|
|
29
|
+
export declare function normalizeInput(indicatorId: string, profile: InputProfile, input: TaSeriesInput): NormalizedSeries;
|
|
30
|
+
//# sourceMappingURL=normalize-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-input.d.ts","sourceRoot":"","sources":["../../../src/core/ta/normalize-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAEhD,MAAM,WAAW,gBAAgB;IAChC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;IACH,KAAK,CAAC,EAAE;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;KAAC,CAAC;IAC3D,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,IAAI,MAAM,CAOxC;AAuDD,wBAAgB,cAAc,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,aAAa,GAClB,gBAAgB,CAoHlB"}
|