dexbot 1.4.19 → 1.4.20

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.
Files changed (102) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/analysis/ama_fitting/analyze_lambda_vs_slow.ts +2 -2
  3. package/analysis/ama_fitting/optimizer_high_resolution.ts +2 -1
  4. package/analysis/ama_fitting/package.json +1 -1
  5. package/analysis/analyze_derivatives.ts +4 -2
  6. package/analysis/analyze_dynamic_weight.ts +3 -1
  7. package/analysis/analyze_kalman.ts +3 -1
  8. package/analysis/analyze_regime.ts +3 -1
  9. package/analysis/analyze_regime_windows.ts +3 -1
  10. package/analysis/analyze_volatility.ts +2 -2
  11. package/analysis/bot_fitting/backtest_ama_sweep.ts +2 -1
  12. package/analysis/bot_fitting/backtest_bot_fitting.ts +17 -12
  13. package/analysis/chart_utils.ts +24 -0
  14. package/analysis/derivative_chart_generator.ts +3 -2
  15. package/analysis/trend_detection/DYNAMIC_WEIGHT_RESEARCH.md +1 -1
  16. package/analysis/trend_detection/dynamic_weight_chart_generator.ts +91 -55
  17. package/analysis/trend_detection/package.json +1 -1
  18. package/claw/examples/claw_profiles_example.ts +4 -1
  19. package/claw/modules/claw_catalog.ts +1 -1
  20. package/claw/modules/claw_skill_md.ts +6 -5
  21. package/claw/modules/dexbot_profiles.ts +3 -1
  22. package/claw/modules/launcher_paths.ts +4 -2
  23. package/claw/package.json +1 -1
  24. package/claw/runtimes/openclaw-plugin/openclaw.plugin.json +1 -1
  25. package/claw/runtimes/openclaw-plugin/package.json +1 -1
  26. package/claw/tests/test_claw_mcp_transport.ts +2 -2
  27. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js +2 -2
  28. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js.map +1 -1
  29. package/dist/analysis/ama_fitting/optimizer_high_resolution.d.ts.map +1 -1
  30. package/dist/analysis/ama_fitting/optimizer_high_resolution.js +2 -1
  31. package/dist/analysis/ama_fitting/optimizer_high_resolution.js.map +1 -1
  32. package/dist/analysis/analyze_derivatives.d.ts.map +1 -1
  33. package/dist/analysis/analyze_derivatives.js +4 -2
  34. package/dist/analysis/analyze_derivatives.js.map +1 -1
  35. package/dist/analysis/analyze_dynamic_weight.js +3 -1
  36. package/dist/analysis/analyze_dynamic_weight.js.map +1 -1
  37. package/dist/analysis/analyze_kalman.js +3 -1
  38. package/dist/analysis/analyze_kalman.js.map +1 -1
  39. package/dist/analysis/analyze_regime.js +3 -1
  40. package/dist/analysis/analyze_regime.js.map +1 -1
  41. package/dist/analysis/analyze_regime_windows.js +3 -1
  42. package/dist/analysis/analyze_regime_windows.js.map +1 -1
  43. package/dist/analysis/analyze_volatility.js +2 -2
  44. package/dist/analysis/analyze_volatility.js.map +1 -1
  45. package/dist/analysis/bot_fitting/backtest_ama_sweep.d.ts.map +1 -1
  46. package/dist/analysis/bot_fitting/backtest_ama_sweep.js +2 -1
  47. package/dist/analysis/bot_fitting/backtest_ama_sweep.js.map +1 -1
  48. package/dist/analysis/bot_fitting/backtest_bot_fitting.js +18 -13
  49. package/dist/analysis/bot_fitting/backtest_bot_fitting.js.map +1 -1
  50. package/dist/analysis/chart_utils.d.ts +0 -3
  51. package/dist/analysis/chart_utils.d.ts.map +1 -1
  52. package/dist/analysis/chart_utils.js +25 -0
  53. package/dist/analysis/chart_utils.js.map +1 -1
  54. package/dist/analysis/derivative_chart_generator.d.ts.map +1 -1
  55. package/dist/analysis/derivative_chart_generator.js +3 -2
  56. package/dist/analysis/derivative_chart_generator.js.map +1 -1
  57. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts.map +1 -1
  58. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js +82 -50
  59. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js.map +1 -1
  60. package/dist/dexbot.d.ts.map +1 -1
  61. package/dist/dexbot.js +2 -3
  62. package/dist/dexbot.js.map +1 -1
  63. package/dist/market_adapter/core/market_adapter_service.d.ts.map +1 -1
  64. package/dist/market_adapter/core/market_adapter_service.js +8 -3
  65. package/dist/market_adapter/core/market_adapter_service.js.map +1 -1
  66. package/dist/modules/config.d.ts +2 -0
  67. package/dist/modules/config.d.ts.map +1 -1
  68. package/dist/modules/config.js +2 -0
  69. package/dist/modules/config.js.map +1 -1
  70. package/dist/modules/constants.js +1 -1
  71. package/dist/modules/dexbot_cow_runtime.d.ts +0 -7
  72. package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
  73. package/dist/modules/dexbot_cow_runtime.js +95 -0
  74. package/dist/modules/dexbot_cow_runtime.js.map +1 -1
  75. package/dist/modules/dexbot_state_recovery.d.ts.map +1 -1
  76. package/dist/modules/dexbot_state_recovery.js +20 -1
  77. package/dist/modules/dexbot_state_recovery.js.map +1 -1
  78. package/dist/modules/order/grid.d.ts.map +1 -1
  79. package/dist/modules/order/grid.js +146 -32
  80. package/dist/modules/order/grid.js.map +1 -1
  81. package/dist/modules/order/manager.d.ts +13 -0
  82. package/dist/modules/order/manager.d.ts.map +1 -1
  83. package/dist/modules/order/manager.js +75 -2
  84. package/dist/modules/order/manager.js.map +1 -1
  85. package/dist/modules/order/utils/math.d.ts +74 -1
  86. package/dist/modules/order/utils/math.d.ts.map +1 -1
  87. package/dist/modules/order/utils/math.js +120 -2
  88. package/dist/modules/order/utils/math.js.map +1 -1
  89. package/dist/modules/paths.d.ts +26 -1
  90. package/dist/modules/paths.d.ts.map +1 -1
  91. package/dist/modules/paths.js +39 -6
  92. package/dist/modules/paths.js.map +1 -1
  93. package/dist/scripts/analyze-git.js +2 -1
  94. package/dist/scripts/analyze-git.js.map +1 -1
  95. package/dist/scripts/analyze-orders.js +2 -2
  96. package/dist/scripts/analyze-orders.js.map +1 -1
  97. package/docs/DEXBOT_COMPARISON.md +3 -3
  98. package/docs/EVOLUTION.md +8 -7
  99. package/docs/FUND_MOVEMENT_AND_ACCOUNTING.md +1 -1
  100. package/docs/README.md +1 -1
  101. package/package.json +2 -3
  102. package/scripts/lib/dexbot-paths.sh +20 -11
