dexbot 1.4.17 → 1.4.18

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 (209) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/analysis/README.md +43 -43
  3. package/analysis/ama_fitting/README.md +8 -8
  4. package/analysis/ama_fitting/package.json +1 -1
  5. package/analysis/bot_fitting/README.md +4 -4
  6. package/analysis/bot_fitting/backtest_ama_sweep.ts +1 -1
  7. package/analysis/bot_usage/discover_bot_accounts.ts +11 -11
  8. package/analysis/tradingview/README.md +4 -4
  9. package/analysis/trend_detection/DYNAMIC_WEIGHT_RESEARCH.md +2 -2
  10. package/analysis/trend_detection/SIGNAL_DOCUMENTATION.md +1 -1
  11. package/analysis/trend_detection/package.json +1 -1
  12. package/claw/README.md +45 -45
  13. package/claw/docs/AI_BOT_LIBRARY_API.md +6 -6
  14. package/claw/examples/short_mpa_bts_strategy.ts +3 -3
  15. package/claw/package.json +21 -21
  16. package/claw/runtimes/openclaw-plugin/openclaw.plugin.json +1 -1
  17. package/claw/runtimes/openclaw-plugin/package.json +1 -1
  18. package/claw/scripts/claw_bridge.ts +2 -2
  19. package/claw/scripts/claw_skill_md.ts +1 -1
  20. package/claw/skills/launcher-ops/references/launcher-workflow.md +5 -5
  21. package/claw/skills/margin-trading/references/honest-asset-list.md +1 -1
  22. package/claw/skills/memu-memory/SKILL.md +3 -3
  23. package/claw/tests/test_claw_mcp_transport.ts +2 -2
  24. package/dist/analysis/ama_fitting/analyze_ama_price_changes.d.ts +3 -0
  25. package/dist/analysis/ama_fitting/analyze_ama_price_changes.d.ts.map +1 -0
  26. package/dist/analysis/ama_fitting/analyze_ama_price_changes.js +148 -0
  27. package/dist/analysis/ama_fitting/analyze_ama_price_changes.js.map +1 -0
  28. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.d.ts +12 -0
  29. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.d.ts.map +1 -0
  30. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js +389 -0
  31. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js.map +1 -0
  32. package/dist/analysis/ama_fitting/calibrate_convergence_er.d.ts +3 -0
  33. package/dist/analysis/ama_fitting/calibrate_convergence_er.d.ts.map +1 -0
  34. package/dist/analysis/ama_fitting/calibrate_convergence_er.js +200 -0
  35. package/dist/analysis/ama_fitting/calibrate_convergence_er.js.map +1 -0
  36. package/dist/analysis/ama_fitting/fetch_lp_candles.d.ts +3 -0
  37. package/dist/analysis/ama_fitting/fetch_lp_candles.d.ts.map +1 -0
  38. package/dist/analysis/ama_fitting/fetch_lp_candles.js +213 -0
  39. package/dist/analysis/ama_fitting/fetch_lp_candles.js.map +1 -0
  40. package/dist/analysis/ama_fitting/generate_unified_comparison_chart.d.ts +25 -0
  41. package/dist/analysis/ama_fitting/generate_unified_comparison_chart.d.ts.map +1 -0
  42. package/dist/analysis/ama_fitting/generate_unified_comparison_chart.js +247 -0
  43. package/dist/analysis/ama_fitting/generate_unified_comparison_chart.js.map +1 -0
  44. package/dist/analysis/ama_fitting/optimizer_high_resolution.d.ts +35 -0
  45. package/dist/analysis/ama_fitting/optimizer_high_resolution.d.ts.map +1 -0
  46. package/dist/analysis/ama_fitting/optimizer_high_resolution.js +782 -0
  47. package/dist/analysis/ama_fitting/optimizer_high_resolution.js.map +1 -0
  48. package/dist/analysis/analyze_derivatives.d.ts +86 -0
  49. package/dist/analysis/analyze_derivatives.d.ts.map +1 -0
  50. package/dist/analysis/analyze_derivatives.js +285 -0
  51. package/dist/analysis/analyze_derivatives.js.map +1 -0
  52. package/dist/analysis/analyze_dynamic_weight.d.ts +14 -0
  53. package/dist/analysis/analyze_dynamic_weight.d.ts.map +1 -0
  54. package/dist/analysis/analyze_dynamic_weight.js +197 -0
  55. package/dist/analysis/analyze_dynamic_weight.js.map +1 -0
  56. package/dist/analysis/analyze_kalman.d.ts +13 -0
  57. package/dist/analysis/analyze_kalman.d.ts.map +1 -0
  58. package/dist/analysis/analyze_kalman.js +118 -0
  59. package/dist/analysis/analyze_kalman.js.map +1 -0
  60. package/dist/analysis/analyze_regime.d.ts +20 -0
  61. package/dist/analysis/analyze_regime.d.ts.map +1 -0
  62. package/dist/analysis/analyze_regime.js +139 -0
  63. package/dist/analysis/analyze_regime.js.map +1 -0
  64. package/dist/analysis/analyze_regime_windows.d.ts +19 -0
  65. package/dist/analysis/analyze_regime_windows.d.ts.map +1 -0
  66. package/dist/analysis/analyze_regime_windows.js +414 -0
  67. package/dist/analysis/analyze_regime_windows.js.map +1 -0
  68. package/dist/analysis/analyze_risk_profile.d.ts +3 -0
  69. package/dist/analysis/analyze_risk_profile.d.ts.map +1 -0
  70. package/dist/analysis/analyze_risk_profile.js +186 -0
  71. package/dist/analysis/analyze_risk_profile.js.map +1 -0
  72. package/dist/analysis/analyze_trade_heatmap.d.ts +3 -0
  73. package/dist/analysis/analyze_trade_heatmap.d.ts.map +1 -0
  74. package/dist/analysis/analyze_trade_heatmap.js +358 -0
  75. package/dist/analysis/analyze_trade_heatmap.js.map +1 -0
  76. package/dist/analysis/analyze_volatility.d.ts +22 -0
  77. package/dist/analysis/analyze_volatility.d.ts.map +1 -0
  78. package/dist/analysis/analyze_volatility.js +165 -0
  79. package/dist/analysis/analyze_volatility.js.map +1 -0
  80. package/dist/analysis/bot_fitting/backtest_ama_sweep.d.ts +91 -0
  81. package/dist/analysis/bot_fitting/backtest_ama_sweep.d.ts.map +1 -0
  82. package/dist/analysis/bot_fitting/backtest_ama_sweep.js +792 -0
  83. package/dist/analysis/bot_fitting/backtest_ama_sweep.js.map +1 -0
  84. package/dist/analysis/bot_fitting/backtest_bot_fitting.d.ts +2 -0
  85. package/dist/analysis/bot_fitting/backtest_bot_fitting.d.ts.map +1 -0
  86. package/dist/analysis/bot_fitting/backtest_bot_fitting.js +380 -0
  87. package/dist/analysis/bot_fitting/backtest_bot_fitting.js.map +1 -0
  88. package/dist/analysis/bot_fitting/shared_utils.d.ts +26 -0
  89. package/dist/analysis/bot_fitting/shared_utils.d.ts.map +1 -0
  90. package/dist/analysis/bot_fitting/shared_utils.js +42 -0
  91. package/dist/analysis/bot_fitting/shared_utils.js.map +1 -0
  92. package/dist/analysis/bot_key_utils.d.ts +11 -0
  93. package/dist/analysis/bot_key_utils.d.ts.map +1 -0
  94. package/dist/analysis/bot_key_utils.js +153 -0
  95. package/dist/analysis/bot_key_utils.js.map +1 -0
  96. package/dist/analysis/bot_usage/discover_bot_accounts.d.ts +3 -0
  97. package/dist/analysis/bot_usage/discover_bot_accounts.d.ts.map +1 -0
  98. package/dist/analysis/bot_usage/discover_bot_accounts.js +499 -0
  99. package/dist/analysis/bot_usage/discover_bot_accounts.js.map +1 -0
  100. package/dist/analysis/bot_usage/kibana_bot_queries.d.ts +531 -0
  101. package/dist/analysis/bot_usage/kibana_bot_queries.d.ts.map +1 -0
  102. package/dist/analysis/bot_usage/kibana_bot_queries.js +399 -0
  103. package/dist/analysis/bot_usage/kibana_bot_queries.js.map +1 -0
  104. package/dist/analysis/chart_css.d.ts +17 -0
  105. package/dist/analysis/chart_css.d.ts.map +1 -0
  106. package/dist/analysis/chart_css.js +49 -0
  107. package/dist/analysis/chart_css.js.map +1 -0
  108. package/dist/analysis/chart_ui.d.ts +45 -0
  109. package/dist/analysis/chart_ui.d.ts.map +1 -0
  110. package/dist/analysis/chart_ui.js +97 -0
  111. package/dist/analysis/chart_ui.js.map +1 -0
  112. package/dist/analysis/chart_utils.d.ts +27 -0
  113. package/dist/analysis/chart_utils.d.ts.map +1 -0
  114. package/dist/analysis/chart_utils.js +153 -0
  115. package/dist/analysis/chart_utils.js.map +1 -0
  116. package/dist/analysis/derivative_chart_generator.d.ts +12 -0
  117. package/dist/analysis/derivative_chart_generator.d.ts.map +1 -0
  118. package/dist/analysis/derivative_chart_generator.js +891 -0
  119. package/dist/analysis/derivative_chart_generator.js.map +1 -0
  120. package/dist/analysis/math_utils.d.ts +22 -0
  121. package/dist/analysis/math_utils.d.ts.map +1 -0
  122. package/dist/analysis/math_utils.js +43 -0
  123. package/dist/analysis/math_utils.js.map +1 -0
  124. package/dist/analysis/price_sources.d.ts +40 -0
  125. package/dist/analysis/price_sources.d.ts.map +1 -0
  126. package/dist/analysis/price_sources.js +94 -0
  127. package/dist/analysis/price_sources.js.map +1 -0
  128. package/dist/analysis/resolve_source.d.ts +25 -0
  129. package/dist/analysis/resolve_source.d.ts.map +1 -0
  130. package/dist/analysis/resolve_source.js +69 -0
  131. package/dist/analysis/resolve_source.js.map +1 -0
  132. package/dist/analysis/trade_profitability.d.ts +115 -0
  133. package/dist/analysis/trade_profitability.d.ts.map +1 -0
  134. package/dist/analysis/trade_profitability.js +1240 -0
  135. package/dist/analysis/trade_profitability.js.map +1 -0
  136. package/dist/analysis/tradingview/analyze_tradingview.d.ts +31 -0
  137. package/dist/analysis/tradingview/analyze_tradingview.d.ts.map +1 -0
  138. package/dist/analysis/tradingview/analyze_tradingview.js +146 -0
  139. package/dist/analysis/tradingview/analyze_tradingview.js.map +1 -0
  140. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts +5 -0
  141. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts.map +1 -0
  142. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js +1714 -0
  143. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js.map +1 -0
  144. package/dist/analysis/trend_detection/derivative_analyzer.d.ts +247 -0
  145. package/dist/analysis/trend_detection/derivative_analyzer.d.ts.map +1 -0
  146. package/dist/analysis/trend_detection/derivative_analyzer.js +901 -0
  147. package/dist/analysis/trend_detection/derivative_analyzer.js.map +1 -0
  148. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts +3 -0
  149. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts.map +1 -0
  150. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js +1361 -0
  151. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js.map +1 -0
  152. package/dist/analysis/trend_detection/hurst_analyzer.d.ts +6 -0
  153. package/dist/analysis/trend_detection/hurst_analyzer.d.ts.map +1 -0
  154. package/dist/analysis/trend_detection/hurst_analyzer.js +7 -0
  155. package/dist/analysis/trend_detection/hurst_analyzer.js.map +1 -0
  156. package/dist/analysis/trend_detection/kalman_chart_generator.d.ts +3 -0
  157. package/dist/analysis/trend_detection/kalman_chart_generator.d.ts.map +1 -0
  158. package/dist/analysis/trend_detection/kalman_chart_generator.js +360 -0
  159. package/dist/analysis/trend_detection/kalman_chart_generator.js.map +1 -0
  160. package/dist/analysis/trend_detection/kalman_trend_analyzer.d.ts +8 -0
  161. package/dist/analysis/trend_detection/kalman_trend_analyzer.d.ts.map +1 -0
  162. package/dist/analysis/trend_detection/kalman_trend_analyzer.js +8 -0
  163. package/dist/analysis/trend_detection/kalman_trend_analyzer.js.map +1 -0
  164. package/dist/analysis/trend_detection/kalman_velocity_smoothing.d.ts +6 -0
  165. package/dist/analysis/trend_detection/kalman_velocity_smoothing.d.ts.map +1 -0
  166. package/dist/analysis/trend_detection/kalman_velocity_smoothing.js +7 -0
  167. package/dist/analysis/trend_detection/kalman_velocity_smoothing.js.map +1 -0
  168. package/dist/analysis/trend_detection/permutation_entropy_analyzer.d.ts +6 -0
  169. package/dist/analysis/trend_detection/permutation_entropy_analyzer.d.ts.map +1 -0
  170. package/dist/analysis/trend_detection/permutation_entropy_analyzer.js +7 -0
  171. package/dist/analysis/trend_detection/permutation_entropy_analyzer.js.map +1 -0
  172. package/dist/analysis/trend_detection/regime_chart_generator.d.ts +3 -0
  173. package/dist/analysis/trend_detection/regime_chart_generator.d.ts.map +1 -0
  174. package/dist/analysis/trend_detection/regime_chart_generator.js +310 -0
  175. package/dist/analysis/trend_detection/regime_chart_generator.js.map +1 -0
  176. package/dist/analysis/trend_detection/tests/test_kalman_trend.d.ts +2 -0
  177. package/dist/analysis/trend_detection/tests/test_kalman_trend.d.ts.map +1 -0
  178. package/dist/analysis/trend_detection/tests/test_kalman_trend.js +128 -0
  179. package/dist/analysis/trend_detection/tests/test_kalman_trend.js.map +1 -0
  180. package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.d.ts +2 -0
  181. package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.d.ts.map +1 -0
  182. package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.js +37 -0
  183. package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.js.map +1 -0
  184. package/dist/analysis/trend_detection/volatility_chart_generator.d.ts +3 -0
  185. package/dist/analysis/trend_detection/volatility_chart_generator.d.ts.map +1 -0
  186. package/dist/analysis/trend_detection/volatility_chart_generator.js +646 -0
  187. package/dist/analysis/trend_detection/volatility_chart_generator.js.map +1 -0
  188. package/dist/bot.js +1 -1
  189. package/dist/bot.js.map +1 -1
  190. package/dist/market_adapter/ama_signal_runner.js +1 -1
  191. package/dist/market_adapter/ama_signal_runner.js.map +1 -1
  192. package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js +1 -1
  193. package/dist/scripts/generate_lp_chart.js +1 -1
  194. package/dist/scripts/test-credit-renewal.js +1 -1
  195. package/docs/DEXBOT_COMPARISON.md +3 -3
  196. package/docs/EVOLUTION.md +5 -4
  197. package/docs/FUND_MOVEMENT_AND_ACCOUNTING.md +1 -1
  198. package/docs/GRID_RECALCULATION.md +2 -2
  199. package/docs/README.md +1 -1
  200. package/market_adapter/README.md +23 -23
  201. package/package.json +17 -21
  202. package/scripts/README.md +12 -12
  203. package/scripts/bots +5 -7
  204. package/scripts/clear-market-adapter.sh +1 -1
  205. package/scripts/dexbot +5 -7
  206. package/scripts/keys +5 -7
  207. package/scripts/pm2 +5 -7
  208. package/scripts/unlock +5 -7
  209. package/scripts/update.js +6 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backtest_ama_sweep.js","sourceRoot":"","sources":["../../../analysis/bot_fitting/backtest_ama_sweep.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=backtest_bot_fitting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backtest_bot_fitting.d.ts","sourceRoot":"","sources":["../../../analysis/bot_fitting/backtest_bot_fitting.ts"],"names":[],"mappings":""}
