@continuumdao/continuum-node-sdk 1.3.37 → 1.3.38
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/agent-host-catalog.json +9 -0
- package/dist/core/chart/analysis/analysis-agent-view.d.ts.map +1 -1
- package/dist/core/chart/analysis/analysis-agent-view.js +33 -4
- package/dist/core/chart/analysis/analysis-agent-view.js.map +1 -1
- package/dist/core/chart/analysis/analysis-catalog.d.ts.map +1 -1
- package/dist/core/chart/analysis/analysis-catalog.js +47 -1
- package/dist/core/chart/analysis/analysis-catalog.js.map +1 -1
- package/dist/core/chart/analysis/analyze-tools.d.ts +167 -11
- package/dist/core/chart/analysis/analyze-tools.d.ts.map +1 -1
- package/dist/core/chart/analysis/analyze-tools.js +47 -55
- package/dist/core/chart/analysis/analyze-tools.js.map +1 -1
- package/dist/core/chart/analysis/divergence/detect.d.ts +21 -0
- package/dist/core/chart/analysis/divergence/detect.d.ts.map +1 -0
- package/dist/core/chart/analysis/divergence/detect.js +223 -0
- package/dist/core/chart/analysis/divergence/detect.js.map +1 -0
- package/dist/core/chart/analysis/divergence/index.d.ts +4 -0
- package/dist/core/chart/analysis/divergence/index.d.ts.map +1 -0
- package/dist/core/chart/analysis/divergence/index.js +4 -0
- package/dist/core/chart/analysis/divergence/index.js.map +1 -0
- package/dist/core/chart/analysis/divergence/peaks.d.ts +11 -0
- package/dist/core/chart/analysis/divergence/peaks.d.ts.map +1 -0
- package/dist/core/chart/analysis/divergence/peaks.js +108 -0
- package/dist/core/chart/analysis/divergence/peaks.js.map +1 -0
- package/dist/core/chart/analysis/divergence/types.d.ts +30 -0
- package/dist/core/chart/analysis/divergence/types.d.ts.map +1 -0
- package/dist/core/chart/analysis/divergence/types.js +2 -0
- package/dist/core/chart/analysis/divergence/types.js.map +1 -0
- package/dist/core/chart/analysis/divergence-analyze-tools.d.ts +239 -0
- package/dist/core/chart/analysis/divergence-analyze-tools.d.ts.map +1 -0
- package/dist/core/chart/analysis/divergence-analyze-tools.js +283 -0
- package/dist/core/chart/analysis/divergence-analyze-tools.js.map +1 -0
- package/dist/core/chart/analysis/divergence-drawings-tools.d.ts +457 -0
- package/dist/core/chart/analysis/divergence-drawings-tools.d.ts.map +1 -0
- package/dist/core/chart/analysis/divergence-drawings-tools.js +380 -0
- package/dist/core/chart/analysis/divergence-drawings-tools.js.map +1 -0
- package/dist/core/chart/analysis/divergence-highlight.d.ts +19 -0
- package/dist/core/chart/analysis/divergence-highlight.d.ts.map +1 -0
- package/dist/core/chart/analysis/divergence-highlight.js +39 -0
- package/dist/core/chart/analysis/divergence-highlight.js.map +1 -0
- package/dist/core/chart/analysis/donchian-analyze-tools.d.ts +113 -0
- package/dist/core/chart/analysis/donchian-analyze-tools.d.ts.map +1 -0
- package/dist/core/chart/analysis/donchian-analyze-tools.js +218 -0
- package/dist/core/chart/analysis/donchian-analyze-tools.js.map +1 -0
- package/dist/core/chart/analysis/donchian-highlight.d.ts +31 -0
- package/dist/core/chart/analysis/donchian-highlight.d.ts.map +1 -0
- package/dist/core/chart/analysis/donchian-highlight.js +41 -0
- package/dist/core/chart/analysis/donchian-highlight.js.map +1 -0
- package/dist/core/chart/analysis/elliott-waves-analyze-tools.d.ts +33 -0
- package/dist/core/chart/analysis/elliott-waves-analyze-tools.d.ts.map +1 -1
- package/dist/core/chart/analysis/ichimoku-analyze-tools.d.ts +124 -0
- package/dist/core/chart/analysis/ichimoku-analyze-tools.d.ts.map +1 -0
- package/dist/core/chart/analysis/ichimoku-analyze-tools.js +243 -0
- package/dist/core/chart/analysis/ichimoku-analyze-tools.js.map +1 -0
- package/dist/core/chart/analysis/ichimoku-highlight.d.ts +36 -0
- package/dist/core/chart/analysis/ichimoku-highlight.d.ts.map +1 -0
- package/dist/core/chart/analysis/ichimoku-highlight.js +40 -0
- package/dist/core/chart/analysis/ichimoku-highlight.js.map +1 -0
- package/dist/core/chart/analysis/key-fib-drawings-tools.d.ts +2 -6
- package/dist/core/chart/analysis/key-fib-drawings-tools.d.ts.map +1 -1
- package/dist/core/chart/analysis/key-fib-drawings-tools.js +5 -17
- package/dist/core/chart/analysis/key-fib-drawings-tools.js.map +1 -1
- package/dist/core/chart/analysis/key-level-drawings-shared.d.ts +3 -12
- package/dist/core/chart/analysis/key-level-drawings-shared.d.ts.map +1 -1
- package/dist/core/chart/analysis/key-level-drawings-shared.js +6 -36
- package/dist/core/chart/analysis/key-level-drawings-shared.js.map +1 -1
- package/dist/core/chart/analysis/key-level-menu-summary.d.ts +15 -22
- package/dist/core/chart/analysis/key-level-menu-summary.d.ts.map +1 -1
- package/dist/core/chart/analysis/key-level-menu-summary.js +63 -124
- package/dist/core/chart/analysis/key-level-menu-summary.js.map +1 -1
- package/dist/core/chart/analysis/key-levels-dataset.d.ts +1 -0
- package/dist/core/chart/analysis/key-levels-dataset.d.ts.map +1 -1
- package/dist/core/chart/analysis/key-levels-dataset.js +4 -7
- package/dist/core/chart/analysis/key-levels-dataset.js.map +1 -1
- package/dist/core/chart/analysis/supertrend-analyze-tools.d.ts +112 -0
- package/dist/core/chart/analysis/supertrend-analyze-tools.d.ts.map +1 -0
- package/dist/core/chart/analysis/supertrend-analyze-tools.js +214 -0
- package/dist/core/chart/analysis/supertrend-analyze-tools.js.map +1 -0
- package/dist/core/chart/analysis/supertrend-highlight.d.ts +25 -0
- package/dist/core/chart/analysis/supertrend-highlight.d.ts.map +1 -0
- package/dist/core/chart/analysis/supertrend-highlight.js +37 -0
- package/dist/core/chart/analysis/supertrend-highlight.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/build-trade.d.ts.map +1 -1
- package/dist/core/chart/analysis/trade-setups/build-trade.js +23 -5
- package/dist/core/chart/analysis/trade-setups/build-trade.js.map +1 -1
- package/dist/core/chart/analysis/trade-setups/divergence-trade-setup.d.ts +78 -0
- package/dist/core/chart/analysis/trade-setups/divergence-trade-setup.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/divergence-trade-setup.js +184 -0
- package/dist/core/chart/analysis/trade-setups/divergence-trade-setup.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/donchian-trade-setup.d.ts +133 -0
- package/dist/core/chart/analysis/trade-setups/donchian-trade-setup.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/donchian-trade-setup.js +419 -0
- package/dist/core/chart/analysis/trade-setups/donchian-trade-setup.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/ichimoku-trade-setup.d.ts +154 -0
- package/dist/core/chart/analysis/trade-setups/ichimoku-trade-setup.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/ichimoku-trade-setup.js +396 -0
- package/dist/core/chart/analysis/trade-setups/ichimoku-trade-setup.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/index.d.ts +5 -0
- package/dist/core/chart/analysis/trade-setups/index.d.ts.map +1 -1
- package/dist/core/chart/analysis/trade-setups/index.js +5 -0
- package/dist/core/chart/analysis/trade-setups/index.js.map +1 -1
- package/dist/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.d.ts +7 -41
- package/dist/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.d.ts.map +1 -1
- package/dist/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.js +33 -235
- package/dist/core/chart/analysis/trade-setups/key-level-fib-retrace-trade-setup.js.map +1 -1
- package/dist/core/chart/analysis/trade-setups/key-levels-trade-setup.d.ts +2 -8
- package/dist/core/chart/analysis/trade-setups/key-levels-trade-setup.d.ts.map +1 -1
- package/dist/core/chart/analysis/trade-setups/key-levels-trade-setup.js +0 -27
- package/dist/core/chart/analysis/trade-setups/key-levels-trade-setup.js.map +1 -1
- package/dist/core/chart/analysis/trade-setups/shared.d.ts +1 -1
- package/dist/core/chart/analysis/trade-setups/shared.d.ts.map +1 -1
- package/dist/core/chart/analysis/trade-setups/shared.js +10 -0
- package/dist/core/chart/analysis/trade-setups/shared.js.map +1 -1
- package/dist/core/chart/analysis/trade-setups/supertrend-trade-setup.d.ts +119 -0
- package/dist/core/chart/analysis/trade-setups/supertrend-trade-setup.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/supertrend-trade-setup.js +301 -0
- package/dist/core/chart/analysis/trade-setups/supertrend-trade-setup.js.map +1 -0
- package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.d.ts +34 -0
- package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.d.ts.map +1 -1
- package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.js +43 -0
- package/dist/core/chart/analysis/trade-setups/trade-desk-universal-input.js.map +1 -1
- package/dist/core/chart/analysis/trade-setups/trade-idea-list.d.ts +15 -0
- package/dist/core/chart/analysis/trade-setups/trade-idea-list.d.ts.map +1 -1
- package/dist/core/chart/analysis/trade-setups/trade-idea-list.js +89 -0
- package/dist/core/chart/analysis/trade-setups/trade-idea-list.js.map +1 -1
- package/dist/core/chart/analysis/trade-setups/trade-idea.d.ts +32 -0
- package/dist/core/chart/analysis/trade-setups/trade-idea.d.ts.map +1 -1
- package/dist/core/chart/analysis/trade-setups/trade-idea.js +32 -0
- package/dist/core/chart/analysis/trade-setups/trade-idea.js.map +1 -1
- package/dist/core/chart/analysis/trade-setups/trade-purpose-format.d.ts +2 -2
- package/dist/core/chart/analysis/trade-setups/trade-purpose-format.d.ts.map +1 -1
- package/dist/core/chart/analysis/trade-setups/trade-purpose-format.js +2 -6
- package/dist/core/chart/analysis/trade-setups/trade-purpose-format.js.map +1 -1
- package/dist/core/chart/analysis/trade-setups/trade-setup-selection.d.ts +42 -8
- package/dist/core/chart/analysis/trade-setups/trade-setup-selection.d.ts.map +1 -1
- package/dist/core/chart/analysis/trade-setups/trade-setup-selection.js +72 -17
- package/dist/core/chart/analysis/trade-setups/trade-setup-selection.js.map +1 -1
- package/dist/core/chart/analysis/trade-setups/z-score-trade-setup.d.ts +89 -0
- package/dist/core/chart/analysis/trade-setups/z-score-trade-setup.d.ts.map +1 -0
- package/dist/core/chart/analysis/trade-setups/z-score-trade-setup.js +195 -0
- package/dist/core/chart/analysis/trade-setups/z-score-trade-setup.js.map +1 -0
- package/dist/core/chart/analysis/z-score-analyze-tools.d.ts +111 -0
- package/dist/core/chart/analysis/z-score-analyze-tools.d.ts.map +1 -0
- package/dist/core/chart/analysis/z-score-analyze-tools.js +240 -0
- package/dist/core/chart/analysis/z-score-analyze-tools.js.map +1 -0
- package/dist/core/chart/analysis/z-score-highlight.d.ts +29 -0
- package/dist/core/chart/analysis/z-score-highlight.d.ts.map +1 -0
- package/dist/core/chart/analysis/z-score-highlight.js +39 -0
- package/dist/core/chart/analysis/z-score-highlight.js.map +1 -0
- package/dist/core/chart/customization-catalog.d.ts.map +1 -1
- package/dist/core/chart/customization-catalog.js +36 -0
- package/dist/core/chart/customization-catalog.js.map +1 -1
- package/dist/core/chart/display-downsample.d.ts.map +1 -1
- package/dist/core/chart/display-downsample.js +4 -14
- package/dist/core/chart/display-downsample.js.map +1 -1
- package/dist/core/chart/overlay-schemas.d.ts +496 -0
- package/dist/core/chart/overlay-schemas.d.ts.map +1 -1
- package/dist/core/chart/overlay-schemas.js +137 -0
- package/dist/core/chart/overlay-schemas.js.map +1 -1
- package/dist/core/chart/overlays.d.ts +2 -0
- package/dist/core/chart/overlays.d.ts.map +1 -1
- package/dist/core/chart/overlays.js +620 -2
- package/dist/core/chart/overlays.js.map +1 -1
- package/dist/core/chart/prepare-from-rows.d.ts +143 -0
- package/dist/core/chart/prepare-from-rows.d.ts.map +1 -1
- package/dist/core/chart/schemas.d.ts +491 -0
- package/dist/core/chart/schemas.d.ts.map +1 -1
- package/dist/core/coinmarketcap/schemas.d.ts +5 -5
- package/dist/mcp/agent-host-catalog.d.ts +1 -1
- package/dist/mcp/agent-host-catalog.d.ts.map +1 -1
- package/dist/mcp/agent-host-catalog.js +1 -0
- package/dist/mcp/agent-host-catalog.js.map +1 -1
- package/dist/mcp/chart.d.ts.map +1 -1
- package/dist/mcp/chart.js +61 -2
- package/dist/mcp/chart.js.map +1 -1
- package/dist/mcp/deferred/tool-group-map.d.ts.map +1 -1
- package/dist/mcp/deferred/tool-group-map.js +8 -0
- package/dist/mcp/deferred/tool-group-map.js.map +1 -1
- package/dist/mcp/ohlcv-session-wrapper.d.ts.map +1 -1
- package/dist/mcp/ohlcv-session-wrapper.js +8 -0
- package/dist/mcp/ohlcv-session-wrapper.js.map +1 -1
- package/dist/mcp/resources/chart-analysis.md +9 -0
- package/dist/mcp/resources/chart.md +3 -0
- package/dist/mcp/trade-tools.d.ts.map +1 -1
- package/dist/mcp/trade-tools.js +2 -0
- package/dist/mcp/trade-tools.js.map +1 -1
- package/package.json +1 -1
- package/dist/core/agent/mcp-servers-catalog.d.ts +0 -15
- package/dist/core/agent/mcp-servers-catalog.d.ts.map +0 -1
- package/dist/core/agent/mcp-servers-catalog.js +0 -125
- package/dist/core/agent/mcp-servers-catalog.js.map +0 -1
- package/dist/core/agent/webhooks-catalog.d.ts +0 -10
- package/dist/core/agent/webhooks-catalog.d.ts.map +0 -1
- package/dist/core/agent/webhooks-catalog.js +0 -19
- package/dist/core/agent/webhooks-catalog.js.map +0 -1
- package/dist/mcp/resources/trade-defaults-skill.md +0 -69
- package/dist/mcp/ta/resources/indicators.md +0 -86
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { calculateTechnicalIndicator } from '../../ta/calculate.js';
|
|
3
|
+
import { coerceFiniteNumber } from '../point-normalize.js';
|
|
4
|
+
import { ChartLiveTickSchema } from '../live/schemas.js';
|
|
5
|
+
import { buildOhlcvAnalysisMeta, OhlcvAnalysisMetaSchema } from './analysis-meta.js';
|
|
6
|
+
import { prepareOhlcvBarsForAnalysis } from './ohlcv-live-merge.js';
|
|
7
|
+
import { preprocessOhlcvToolInput, missingOhlcvBarsReason } from './ohlcv-input.js';
|
|
8
|
+
import { ohlcvToolRejectIfLineOnly } from './time-series-analyze-tools.js';
|
|
9
|
+
import { buildDonchianHighlight } from './donchian-highlight.js';
|
|
10
|
+
import { entryProximityAtrFromOhlcvRows } from './trade-setups/entry-proximity-atr.js';
|
|
11
|
+
import { DEFAULT_ENTRY_PROXIMITY_ATR_PERIOD } from './trade-setups/trade-desk-defaults.js';
|
|
12
|
+
import { buildDonchianTradeSetup, DEFAULT_DONCHIAN_ENTRY_MODE, DEFAULT_DONCHIAN_PERIOD, DEFAULT_DONCHIAN_TARGET_ATR_MULTIPLE, } from './trade-setups/donchian-trade-setup.js';
|
|
13
|
+
const donchianInputSchema = z
|
|
14
|
+
.object({
|
|
15
|
+
toolResult: z.unknown().optional(),
|
|
16
|
+
rows: z.array(z.unknown()).min(1).optional(),
|
|
17
|
+
title: z.string().trim().min(1).max(256).optional(),
|
|
18
|
+
label: z.string().trim().min(1).max(128).optional(),
|
|
19
|
+
ohlcvDigest: z.string().trim().min(1).max(512).optional(),
|
|
20
|
+
mergeLive: z.boolean().optional(),
|
|
21
|
+
liveTick: ChartLiveTickSchema.optional(),
|
|
22
|
+
allowRowsOnly: z.boolean().optional(),
|
|
23
|
+
/** Channel length; desk may inject as donchianPeriod when period is omitted. */
|
|
24
|
+
period: z.number().int().min(2).max(500).optional(),
|
|
25
|
+
donchianPeriod: z.number().int().min(2).max(500).optional(),
|
|
26
|
+
donchianEntryMode: z.enum(['retest', 'immediate']).optional(),
|
|
27
|
+
/** Target = entry ± (multiple × ATR); desk donchianTargetAtrMultiple default 3. */
|
|
28
|
+
donchianTargetAtrMultiple: z.number().min(0.1).max(50).optional(),
|
|
29
|
+
entryProximityPct: z.number().min(0).max(100).optional(),
|
|
30
|
+
entryProximityMode: z.enum(['price', 'atr']).optional(),
|
|
31
|
+
entryProximityAtrPeriod: z.number().int().min(2).max(100).optional(),
|
|
32
|
+
entryOffsetPct: z.number().min(0).max(50).optional(),
|
|
33
|
+
invalidationOffsetPct: z.number().min(0).max(50).optional(),
|
|
34
|
+
})
|
|
35
|
+
.strict();
|
|
36
|
+
export const AnalyzeDonchianBreakoutInputSchema = z.preprocess(preprocessOhlcvToolInput, donchianInputSchema);
|
|
37
|
+
export const AnalyzeDonchianBreakoutOutputSchema = z
|
|
38
|
+
.object({
|
|
39
|
+
analysis: z
|
|
40
|
+
.object({
|
|
41
|
+
summary: z.string(),
|
|
42
|
+
interpretation: z.string(),
|
|
43
|
+
upper: z.number(),
|
|
44
|
+
middle: z.number(),
|
|
45
|
+
lower: z.number(),
|
|
46
|
+
priorUpper: z.number(),
|
|
47
|
+
priorLower: z.number(),
|
|
48
|
+
channelWidth: z.number(),
|
|
49
|
+
period: z.number().int(),
|
|
50
|
+
entryMode: z.enum(['retest', 'immediate']),
|
|
51
|
+
donchianTradeSetup: z.object({}).catchall(z.unknown()).nullable(),
|
|
52
|
+
donchianHighlight: z.object({}).catchall(z.unknown()),
|
|
53
|
+
})
|
|
54
|
+
.strict(),
|
|
55
|
+
meta: OhlcvAnalysisMetaSchema,
|
|
56
|
+
})
|
|
57
|
+
.strict();
|
|
58
|
+
function resolvePeriod(data) {
|
|
59
|
+
return data.period ?? data.donchianPeriod ?? DEFAULT_DONCHIAN_PERIOD;
|
|
60
|
+
}
|
|
61
|
+
function resolveEntryMode(mode) {
|
|
62
|
+
return mode ?? DEFAULT_DONCHIAN_ENTRY_MODE;
|
|
63
|
+
}
|
|
64
|
+
function extractOhlcSeries(bars) {
|
|
65
|
+
const high = [];
|
|
66
|
+
const low = [];
|
|
67
|
+
const close = [];
|
|
68
|
+
for (const bar of bars) {
|
|
69
|
+
const h = coerceFiniteNumber(bar.high);
|
|
70
|
+
const l = coerceFiniteNumber(bar.low);
|
|
71
|
+
const c = coerceFiniteNumber(bar.close);
|
|
72
|
+
if (h == null || l == null || c == null) {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
high.push(h);
|
|
76
|
+
low.push(l);
|
|
77
|
+
close.push(c);
|
|
78
|
+
}
|
|
79
|
+
if (high.length === 0) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
return { high, low, close };
|
|
83
|
+
}
|
|
84
|
+
function alignChannelsToBars(barCount, rows) {
|
|
85
|
+
const out = Array.from({ length: barCount }, () => null);
|
|
86
|
+
if (!Array.isArray(rows) || rows.length === 0 || rows.length > barCount) {
|
|
87
|
+
return out;
|
|
88
|
+
}
|
|
89
|
+
const offset = barCount - rows.length;
|
|
90
|
+
for (let j = 0; j < rows.length; j++) {
|
|
91
|
+
const row = rows[j];
|
|
92
|
+
if (!row || typeof row !== 'object') {
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
95
|
+
const upper = coerceFiniteNumber(row.upper ?? row.Upper);
|
|
96
|
+
const middle = coerceFiniteNumber(row.middle ?? row.Middle);
|
|
97
|
+
const lower = coerceFiniteNumber(row.lower ?? row.Lower);
|
|
98
|
+
if (upper == null || middle == null || lower == null || upper <= lower) {
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
out[offset + j] = { upper, middle, lower };
|
|
102
|
+
}
|
|
103
|
+
return out;
|
|
104
|
+
}
|
|
105
|
+
export async function analyzeDonchianBreakout(input) {
|
|
106
|
+
const parsed = AnalyzeDonchianBreakoutInputSchema.safeParse(input);
|
|
107
|
+
if (!parsed.success) {
|
|
108
|
+
return { ok: false, reason: parsed.error.message };
|
|
109
|
+
}
|
|
110
|
+
const lineOnly = ohlcvToolRejectIfLineOnly(parsed.data);
|
|
111
|
+
if (lineOnly) {
|
|
112
|
+
return lineOnly;
|
|
113
|
+
}
|
|
114
|
+
const period = resolvePeriod(parsed.data);
|
|
115
|
+
const entryMode = resolveEntryMode(parsed.data.donchianEntryMode);
|
|
116
|
+
const minBars = period + 2;
|
|
117
|
+
const prepared = await prepareOhlcvBarsForAnalysis(parsed.data);
|
|
118
|
+
if (!prepared.ok) {
|
|
119
|
+
if (!parsed.data.toolResult && !parsed.data.rows?.length) {
|
|
120
|
+
return { ok: false, reason: missingOhlcvBarsReason(parsed.data) };
|
|
121
|
+
}
|
|
122
|
+
return prepared;
|
|
123
|
+
}
|
|
124
|
+
const { bars, liveMerge, fingerprint } = prepared.data;
|
|
125
|
+
if (bars.length < minBars) {
|
|
126
|
+
return {
|
|
127
|
+
ok: false,
|
|
128
|
+
reason: `Need at least ${minBars} OHLCV bars for Donchian breakout analysis (period ${period}).`,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
const ohlc = extractOhlcSeries(bars);
|
|
132
|
+
if (!ohlc || ohlc.close.length < minBars) {
|
|
133
|
+
return { ok: false, reason: 'Insufficient valid OHLC prices for Donchian analysis.' };
|
|
134
|
+
}
|
|
135
|
+
const ta = calculateTechnicalIndicator({
|
|
136
|
+
indicator: 'donchianchannels',
|
|
137
|
+
params: { period },
|
|
138
|
+
input: { high: ohlc.high, low: ohlc.low, close: ohlc.close },
|
|
139
|
+
options: { maxPoints: ohlc.high.length },
|
|
140
|
+
});
|
|
141
|
+
if (!ta.ok) {
|
|
142
|
+
return ta;
|
|
143
|
+
}
|
|
144
|
+
const channels = alignChannelsToBars(ohlc.close.length, ta.data.result);
|
|
145
|
+
const lastIndex = ohlc.close.length - 1;
|
|
146
|
+
const current = channels[lastIndex];
|
|
147
|
+
const prior = channels[lastIndex - 1];
|
|
148
|
+
if (current == null || prior == null) {
|
|
149
|
+
return { ok: false, reason: 'Donchian channels have no valid values after warmup.' };
|
|
150
|
+
}
|
|
151
|
+
const atrPeriod = parsed.data.entryProximityAtrPeriod ?? DEFAULT_ENTRY_PROXIMITY_ATR_PERIOD;
|
|
152
|
+
const atr = entryProximityAtrFromOhlcvRows(bars, atrPeriod);
|
|
153
|
+
const targetAtrMultiple = parsed.data.donchianTargetAtrMultiple ?? DEFAULT_DONCHIAN_TARGET_ATR_MULTIPLE;
|
|
154
|
+
const donchianTradeSetup = buildDonchianTradeSetup({
|
|
155
|
+
closes: ohlc.close,
|
|
156
|
+
channels,
|
|
157
|
+
period,
|
|
158
|
+
entryMode,
|
|
159
|
+
entryProximityPct: parsed.data.entryProximityPct,
|
|
160
|
+
entryOffsetPct: parsed.data.entryOffsetPct,
|
|
161
|
+
invalidationOffsetPct: parsed.data.invalidationOffsetPct,
|
|
162
|
+
atr,
|
|
163
|
+
targetAtrMultiple,
|
|
164
|
+
});
|
|
165
|
+
const channelWidth = current.upper - current.lower;
|
|
166
|
+
const donchianHighlight = buildDonchianHighlight({
|
|
167
|
+
upper: current.upper,
|
|
168
|
+
middle: current.middle,
|
|
169
|
+
lower: current.lower,
|
|
170
|
+
priorUpper: prior.upper,
|
|
171
|
+
priorLower: prior.lower,
|
|
172
|
+
channelWidth,
|
|
173
|
+
period,
|
|
174
|
+
entryMode,
|
|
175
|
+
setup: donchianTradeSetup,
|
|
176
|
+
});
|
|
177
|
+
const lastClose = ohlc.close[lastIndex];
|
|
178
|
+
const summary = donchianHighlight.summary;
|
|
179
|
+
let interpretation = `Donchian channels (${period}): upper ${current.upper.toFixed(2)}, middle ${current.middle.toFixed(2)}, lower ${current.lower.toFixed(2)}. Prior channel ${prior.lower.toFixed(2)}–${prior.upper.toFixed(2)}. Last close ${lastClose.toFixed(2)}. Entry mode: ${entryMode}. `;
|
|
180
|
+
if (donchianTradeSetup?.invalidated) {
|
|
181
|
+
interpretation += donchianTradeSetup.unclearReason ?? 'Setup invalidated.';
|
|
182
|
+
}
|
|
183
|
+
else if (donchianTradeSetup?.status === 'clear' &&
|
|
184
|
+
donchianTradeSetup.side !== 'neutral') {
|
|
185
|
+
interpretation += `Trade setup (${donchianTradeSetup.setupPurposeCode}): ${donchianTradeSetup.side} at ${donchianTradeSetup.entryLabel ?? 'channel'} toward ${donchianTradeSetup.targetLabel ?? 'target'}.`;
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
interpretation +=
|
|
189
|
+
donchianTradeSetup?.conditionalNote ??
|
|
190
|
+
'No clear Donchian breakout/retest — wait for signal.';
|
|
191
|
+
}
|
|
192
|
+
return {
|
|
193
|
+
ok: true,
|
|
194
|
+
data: {
|
|
195
|
+
analysis: {
|
|
196
|
+
summary,
|
|
197
|
+
interpretation,
|
|
198
|
+
upper: current.upper,
|
|
199
|
+
middle: current.middle,
|
|
200
|
+
lower: current.lower,
|
|
201
|
+
priorUpper: prior.upper,
|
|
202
|
+
priorLower: prior.lower,
|
|
203
|
+
channelWidth,
|
|
204
|
+
period,
|
|
205
|
+
entryMode,
|
|
206
|
+
donchianTradeSetup,
|
|
207
|
+
donchianHighlight,
|
|
208
|
+
},
|
|
209
|
+
meta: buildOhlcvAnalysisMeta(bars, {
|
|
210
|
+
title: parsed.data.title,
|
|
211
|
+
toolResult: parsed.data.toolResult,
|
|
212
|
+
liveMerge,
|
|
213
|
+
ohlcvFingerprint: fingerprint,
|
|
214
|
+
}),
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
//# sourceMappingURL=donchian-analyze-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"donchian-analyze-tools.js","sourceRoot":"","sources":["../../../../src/core/chart/analysis/donchian-analyze-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { DonchianTradeSetup } from './trade-setups/donchian-trade-setup.js';
|
|
2
|
+
export type DonchianHighlight = {
|
|
3
|
+
summary: string;
|
|
4
|
+
upper: number;
|
|
5
|
+
middle: number;
|
|
6
|
+
lower: number;
|
|
7
|
+
priorUpper: number;
|
|
8
|
+
priorLower: number;
|
|
9
|
+
channelWidth: number;
|
|
10
|
+
period: number;
|
|
11
|
+
entryMode: 'retest' | 'immediate';
|
|
12
|
+
side: 'long' | 'short' | 'neutral';
|
|
13
|
+
status: 'clear' | 'unclear';
|
|
14
|
+
invalidated: boolean;
|
|
15
|
+
confidence: number;
|
|
16
|
+
conditionalNote: string;
|
|
17
|
+
chartDrawingHint?: string;
|
|
18
|
+
unclearReason?: string;
|
|
19
|
+
};
|
|
20
|
+
export declare function buildDonchianHighlight(input: {
|
|
21
|
+
upper: number;
|
|
22
|
+
middle: number;
|
|
23
|
+
lower: number;
|
|
24
|
+
priorUpper: number;
|
|
25
|
+
priorLower: number;
|
|
26
|
+
channelWidth: number;
|
|
27
|
+
period: number;
|
|
28
|
+
entryMode: 'retest' | 'immediate';
|
|
29
|
+
setup: DonchianTradeSetup | null;
|
|
30
|
+
}): DonchianHighlight;
|
|
31
|
+
//# sourceMappingURL=donchian-highlight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"donchian-highlight.d.ts","sourceRoot":"","sources":["../../../../src/core/chart/analysis/donchian-highlight.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,wCAAwC,CAAC;AAE/E,MAAM,MAAM,iBAAiB,GAAG;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,QAAQ,GAAG,WAAW,CAAC;IAClC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;IACnC,MAAM,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAYF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,QAAQ,GAAG,WAAW,CAAC;IAClC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACjC,GAAG,iBAAiB,CAiCpB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
function sideLabel(side) {
|
|
2
|
+
if (side === 'long') {
|
|
3
|
+
return 'Long';
|
|
4
|
+
}
|
|
5
|
+
if (side === 'short') {
|
|
6
|
+
return 'Short';
|
|
7
|
+
}
|
|
8
|
+
return 'Neutral';
|
|
9
|
+
}
|
|
10
|
+
export function buildDonchianHighlight(input) {
|
|
11
|
+
const setup = input.setup;
|
|
12
|
+
const side = setup?.side ?? 'neutral';
|
|
13
|
+
const status = setup?.status ?? 'unclear';
|
|
14
|
+
const invalidated = setup?.invalidated ?? false;
|
|
15
|
+
const confidence = setup?.confidence ?? 0.4;
|
|
16
|
+
const conditionalNote = setup?.conditionalNote ??
|
|
17
|
+
'Donchian channel — wait for breakout or retest of the broken band.';
|
|
18
|
+
const statusPart = invalidated ? 'Invalid' : status === 'clear' ? 'Clear' : 'Unclear';
|
|
19
|
+
const modePart = input.entryMode === 'retest' ? 'retest' : 'immediate';
|
|
20
|
+
const summary = `DC(${input.period}) · ${input.lower.toFixed(2)}–${input.upper.toFixed(2)} · ${modePart}. ${sideLabel(side)} — ${statusPart}. ${conditionalNote}`;
|
|
21
|
+
const chartDrawingHint = 'When a chart is already prepared, merge `{ type: "donchian", sourceSeriesId, period }` into prepareReplay.overlays (period from trade-desk.yaml donchianPeriod) and call prepare_chart_from_rows with the same OHLCV session.';
|
|
22
|
+
return {
|
|
23
|
+
summary,
|
|
24
|
+
upper: input.upper,
|
|
25
|
+
middle: input.middle,
|
|
26
|
+
lower: input.lower,
|
|
27
|
+
priorUpper: input.priorUpper,
|
|
28
|
+
priorLower: input.priorLower,
|
|
29
|
+
channelWidth: input.channelWidth,
|
|
30
|
+
period: input.period,
|
|
31
|
+
entryMode: input.entryMode,
|
|
32
|
+
side,
|
|
33
|
+
status,
|
|
34
|
+
invalidated,
|
|
35
|
+
confidence,
|
|
36
|
+
conditionalNote,
|
|
37
|
+
chartDrawingHint,
|
|
38
|
+
...(setup?.unclearReason ? { unclearReason: setup.unclearReason } : {}),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=donchian-highlight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"donchian-highlight.js","sourceRoot":"","sources":["../../../../src/core/chart/analysis/donchian-highlight.ts"],"names":[],"mappings":"AAqBA,SAAS,SAAS,CAAC,IAA+B;IACjD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC;IACf,CAAC;IACD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC;IAChB,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAUtC;IACA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,IAAI,GAAG,KAAK,EAAE,IAAI,IAAI,SAAS,CAAC;IACtC,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,IAAI,SAAS,CAAC;IAC1C,MAAM,WAAW,GAAG,KAAK,EAAE,WAAW,IAAI,KAAK,CAAC;IAChD,MAAM,UAAU,GAAG,KAAK,EAAE,UAAU,IAAI,GAAG,CAAC;IAC5C,MAAM,eAAe,GACpB,KAAK,EAAE,eAAe;QACtB,oEAAoE,CAAC;IACtE,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;IACvE,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,OAAO,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,QAAQ,KAAK,SAAS,CAAC,IAAI,CAAC,MAAM,UAAU,KAAK,eAAe,EAAE,CAAC;IAClK,MAAM,gBAAgB,GACrB,+NAA+N,CAAC;IAEjO,OAAO;QACN,OAAO;QACP,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,IAAI;QACJ,MAAM;QACN,WAAW;QACX,UAAU;QACV,eAAe;QACf,gBAAgB;QAChB,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,EAAC,aAAa,EAAE,KAAK,CAAC,aAAa,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACrE,CAAC;AACH,CAAC"}
|
|
@@ -21,6 +21,39 @@ export declare const AnalyzeElliottWavesInputSchema: z.ZodPreprocess<z.ZodObject
|
|
|
21
21
|
entryProximityAtrPeriod: z.ZodOptional<z.ZodNumber>;
|
|
22
22
|
entryOffsetPct: z.ZodOptional<z.ZodNumber>;
|
|
23
23
|
invalidationOffsetPct: z.ZodOptional<z.ZodNumber>;
|
|
24
|
+
fibKeyLevelMinConfidence: z.ZodOptional<z.ZodNumber>;
|
|
25
|
+
donchianPeriod: z.ZodOptional<z.ZodNumber>;
|
|
26
|
+
donchianEntryMode: z.ZodOptional<z.ZodEnum<{
|
|
27
|
+
retest: "retest";
|
|
28
|
+
immediate: "immediate";
|
|
29
|
+
}>>;
|
|
30
|
+
donchianTargetAtrMultiple: z.ZodOptional<z.ZodNumber>;
|
|
31
|
+
supertrendPeriod: z.ZodOptional<z.ZodNumber>;
|
|
32
|
+
supertrendMultiplier: z.ZodOptional<z.ZodNumber>;
|
|
33
|
+
supertrendEntryMode: z.ZodOptional<z.ZodEnum<{
|
|
34
|
+
retest: "retest";
|
|
35
|
+
flip: "flip";
|
|
36
|
+
}>>;
|
|
37
|
+
supertrendTargetAtrMultiple: z.ZodOptional<z.ZodNumber>;
|
|
38
|
+
ichimokuConversionPeriod: z.ZodOptional<z.ZodNumber>;
|
|
39
|
+
ichimokuBasePeriod: z.ZodOptional<z.ZodNumber>;
|
|
40
|
+
ichimokuSpanPeriod: z.ZodOptional<z.ZodNumber>;
|
|
41
|
+
ichimokuDisplacement: z.ZodOptional<z.ZodNumber>;
|
|
42
|
+
ichimokuTargetAtrMultiple: z.ZodOptional<z.ZodNumber>;
|
|
43
|
+
zScorePeriod: z.ZodOptional<z.ZodNumber>;
|
|
44
|
+
zScoreEntry: z.ZodOptional<z.ZodNumber>;
|
|
45
|
+
zScoreExit: z.ZodOptional<z.ZodNumber>;
|
|
46
|
+
zScoreStopAtrMultiple: z.ZodOptional<z.ZodNumber>;
|
|
47
|
+
zScoreAtrFilter: z.ZodOptional<z.ZodEnum<{
|
|
48
|
+
none: "none";
|
|
49
|
+
contracting: "contracting";
|
|
50
|
+
}>>;
|
|
51
|
+
divergenceOscillator: z.ZodOptional<z.ZodEnum<{
|
|
52
|
+
rsi: "rsi";
|
|
53
|
+
stochasticrsi: "stochasticrsi";
|
|
54
|
+
both: "both";
|
|
55
|
+
}>>;
|
|
56
|
+
divergenceMaxLag: z.ZodOptional<z.ZodNumber>;
|
|
24
57
|
}, z.core.$strict>>;
|
|
25
58
|
export declare const AnalyzeElliottWavesOutputSchema: z.ZodObject<{
|
|
26
59
|
analysis: z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elliott-waves-analyze-tools.d.ts","sourceRoot":"","sources":["../../../../src/core/chart/analysis/elliott-waves-analyze-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AA2B/C,eAAO,MAAM,8BAA8B
|
|
1
|
+
{"version":3,"file":"elliott-waves-analyze-tools.d.ts","sourceRoot":"","sources":["../../../../src/core/chart/analysis/elliott-waves-analyze-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AA2B/C,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAA0D,CAAC;AAyBtG,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA+BlC,CAAC;AAEX,wBAAsB,uBAAuB,CAC5C,KAAK,EAAE,OAAO,GACZ,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC,CAAC,CAwErE"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { SdkResult } from '../../result.js';
|
|
3
|
+
export declare const AnalyzeIchimokuInputSchema: z.ZodPreprocess<z.ZodObject<{
|
|
4
|
+
toolResult: z.ZodOptional<z.ZodUnknown>;
|
|
5
|
+
rows: z.ZodOptional<z.ZodArray<z.ZodUnknown>>;
|
|
6
|
+
title: z.ZodOptional<z.ZodString>;
|
|
7
|
+
label: z.ZodOptional<z.ZodString>;
|
|
8
|
+
ohlcvDigest: z.ZodOptional<z.ZodString>;
|
|
9
|
+
mergeLive: z.ZodOptional<z.ZodBoolean>;
|
|
10
|
+
liveTick: z.ZodOptional<z.ZodObject<{
|
|
11
|
+
timeMs: z.ZodNumber;
|
|
12
|
+
price: z.ZodNumber;
|
|
13
|
+
volume: z.ZodOptional<z.ZodNumber>;
|
|
14
|
+
}, z.core.$strict>>;
|
|
15
|
+
allowRowsOnly: z.ZodOptional<z.ZodBoolean>;
|
|
16
|
+
conversionPeriod: z.ZodOptional<z.ZodNumber>;
|
|
17
|
+
ichimokuConversionPeriod: z.ZodOptional<z.ZodNumber>;
|
|
18
|
+
basePeriod: z.ZodOptional<z.ZodNumber>;
|
|
19
|
+
ichimokuBasePeriod: z.ZodOptional<z.ZodNumber>;
|
|
20
|
+
spanPeriod: z.ZodOptional<z.ZodNumber>;
|
|
21
|
+
ichimokuSpanPeriod: z.ZodOptional<z.ZodNumber>;
|
|
22
|
+
displacement: z.ZodOptional<z.ZodNumber>;
|
|
23
|
+
ichimokuDisplacement: z.ZodOptional<z.ZodNumber>;
|
|
24
|
+
ichimokuTargetAtrMultiple: z.ZodOptional<z.ZodNumber>;
|
|
25
|
+
entryProximityPct: z.ZodOptional<z.ZodNumber>;
|
|
26
|
+
entryProximityMode: z.ZodOptional<z.ZodEnum<{
|
|
27
|
+
price: "price";
|
|
28
|
+
atr: "atr";
|
|
29
|
+
}>>;
|
|
30
|
+
entryProximityAtrPeriod: z.ZodOptional<z.ZodNumber>;
|
|
31
|
+
entryOffsetPct: z.ZodOptional<z.ZodNumber>;
|
|
32
|
+
invalidationOffsetPct: z.ZodOptional<z.ZodNumber>;
|
|
33
|
+
}, z.core.$strict>>;
|
|
34
|
+
export declare const AnalyzeIchimokuOutputSchema: z.ZodObject<{
|
|
35
|
+
analysis: z.ZodObject<{
|
|
36
|
+
summary: z.ZodString;
|
|
37
|
+
interpretation: z.ZodString;
|
|
38
|
+
conversion: z.ZodNumber;
|
|
39
|
+
base: z.ZodNumber;
|
|
40
|
+
cloudTop: z.ZodNumber;
|
|
41
|
+
cloudBottom: z.ZodNumber;
|
|
42
|
+
spanA: z.ZodNumber;
|
|
43
|
+
spanB: z.ZodNumber;
|
|
44
|
+
conversionPeriod: z.ZodNumber;
|
|
45
|
+
basePeriod: z.ZodNumber;
|
|
46
|
+
spanPeriod: z.ZodNumber;
|
|
47
|
+
displacement: z.ZodNumber;
|
|
48
|
+
tkState: z.ZodEnum<{
|
|
49
|
+
flat: "flat";
|
|
50
|
+
bullish: "bullish";
|
|
51
|
+
bearish: "bearish";
|
|
52
|
+
}>;
|
|
53
|
+
cloudPosition: z.ZodEnum<{
|
|
54
|
+
inside: "inside";
|
|
55
|
+
above: "above";
|
|
56
|
+
below: "below";
|
|
57
|
+
}>;
|
|
58
|
+
ichimokuTradeSetup: z.ZodNullable<z.ZodObject<{}, z.core.$catchall<z.ZodUnknown>>>;
|
|
59
|
+
ichimokuHighlight: z.ZodObject<{}, z.core.$catchall<z.ZodUnknown>>;
|
|
60
|
+
}, z.core.$strict>;
|
|
61
|
+
meta: z.ZodObject<{
|
|
62
|
+
barCount: z.ZodNumber;
|
|
63
|
+
title: z.ZodOptional<z.ZodString>;
|
|
64
|
+
ohlcvSummary: z.ZodOptional<z.ZodObject<{
|
|
65
|
+
barCount: z.ZodNumber;
|
|
66
|
+
timeStartSec: z.ZodNumber;
|
|
67
|
+
timeEndSec: z.ZodNumber;
|
|
68
|
+
low: z.ZodNumber;
|
|
69
|
+
high: z.ZodNumber;
|
|
70
|
+
lastClose: z.ZodNumber;
|
|
71
|
+
}, z.core.$strict>>;
|
|
72
|
+
ohlcvFingerprint: z.ZodOptional<z.ZodObject<{
|
|
73
|
+
version: z.ZodLiteral<1>;
|
|
74
|
+
barCount: z.ZodNumber;
|
|
75
|
+
timeStartSec: z.ZodNumber;
|
|
76
|
+
timeEndSec: z.ZodNumber;
|
|
77
|
+
low: z.ZodNumber;
|
|
78
|
+
high: z.ZodNumber;
|
|
79
|
+
lastClose: z.ZodNumber;
|
|
80
|
+
digest: z.ZodString;
|
|
81
|
+
}, z.core.$strict>>;
|
|
82
|
+
fetchContext: z.ZodOptional<z.ZodObject<{
|
|
83
|
+
interval: z.ZodNullable<z.ZodString>;
|
|
84
|
+
intervalSec: z.ZodNullable<z.ZodNumber>;
|
|
85
|
+
lookbackDays: z.ZodNullable<z.ZodNumber>;
|
|
86
|
+
lookbackHours: z.ZodNullable<z.ZodNumber>;
|
|
87
|
+
lookbackLabel: z.ZodNullable<z.ZodString>;
|
|
88
|
+
coin: z.ZodNullable<z.ZodString>;
|
|
89
|
+
declaredBarCount: z.ZodNullable<z.ZodNumber>;
|
|
90
|
+
windowExpectedBarCount: z.ZodNullable<z.ZodNumber>;
|
|
91
|
+
expectedBarCount: z.ZodNullable<z.ZodNumber>;
|
|
92
|
+
}, z.core.$strict>>;
|
|
93
|
+
windowExpectation: z.ZodOptional<z.ZodObject<{
|
|
94
|
+
interval: z.ZodNullable<z.ZodString>;
|
|
95
|
+
intervalSec: z.ZodNullable<z.ZodNumber>;
|
|
96
|
+
lookbackLabel: z.ZodNullable<z.ZodString>;
|
|
97
|
+
expectedBarCount: z.ZodNullable<z.ZodNumber>;
|
|
98
|
+
minBarCount: z.ZodNullable<z.ZodNumber>;
|
|
99
|
+
sources: z.ZodArray<z.ZodString>;
|
|
100
|
+
}, z.core.$strict>>;
|
|
101
|
+
liveMerge: z.ZodOptional<z.ZodObject<{
|
|
102
|
+
attempted: z.ZodBoolean;
|
|
103
|
+
merged: z.ZodBoolean;
|
|
104
|
+
livePrice: z.ZodOptional<z.ZodNumber>;
|
|
105
|
+
liveTickTimeMs: z.ZodOptional<z.ZodNumber>;
|
|
106
|
+
priorLastClose: z.ZodOptional<z.ZodNumber>;
|
|
107
|
+
barRolledOver: z.ZodOptional<z.ZodBoolean>;
|
|
108
|
+
skippedReason: z.ZodOptional<z.ZodString>;
|
|
109
|
+
}, z.core.$strict>>;
|
|
110
|
+
patternsScanned: z.ZodOptional<z.ZodNumber>;
|
|
111
|
+
dataPolicy: z.ZodString;
|
|
112
|
+
warnings: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
113
|
+
sessionBind: z.ZodOptional<z.ZodObject<{
|
|
114
|
+
ohlcvDigest: z.ZodString;
|
|
115
|
+
title: z.ZodOptional<z.ZodString>;
|
|
116
|
+
reuseInput: z.ZodObject<{
|
|
117
|
+
title: z.ZodOptional<z.ZodString>;
|
|
118
|
+
ohlcvDigest: z.ZodString;
|
|
119
|
+
}, z.core.$strict>;
|
|
120
|
+
}, z.core.$strict>>;
|
|
121
|
+
}, z.core.$strict>;
|
|
122
|
+
}, z.core.$strict>;
|
|
123
|
+
export declare function analyzeIchimoku(input: unknown): Promise<SdkResult<z.infer<typeof AnalyzeIchimokuOutputSchema>>>;
|
|
124
|
+
//# sourceMappingURL=ichimoku-analyze-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ichimoku-analyze-tools.d.ts","sourceRoot":"","sources":["../../../../src/core/chart/analysis/ichimoku-analyze-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAiD/C,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAGtC,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAwB9B,CAAC;AA2EX,wBAAsB,eAAe,CACpC,KAAK,EAAE,OAAO,GACZ,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC,CAAC,CA+IjE"}
|