@@ -24,6 +24,39 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
24
24
  const results = data.allResults || [];
25
25
  if (results.length === 0)
26
26
  throw new Error('No analysis results in input');
27
+ // Slider ranges — single source of truth for HTML attrs, tooltips,
28
+ // payload transport, and client paste-clamp bounds.
29
+ const LB_MIN = 1, LB_MAX = 32;
30
+ const GAIN_MIN = 0.5, GAIN_MAX = 2.0;
31
+ const AMA_MS_MIN = 0.04, AMA_MS_MAX = 0.12;
32
+ const KAL_MS_MIN = 0.5, KAL_MS_MAX = 1.5;
33
+ const CLIP_PCT_MAX = 20;
34
+ const TH_MIN = 0, TH_MAX = 0.5;
35
+ const KF_MIN = 0, KF_MAX = 200;
36
+ const KFD_MIN = 1.0, KFD_MAX = 3.0;
37
+ const DSP_MIN = 0.25, DSP_MAX = 4.0;
38
+ const KDT_MIN = 0.25, KDT_MAX = 3.0;
39
+ const KFS_MIN = 20, KFS_MAX = 200;
40
+ const CF_MIN = 0, CF_MAX = 5;
41
+ const REGI_MIN = 0, REGI_MAX = 2;
42
+ const SLIDER_RANGES = {
43
+ alpha: [0, 1],
44
+ dispWeight: [0, 1],
45
+ neutralZonePct: [0, 1],
46
+ lookbackBars: [LB_MIN, LB_MAX],
47
+ amaMaxSlopePct: [AMA_MS_MIN, AMA_MS_MAX],
48
+ kalmanMaxSlopePct: [KAL_MS_MIN, KAL_MS_MAX],
49
+ clipPct: [0, CLIP_PCT_MAX],
50
+ minOutputThreshold: [TH_MIN, TH_MAX],
51
+ kalmanSmoothPct: [KF_MIN, KF_MAX],
52
+ kalmanDispScaleMult: [KFD_MIN, KFD_MAX],
53
+ dispScaleMinPct: [DSP_MIN, DSP_MAX],
54
+ kalmanDispThresholdMult: [KDT_MIN, KDT_MAX],
55
+ kalmanSmoothSpanPct: [KFS_MIN, KFS_MAX],
56
+ signalConfirmBars: [CF_MIN, CF_MAX],
57
+ gain: [GAIN_MIN, GAIN_MAX],
58
+ regimeSensitivity: [REGI_MIN, REGI_MAX],
59
+ };
27
60
  const ma = data.marketAdapter || {};
28
61
  const amaWeightConfig = data.amaWeightConfig || {};
29
62
  const defaultAlpha = data.alpha ?? ma.alpha ?? MARKET_ADAPTER.DYNAMIC_WEIGHT_ALPHA;
@@ -39,27 +72,23 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
39
72
  ?? MARKET_ADAPTER.DYNAMIC_WEIGHT_KALMAN_MAX_SLOPE_PCT;
40
73
  const defaultClipPct = data.clipPct ?? ma.clipPercentile ?? MARKET_ADAPTER.DYNAMIC_WEIGHT_CLIP_PERCENTILE;