@@ -0,0 +1,380 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { calculateAMA } from '../../market_adapter/core/strategies/ama.js';
4
+ import { range } from '../math_utils.js';
5
+ import { parseListOrRange, loadLpData, fmt } from './shared_utils.js';
6
+ import { getStorage } from '../../modules/storage/index.js';
7
+ const { ensureDir, readJSON, writeJSON } = getStorage();
8
+ 'use strict';
9
+ const DEFAULT_ACTIVE_ORDERS = 5;
10
+ const DEFAULT_FEE_ROUNDTRIP_PCT = 0.20;
11
+ const DEFAULT_MIN_SPREAD_FACTOR = 2.1;
12
+ // Inventory-risk penalty weights (in score points)
13
+ const RISK_W_DURATION = 1.0; // avg open bars
14
+ const RISK_W_PEAK_OPEN = 2.0; // peak simultaneous open orders
15
+ const RISK_W_IMBALANCE = 1.2; // avg |openBuy-openSell|
16
+ const RISK_W_CANCEL = 0.15; // canceled on reposition
17
+ const DEFAULT_SPREAD_VALUES = range(0.4, 1.6, 0.1);
18
+ const DEFAULT_INCREMENT_VALUES = range(0.2, 0.8, 0.1);
19
+ const DEFAULT_RATIO_VALUES = [1.5, 1.75, 2, 2.5, 3, 4, 5, 8, 10];
20
+ function parseArgs() {
21
+ const args = process.argv.slice(2);
22
+ const out = {
23
+ dataPath: null,
24
+ resultsPath: null,
25
+ spreadValues: DEFAULT_SPREAD_VALUES,
26
+ incrementValues: DEFAULT_INCREMENT_VALUES,
27
+ ratioValues: DEFAULT_RATIO_VALUES,
28
+ activeOrders: DEFAULT_ACTIVE_ORDERS,
29
+ feeRoundtripPct: DEFAULT_FEE_ROUNDTRIP_PCT,
30
+ minSpreadFactor: DEFAULT_MIN_SPREAD_FACTOR,
31
+ riskWDuration: RISK_W_DURATION,
32
+ riskWPeakOpen: RISK_W_PEAK_OPEN,
33
+ riskWImbalance: RISK_W_IMBALANCE,
34
+ riskWCancel: RISK_W_CANCEL,
35
+ };
36
+ for (let i = 0; i < args.length; i++) {
37
+ const arg = args[i];
38
+ const val = args[i + 1];
39
+ if (!val)
40
+ continue;
41
+ switch (arg) {
42
+ case '--data':
43
+ out.dataPath = path.resolve(val);
44
+ i++;
45
+ break;
46
+ case '--results':
47
+ out.resultsPath = path.resolve(val);
48
+ i++;
49
+ break;
50
+ case '--spread':
51
+ out.spreadValues = parseListOrRange(val, DEFAULT_SPREAD_VALUES);
52
+ i++;
53
+ break;
54
+ case '--increment':
55
+ out.incrementValues = parseListOrRange(val, DEFAULT_INCREMENT_VALUES);
56
+ i++;
57
+ break;
58
+ case '--ratio':
59
+ out.ratioValues = parseListOrRange(val, DEFAULT_RATIO_VALUES);
60
+ i++;
61
+ break;
62
+ case '--active-orders':
63
+ out.activeOrders = Number(val);
64
+ i++;
65
+ break;
66
+ case '--fee':
67
+ out.feeRoundtripPct = Number(val);
68
+ i++;
69
+ break;
70
+ case '--min-spread-factor':
71
+ out.minSpreadFactor = Number(val);
72
+ i++;
73
+ break;
74
+ case '--risk-duration':
75
+ out.riskWDuration = Number(val);
76
+ i++;
77
+ break;
78
+ case '--risk-peak-open':
79
+ out.riskWPeakOpen = Number(val);
80
+ i++;
81
+ break;
82
+ case '--risk-imbalance':
83
+ out.riskWImbalance = Number(val);
84
+ i++;
85
+ break;
86
+ case '--risk-cancel':
87
+ out.riskWCancel = Number(val);
88
+ i++;
89
+ break;
90
+ }
91
+ }
92
+ if (!out.dataPath) {
93
+ throw new Error('--data <path-to-lp-candles.json> is required');
94
+ }
95
+ if (!out.resultsPath) {
96
+ out.resultsPath = resolveAutoResultsPath(out.dataPath);
97
+ }
98
+ return out;
99
+ }
100
+ /**
101
+ * Auto-derive the AMA optimizer results file for a given LP candle data file.
102
+ *
103
+ * The optimizer names results `optimization_results_<base>_w<λ1>_<λ2>_<λ3>_<λ4>.json`
104
+ * (per-AMA distance weights appended as a `_w...` suffix). To stay robust against
105
+ * weight overrides, pick the most recently written `optimization_results_<base>_w*.json`
106
+ * in `ama_fitting/`; fall back to the legacy `optimization_results_<base>.json` name
107
+ * if no suffixed file exists.
108
+ */
109
+ function resolveAutoResultsPath(dataPath) {
110
+ const base = path.basename(dataPath, '.json');
111
+ const dir = path.join(__dirname, '..', 'ama_fitting');
112
+ const prefix = `optimization_results_${base}_w`;
113
+ let newest = null;
114
+ try {
115
+ for (const entry of fs.readdirSync(dir)) {
116
+ if (!entry.startsWith(prefix) || !entry.endsWith('.json'))
117
+ continue;
118
+ const full = path.join(dir, entry);
119
+ const stat = fs.statSync(full);
120
+ if (!newest || stat.mtimeMs > newest.mtimeMs) {
121
+ newest = { file: full, mtimeMs: stat.mtimeMs };
122
+ }
123
+ }
124
+ }
125
+ catch {
126
+ // dir unreadable — fall through to legacy name check
127
+ }
128
+ if (newest)
129
+ return newest.file;
130
+ return path.join(dir, `optimization_results_${base}.json`);
131
+ }
132
+ function loadAmaStrategies(resultsPath) {
133
+ const json = readJSON(resultsPath);
134
+ const amas = (json.meta?.amas ?? {});
135
+ const labels = { AMA1: 'AMA1', AMA2: 'AMA2', AMA3: 'AMA3', AMA4: 'AMA4' };
136
+ const out = [];
137
+ for (const [key, val] of Object.entries(amas)) {
138
+ const a = val;
139
+ if (!a || !Number.isFinite(a.er) || !Number.isFinite(a.fast) || !Number.isFinite(a.slow))
140
+ continue;
141
+ out.push({
142
+ id: key,
143
+ name: labels[key] ?? key,
144
+ er: a.er,
145
+ fast: a.fast,
146
+ slow: a.slow,
147
+ });
148
+ }
149
+ if (out.length !== 4) {
150
+ throw new Error(`Expected 4 AMA strategies in results meta.amas, found ${out.length}`);
151
+ }
152
+ return out;
153
+ }
154
+ function levelGrossSpreadPct(levelRatio) {
155
+ return (((1 + levelRatio) / (1 - levelRatio)) - 1) * 100;
156
+ }
157
+ function simulateForParams(candles, amaValues, params) {
158
+ const { spreadPct, incrementPct, maxMinRatio, activeOrders, feeRoundtripPct, risk } = params;
159
+ const skip = Math.max(20, Math.floor(candles.length * 0.1));
160
+ const levels = Array.from({ length: activeOrders }, (_, i) => incrementPct * (i + 1));
161
+ const openBuy = new Map(); // lvl -> openedAtBarIdx
162
+ const openSell = new Map(); // lvl -> openedAtBarIdx
163
+ let touchedOrders = 0;
164
+ let matchedPairs = 0;
165
+ let canceledOnReposition = 0;
166
+ let totalGrossCapturePct = 0;
167
+ let totalNetCapturePct = 0;
168
+ let activeLevelTouches = 0;
169
+ let peakOpenOrders = 0;
170
+ let imbalanceSum = 0;
171
+ let imbalanceSamples = 0;
172
+ let matchedOpenDurationBars = 0;
173
+ for (let i = skip + 1; i < candles.length; i++) {
174
+ const ama = amaValues[i];
175
+ const prevAma = amaValues[i - 1];
176
+ const hi = candles[i].high;
177
+ const lo = candles[i].low;
178
+ if (Math.abs(ama - prevAma) / prevAma > incrementPct) {
179
+ canceledOnReposition += openBuy.size + openSell.size;
180
+ openBuy.clear();
181
+ openSell.clear();
182
+ }
183
+ const currentOpen = openBuy.size + openSell.size;
184
+ if (currentOpen > peakOpenOrders)
185
+ peakOpenOrders = currentOpen;
186
+ imbalanceSum += Math.abs(openBuy.size - openSell.size);
187
+ imbalanceSamples++;
188
+ const minBound = ama / maxMinRatio;
189
+ const maxBound = ama * maxMinRatio;
190
+ for (let lvl = 0; lvl < levels.length; lvl++) {
191
+ const r = levels[lvl];
192
+ if (r >= 0.95)
193
+ continue;
194
+ const buyPrice = ama * (1 - r);
195
+ const sellPrice = ama * (1 + r);
196
+ if (buyPrice < minBound || sellPrice > maxBound)
197
+ continue;
198
+ const grossPct = levelGrossSpreadPct(r);
199
+ if (grossPct < spreadPct)
200
+ continue;
201
+ const touchBuy = lo <= buyPrice;
202
+ const touchSell = hi >= sellPrice;
203
+ if (!touchBuy && !touchSell)
204
+ continue;
205
+ activeLevelTouches++;
206
+ if (touchBuy && !openBuy.has(lvl)) {
207
+ touchedOrders++;
208
+ if (openSell.has(lvl)) {
209
+ const openedAt = openSell.get(lvl);
210
+ matchedOpenDurationBars += (i - openedAt);
211
+ matchedPairs++;
212
+ openSell.delete(lvl);
213
+ totalGrossCapturePct += grossPct;
214
+ }
215
+ else {
216
+ openBuy.set(lvl, i);
217
+ }
218
+ }
219
+ if (touchSell && !openSell.has(lvl)) {
220
+ touchedOrders++;
221
+ if (openBuy.has(lvl)) {
222
+ const openedAt = openBuy.get(lvl);
223
+ matchedOpenDurationBars += (i - openedAt);
224
+ matchedPairs++;
225
+ openBuy.delete(lvl);
226
+ totalGrossCapturePct += grossPct;
227
+ }
228
+ else {
229
+ openSell.set(lvl, i);
230
+ }
231
+ }
232
+ }
233
+ }
234
+ // Profit model requested: totalProfit = fills * (spread - increment)
235
+ // (all values in percentage points)
236
+ const incrementPctPoints = incrementPct * 100;
237
+ const netPerFillPct = Math.max(0, spreadPct - incrementPctPoints - feeRoundtripPct);
238
+ totalNetCapturePct = matchedPairs * netPerFillPct;
239
+ const fillEfficiency = touchedOrders > 0 ? (matchedPairs / touchedOrders) * 100 : 0;
240
+ const avgNetPerPair = matchedPairs > 0 ? totalNetCapturePct / matchedPairs : 0;
241
+ const utilization = (activeLevelTouches / Math.max(1, (candles.length - skip))) * 100;
242
+ const baseScore = totalNetCapturePct * (fillEfficiency / 100);
243
+ const avgOpenDurationBars = matchedPairs > 0 ? (matchedOpenDurationBars / matchedPairs) : 0;
244
+ const avgImbalance = imbalanceSamples > 0 ? (imbalanceSum / imbalanceSamples) : 0;
245
+ const riskPenalty = (avgOpenDurationBars * risk.duration) +
246
+ (peakOpenOrders * risk.peakOpen) +
247
+ (avgImbalance * risk.imbalance) +
248
+ (canceledOnReposition * risk.cancel);
249
+ const score = baseScore - riskPenalty;
250
+ return {
251
+ spreadPct,
252
+ incrementPct,
253
+ maxMinRatio,
254
+ touchedOrders,
255
+ matchedPairs,
256
+ fillEfficiency,
257
+ totalGrossCapturePct,
258
+ totalNetCapturePct,
259
+ avgNetPerPair,
260
+ canceledOnReposition,
261
+ avgOpenDurationBars,
262
+ peakOpenOrders,
263
+ avgImbalance,
264
+ riskPenalty,
265
+ baseScore,
266
+ utilization,
267
+ score,
268
+ };
269
+ }
270
+ function run() {
271
+ const cfg = parseArgs();
272
+ if (!Number.isFinite(cfg.minSpreadFactor) || cfg.minSpreadFactor <= 0) {
273
+ throw new Error(`Invalid min spread factor: ${cfg.minSpreadFactor}`);
274
+ }
275
+ for (const [k, v] of Object.entries({
276
+ riskDuration: cfg.riskWDuration,
277
+ riskPeakOpen: cfg.riskWPeakOpen,
278
+ riskImbalance: cfg.riskWImbalance,
279
+ riskCancel: cfg.riskWCancel,
280
+ })) {
281
+ if (!Number.isFinite(v) || v < 0)
282
+ throw new Error(`Invalid ${k}: ${v}`);
283
+ }
284
+ const loaded = loadLpData(cfg.dataPath);
285
+ const candles = loaded.candles;
286
+ const closes = candles.map((c) => c.close);
287
+ const strategies = loadAmaStrategies(cfg.resultsPath);
288
+ const totalCombos = cfg.spreadValues.length * cfg.incrementValues.length * cfg.ratioValues.length;
289
+ console.log('================================================================================');
290
+ console.log(' BOT FITTING BACKTEST (1h LP candles)');
291
+ console.log('================================================================================');
292
+ console.log(` Data: ${path.basename(cfg.dataPath)} (${candles.length} candles)`);
293
+ console.log(` Results file: ${path.basename(cfg.resultsPath)}`);
294
+ console.log(` Spread grid: ${cfg.spreadValues[0]}..${cfg.spreadValues[cfg.spreadValues.length - 1]}% (${cfg.spreadValues.length})`);
295
+ console.log(` Increment: ${cfg.incrementValues[0]}..${cfg.incrementValues[cfg.incrementValues.length - 1]}% (${cfg.incrementValues.length})`);
296
+ console.log(` Max/Min ratio:${cfg.ratioValues[0]}..${cfg.ratioValues[cfg.ratioValues.length - 1]} (${cfg.ratioValues.length})`);
297
+ console.log(` Active orders:${cfg.activeOrders} per side`);
298
+ console.log(` Fee RT: ${cfg.feeRoundtripPct}%`);
299
+ console.log(` Spread floor: spread >= ${cfg.minSpreadFactor} x increment`);
300
+ console.log(` Risk W: duration=${cfg.riskWDuration}, peakOpen=${cfg.riskWPeakOpen}, imbalance=${cfg.riskWImbalance}, cancel=${cfg.riskWCancel}`);
301
+ console.log(` Combos/AMA: ${totalCombos}\n`);
302
+ const byAma = [];
303
+ for (const s of strategies) {
304
+ const amaValues = calculateAMA(closes, { erPeriod: s.er, fastPeriod: s.fast, slowPeriod: s.slow });
305
+ let best = null;
306
+ for (const spreadPct of cfg.spreadValues) {
307
+ for (const incrementPct of cfg.incrementValues) {
308
+ for (const maxMinRatio of cfg.ratioValues) {
309
+ if (spreadPct + Number.EPSILON < (cfg.minSpreadFactor * incrementPct))
310
+ continue;
311
+ const sim = simulateForParams(candles, amaValues, {
312
+ spreadPct,
313
+ incrementPct: incrementPct / 100,
314
+ maxMinRatio,
315
+ activeOrders: cfg.activeOrders,
316
+ feeRoundtripPct: cfg.feeRoundtripPct,
317
+ risk: {
318
+ duration: cfg.riskWDuration,
319
+ peakOpen: cfg.riskWPeakOpen,
320
+ imbalance: cfg.riskWImbalance,
321
+ cancel: cfg.riskWCancel,
322
+ },
323
+ });
324
+ if (!best || sim.score > best.score)
325
+ best = sim;
326
+ }
327
+ }
328
+ }
329
+ byAma.push({ strategy: s, best });
330
+ }
331
+ console.log('BEST PARAMS PER AMA');
332
+ console.log('--------------------------------------------------------------------------------');
333
+ console.log('AMA | spread | incr | ratio | pairs | fill% | net% | risk | score');
334
+ console.log('---------------------------------|--------|------|-------|-------|-------|--------|-------|-------');
335
+ for (const row of byAma) {
336
+ const b = row.best;
337
+ if (!b)
338
+ continue;
339
+ console.log(`${row.strategy.name.padEnd(33)}| ` +
340
+ `${fmt(b.spreadPct, 2).padStart(6)} | ` +
341
+ `${fmt(b.incrementPct * 100, 2).padStart(4)} | ` +
342
+ `${fmt(b.maxMinRatio, 2).padStart(5)} | ` +
343
+ `${String(b.matchedPairs).padStart(5)} | ` +
344
+ `${fmt(b.fillEfficiency, 1).padStart(5)} | ` +
345
+ `${fmt(b.totalNetCapturePct, 1).padStart(6)} | ` +
346
+ `${fmt(b.riskPenalty, 1).padStart(5)} | ` +
347
+ `${fmt(b.score, 1).padStart(5)}`);
348
+ }
349
+ console.log();
350
+ const outName = `bot_fitting_results_${path.basename(cfg.dataPath, '.json')}.json`;
351
+ const outPath = path.join(__dirname, outName);
352
+ ensureDir(__dirname);
353
+ writeJSON(outPath, {
354
+ meta: {
355
+ generatedAt: new Date().toISOString(),
356
+ dataPath: path.relative(process.cwd(), cfg.dataPath),
357
+ resultsPath: path.relative(process.cwd(), cfg.resultsPath),
358
+ candles: candles.length,
359
+ activeOrders: cfg.activeOrders,
360
+ feeRoundtripPct: cfg.feeRoundtripPct,
361
+ search: {
362
+ spreadValues: cfg.spreadValues,
363
+ incrementValues: cfg.incrementValues,
364
+ ratioValues: cfg.ratioValues,
365
+ minSpreadFactor: cfg.minSpreadFactor,
366
+ combosPerAma: totalCombos,
367
+ },
368
+ scoring: {
369
+ baseScore: 'totalNetCapturePct * (fillEfficiency / 100)',
370
+ totalNetCapturePct: 'matchedPairs * (spread - increment - fee)',
371
+ riskPenalty: `avgOpenDurationBars*${cfg.riskWDuration} + peakOpenOrders*${cfg.riskWPeakOpen} + avgImbalance*${cfg.riskWImbalance} + canceledOnReposition*${cfg.riskWCancel}`,
372
+ finalScore: 'baseScore - riskPenalty',
373
+ },
374
+ },
375
+ results: byAma,
376
+ });
377
+ console.log(`Saved: ${path.relative(process.cwd(), outPath)}`);
378
+ }
379
+ run();
380
+ //# sourceMappingURL=backtest_bot_fitting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backtest_bot_fitting.js","sourceRoot":"","sources":["../../../analysis/bot_fitting/backtest_bot_fitting.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Shared utilities for bot-fitting scripts.
3
+ */
4
+ declare function toCandles(arr: any[]): {
5
+ timestamp: any;
6
+ open: any;
7
+ high: any;
8
+ low: any;
9
+ close: any;
10
+ volume: any;
11
+ }[];
12
+ declare function parseListOrRange(spec: any, fallback: any): any;
13
+ declare function loadLpData(filePath: string): {
14
+ candles: {
15
+ timestamp: any;
16
+ open: any;
17
+ high: any;
18
+ low: any;
19
+ close: any;
20
+ volume: any;
21
+ }[];
22
+ meta: any;
23
+ };
24
+ declare function fmt(x: number, d?: number): string;
25
+ export { toCandles, parseListOrRange, loadLpData, fmt };
26
+ //# sourceMappingURL=shared_utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared_utils.d.ts","sourceRoot":"","sources":["../../../analysis/bot_fitting/shared_utils.ts"],"names":[],"mappings":"AAKA;;GAEG;AAGH,iBAAS,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE;;;;;;;IAS5B;AAED,iBAAS,gBAAgB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,OAWjD;AAED,iBAAS,UAAU,CAAC,QAAQ,EAAE,MAAM;;;;;;;;;;EAGnC;AAED,iBAAS,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,SAAI,UAG5B;AAED,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,EAAE,CAAA"}
@@ -0,0 +1,42 @@
1
+ import { getStorage } from '../../modules/storage/index.js';
2
+ const { readJSON } = getStorage();
3
+ 'use strict';
4
+ /**
5
+ * Shared utilities for bot-fitting scripts.
6
+ */
7
+ function toCandles(arr) {
8
+ return arr.map((c) => ({
9
+ timestamp: c[0],
10
+ open: c[1],
11
+ high: c[2],
12
+ low: c[3],
13
+ close: c[4],
14
+ volume: c[5],
15
+ }));
16
+ }
17
+ function parseListOrRange(spec, fallback) {
18
+ if (!spec)
19
+ return fallback;
20
+ if (spec.includes(':')) {
21
+ const [a, b, s] = spec.split(':').map(Number);
22
+ if (!Number.isFinite(a) || !Number.isFinite(b) || !Number.isFinite(s) || s <= 0)
23
+ return fallback;
24
+ const out = [];
25
+ for (let v = a; v <= b + 1e-9; v += s)
26
+ out.push(Number(v.toFixed(4)));
27
+ return out;
28
+ }
29
+ const vals = spec.split(',').map((x) => Number(x.trim())).filter(Number.isFinite);
30
+ return vals.length ? vals : fallback;
31
+ }
32
+ function loadLpData(filePath) {
33
+ const json = readJSON(filePath);
34
+ return { candles: toCandles(json.candles ?? json), meta: json.meta ?? null };
35
+ }
36
+ function fmt(x, d = 2) {
37
+ if (!Number.isFinite(x))
38
+ return ' n/a';
39
+ return Number(x).toFixed(d);
40
+ }
41
+ export { toCandles, parseListOrRange, loadLpData, fmt };
42
+ //# sourceMappingURL=shared_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared_utils.js","sourceRoot":"","sources":["../../../analysis/bot_fitting/shared_utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,CAAC;AAClC,YAAY,CAAC;AAEb;;GAEG;AAGH,SAAS,SAAS,CAAC,GAAU;IACzB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC;QACxB,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;QACf,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACV,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACV,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACT,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACX,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;KACf,CAAC,CAAC,CAAC;AACR,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAS,EAAE,QAAa;IAC9C,IAAI,CAAC,IAAI;QAAE,OAAO,QAAQ,CAAC;IAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,QAAQ,CAAC;QACjG,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,OAAO,GAAG,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AACzC,CAAC;AAED,SAAS,UAAU,CAAC,QAAgB;IAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;AACjF,CAAC;AAED,SAAS,GAAG,CAAC,CAAS,EAAE,CAAC,GAAG,CAAC;IACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,OAAO,CAAC;IACxC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,GAAG,EAAE,CAAA"}
@@ -0,0 +1,11 @@
1
+ declare function loadBotSettings(filePath?: string): any;
2
+ declare function sanitizeKey(source: any): string;
3
+ declare function computeBotKey(bot: any, index: number): string;
4
+ declare function resolveBotKey(botName: any, filePath?: string): string | null;
5
+ declare function candleFileForBot(botKey: string, intervalLabel: string, dataDir?: string): string;
6
+ declare function resolveCandleFile(botKey: string, intervalLabel: string, dataDir?: string, botsFile?: string): string | null;
7
+ declare function loadBotMeta(botKey: any, filePath?: string): any;
8
+ declare function resolveAmaConfig(botKey: any): any;
9
+ declare function resolveAmaKey(botKey: any): string;
10
+ export { loadBotSettings, sanitizeKey, computeBotKey, resolveBotKey, candleFileForBot, resolveCandleFile, loadBotMeta, resolveAmaConfig, resolveAmaKey };
11
+ //# sourceMappingURL=bot_key_utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot_key_utils.d.ts","sourceRoot":"","sources":["../../analysis/bot_key_utils.ts"],"names":[],"mappings":"AAeA,iBAAS,eAAe,CAAC,QAAQ,SAA2B,OAO3D;AAED,iBAAS,WAAW,CAAC,MAAM,EAAE,GAAG,UAG/B;AAED,iBAAS,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,UAK7C;AAED,iBAAS,aAAa,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,SAA2B,iBAQvE;AAED,iBAAS,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,SAAgC,UAEvG;AAED,iBAAS,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,SAAgC,EAAE,QAAQ,SAA2B,iBAS7I;AAED,iBAAS,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,SAA2B,OASpE;AAED,iBAAS,gBAAgB,CAAC,MAAM,EAAE,GAAG,OAoEpC;AAED,iBAAS,aAAa,CAAC,MAAM,EAAE,GAAG,UAQjC;AAED,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAA"}