dexbot 1.6.4 → 1.6.5
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/CHANGELOG.md +40 -0
- package/README.md +12 -12
- package/analysis/README.md +8 -1
- package/analysis/ama_fitting/package.json +1 -1
- package/analysis/analyze_dynamic_weight.ts +9 -3
- package/analysis/tradingview/analyze_tradingview.ts +5 -0
- package/analysis/tradingview/tradingview_uplot_chart_generator.ts +2 -2
- package/analysis/trend_detection/DYNAMIC_WEIGHT_RESEARCH.md +35 -2
- package/analysis/trend_detection/dynamic_weight_chart_generator.ts +82 -10
- package/analysis/trend_detection/package.json +1 -1
- package/claw/modules/dexbot_profiles.ts +4 -3
- package/claw/package.json +1 -1
- package/claw/runtimes/openclaw-plugin/openclaw.plugin.json +1 -1
- package/claw/runtimes/openclaw-plugin/package.json +1 -1
- package/claw/tests/test_claw_mcp_transport.ts +2 -2
- package/claw/tests/test_dexbot_profiles.ts +18 -1
- package/dist/analysis/analyze_dynamic_weight.js +9 -3
- package/dist/analysis/analyze_dynamic_weight.js.map +1 -1
- package/dist/analysis/tradingview/analyze_tradingview.d.ts.map +1 -1
- package/dist/analysis/tradingview/analyze_tradingview.js +5 -0
- package/dist/analysis/tradingview/analyze_tradingview.js.map +1 -1
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js +2 -2
- package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts.map +1 -1
- package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js +82 -10
- package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js.map +1 -1
- package/dist/dexbot.d.ts.map +1 -1
- package/dist/dexbot.js +27 -68
- package/dist/dexbot.js.map +1 -1
- package/dist/market_adapter/core/asymmetric_bounds.d.ts +2 -2
- package/dist/market_adapter/core/asymmetric_bounds.d.ts.map +1 -1
- package/dist/market_adapter/core/asymmetric_bounds.js +15 -12
- package/dist/market_adapter/core/asymmetric_bounds.js.map +1 -1
- package/dist/market_adapter/interval_utils.d.ts +1 -1
- package/dist/market_adapter/interval_utils.js +1 -1
- package/dist/modules/account_bots.d.ts +55 -5
- package/dist/modules/account_bots.d.ts.map +1 -1
- package/dist/modules/account_bots.js +258 -117
- package/dist/modules/account_bots.js.map +1 -1
- package/dist/modules/bot_defaults.d.ts +98 -0
- package/dist/modules/bot_defaults.d.ts.map +1 -0
- package/dist/modules/bot_defaults.js +169 -0
- package/dist/modules/bot_defaults.js.map +1 -0
- package/dist/modules/bot_settings.d.ts.map +1 -1
- package/dist/modules/bot_settings.js +4 -1
- package/dist/modules/bot_settings.js.map +1 -1
- package/dist/modules/config.d.ts +1 -0
- package/dist/modules/config.d.ts.map +1 -1
- package/dist/modules/config.js +1 -0
- package/dist/modules/config.js.map +1 -1
- package/dist/modules/constants.d.ts +11 -2
- package/dist/modules/constants.d.ts.map +1 -1
- package/dist/modules/constants.js +40 -27
- package/dist/modules/constants.js.map +1 -1
- package/dist/modules/dexbot_maintenance_runtime.d.ts +1 -1
- package/dist/modules/dexbot_maintenance_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_maintenance_runtime.js +9 -4
- package/dist/modules/dexbot_maintenance_runtime.js.map +1 -1
- package/dist/modules/launcher/adapter_requirement.js +1 -1
- package/dist/modules/launcher/launch_modes.d.ts +17 -1
- package/dist/modules/launcher/launch_modes.d.ts.map +1 -1
- package/dist/modules/launcher/launch_modes.js +18 -1
- package/dist/modules/launcher/launch_modes.js.map +1 -1
- package/dist/modules/launcher/monolithic_runtime.d.ts.map +1 -1
- package/dist/modules/launcher/monolithic_runtime.js +8 -1
- package/dist/modules/launcher/monolithic_runtime.js.map +1 -1
- package/dist/modules/market_adapter_whitelist.d.ts +40 -1
- package/dist/modules/market_adapter_whitelist.d.ts.map +1 -1
- package/dist/modules/market_adapter_whitelist.js +161 -11
- package/dist/modules/market_adapter_whitelist.js.map +1 -1
- package/dist/modules/order/grid.d.ts +9 -0
- package/dist/modules/order/grid.d.ts.map +1 -1
- package/dist/modules/order/grid.js +23 -5
- package/dist/modules/order/grid.js.map +1 -1
- package/dist/modules/order/manager.js +3 -2
- package/dist/modules/order/manager.js.map +1 -1
- package/dist/modules/order/utils/system.d.ts +5 -1
- package/dist/modules/order/utils/system.d.ts.map +1 -1
- package/dist/modules/order/utils/system.js +5 -2
- package/dist/modules/order/utils/system.js.map +1 -1
- package/dist/modules/settings_merge.d.ts +10 -1
- package/dist/modules/settings_merge.d.ts.map +1 -1
- package/dist/modules/settings_merge.js +27 -17
- package/dist/modules/settings_merge.js.map +1 -1
- package/dist/modules/validate_profiles.d.ts.map +1 -1
- package/dist/modules/validate_profiles.js +4 -3
- package/dist/modules/validate_profiles.js.map +1 -1
- package/dist/scripts/chart_command.d.ts +48 -0
- package/dist/scripts/chart_command.d.ts.map +1 -0
- package/dist/scripts/chart_command.js +504 -0
- package/dist/scripts/chart_command.js.map +1 -0
- package/dist/scripts/dw.d.ts +3 -0
- package/dist/scripts/dw.d.ts.map +1 -0
- package/dist/scripts/dw.js +30 -0
- package/dist/scripts/dw.js.map +1 -0
- package/dist/scripts/tv.d.ts +1 -31
- package/dist/scripts/tv.d.ts.map +1 -1
- package/dist/scripts/tv.js +10 -463
- package/dist/scripts/tv.js.map +1 -1
- package/dist/scripts/update.js +99 -62
- package/dist/scripts/update.js.map +1 -1
- package/dist/scripts/update_dist_freshness.d.ts +46 -0
- package/dist/scripts/update_dist_freshness.d.ts.map +1 -0
- package/dist/scripts/update_dist_freshness.js +115 -0
- package/dist/scripts/update_dist_freshness.js.map +1 -0
- package/dist/unlock.js +1 -1
- package/dist/unlock.js.map +1 -1
- package/docs/BITSHARES_ONBOARDING.md +10 -7
- package/docs/DEXBOT_COMPARISON.md +3 -3
- package/docs/EVOLUTION.md +8 -7
- package/docs/FUND_MOVEMENT_AND_ACCOUNTING.md +4 -4
- package/docs/GRID_RECALCULATION.md +20 -24
- package/docs/GRID_RECONCILE.md +2 -2
- package/docs/LOGGING.md +1 -0
- package/docs/README.md +16 -16
- package/docs/WORKFLOW.md +1 -2
- package/docs/architecture.md +2 -2
- package/docs/developer_guide.md +1 -0
- package/market_adapter/README.md +36 -60
- package/modules/README.md +2 -1
- package/package.json +1 -2
- package/scripts/README.md +18 -25
- package/scripts/reset-settings.sh +1 -1
- package/dist/scripts/generate_market_adapter_whitelist.d.ts +0 -15
- package/dist/scripts/generate_market_adapter_whitelist.d.ts.map +0 -1
- package/dist/scripts/generate_market_adapter_whitelist.js +0 -191
- package/dist/scripts/generate_market_adapter_whitelist.js.map +0 -1
|
@@ -7,7 +7,7 @@ import { Config } from '../../modules/config.js';
|
|
|
7
7
|
import { PATHS } from '../../modules/paths.js';
|
|
8
8
|
import { writeJsonFileAtomic as baseWriteJsonFileAtomic } from '../../modules/bots_file_lock.js';
|
|
9
9
|
import { acquireFileLock } from '../../market_adapter/utils/file_lock.js';
|
|
10
|
-
import { assertNoDuplicateBotKeys } from '../../modules/bot_settings.js';
|
|
10
|
+
import { assertNoDuplicateBotKeys, normalizeBotEntry } from '../../modules/bot_settings.js';
|
|
11
11
|
import { BOT_LIVE_CONFIG_KEYS } from '../../modules/runtime_settings.js';
|
|
12
12
|
import { clone } from './utils.js';
|
|
13
13
|
import { createBotKey, sanitizeKey } from '../../modules/account_orders.js';
|
|
@@ -682,8 +682,9 @@ async function normalizeBotEntries(rawEntries: Record<string, any>[], options: P
|
|
|
682
682
|
if (logger) {
|
|
683
683
|
validateBotEntry(entry, index, logger);
|
|
684
684
|
}
|
|
685
|
-
|
|
686
|
-
|
|
685
|
+
// Shared seeder semantics with modules/bot_settings.normalizeBotEntry:
|
|
686
|
+
// missing active → DEFAULT_CONFIG.active, present values pass through raw.
|
|
687
|
+
results.push(normalizeBotEntry(entry, index));
|
|
687
688
|
}
|
|
688
689
|
return results;
|
|
689
690
|
}
|
package/claw/package.json
CHANGED
|
@@ -30,7 +30,7 @@ async function testParserAcceptsJsonlAcrossChunksAndSingleBuffer() {
|
|
|
30
30
|
capabilities: {},
|
|
31
31
|
clientInfo: {
|
|
32
32
|
name: 'claw-mcp-transport-test',
|
|
33
|
-
version: '1.6.
|
|
33
|
+
version: '1.6.5'
|
|
34
34
|
},
|
|
35
35
|
protocolVersion: '2024-11-05'
|
|
36
36
|
}
|
|
@@ -187,7 +187,7 @@ async function testMainEntrypointHandlesRealProcessInitialize() {
|
|
|
187
187
|
capabilities: {},
|
|
188
188
|
clientInfo: {
|
|
189
189
|
name: 'claw-mcp-transport-test',
|
|
190
|
-
version: '1.6.
|
|
190
|
+
version: '1.6.5'
|
|
191
191
|
},
|
|
192
192
|
protocolVersion: '2024-11-05'
|
|
193
193
|
}
|
|
@@ -4,7 +4,7 @@ const assert = require('assert');
|
|
|
4
4
|
const fs = require('fs/promises');
|
|
5
5
|
const os = require('os');
|
|
6
6
|
const path = require('path');
|
|
7
|
-
const { GRID_LIMITS } = require('../../modules/constants');
|
|
7
|
+
const { GRID_LIMITS, DEFAULT_CONFIG } = require('../../modules/constants');
|
|
8
8
|
|
|
9
9
|
const {
|
|
10
10
|
createBotKey,
|
|
@@ -608,8 +608,25 @@ async function testGeometryPatchKeepsTriggerByDefault() {
|
|
|
608
608
|
await fs.access(result.triggerPath);
|
|
609
609
|
}
|
|
610
610
|
|
|
611
|
+
async function testNormalizeBotEntriesDelegatesToSharedSeeder() {
|
|
612
|
+
console.log(' - Testing normalizeBotEntries delegates to shared bot defaults...');
|
|
613
|
+
const entries = await normalizeBotEntries([
|
|
614
|
+
{ name: 'missing-active' },
|
|
615
|
+
{ name: 'null-active', active: null },
|
|
616
|
+
{ name: 'false-active', active: false },
|
|
617
|
+
]);
|
|
618
|
+
assert.strictEqual(entries[0].active, DEFAULT_CONFIG.active,
|
|
619
|
+
'missing active → DEFAULT_CONFIG.active (shared seeder, was hardcoded true)');
|
|
620
|
+
assert.strictEqual(entries[1].active, null,
|
|
621
|
+
'present null passes through raw (claw used to coerce to false — unified in Phase 3)');
|
|
622
|
+
assert.strictEqual(entries[2].active, false, 'active:false preserved');
|
|
623
|
+
assert.strictEqual(entries[0].botIndex, 0, 'index stamped');
|
|
624
|
+
assert.ok(entries[0].botKey, 'botKey generated');
|
|
625
|
+
}
|
|
626
|
+
|
|
611
627
|
async function main() {
|
|
612
628
|
await testNormalizeAcceptsAssetIdAliases();
|
|
629
|
+
await testNormalizeBotEntriesDelegatesToSharedSeeder();
|
|
613
630
|
testCreateBotKeyFallsBackToAssetIds();
|
|
614
631
|
await testMatchBotIdentifierHandlesIdOnlyBots();
|
|
615
632
|
await testAtomicWriteFailsFastWhenLockCannotBeAcquired();
|
|
@@ -20,7 +20,7 @@ import { calculateAMA } from '../market_adapter/core/strategies/ama.js';
|
|
|
20
20
|
import { computeAmaSlopeWeights, createAmaSlopeClipTracker } from '../market_adapter/core/strategies/ama_slope_model.js';
|
|
21
21
|
import { MARKET_ADAPTER } from '../modules/constants.js';
|
|
22
22
|
import { PATHS } from '../modules/paths.js';
|
|
23
|
-
import { writeChartFile } from './chart_utils.js';
|
|
23
|
+
import { writeChartFile, toFileUrl } from './chart_utils.js';
|
|
24
24
|
import { getCandleClose } from './math_utils.js';
|
|
25
25
|
import { resolveSource, listAvailableBots } from './resolve_source.js';
|
|
26
26
|
// AMA Slope weight calculation config — use DEFAULTS from market adapter
|
|
@@ -48,6 +48,7 @@ function parseArgs() {
|
|
|
48
48
|
const config = {
|
|
49
49
|
source: { type: 'market_adapter', config: { botKey: '' } },
|
|
50
50
|
chartFile: path.join(PATHS.ANALYSIS.CHARTS_DIR, 'dynamic_weight_chart.html'),
|
|
51
|
+
title: null,
|
|
51
52
|
alpha: MARKET_ADAPTER.DYNAMIC_WEIGHT_ALPHA,
|
|
52
53
|
gain: MARKET_ADAPTER.DYNAMIC_WEIGHT_GAIN,
|
|
53
54
|
dispWeight: MARKET_ADAPTER.DYNAMIC_WEIGHT_DW,
|
|
@@ -67,6 +68,8 @@ function parseArgs() {
|
|
|
67
68
|
}
|
|
68
69
|
else if (arg === '--chart')
|
|
69
70
|
config.chartFile = args[++i];
|
|
71
|
+
else if (arg === '--title')
|
|
72
|
+
config.title = args[++i] ?? null;
|
|
70
73
|
else if (arg === '--alpha')
|
|
71
74
|
config.alpha = parseFloat(args[++i]);
|
|
72
75
|
else if (arg === '--gain')
|
|
@@ -75,6 +78,8 @@ function parseArgs() {
|
|
|
75
78
|
config.dispWeight = parseFloat(args[++i]);
|
|
76
79
|
else if (arg === '--lb')
|
|
77
80
|
config.lookbackBars = parseInt(args[++i], 10);
|
|
81
|
+
else if (arg === '--ema')
|
|
82
|
+
config.amaEmaSpan = parseInt(args[++i], 10);
|
|
78
83
|
else if (arg === '--clip')
|
|
79
84
|
config.clipPct = parseFloat(args[++i]);
|
|
80
85
|
else if (arg === '--list-bots')
|
|
@@ -177,6 +182,7 @@ async function main() {
|
|
|
177
182
|
...AMA_WEIGHT_CONFIG,
|
|
178
183
|
lookbackBars: config.lookbackBars ?? AMA_WEIGHT_CONFIG.lookbackBars,
|
|
179
184
|
},
|
|
185
|
+
amaEmaSpan: config.amaEmaSpan,
|
|
180
186
|
alpha: config.alpha,
|
|
181
187
|
gain: config.gain,
|
|
182
188
|
dispWeight: config.dispWeight,
|
|
@@ -199,10 +205,10 @@ async function main() {
|
|
|
199
205
|
amaNeutralZonePct: MARKET_ADAPTER.DYNAMIC_WEIGHT_AMA_NEUTRAL_ZONE_PCT,
|
|
200
206
|
dispScaleMinPct: MARKET_ADAPTER.DYNAMIC_WEIGHT_DISP_SCALE_MIN_PCT,
|
|
201
207
|
},
|
|
202
|
-
}, 'Dynamic Weight Research Tool');
|
|
208
|
+
}, config.title || 'Dynamic Weight Research Tool');
|
|
203
209
|
writeChartFile(config.chartFile, html);
|
|
204
210
|
if (!config.quiet)
|
|
205
|
-
console.log(
|
|
211
|
+
console.log(`\n[DynamicWeight] ✓ Chart saved. Open chart: (${toFileUrl(config.chartFile)})`);
|
|
206
212
|
}
|
|
207
213
|
catch (err) {
|
|
208
214
|
console.error(`[DynamicWeight] Error: ${err?.message ?? err}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze_dynamic_weight.js","sourceRoot":"","sources":["../../analysis/analyze_dynamic_weight.ts"],"names":[],"mappings":";AACA,YAAY,CAAC;AAEb;;;;;;;;;;GAUG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AACzH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"analyze_dynamic_weight.js","sourceRoot":"","sources":["../../analysis/analyze_dynamic_weight.ts"],"names":[],"mappings":";AACA,YAAY,CAAC;AAEb;;;;;;;;;;GAUG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4CAA4C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,mDAAmD,CAAC;AAC/F,OAAO,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,sDAAsD,CAAC;AACzH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAqB,MAAM,qBAAqB,CAAC;AAG1F,yEAAyE;AACzE,MAAM,iBAAiB,GAAG;IACtB,YAAY,EAAY,cAAc,CAAC,gCAAgC;IACvE,cAAc,EAAU,cAAc,CAAC,gCAAgC;IACvE,iBAAiB,EAAO,cAAc,CAAC,mCAAmC;IAC1E,cAAc,EAAU,cAAc,CAAC,mCAAmC;IAC1E,kBAAkB,EAAM,cAAc,CAAC,kCAAkC;IACzE,gBAAgB,EAAQ,cAAc,CAAC,yCAAyC;IAChF,mBAAmB,EAAK,cAAc,CAAC,wCAAwC;IAC/E,cAAc,EAAU,cAAc,CAAC,sCAAsC;IAC7E,mBAAmB,EAAK,cAAc,CAAC,oCAAoC;CAC9E,CAAC;AAEF,uBAAuB;AACvB,MAAM,aAAa,GAAG;IAClB,MAAM,EAAE,cAAc,CAAC,qCAAqC;IAC5D,SAAS,EAAE,cAAc,CAAC,wCAAwC;IAClE,MAAM,EAAE,cAAc,CAAC,qCAAqC;CAC/D,CAAC;AAEF,+DAA+D;AAC/D,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,cAAc,CAAC;AAGnD,SAAS,SAAS;IACd,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,MAAM,GAaR;QACA,MAAM,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE;QAC1D,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,2BAA2B,CAAC;QAC5E,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,cAAc,CAAC,oBAAoB;QAC1C,IAAI,EAAE,cAAc,CAAC,mBAAmB;QACxC,UAAU,EAAE,cAAc,CAAC,iBAAiB;QAC5C,OAAO,EAAE,cAAc,CAAC,8BAA8B;QACtD,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,KAAK;KAClB,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,UAAU;YAAE,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aAClD,IAAI,GAAG,KAAK,WAAW;YAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aACjE,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC;QAChC,CAAC;aACI,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;aACpD,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;aACxD,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aAC5D,IAAI,GAAG,KAAK,QAAQ;YAAE,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aAC1D,IAAI,GAAG,KAAK,MAAM;YAAE,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aAC9D,IAAI,GAAG,KAAK,MAAM;YAAE,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aAClE,IAAI,GAAG,KAAK,OAAO;YAAE,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aACjE,IAAI,GAAG,KAAK,QAAQ;YAAE,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aAC7D,IAAI,GAAG,KAAK,aAAa;YAAE,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;aAClD,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;IACpD,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,IAAI;IACf,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;QAE3B,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAClB,iBAAiB,EAAE,CAAC;YACpB,OAAO;QACX,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAEpI,MAAM,UAAU,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,wCAAwC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC;QAEzF,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC;QAED,wEAAwE;QACxE,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CAAC;YACrC,MAAM,EAAE,aAAa,CAAC,MAAM;YAC5B,SAAS,EAAE,aAAa,CAAC,SAAS;YAClC,MAAM,EAAE,aAAa,CAAC,MAAM;SAC/B,CAAC,CAAC;QAEH,yEAAyE;QACzE,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC;YACpC,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,MAAM,EAAE,YAAY,CAAC,MAAM;SAC9B,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,0BAA0B,CAAC;YAC9C,CAAC,EAAO,SAAS,CAAC,CAAC;YACnB,KAAK,EAAG,SAAS,CAAC,KAAK;YACvB,MAAM,EAAE,SAAS,CAAC,MAAM;SAC3B,CAAC,CAAC;QAEH,MAAM,UAAU,GAAU,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAChD,MAAM,EAAE,GAAM,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,MAAM,CAAC,KAAK,GAAG,WAAW,CAAC;YAC1B,MAAc,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAE,KAAa,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YACnE,MAAc,CAAC,EAAE,GAAM,EAAE,CAAC,OAAO,CAAI,CAAC,CAAE,EAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7E,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAED,wEAAwE;QACxE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,IAAI,iBAAiB,CAAC,YAAY,CAAC;QACrE,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,IAAI,cAAc,CAAC,8BAA8B,CAAC;QAEvF,yEAAyE;QACzE,wEAAwE;QACxE,uEAAuE;QACvE,iDAAiD;QACjD,MAAM,WAAW,GAAG,yBAAyB,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;QAC3F,qEAAqE;QACrE,qEAAqE;QACrE,wDAAwD;QACxD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;QAErE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,oEAAoE;YACpE,2EAA2E;YAC3E,MAAM,GAAG,GAAG,CAAC,CAAC;YACd,MAAM,cAAc,GAAG,CAAC,CAAC;YACzB,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YAC/D,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAE5E,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,EAAE,cAAc,EAAE;gBAC1D,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,YAAY,EAAE,MAAM;gBACpB,WAAW,EAAE,iBAAiB,CAAC,cAAc;gBAC7C,cAAc,EAAE,iBAAiB,CAAC,cAAc;gBAChD,kBAAkB,EAAE,iBAAiB,CAAC,kBAAkB;gBACxD,gBAAgB,EAAE,iBAAiB,CAAC,gBAAgB;gBACpD,mBAAmB,EAAE,iBAAiB,CAAC,mBAAmB;gBAC1D,cAAc,EAAE,iBAAiB,CAAC,cAAc;gBAChD,mBAAmB,EAAE,iBAAiB,CAAC,mBAAmB;gBAC1D,aAAa,EAAE,gBAAgB;aAClC,CAAC,CAAC;YAEF,UAAU,CAAC,CAAC,CAAS,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YACvD,UAAU,CAAC,CAAC,CAAS,CAAC,GAAG,GAAG,GAAG,CAAC;YAChC,UAAU,CAAC,CAAC,CAAS,CAAC,cAAc,GAAG,cAAc,CAAC;YACtD,UAAU,CAAC,CAAC,CAAS,CAAC,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;YACrD,UAAU,CAAC,CAAC,CAAS,CAAC,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;YACvD,UAAU,CAAC,CAAC,CAAS,CAAC,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC;YAC3D,UAAU,CAAC,CAAC,CAAS,CAAC,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC;QACtE,CAAC;QAED,wEAAwE;QACxE,MAAM,IAAI,GAAG,YAAY,CAAC;YACtB,UAAU;YACV,SAAS,EAAE,UAAU;YACrB,MAAM;YACN,eAAe,EAAE;gBACb,GAAG,iBAAiB;gBACpB,YAAY,EAAE,MAAM,CAAC,YAAY,IAAI,iBAAiB,CAAC,YAAY;aACtE;YACD,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,iBAAiB,EAAE,cAAc,CAAC,iCAAiC;YACnE,eAAe,EAAG,MAAM,CAAC,eAAe,IAAK,cAAc,CAAC,iCAAiC;YAC7F,kBAAkB,EAAE,cAAc,CAAC,yCAAyC;YAC5E,WAAW,EAAE,cAAc,CAAC,sCAAsC;YAClE,aAAa,EAAE;gBACX,KAAK,EAAoB,cAAc,CAAC,oBAAoB;gBAC5D,IAAI,EAAqB,cAAc,CAAC,mBAAmB;gBAC3D,UAAU,EAAe,cAAc,CAAC,iBAAiB;gBACzD,cAAc,EAAU,cAAc,CAAC,8BAA8B;gBACrE,iBAAiB,EAAQ,cAAc,CAAC,iCAAiC;gBACzE,kBAAkB,EAAO,cAAc,CAAC,yCAAyC;gBACjF,WAAW,EAAc,cAAc,CAAC,sCAAsC;gBAC9E,eAAe,EAAS,cAAc,CAAC,gCAAgC;gBACvE,cAAc,EAAU,cAAc,CAAC,gCAAgC;gBACvE,iBAAiB,EAAO,cAAc,CAAC,mCAAmC;gBAC1E,iBAAiB,EAAO,cAAc,CAAC,mCAAmC;gBAC1E,eAAe,EAAS,cAAc,CAAC,iCAAiC;aAC3E;SACJ,EAAE,MAAM,CAAC,KAAK,IAAI,8BAA8B,CAAC,CAAC;QAEnD,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAEvC,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,iDAAiD,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpH,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,0BAA2B,GAAW,EAAE,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze_tradingview.d.ts","sourceRoot":"","sources":["../../../analysis/tradingview/analyze_tradingview.ts"],"names":[],"mappings":";AAsBA,iBAAS,SAAS;YAGF;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE;YAAE,QAAQ,EAAE,GAAG,CAAC;YAAC,MAAM,CAAC,EAAE,GAAG,CAAA;SAAE,CAAA;KAAE;eACtD,MAAM;WACV,MAAM,GAAG,IAAI;gBACR,MAAM;eACP,MAAM;iBACJ,MAAM,GAAG,SAAS;mBAChB,MAAM,GAAG,SAAS;mBAClB,MAAM,GAAG,SAAS;gBACrB,OAAO;gBACP,OAAO;iBACN,OAAO;cACV,MAAM;kBACF,OAAO;uBACF,OAAO;eACf,MAAM,GAAG,SAAS;gBACjB,MAAM,GAAG,IAAI;cACf,OAAO;oBACD,OAAO;uBACJ,MAAM,GAAG,IAAI;yBACX,MAAM,GAAG,IAAI;WAC3B,OAAO;cACJ,OAAO;EA2DxB;AAED,iBAAS,YAAY,CAAC,QAAQ,EAAE,GAAG;;;EAGlC;AAyDD,iBAAS,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,UAQ9C;AAED,iBAAe,IAAI,
|
|
1
|
+
{"version":3,"file":"analyze_tradingview.d.ts","sourceRoot":"","sources":["../../../analysis/tradingview/analyze_tradingview.ts"],"names":[],"mappings":";AAsBA,iBAAS,SAAS;YAGF;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE;YAAE,QAAQ,EAAE,GAAG,CAAC;YAAC,MAAM,CAAC,EAAE,GAAG,CAAA;SAAE,CAAA;KAAE;eACtD,MAAM;WACV,MAAM,GAAG,IAAI;gBACR,MAAM;eACP,MAAM;iBACJ,MAAM,GAAG,SAAS;mBAChB,MAAM,GAAG,SAAS;mBAClB,MAAM,GAAG,SAAS;gBACrB,OAAO;gBACP,OAAO;iBACN,OAAO;cACV,MAAM;kBACF,OAAO;uBACF,OAAO;eACf,MAAM,GAAG,SAAS;gBACjB,MAAM,GAAG,IAAI;cACf,OAAO;oBACD,OAAO;uBACJ,MAAM,GAAG,IAAI;yBACX,MAAM,GAAG,IAAI;WAC3B,OAAO;cACJ,OAAO;EA2DxB;AAED,iBAAS,YAAY,CAAC,QAAQ,EAAE,GAAG;;;EAGlC;AAyDD,iBAAS,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,UAQ9C;AAED,iBAAe,IAAI,kBAkGlB;AAID,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,CAAA"}
|
|
@@ -242,6 +242,11 @@ async function main() {
|
|
|
242
242
|
},
|
|
243
243
|
smaPeriod: config.smaPeriod,
|
|
244
244
|
amaDefaults: {
|
|
245
|
+
// Intentionally the 3-param AMA (er/fast/slow) only: the in-page
|
|
246
|
+
// recomputation has no erSmoothPeriod input by decision — `dexbot tv`
|
|
247
|
+
// stays a plain candle chart. The dw research chart and the live
|
|
248
|
+
// adapter are the mirrors of the full bot AMA config (incl.
|
|
249
|
+
// ama.erSmoothPeriod); the knob is inert by default (global 0).
|
|
245
250
|
erPeriod: config.amaErPeriod ?? amaConfig.erPeriod,
|
|
246
251
|
fastPeriod: config.amaFastPeriod ?? amaConfig.fastPeriod,
|
|
247
252
|
slowPeriod: config.amaSlowPeriod ?? amaConfig.slowPeriod,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze_tradingview.js","sourceRoot":"","sources":["../../../analysis/tradingview/analyze_tradingview.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analyze_tradingview.js","sourceRoot":"","sources":["../../../analysis/tradingview/analyze_tradingview.ts"],"names":[],"mappings":"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"}
|
|
@@ -1461,7 +1461,7 @@ function generateHTML(data, title = 'TradingView Style Research') {
|
|
|
1461
1461
|
const maxSlopeOffset = Number(slopeCfg.maxSlopeOffset) > 0 ? Number(slopeCfg.maxSlopeOffset) : 0.5;
|
|
1462
1462
|
const maxAsym = gridCfg && Number(gridCfg.maxAsymmetryFactor) > 0
|
|
1463
1463
|
? Number(gridCfg.maxAsymmetryFactor)
|
|
1464
|
-
: (Number(slopeCfg.maxAsymmetryFactor) > 0 ? Number(slopeCfg.maxAsymmetryFactor) : 0.
|
|
1464
|
+
: (Number(slopeCfg.maxAsymmetryFactor) > 0 ? Number(slopeCfg.maxAsymmetryFactor) : 0.333);
|
|
1465
1465
|
const inc = gridCfg && Number(gridCfg.incrementPercent) > 0 ? Number(gridCfg.incrementPercent) : null;
|
|
1466
1466
|
const minSlots = Math.floor(Number(gridCfg && gridCfg.minScaleSlots) > 0 ? Number(gridCfg.minScaleSlots) : (Number(slopeCfg.minScaleSlots) || 0));
|
|
1467
1467
|
// User x-range span (slider 1.2x–2.0x, default 1.55x): the only
|
|
@@ -3058,7 +3058,7 @@ function generateHTML(data, title = 'TradingView Style Research') {
|
|
|
3058
3058
|
}
|
|
3059
3059
|
makeStepper('sma-period', 1, 1, 0);
|
|
3060
3060
|
makeStepper('vwap-bars', 1, 24, 0);
|
|
3061
|
-
makeStepper('ama-er',
|
|
3061
|
+
makeStepper('ama-er', 10, 1, 0);
|
|
3062
3062
|
makeStepper('ama-fast', 0.1, 0.1, 1);
|
|
3063
3063
|
makeStepper('ama-slow', 1, 0.1, 1);
|
|
3064
3064
|
document.getElementById('ama-init-offset').addEventListener('input', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic_weight_chart_generator.d.ts","sourceRoot":"","sources":["../../../analysis/trend_detection/dynamic_weight_chart_generator.ts"],"names":[],"mappings":"AA+BA,iBAAS,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,SAA4B,
|
|
1
|
+
{"version":3,"file":"dynamic_weight_chart_generator.d.ts","sourceRoot":"","sources":["../../../analysis/trend_detection/dynamic_weight_chart_generator.ts"],"names":[],"mappings":"AA+BA,iBAAS,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,SAA4B,UAs6CjE;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -32,6 +32,7 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
|
|
|
32
32
|
const AMA_MS_MIN = 0.06, AMA_MS_MAX = 0.12;
|
|
33
33
|
const KAL_MS_MIN = 0.5, KAL_MS_MAX = 1.5;
|
|
34
34
|
const CLIP_PCT_MAX = 20;
|
|
35
|
+
const EMA_MIN = 0, EMA_MAX = 32;
|
|
35
36
|
const TH_MIN = 0, TH_MAX = 0.5;
|
|
36
37
|
const KF_MIN = 0, KF_MAX = 200;
|
|
37
38
|
const KFD_MIN = 1.0, KFD_MAX = 3.0;
|
|
@@ -45,6 +46,7 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
|
|
|
45
46
|
dispWeight: [0, 1],
|
|
46
47
|
neutralZonePct: [0, 1],
|
|
47
48
|
lookbackBars: [LB_MIN, LB_MAX],
|
|
49
|
+
amaEmaSpan: [EMA_MIN, EMA_MAX],
|
|
48
50
|
amaMaxSlopePct: [AMA_MS_MIN, AMA_MS_MAX],
|
|
49
51
|
kalmanMaxSlopePct: [KAL_MS_MIN, KAL_MS_MAX],
|
|
50
52
|
clipPct: [0, CLIP_PCT_MAX],
|
|
@@ -104,6 +106,10 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
|
|
|
104
106
|
const defaultKalmanDispThresholdMult = data.kalmanDispThresholdMult ?? MARKET_ADAPTER.DYNAMIC_WEIGHT_KALMAN_DISP_THRESHOLD_MULT_DEFAULT;
|
|
105
107
|
const defaultKalmanSmoothSpanPct = data.kalmanSmoothSpanPct ?? MARKET_ADAPTER.DYNAMIC_WEIGHT_KALMAN_SMOOTH_SPAN_PCT_DEFAULT;
|
|
106
108
|
const defaultSignalConfirmBars = data.signalConfirmBars ?? MARKET_ADAPTER.DYNAMIC_WEIGHT_SIGNAL_CONFIRM_BARS_DEFAULT;
|
|
109
|
+
// Research-only `ema` knob: EMA span in bars over the AMA input before the
|
|
110
|
+
// slope is taken. 0 (default) = off, keeps the raw AMA input.
|
|
111
|
+
const defaultAmaEmaSpanRaw = data.amaEmaSpan ?? ma.amaEmaSpan ?? 0;
|
|
112
|
+
const defaultAmaEmaSpan = Math.round(Math.min(EMA_MAX, Math.max(EMA_MIN, Number.isFinite(defaultAmaEmaSpanRaw) ? defaultAmaEmaSpanRaw : EMA_MIN)));
|
|
107
113
|
const regimeInitSlider = Math.round(defaultRegimeSensitivity * 100);
|
|
108
114
|
const interval = results.length > 1 ?
|
|
109
115
|
(new Date(results[1].timestamp).getTime() - new Date(results[0].timestamp).getTime()) / 1000 : 3600;
|
|
@@ -218,7 +224,7 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
|
|
|
218
224
|
.legend-item { gap: 3px; }
|
|
219
225
|
.legend-val { font-family: monospace; display: inline-block; text-align: right; min-width: 45px; }
|
|
220
226
|
#l-price, #l-ama3 { min-width: 62px; }
|
|
221
|
-
#l-ama-slope, #l-kal-vel, #l-kal-disp { min-width: 54px; }
|
|
227
|
+
#l-ama-slope, #l-ama-slope-raw, #l-kal-vel, #l-kal-disp { min-width: 54px; }
|
|
222
228
|
#l-signal, #l-signal-latched { min-width: 70px; text-align: left; }
|
|
223
229
|
#l-combined-raw, #l-combined-echo { min-width: 42px; }
|
|
224
230
|
#l-mult { min-width: 38px; }
|
|
@@ -263,6 +269,9 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
|
|
|
263
269
|
.ctrl.lb label { min-width: 20px; }
|
|
264
270
|
.ctrl.lb input[type="range"] { accent-color: #39d0d8; width: 80px; }
|
|
265
271
|
.ctrl.lb .val { color: #39d0d8; }
|
|
272
|
+
.ctrl.ema label { min-width: 20px; }
|
|
273
|
+
.ctrl.ema input[type="range"] { accent-color: #f0a000; width: 80px; }
|
|
274
|
+
.ctrl.ema .val { color: #f0a000; }
|
|
266
275
|
.ctrl.off input[type="range"] { accent-color: #3fb950; }
|
|
267
276
|
.ctrl.off .val { color: #3fb950; }
|
|
268
277
|
.ctrl.nz input[type="range"] { accent-color: #8b949e; }
|
|
@@ -308,6 +317,7 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
|
|
|
308
317
|
<div class="section-label">AMA SLOPE INPUT</div>
|
|
309
318
|
<div class="legend">
|
|
310
319
|
<div class="legend-item"><div class="dot" style="background:#f0a000;"></div>Slope‰: <span id="l-ama-slope" class="legend-val" style="font-weight:bold;">-</span></div>
|
|
320
|
+
<div class="legend-item"><div class="dot" style="background:#8b949e;"></div>Raw‰: <span id="l-ama-slope-raw" class="legend-val">-</span></div>
|
|
311
321
|
</div>
|
|
312
322
|
<div id="ama-chart"></div>
|
|
313
323
|
</div>
|
|
@@ -338,6 +348,7 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
|
|
|
338
348
|
<div class="group-sep"></div>
|
|
339
349
|
<div class="ctrl nz"><label for="nz-slider">nz%</label><input type="range" id="nz-slider" min="0" max="100" value="${Math.round(defaultNeutralZone * 100)}" title="Neutral Zone %"><span class="val" id="nz-value">${defaultNeutralZone.toFixed(2)}</span></div>
|
|
340
350
|
<div class="ctrl lb"><label for="lb-slider">lb</label><input type="range" id="lb-slider" min="0" max="1000" value="${lbInitSlider}" title="Lookback Bars (${LB_MIN}-${LB_MAX})"><span class="val" id="lb-value">${lookbackBars}</span></div>
|
|
351
|
+
<div class="ctrl ema"><label for="ema-slider">ema</label><input type="range" id="ema-slider" min="${EMA_MIN}" max="${EMA_MAX}" value="${defaultAmaEmaSpan}" title="AMA input EMA span in bars (${EMA_MIN} = off; noise std ~ 1/sqrt(span), lag ~ (span-1)/2 bars; span ~ lb is the balance point)"><span class="val" id="ema-value">${defaultAmaEmaSpan}</span></div>
|
|
341
352
|
<div class="ctrl ms-ama"><label for="ama-ms-slider">amaS%</label><input type="range" id="ama-ms-slider" min="0" max="1000" value="${amaMsInitSlider}" title="AMA Max Slope % per bar (${AMA_MS_MIN}-${AMA_MS_MAX})"><span class="val" id="ama-ms-value">${defaultAmaMaxSlopePct.toFixed(4)}</span></div>
|
|
342
353
|
<div class="ctrl clip"><label for="clip-slider">clip%</label><input type="range" id="clip-slider" min="0" max="${CLIP_PCT_MAX}" value="${Math.min(defaultClipPct, CLIP_PCT_MAX)}" title="Outlier Clip %"><span class="val" id="clip-value">${Math.min(defaultClipPct, CLIP_PCT_MAX)}%</span></div>
|
|
343
354
|
|
|
@@ -371,7 +382,7 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
|
|
|
371
382
|
</div>
|
|
372
383
|
</div>
|
|
373
384
|
|
|
374
|
-
<script id="payload" type="application/json">${serializeJsonForScript({ dates, prices, hurstArr, peArr, hurstSegments, peSegments, ama3Prices, amaSeedSmaLine, amaSlopePct, kalmanVelocityPctRaw, kalmanVelocityPct, kalmanDisplacementPct, kalmanIsReady, signals, alpha: defaultAlpha, gain: defaultGain, kalmanSmoothPct: defaultKalmanSmoothPct, kalmanDispScaleMult: defaultKalmanDispScaleMult, kalmanDispThresholdMult: defaultKalmanDispThresholdMult, kalmanSmoothSpanPct: defaultKalmanSmoothSpanPct, signalConfirmBars: defaultSignalConfirmBars, neutralZonePct: defaultNeutralZone, dispWeight: defaultDispWeight, amaMaxSlopePct: defaultAmaMaxSlopePct, kalmanMaxSlopePct: defaultKalmanMaxSlopePct, maxDispPct, clipPct: defaultClipPct, minOutputThreshold: defaultMinOutputThreshold, outputClamp: defaultOutputClamp, regimeSensitivity: defaultRegimeSensitivity, absoluteThreshold: defaultAbsoluteThreshold, lookbackBars, amaErPeriod, amaSlowPeriod, amaWarmupBars, amaSlopeReadyBars, realBarCount, amaPctMax, kalPctMax, amaPercentiles, kalPercentiles, amaSlopeLogMin: AMA_MS_LOG_MIN_N, amaSlopeLogMax: AMA_MS_LOG_MAX_N, kalSlopeLogMin: KAL_MS_LOG_MIN_N, kalSlopeLogMax: KAL_MS_LOG_MAX_N, lbLogMin: LB_LOG_MIN_N, lbLogMax: LB_LOG_MAX_N, gainLogMin: GAIN_LOG_MIN_N, gainLogMax: GAIN_LOG_MAX_N, sliderRanges: SLIDER_RANGES, dispScaleMinPct: defaultDispScaleMinPct, weightMin: MARKET_ADAPTER.DYNAMIC_WEIGHT_MIN_WEIGHT, weightMax: MARKET_ADAPTER.DYNAMIC_WEIGHT_MAX_WEIGHT, marketAdapter: ma, amaWeightConfig, hNodes: [0.5 + MARKET_ADAPTER.HURST_ZONE_BAND, 0.5, 0.5 - MARKET_ADAPTER.HURST_ZONE_BAND], pNodes: MARKET_ADAPTER.PE_NODES, regimeTable: MARKET_ADAPTER.REGIME_TABLE })}</script>
|
|
385
|
+
<script id="payload" type="application/json">${serializeJsonForScript({ dates, prices, hurstArr, peArr, hurstSegments, peSegments, ama3Prices, amaSeedSmaLine, amaSlopePct, kalmanVelocityPctRaw, kalmanVelocityPct, kalmanDisplacementPct, kalmanIsReady, signals, alpha: defaultAlpha, gain: defaultGain, kalmanSmoothPct: defaultKalmanSmoothPct, kalmanDispScaleMult: defaultKalmanDispScaleMult, kalmanDispThresholdMult: defaultKalmanDispThresholdMult, kalmanSmoothSpanPct: defaultKalmanSmoothSpanPct, signalConfirmBars: defaultSignalConfirmBars, neutralZonePct: defaultNeutralZone, dispWeight: defaultDispWeight, amaMaxSlopePct: defaultAmaMaxSlopePct, kalmanMaxSlopePct: defaultKalmanMaxSlopePct, maxDispPct, clipPct: defaultClipPct, minOutputThreshold: defaultMinOutputThreshold, outputClamp: defaultOutputClamp, regimeSensitivity: defaultRegimeSensitivity, absoluteThreshold: defaultAbsoluteThreshold, lookbackBars, amaErPeriod, amaSlowPeriod, amaWarmupBars, amaSlopeReadyBars, realBarCount, amaPctMax, kalPctMax, amaPercentiles, kalPercentiles, amaSlopeLogMin: AMA_MS_LOG_MIN_N, amaSlopeLogMax: AMA_MS_LOG_MAX_N, kalSlopeLogMin: KAL_MS_LOG_MIN_N, kalSlopeLogMax: KAL_MS_LOG_MAX_N, lbLogMin: LB_LOG_MIN_N, lbLogMax: LB_LOG_MAX_N, amaEmaSpan: defaultAmaEmaSpan, gainLogMin: GAIN_LOG_MIN_N, gainLogMax: GAIN_LOG_MAX_N, sliderRanges: SLIDER_RANGES, dispScaleMinPct: defaultDispScaleMinPct, weightMin: MARKET_ADAPTER.DYNAMIC_WEIGHT_MIN_WEIGHT, weightMax: MARKET_ADAPTER.DYNAMIC_WEIGHT_MAX_WEIGHT, marketAdapter: ma, amaWeightConfig, hNodes: [0.5 + MARKET_ADAPTER.HURST_ZONE_BAND, 0.5, 0.5 - MARKET_ADAPTER.HURST_ZONE_BAND], pNodes: MARKET_ADAPTER.PE_NODES, regimeTable: MARKET_ADAPTER.REGIME_TABLE })}</script>
|
|
375
386
|
|
|
376
387
|
<script>
|
|
377
388
|
const data = JSON.parse(document.getElementById('payload').textContent);
|
|
@@ -413,6 +424,8 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
|
|
|
413
424
|
const kalMsSliderToVal = (pos) => Math.exp(KAL_MS_LOG_MIN + (pos / 1000) * (KAL_MS_LOG_MAX - KAL_MS_LOG_MIN));
|
|
414
425
|
|
|
415
426
|
let currentLookbackBars = data.lookbackBars ?? ${JSON.stringify(lookbackBars)};
|
|
427
|
+
let currentAmaEmaSpan = Math.max(SR.amaEmaSpan[0], Math.min(SR.amaEmaSpan[1], Math.round(data.amaEmaSpan ?? 0)));
|
|
428
|
+
let currentAmaSource = data.ama3Prices;
|
|
416
429
|
const LB_LOG_MIN = data.lbLogMin;
|
|
417
430
|
const LB_LOG_MAX = data.lbLogMax;
|
|
418
431
|
const lbSliderToVal = (pos) => Math.round(Math.exp(LB_LOG_MIN + (pos / 1000) * (LB_LOG_MAX - LB_LOG_MIN)));
|
|
@@ -451,6 +464,7 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
|
|
|
451
464
|
const currentLatchedSignals = new Array(data.dates.length).fill(null);
|
|
452
465
|
const dynamicAmaOff = new Array(data.dates.length).fill(null);
|
|
453
466
|
const dynamicAmaSlopePct = new Array(data.dates.length).fill(null);
|
|
467
|
+
const dynamicAmaSlopePctRaw = new Array(data.dates.length).fill(null);
|
|
454
468
|
const dynamicKalOff = new Array(data.dates.length).fill(null);
|
|
455
469
|
const combinedOff = new Array(data.dates.length).fill(null);
|
|
456
470
|
const combinedSell = new Array(data.dates.length).fill(null);
|
|
@@ -565,9 +579,40 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
|
|
|
565
579
|
}
|
|
566
580
|
}
|
|
567
581
|
|
|
568
|
-
|
|
582
|
+
/**
|
|
583
|
+
* Research-only ema knob — EMA low-pass over the AMA input before the
|
|
584
|
+
* slope is taken (EMA-then-difference == difference-then-EMA, both are
|
|
585
|
+
* linear filters). span bars, alpha = 2/(span+1): noise std shrinks ~
|
|
586
|
+
* 1/sqrt(span), lag grows ~ (span-1)/2 bars. Seeded with an SMA over the
|
|
587
|
+
* first 'span' finite values (mirrors the AMA seed SMA) so the transient
|
|
588
|
+
* is gone before any slope bar can go ready. Nulls (warmup / trailing
|
|
589
|
+
* padding) stay null so no fabricated values reach the clip-percentile
|
|
590
|
+
* pool or the offset pipeline. span <= 0 returns the input untouched.
|
|
591
|
+
*/
|
|
592
|
+
function buildEmaSeries(values, span) {
|
|
593
|
+
if (!(span > 0) || !Array.isArray(values)) return values;
|
|
594
|
+
const n = values.length;
|
|
595
|
+
const out = new Array(n);
|
|
596
|
+
const alpha = 2 / (span + 1);
|
|
597
|
+
let seedSum = 0, seedCount = 0;
|
|
598
|
+
for (let i = 0; i < n && seedCount < span; i++) {
|
|
599
|
+
const v = values[i];
|
|
600
|
+
if (v == null || !Number.isFinite(v)) continue;
|
|
601
|
+
seedSum += v; seedCount++;
|
|
602
|
+
}
|
|
603
|
+
let prev = seedCount > 0 ? seedSum / seedCount : null;
|
|
604
|
+
for (let i = 0; i < n; i++) {
|
|
605
|
+
const v = values[i];
|
|
606
|
+
if (v == null || !Number.isFinite(v)) { out[i] = null; continue; }
|
|
607
|
+
prev = prev == null ? v : alpha * v + (1 - alpha) * prev;
|
|
608
|
+
out[i] = prev;
|
|
609
|
+
}
|
|
610
|
+
return out;
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
function computeSlopeAtIndex(idx, lb, values) {
|
|
569
614
|
// Canonical AMA slope % (computeAverageAmaSlopePct injected above).
|
|
570
|
-
const sp = computeAverageAmaSlopePct(
|
|
615
|
+
const sp = computeAverageAmaSlopePct(values[idx], values[idx - lb], lb);
|
|
571
616
|
return sp == null ? 0 : sp;
|
|
572
617
|
}
|
|
573
618
|
|
|
@@ -575,6 +620,7 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
|
|
|
575
620
|
recalcKalmanVelocity();
|
|
576
621
|
recalcKalmanClipThreshold();
|
|
577
622
|
recalcLatchedSignals();
|
|
623
|
+
currentAmaSource = buildEmaSeries(data.ama3Prices, currentAmaEmaSpan);
|
|
578
624
|
const lb = currentLookbackBars;
|
|
579
625
|
const amaErWarmup = Math.max(0, Number.isFinite(data.amaErPeriod) ? Math.ceil(data.amaErPeriod) : ${JSON.stringify(MARKET_ADAPTER.AMAS[MARKET_ADAPTER.DEFAULT_AMA_KEY].erPeriod)});
|
|
580
626
|
const amaReadyBar = Math.max(lb, amaErWarmup + lb);
|
|
@@ -583,14 +629,20 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
|
|
|
583
629
|
// implementation (computeAmaSlopeClipThreshold injected above),
|
|
584
630
|
// shared with the live market adapter service. Trailing padded
|
|
585
631
|
// nulls beyond realBarCount are skipped by its finiteness guards.
|
|
586
|
-
|
|
632
|
+
// Clip pool follows the (possibly EMA-filtered) AMA input so the
|
|
633
|
+
// percentile threshold matches the series the offsets derive from.
|
|
634
|
+
dynamicClipThreshold = computeAmaSlopeClipThreshold(currentAmaSource, amaErWarmup, lb, currentClipPct);
|
|
587
635
|
|
|
588
636
|
for (let i = 0; i < data.realBarCount; i++) {
|
|
589
|
-
// AMA
|
|
590
|
-
|
|
637
|
+
// AMA slope % for the display panel (offsets computed in
|
|
638
|
+
// recalcWeights): the raw reference line from the unfiltered AMA
|
|
639
|
+
// input, the plotted series from the EMA-filtered input.
|
|
640
|
+
dynamicAmaSlopePctRaw[i] = i < amaReadyBar ? null : computeSlopeAtIndex(i, lb, data.ama3Prices);
|
|
641
|
+
dynamicAmaSlopePct[i] = i < amaReadyBar ? null : computeSlopeAtIndex(i, lb, currentAmaSource);
|
|
591
642
|
}
|
|
592
643
|
for (let i = data.realBarCount; i < data.dates.length; i++) {
|
|
593
644
|
dynamicAmaSlopePct[i] = null;
|
|
645
|
+
dynamicAmaSlopePctRaw[i] = null;
|
|
594
646
|
}
|
|
595
647
|
}
|
|
596
648
|
|
|
@@ -616,7 +668,7 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
|
|
|
616
668
|
// Per-bar offset pipeline — canonical implementation (computeDynamicWeightSeries
|
|
617
669
|
// injected above), shared with the live market adapter service.
|
|
618
670
|
const res = computeDynamicWeightSeries({
|
|
619
|
-
amaValues:
|
|
671
|
+
amaValues: currentAmaSource,
|
|
620
672
|
kalmanVelocityPct: currentKalmanVelocityPct,
|
|
621
673
|
kalmanDisplacementPct: data.kalmanDisplacementPct,
|
|
622
674
|
kalmanIsReady: data.kalmanIsReady,
|
|
@@ -700,7 +752,7 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
|
|
|
700
752
|
max: Number.isFinite(xs.max) ? xs.max : xMax,
|
|
701
753
|
} : null;
|
|
702
754
|
|
|
703
|
-
amaChart.setData([data.dates, dynamicAmaSlopePct], false);
|
|
755
|
+
amaChart.setData([data.dates, dynamicAmaSlopePctRaw, dynamicAmaSlopePct], false);
|
|
704
756
|
kalmanChart.setData([data.dates, currentKalmanVelocityPct, data.kalmanDisplacementPct], false);
|
|
705
757
|
outputChart.setData([data.dates, combinedOff, echoCombinedOff], false);
|
|
706
758
|
|
|
@@ -735,6 +787,11 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
|
|
|
735
787
|
if (sp == null) { spEl.textContent = '-'; spEl.style.color = '#8b949e'; }
|
|
736
788
|
else { spEl.textContent = (sp >= 0 ? '+' : '') + (sp * 10).toFixed(3) + '‰'; spEl.style.color = sp > 0.01 ? '#2ea043' : sp < -0.01 ? '#f85149' : '#8b949e'; }
|
|
737
789
|
|
|
790
|
+
const spRaw = dynamicAmaSlopePctRaw[idx];
|
|
791
|
+
const spRawEl = document.getElementById('l-ama-slope-raw');
|
|
792
|
+
if (spRaw == null) { spRawEl.textContent = '-'; spRawEl.style.color = '#8b949e'; }
|
|
793
|
+
else { spRawEl.textContent = (spRaw >= 0 ? '+' : '') + (spRaw * 10).toFixed(3) + '‰'; spRawEl.style.color = '#8b949e'; }
|
|
794
|
+
|
|
738
795
|
const vp = currentKalmanVelocityPct[idx];
|
|
739
796
|
const vpEl = document.getElementById('l-kal-vel');
|
|
740
797
|
if (vp == null) { vpEl.textContent = '-'; vpEl.style.color = '#8b949e'; }
|
|
@@ -958,6 +1015,7 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
|
|
|
958
1015
|
document.getElementById('clip-slider').value = currentClipPct;
|
|
959
1016
|
document.getElementById('nz-slider').value = Math.round(currentNz * 100);
|
|
960
1017
|
document.getElementById('lb-slider').value = lbValToSlider(currentLookbackBars);
|
|
1018
|
+
document.getElementById('ema-slider').value = currentAmaEmaSpan;
|
|
961
1019
|
|
|
962
1020
|
const priceEl = document.getElementById('price-panel');
|
|
963
1021
|
const amaEl = document.getElementById('ama-panel');
|
|
@@ -993,6 +1051,7 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
|
|
|
993
1051
|
scales: { x: { time: true }, p: { auto: true } },
|
|
994
1052
|
series: [
|
|
995
1053
|
{ label: 'Time' },
|
|
1054
|
+
{ label: 'Raw‰', stroke: '#8b949e', width: 1, dash: [3, 3], scale: 'p', points: { show: false } },
|
|
996
1055
|
{ label: 'Slope‰', stroke: '#f0a000', width: 2, scale: 'p', points: { show: false } },
|
|
997
1056
|
],
|
|
998
1057
|
axes: [
|
|
@@ -1002,7 +1061,7 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
|
|
|
1002
1061
|
],
|
|
1003
1062
|
cursor: cursorCfg,
|
|
1004
1063
|
hooks: { draw: [makePctFillHook(dynamicAmaSlopePct, 'p', 'rgba(46,160,67,0.20)', 'rgba(248,81,73,0.20)'), makeSignalBgHook('p')] }
|
|
1005
|
-
}, [data.dates, dynamicAmaSlopePct], document.getElementById('ama-chart'));
|
|
1064
|
+
}, [data.dates, dynamicAmaSlopePctRaw, dynamicAmaSlopePct], document.getElementById('ama-chart'));
|
|
1006
1065
|
|
|
1007
1066
|
kalmanChart = new uPlot({
|
|
1008
1067
|
width: kalmanEl.offsetWidth, height: kalmanEl.offsetHeight,
|
|
@@ -1164,6 +1223,12 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
|
|
|
1164
1223
|
onSliderChange();
|
|
1165
1224
|
});
|
|
1166
1225
|
|
|
1226
|
+
document.getElementById('ema-slider').addEventListener('input', (e) => {
|
|
1227
|
+
currentAmaEmaSpan = parseInt(e.target.value, 10);
|
|
1228
|
+
document.getElementById('ema-value').textContent = currentAmaEmaSpan;
|
|
1229
|
+
onSliderChange();
|
|
1230
|
+
});
|
|
1231
|
+
|
|
1167
1232
|
document.getElementById('regime-slider').addEventListener('input', (e) => {
|
|
1168
1233
|
currentRegimeSensitivity = parseInt(e.target.value, 10) / 100;
|
|
1169
1234
|
document.getElementById('regime-value').textContent = currentRegimeSensitivity.toFixed(2);
|
|
@@ -1259,6 +1324,11 @@ function applyParams(p, btn) {
|
|
|
1259
1324
|
document.getElementById('lb-slider').value = lbValToSlider(currentLookbackBars);
|
|
1260
1325
|
document.getElementById('lb-value').textContent = currentLookbackBars;
|
|
1261
1326
|
}
|
|
1327
|
+
if (p.amaEmaSpan != null) {
|
|
1328
|
+
currentAmaEmaSpan = Math.max(SR.amaEmaSpan[0], Math.min(SR.amaEmaSpan[1], Math.round(p.amaEmaSpan)));
|
|
1329
|
+
document.getElementById('ema-slider').value = currentAmaEmaSpan;
|
|
1330
|
+
document.getElementById('ema-value').textContent = currentAmaEmaSpan;
|
|
1331
|
+
}
|
|
1262
1332
|
recalcInputs();
|
|
1263
1333
|
recalcWeights();
|
|
1264
1334
|
refreshChartsPreservingZoom();
|
|
@@ -1285,6 +1355,7 @@ function applyParams(p, btn) {
|
|
|
1285
1355
|
regimeSensitivity: 'regime',
|
|
1286
1356
|
dispWeight: 'dw',
|
|
1287
1357
|
lookbackBars: 'lb',
|
|
1358
|
+
amaEmaSpan: 'ema',
|
|
1288
1359
|
};
|
|
1289
1360
|
document.getElementById('paste-confirm-vals').innerHTML = Object.entries(labels)
|
|
1290
1361
|
.filter(([k]) => p[k] != null)
|
|
@@ -1338,6 +1409,7 @@ function applyParams(p, btn) {
|
|
|
1338
1409
|
regimeSensitivity: +currentRegimeSensitivity.toFixed(2),
|
|
1339
1410
|
dispWeight: +currentDw.toFixed(2),
|
|
1340
1411
|
lookbackBars: currentLookbackBars,
|
|
1412
|
+
amaEmaSpan: currentAmaEmaSpan,
|
|
1341
1413
|
};
|
|
1342
1414
|
const json = JSON.stringify(params, null, 2);
|
|
1343
1415
|
localStorage.setItem(LS_KEY, json);
|