41
74
  const defaultMinOutputThresholdRaw = data.minOutputThreshold ?? ma.minOutputThreshold ?? MARKET_ADAPTER.DYNAMIC_WEIGHT_ASYMMETRIC_TREND_THRESHOLD;
42
- const defaultMinOutputThreshold = Math.min(Math.max(defaultMinOutputThresholdRaw, 0), 0.5);
75
+ const defaultMinOutputThreshold = Math.min(Math.max(defaultMinOutputThresholdRaw, TH_MIN), TH_MAX);
43
76
  const defaultOutputClamp = data.outputClamp ?? ma.outputClamp ?? MARKET_ADAPTER.DYNAMIC_WEIGHT_ASYMMETRIC_OFFSET_CLAMP;
44
77
  const lookbackBarsRaw = amaWeightConfig.lookbackBars ?? ma.amaLookbackBars ?? MARKET_ADAPTER.DYNAMIC_WEIGHT_AMA_LOOKBACK_BARS;
45
- const lookbackBars = Math.ceil(Math.max(1, Math.min(32, Number.isFinite(lookbackBarsRaw) ? lookbackBarsRaw : 1)));
46
- // Log mapping for lookback slider (1 to 32 bars)
47
- const LB_LOG_MIN_N = Math.log(1);
48
- const LB_LOG_MAX_N = Math.log(32);
49
- const clampedLb = Math.min(Math.max(lookbackBars, 1), 32);
78
+ const lookbackBars = Math.ceil(Math.max(LB_MIN, Math.min(LB_MAX, Number.isFinite(lookbackBarsRaw) ? lookbackBarsRaw : LB_MIN)));
79
+ // Log mapping for lookback slider
80
+ const LB_LOG_MIN_N = Math.log(LB_MIN);
81
+ const LB_LOG_MAX_N = Math.log(LB_MAX);
82
+ const clampedLb = Math.min(Math.max(lookbackBars, LB_MIN), LB_MAX);
50
83
  const lbInitSlider = Math.round((Math.log(clampedLb) - LB_LOG_MIN_N) / (LB_LOG_MAX_N - LB_LOG_MIN_N) * 1000);
51
84
  // Log mapping for gain slider
52
- const GAIN_LOG_MIN_N = Math.log(0.5);
53
- const GAIN_LOG_MAX_N = Math.log(2.0);
54
- const clampedGain = Math.min(Math.max(defaultGain, 0.5), 2.0);
85
+ const GAIN_LOG_MIN_N = Math.log(GAIN_MIN);
86
+ const GAIN_LOG_MAX_N = Math.log(GAIN_MAX);
87
+ const clampedGain = Math.min(Math.max(defaultGain, GAIN_MIN), GAIN_MAX);
55
88
  const gainInitSlider = Math.round((Math.log(clampedGain) - GAIN_LOG_MIN_N) / (GAIN_LOG_MAX_N - GAIN_LOG_MIN_N) * 1000);
56
89
  // Log mapping for slope saturation sliders
57
- const AMA_MS_MIN = 0.04;
58
- const AMA_MS_MAX = 0.12;
59
90
  const AMA_MS_LOG_MIN_N = Math.log(AMA_MS_MIN);
60
91
  const AMA_MS_LOG_MAX_N = Math.log(AMA_MS_MAX);
61
- const KAL_MS_MIN = 0.15;
62
- const KAL_MS_MAX = 1.5;
63
92
  const KAL_MS_LOG_MIN_N = Math.log(KAL_MS_MIN);
64
93
  const KAL_MS_LOG_MAX_N = Math.log(KAL_MS_MAX);
65
94
  const clampedAmaMs = Math.min(Math.max(defaultAmaMaxSlopePct, AMA_MS_MIN), AMA_MS_MAX);
@@ -86,7 +115,7 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
86
115
  const amaSlopePct = results.map((r) => r.amaSlopePct ?? null);
87
116
  const kalmanVelocityPctRaw = results.map((r) => r.velocityRawPct ?? r.velocityPct ?? null);
88
117
  const kalmanDisplacementPct = results.map((r) => r.displacementRawPct ?? r.displacementPct ?? null);
89
- const kalmanVelocityPct = buildKalmanVelocitySeries(results, {
118
+ const kalmanVelocityPct = buildKalmanVelocitySeries(results.map((r) => ({ velocityPct: r.velocityRawPct ?? r.velocityPct ?? null, displacementPct: r.displacementRawPct ?? r.displacementPct ?? null })), {
90
119
  kalmanSmoothPct: defaultKalmanSmoothPct,
91
120
  kalmanDispScaleMult: defaultKalmanDispScaleMult,
92
121
  kalmanDispThresholdMult: defaultKalmanDispThresholdMult,
@@ -303,24 +332,24 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
303
332
 
304
333
  <div class="group-sep"></div>
305
334
  <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>
306
- <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 (1-32)"><span class="val" id="lb-value">${lookbackBars}</span></div>
307
- <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 (0.04-0.12)"><span class="val" id="ama-ms-value">${defaultAmaMaxSlopePct.toFixed(4)}</span></div>
308
- <div class="ctrl clip"><label for="clip-slider">clip%</label><input type="range" id="clip-slider" min="0" max="55" value="${Math.min(defaultClipPct, 55)}" title="Outlier Clip %"><span class="val" id="clip-value">${Math.min(defaultClipPct, 55)}%</span></div>
335
+ <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>
336
+ <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>
337
+ <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>
309
338
 
310
339
  <div class="group-sep"></div>
311
- <div class="ctrl th"><label for="th-slider">th%</label><input type="range" id="th-slider" min="0" max="50" value="${Math.round(defaultMinOutputThreshold * 100)}" title="Minimum pre-gain blended output required before the signal is allowed through (0.00-0.50)"><span class="val" id="th-value">${defaultMinOutputThreshold.toFixed(2)}</span></div>
340
+ <div class="ctrl th"><label for="th-slider">th%</label><input type="range" id="th-slider" min="0" max="${TH_MAX * 100}" value="${Math.round(defaultMinOutputThreshold * 100)}" title="Minimum pre-gain blended output required before the signal is allowed through (${TH_MIN.toFixed(2)}-${TH_MAX.toFixed(2)})"><span class="val" id="th-value">${defaultMinOutputThreshold.toFixed(2)}</span></div>
312
341
 
313
342
  <div class="group-sep"></div>
314
343
  <div class="row-break"></div>
315
- <div class="ctrl ms-kal"><label for="kal-ms-slider">kalS%</label><input type="range" id="kal-ms-slider" min="0" max="1000" value="${kalMsInitSlider}" title="Kalman Max Slope % (0.15-1.5)"><span class="val" id="kal-ms-value">${clampedKalMs.toFixed(2)}</span></div>
316
- <div class="ctrl kf"><label for="kf-slider">kf</label><input type="range" id="kf-slider" min="0" max="200" value="${defaultKalmanSmoothPct}" title="Kalman smoothing blend (0 = raw, 100 = current adaptive smoothing, 200 = stronger smoothing)"><span class="val" id="kf-value">${defaultKalmanSmoothPct}%</span></div>
317
- <div class="ctrl kfd"><label for="kfd-slider">kfd</label><input type="range" id="kfd-slider" min="100" max="300" value="${Math.round(defaultKalmanDispScaleMult * 100)}" title="Kalman displacement scale multiplier (1x to 3x)"><span class="val" id="kfd-value">${defaultKalmanDispScaleMult.toFixed(2)}x</span></div>
318
- <div class="ctrl dsp"><label for="dsp-slider">dsp</label><input type="range" id="dsp-slider" min="25" max="400" value="${Math.round(defaultDispScaleMinPct * 100)}" title="Minimum displacement scale floor (0.25x to 4.0x)"><span class="val" id="dsp-value">${defaultDispScaleMinPct.toFixed(2)}x</span></div>
319
- <div class="ctrl kdt"><label for="kdt-slider">kdt</label><input type="range" id="kdt-slider" min="25" max="300" value="${Math.round(defaultKalmanDispThresholdMult * 100)}" title="Kalman displacement threshold multiplier (0.25x to 3x)"><span class="val" id="kdt-value">${defaultKalmanDispThresholdMult.toFixed(2)}x</span></div>
320
- <div class="ctrl kfs"><label for="kfs-slider">kfs</label><input type="range" id="kfs-slider" min="20" max="200" value="${defaultKalmanSmoothSpanPct}" title="Adaptive EMA span ratio (20% span / 200% span; floor fixed at 0)"><span class="val" id="kfs-value">${defaultKalmanSmoothSpanPct}%</span></div>
321
- <div class="ctrl cf"><label for="cf-slider">cf</label><input type="range" id="cf-slider" min="0" max="5" value="${defaultSignalConfirmBars}" title="Signal confirmation bars (0 disables latching; otherwise flips after N opposite echo bars)"><span class="val" id="cf-value">${defaultSignalConfirmBars}</span></div>
322
- <div class="ctrl off"><label for="gain-slider">gain</label><input type="range" id="gain-slider" min="0" max="1000" value="${gainInitSlider}" title="Output Gain (0.5-2.0)"><span class="val" id="gain-value">${clampedGain.toFixed(3)}</span></div>
323
- <div class="ctrl regime"><label for="regime-slider">regi</label><input type="range" id="regime-slider" min="0" max="200" value="${regimeInitSlider}" title="Regime Sensitivity"><span class="val" id="regime-value">${defaultRegimeSensitivity.toFixed(2)}</span></div>
344
+ <div class="ctrl ms-kal"><label for="kal-ms-slider">kalS%</label><input type="range" id="kal-ms-slider" min="0" max="1000" value="${kalMsInitSlider}" title="Kalman Max Slope % (${KAL_MS_MIN}-${KAL_MS_MAX})"><span class="val" id="kal-ms-value">${clampedKalMs.toFixed(2)}</span></div>
345
+ <div class="ctrl kf"><label for="kf-slider">kf</label><input type="range" id="kf-slider" min="${KF_MIN}" max="${KF_MAX}" value="${defaultKalmanSmoothPct}" title="Kalman smoothing blend (${KF_MIN} = raw, 100 = current adaptive smoothing, ${KF_MAX} = stronger smoothing)"><span class="val" id="kf-value">${defaultKalmanSmoothPct}%</span></div>
346
+ <div class="ctrl kfd"><label for="kfd-slider">kfd</label><input type="range" id="kfd-slider" min="${KFD_MIN * 100}" max="${KFD_MAX * 100}" value="${Math.round(defaultKalmanDispScaleMult * 100)}" title="Kalman displacement scale multiplier (${KFD_MIN}x to ${KFD_MAX}x)"><span class="val" id="kfd-value">${defaultKalmanDispScaleMult.toFixed(2)}x</span></div>
347
+ <div class="ctrl dsp"><label for="dsp-slider">dsp</label><input type="range" id="dsp-slider" min="${DSP_MIN * 100}" max="${DSP_MAX * 100}" value="${Math.round(defaultDispScaleMinPct * 100)}" title="Minimum displacement scale floor (${DSP_MIN}x to ${DSP_MAX.toFixed(1)}x)"><span class="val" id="dsp-value">${defaultDispScaleMinPct.toFixed(2)}x</span></div>
348
+ <div class="ctrl kdt"><label for="kdt-slider">kdt</label><input type="range" id="kdt-slider" min="${KDT_MIN * 100}" max="${KDT_MAX * 100}" value="${Math.round(defaultKalmanDispThresholdMult * 100)}" title="Kalman displacement threshold multiplier (${KDT_MIN}x to ${KDT_MAX}x)"><span class="val" id="kdt-value">${defaultKalmanDispThresholdMult.toFixed(2)}x</span></div>
349
+ <div class="ctrl kfs"><label for="kfs-slider">kfs</label><input type="range" id="kfs-slider" min="${KFS_MIN}" max="${KFS_MAX}" value="${defaultKalmanSmoothSpanPct}" title="Adaptive EMA span ratio (${KFS_MIN}% span / ${KFS_MAX}% span; floor fixed at 0)"><span class="val" id="kfs-value">${defaultKalmanSmoothSpanPct}%</span></div>
350
+ <div class="ctrl cf"><label for="cf-slider">cf</label><input type="range" id="cf-slider" min="${CF_MIN}" max="${CF_MAX}" value="${defaultSignalConfirmBars}" title="Signal confirmation bars (0 disables latching; otherwise flips after N opposite echo bars)"><span class="val" id="cf-value">${defaultSignalConfirmBars}</span></div>
351
+ <div class="ctrl off"><label for="gain-slider">gain</label><input type="range" id="gain-slider" min="0" max="1000" value="${gainInitSlider}" title="Output Gain (${GAIN_MIN.toFixed(1)}-${GAIN_MAX.toFixed(1)})"><span class="val" id="gain-value">${clampedGain.toFixed(3)}</span></div>
352
+ <div class="ctrl regime"><label for="regime-slider">regi</label><input type="range" id="regime-slider" min="0" max="${REGI_MAX * 100}" value="${regimeInitSlider}" title="Regime Sensitivity"><span class="val" id="regime-value">${defaultRegimeSensitivity.toFixed(2)}</span></div>
324
353
  <button class="copy-btn" id="copy-params-btn">copy</button>
325
354
  <button class="paste-btn" id="paste-params-btn">paste</button>
326
355
  </div>
@@ -337,7 +366,7 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
337
366
  </div>
338
367
  </div>
339
368
 
340
- <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, 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>
369
+ <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>
341
370
 
342
371
  <script>
343
372
  const data = JSON.parse(document.getElementById('payload').textContent);
@@ -348,6 +377,7 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
348
377
  const Y_AXIS_SIZE = ${Y_AXIS_SIZE};
349
378
  const ma = data.marketAdapter || {};
350
379
  const amaWeightConfig = data.amaWeightConfig || {};
380
+ const SR = data.sliderRanges ?? ${serializeJsonForScript(SLIDER_RANGES)};
351
381
 
352
382
  const ABSOLUTE_THRESHOLD = data.absoluteThreshold ?? ${JSON.stringify(defaultAbsoluteThreshold)};
353
383
  const WEIGHT_MIN = data.weightMin ?? ${JSON.stringify(MARKET_ADAPTER.DYNAMIC_WEIGHT_MIN_WEIGHT)};
@@ -359,7 +389,7 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
359
389
 
360
390
  let currentAlpha = data.alpha ?? ${JSON.stringify(defaultAlpha)};
361
391
  let currentGain = data.gain ?? ${JSON.stringify(defaultGain)};
362
- let currentMinOutputThreshold = Math.min(Math.max(data.minOutputThreshold ?? ${JSON.stringify(defaultMinOutputThreshold)}, 0), 0.5);
392
+ let currentMinOutputThreshold = Math.min(Math.max(data.minOutputThreshold ?? ${JSON.stringify(defaultMinOutputThreshold)}, SR.minOutputThreshold[0]), SR.minOutputThreshold[1]);
363
393
  let currentKalmanSmoothPct = data.kalmanSmoothPct ?? ${JSON.stringify(defaultKalmanSmoothPct)};
364
394
  let currentKalmanDispScaleMult = data.kalmanDispScaleMult ?? ${JSON.stringify(defaultKalmanDispScaleMult)};
365
395
  let currentKalmanDispThresholdMult = data.kalmanDispThresholdMult ?? ${JSON.stringify(defaultKalmanDispThresholdMult)};
@@ -381,7 +411,7 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
381
411
  const LB_LOG_MIN = data.lbLogMin;
382
412
  const LB_LOG_MAX = data.lbLogMax;
383
413
  const lbSliderToVal = (pos) => Math.round(Math.exp(LB_LOG_MIN + (pos / 1000) * (LB_LOG_MAX - LB_LOG_MIN)));
384
- const lbValToSlider = (val) => Math.round((Math.log(Math.max(1, val)) - LB_LOG_MIN) / (LB_LOG_MAX - LB_LOG_MIN) * 1000);
414
+ const lbValToSlider = (val) => Math.round((Math.log(Math.max(SR.lookbackBars[0], val)) - LB_LOG_MIN) / (LB_LOG_MAX - LB_LOG_MIN) * 1000);
385
415
 
386
416
  const GAIN_LOG_MIN = data.gainLogMin;
387
417
  const GAIN_LOG_MAX = data.gainLogMax;
@@ -468,7 +498,7 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
468
498
  }
469
499
 
470
500
  function recalcLatchedSignals() {
471
- const confirmBars = Math.max(0, Math.min(5, currentSignalConfirmBars));
501
+ const confirmBars = Math.max(SR.signalConfirmBars[0], Math.min(SR.signalConfirmBars[1], currentSignalConfirmBars));
472
502
  if (confirmBars === 0) {
473
503
  for (let i = 0; i < data.dates.length; i++) {
474
504
  currentLatchedSignals[i] = data.signals[i] || null;
@@ -546,8 +576,10 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
546
576
  if (currentClipPct > 0) {
547
577
  const slopes = [];
548
578
  for (let i = amaReadyBar; i < data.realBarCount; i++) {
549
- const s = computeSlopeAtIndex(i, lb);
550
- if (s !== 0) slopes.push(Math.abs(s));
579
+ // Keep every finite slope (zeros included) — matches the live
580
+ // market adapter service clip pool exactly.
581
+ const s = computeAverageAmaSlopePct(data.ama3Prices[i], data.ama3Prices[i - lb], lb);
582
+ if (Number.isFinite(s)) slopes.push(Math.abs(s));
551
583
  }
552
584
  if (slopes.length > 0) {
553
585
  slopes.sort((a, b) => a - b);
@@ -1065,7 +1097,7 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
1065
1097
  });
1066
1098
 
1067
1099
  document.getElementById('th-slider').addEventListener('input', (e) => {
1068
- currentMinOutputThreshold = Math.min(Math.max(parseInt(e.target.value, 10) / 100, 0), 0.5);
1100
+ currentMinOutputThreshold = Math.min(Math.max(parseInt(e.target.value, 10) / 100, SR.minOutputThreshold[0]), SR.minOutputThreshold[1]);
1069
1101
  document.getElementById('th-value').textContent = currentMinOutputThreshold.toFixed(2);
1070
1102
  recalcWeights();
1071
1103
  refreshChartsPreservingZoom();
@@ -1143,67 +1175,67 @@ function generateHTML(data, title = 'Dynamic Weight Research') {
1143
1175
  function applyParams(p, btn) {
1144
1176
  if (typeof p !== 'object' || p === null) throw new Error('not an object');
1145
1177
  if (p.alpha != null) {
1146
- currentAlpha = Math.max(0, Math.min(1, p.alpha));
1178
+ currentAlpha = Math.max(SR.alpha[0], Math.min(SR.alpha[1], p.alpha));
1147
1179
  document.getElementById('alpha-slider').value = Math.round(currentAlpha * 100);
1148
1180
  document.getElementById('alpha-value').textContent = currentAlpha.toFixed(2);
1149
1181
  }
1150
1182
  if (p.dispWeight != null) {
1151
- currentDw = Math.max(0, Math.min(1, p.dispWeight));
1183
+ currentDw = Math.max(SR.dispWeight[0], Math.min(SR.dispWeight[1], p.dispWeight));
1152
1184
  document.getElementById('dw-slider').value = Math.round(currentDw * 100);
1153
1185
  document.getElementById('dw-value').textContent = currentDw.toFixed(2);
1154
1186
  }
1155
1187
  if (p.amaMaxSlopePct != null) {
1156
- currentAmaMaxSlopePct = Math.max(0.01, Math.min(0.5, p.amaMaxSlopePct));
1188
+ currentAmaMaxSlopePct = Math.max(SR.amaMaxSlopePct[0], Math.min(SR.amaMaxSlopePct[1], p.amaMaxSlopePct));
1157
1189
  document.getElementById('ama-ms-slider').value = Math.round((Math.log(currentAmaMaxSlopePct) - AMA_MS_LOG_MIN) / (AMA_MS_LOG_MAX - AMA_MS_LOG_MIN) * 1000);
1158
1190
  document.getElementById('ama-ms-value').textContent = currentAmaMaxSlopePct.toFixed(4);
1159
1191
  }
1160
1192
  if (p.kalmanMaxSlopePct != null) {
1161
- currentKalmanMaxSlopePct = Math.max(0.15, Math.min(1.5, p.kalmanMaxSlopePct));
1193
+ currentKalmanMaxSlopePct = Math.max(SR.kalmanMaxSlopePct[0], Math.min(SR.kalmanMaxSlopePct[1], p.kalmanMaxSlopePct));
1162
1194
  document.getElementById('kal-ms-slider').value = Math.round((Math.log(currentKalmanMaxSlopePct) - KAL_MS_LOG_MIN) / (KAL_MS_LOG_MAX - KAL_MS_LOG_MIN) * 1000);
1163
1195
  document.getElementById('kal-ms-value').textContent = currentKalmanMaxSlopePct.toFixed(2);
1164
1196
  }
1165
1197
  if (p.gain != null) {
1166
- currentGain = Math.max(0.5, Math.min(2.0, p.gain));
1198
+ currentGain = Math.max(SR.gain[0], Math.min(SR.gain[1], p.gain));
1167
1199
  document.getElementById('gain-slider').value = gainValToSlider(currentGain);
1168
1200
  document.getElementById('gain-value').textContent = currentGain.toFixed(3);
1169
1201
  }
1170
1202
  if (p.minOutputThreshold != null) {
1171
- currentMinOutputThreshold = Math.max(0, Math.min(0.5, p.minOutputThreshold));
1203
+ currentMinOutputThreshold = Math.max(SR.minOutputThreshold[0], Math.min(SR.minOutputThreshold[1], p.minOutputThreshold));
1172
1204
  document.getElementById('th-slider').value = Math.round(currentMinOutputThreshold * 100);
1173
1205
  document.getElementById('th-value').textContent = currentMinOutputThreshold.toFixed(2);
1174
1206
  }
1175
1207
  if (p.kalmanSmoothPct != null) {
1176
- currentKalmanSmoothPct = Math.max(0, Math.min(200, Math.round(p.kalmanSmoothPct)));
1208
+ currentKalmanSmoothPct = Math.max(SR.kalmanSmoothPct[0], Math.min(SR.kalmanSmoothPct[1], Math.round(p.kalmanSmoothPct)));
1177
1209
  document.getElementById('kf-slider').value = currentKalmanSmoothPct;
1178
1210
  document.getElementById('kf-value').textContent = currentKalmanSmoothPct + '%';
1179
1211
  }
1180
1212
  if (p.kalmanDispScaleMult != null) {
1181
- currentKalmanDispScaleMult = Math.max(1.0, Math.min(3.0, p.kalmanDispScaleMult));
1213
+ currentKalmanDispScaleMult = Math.max(SR.kalmanDispScaleMult[0], Math.min(SR.kalmanDispScaleMult[1], p.kalmanDispScaleMult));
1182
1214
  document.getElementById('kfd-slider').value = Math.round(currentKalmanDispScaleMult * 100);
1183
1215
  document.getElementById('kfd-value').textContent = currentKalmanDispScaleMult.toFixed(2) + 'x';
1184
1216
  }
1185
1217
  if (p.dispScaleMinPct != null) {
1186
- currentDispScaleMinPct = Math.max(0.25, Math.min(4.0, p.dispScaleMinPct));
1218
+ currentDispScaleMinPct = Math.max(SR.dispScaleMinPct[0], Math.min(SR.dispScaleMinPct[1], p.dispScaleMinPct));
1187
1219
  document.getElementById('dsp-slider').value = Math.round(currentDispScaleMinPct * 100);
1188
1220
  document.getElementById('dsp-value').textContent = currentDispScaleMinPct.toFixed(2) + 'x';
1189
1221
  }
1190
1222
  if (p.kalmanDispThresholdMult != null) {
1191
- currentKalmanDispThresholdMult = Math.max(0.25, Math.min(3.0, p.kalmanDispThresholdMult));
1223
+ currentKalmanDispThresholdMult = Math.max(SR.kalmanDispThresholdMult[0], Math.min(SR.kalmanDispThresholdMult[1], p.kalmanDispThresholdMult));
1192
1224
  document.getElementById('kdt-slider').value = Math.round(currentKalmanDispThresholdMult * 100);
1193
1225
  document.getElementById('kdt-value').textContent = currentKalmanDispThresholdMult.toFixed(2) + 'x';
1194
1226
  }
1195
1227
  if (p.kalmanSmoothSpanPct != null) {
1196
- currentKalmanSmoothSpanPct = Math.max(20, Math.min(200, Math.round(p.kalmanSmoothSpanPct)));
1228
+ currentKalmanSmoothSpanPct = Math.max(SR.kalmanSmoothSpanPct[0], Math.min(SR.kalmanSmoothSpanPct[1], Math.round(p.kalmanSmoothSpanPct)));
1197
1229
  document.getElementById('kfs-slider').value = currentKalmanSmoothSpanPct;
1198
1230
  document.getElementById('kfs-value').textContent = currentKalmanSmoothSpanPct + '%';
1199
1231
  }
1200
1232
  if (p.signalConfirmBars != null) {
1201
- currentSignalConfirmBars = Math.max(0, Math.min(5, Math.round(p.signalConfirmBars)));
1233
+ currentSignalConfirmBars = Math.max(SR.signalConfirmBars[0], Math.min(SR.signalConfirmBars[1], Math.round(p.signalConfirmBars)));
1202
1234
  document.getElementById('cf-slider').value = currentSignalConfirmBars;
1203
1235
  document.getElementById('cf-value').textContent = currentSignalConfirmBars;
1204
1236
  }
1205
1237
  if (p.clipPct != null) {
1206
- currentClipPct = Math.max(0, Math.min(55, Math.round(p.clipPct)));
1238
+ currentClipPct = Math.max(SR.clipPct[0], Math.min(SR.clipPct[1], Math.round(p.clipPct)));
1207
1239
  document.getElementById('clip-slider').value = currentClipPct;
1208
1240
  document.getElementById('clip-value').textContent = currentClipPct + '%';
1209
1241
  if (currentClipPct === 0) {
@@ -1215,17 +1247,17 @@ function applyParams(p, btn) {
1215
1247
  }
1216
1248
  }
1217
1249
  if (p.neutralZonePct != null) {
1218
- currentNz = Math.max(0, Math.min(1, p.neutralZonePct));
1250
+ currentNz = Math.max(SR.neutralZonePct[0], Math.min(SR.neutralZonePct[1], p.neutralZonePct));
1219
1251
  document.getElementById('nz-slider').value = Math.round(currentNz * 100);
1220
1252
  document.getElementById('nz-value').textContent = currentNz.toFixed(2);
1221
1253
  }
1222
1254
  if (p.regimeSensitivity != null) {
1223
- currentRegimeSensitivity = Math.max(0, Math.min(2, p.regimeSensitivity));
1255
+ currentRegimeSensitivity = Math.max(SR.regimeSensitivity[0], Math.min(SR.regimeSensitivity[1], p.regimeSensitivity));
1224
1256
  document.getElementById('regime-slider').value = Math.round(currentRegimeSensitivity * 100);
1225
1257
  document.getElementById('regime-value').textContent = currentRegimeSensitivity.toFixed(2);
1226
1258
  }
1227
1259
  if (p.lookbackBars != null) {
1228
- currentLookbackBars = Math.max(1, Math.min(32, Math.round(p.lookbackBars)));
1260
+ currentLookbackBars = Math.max(SR.lookbackBars[0], Math.min(SR.lookbackBars[1], Math.round(p.lookbackBars)));
1229
1261
  document.getElementById('lb-slider').value = lbValToSlider(currentLookbackBars);
1230
1262
  document.getElementById('lb-value').textContent = currentLookbackBars;
1231
1263
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic_weight_chart_generator.js","sourceRoot":"","sources":["../../../analysis/trend_detection/dynamic_weight_chart_generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dynamic_weight_chart_generator.js","sourceRoot":"","sources":["../../../analysis/trend_detection/dynamic_weight_chart_generator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dexbot.d.ts","sourceRoot":"","sources":["../dexbot.ts"],"names":[],"mappings":";AAk2CA,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"dexbot.d.ts","sourceRoot":"","sources":["../dexbot.ts"],"names":[],"mappings":";AAi2CA,OAAO,EAAE,CAAC"}
package/dist/dexbot.js CHANGED
@@ -138,7 +138,7 @@ async function _resolveCollateralAssetId(ref) {
138
138
  const { setupGracefulShutdown, registerCleanup, unregisterCleanup } = require('./modules/graceful_shutdown');
139
139
  const { collectValidationIssues, loadSettingsFile, normalizeBotEntries, resolveRawBotEntries, saveSettingsFile, } = require('./modules/bot_settings');
140
140
  const { buildRuntimeScriptArgs } = require('./modules/launcher/runtime_entry');
141
- const { PATHS, getRecalculateTriggerFile } = require('./modules/paths');
141
+ const { PATHS, HOME_PROFILES_DIR, getRecalculateTriggerFile } = require('./modules/paths');
142
142
  const credentialPolicy = require('./modules/credential_policy');
143
143
  const { Config } = require('./modules/config');
144
144
  const { getErrorMessage } = require('./modules/utils/errors');
@@ -1188,9 +1188,8 @@ async function bootstrap() {
1188
1188
  }
1189
1189
  catch (err) {
1190
1190
  if (err && (err.code === 'EACCES' || err.code === 'EPERM' || err.code === 'EROFS')) {
1191
- const { homedir } = require('os');
1192
1191
  const { spawnSync: respawn } = require('child_process');
1193
- const fallbackDir = path.join(homedir(), '.config', 'dexbot2', 'profiles');
1192
+ const fallbackDir = HOME_PROFILES_DIR;
1194
1193
  console.log(`Config directory not writable at: ${PROFILES_DIR}`);
1195
1194
  console.log(`Auto-using ${fallbackDir} instead. Set DEXBOT_PROFILE_ROOT to override.\n`);
1196
1195
  const newEnv = { ...process.env, DEXBOT_PROFILE_ROOT: fallbackDir };