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":"calibrate_convergence_er.js","sourceRoot":"","sources":["../../../analysis/ama_fitting/calibrate_convergence_er.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=fetch_lp_candles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch_lp_candles.d.ts","sourceRoot":"","sources":["../../../analysis/ama_fitting/fetch_lp_candles.ts"],"names":[],"mappings":""}
@@ -0,0 +1,213 @@
1
+ #!/usr/bin/env node
2
+ import fs from 'node:fs';
3
+ import path from 'node:path';
4
+ import { normalizePoolId } from '../../market_adapter/utils/chain.js';
5
+ import { toIntervalLabel } from '../../market_adapter/interval_utils.js';
6
+ import { MARKET_ADAPTER } from '../../modules/constants.js';
7
+ import * as kibanaSource from '../../market_adapter/inputs/kibana_source.js';
8
+ import { PATHS } from '../../modules/paths.js';
9
+ import { getStorage } from '../../modules/storage/index.js';
10
+ const { ensureDir, writeJSON } = getStorage();
11
+ import { getErrorMessage } from '../../modules/utils/errors.js';
12
+ 'use strict';
13
+ /**
14
+ * Fetch LP pool candles from Kibana for AMA optimizer input.
15
+ *
16
+ * Uses the same kibana_source as the market_adapter bootstrap, but saves
17
+ * the full uncut dataset (no pruning) for optimizer use.
18
+ *
19
+ * Usage:
20
+ * tsx analysis/ama_fitting/fetch_lp_candles.ts \
21
+ * --pool 1.19.133 \
22
+ * --assetA IOB.XRP --assetAId 1.3.3926 --assetAPrecision 4 \
23
+ * --assetB BTS --assetBId 1.3.0 --assetBPrecision 5 \
24
+ * [--interval 1h] [--hours 26280] [--out my_file.json]
25
+ *
26
+ * Defaults: --interval 1h --hours 26280 (3 years)
27
+ * Output: market_adapter/data/lp/<assetA>_<assetB>/lp_pool_<poolShort>_<interval>.json
28
+ */
29
+ const DATA_DIR = PATHS.MARKET_ADAPTER.LP_DATA_DIR;
30
+ const HOURS_3Y = 3 * 365 * 24; // 26280
31
+ function slugPart(value) {
32
+ return String(value || '')
33
+ .trim()
34
+ .toLowerCase()
35
+ .replace(/[^a-z0-9]+/g, '_')
36
+ .replace(/^_+|_+$/g, '') || 'unknown';
37
+ }
38
+ function slugPairFolder(symbolA, symbolB) {
39
+ return `${slugPart(symbolA)}_${slugPart(symbolB)}`;
40
+ }
41
+ function parseArgs() {
42
+ const args = process.argv.slice(2);
43
+ const out = {
44
+ pool: null,
45
+ assetASymbol: null,
46
+ assetAId: null,
47
+ assetAPrecision: null,
48
+ assetBSymbol: null,
49
+ assetBId: null,
50
+ assetBPrecision: null,
51
+ intervalSeconds: MARKET_ADAPTER.RUNTIME_DEFAULTS.intervalSeconds,
52
+ hours: HOURS_3Y,
53
+ outFile: null,
54
+ };
55
+ const intervalMap = { '1m': 60, '5m': 300, '15m': 900, '1h': 3600, '4h': 14400, '1d': 86400 };
56
+ for (let i = 0; i < args.length; i++) {
57
+ const a = args[i];
58
+ const v = args[i + 1];
59
+ switch (a) {
60
+ case '--pool':
61
+ out.pool = v;
62
+ i++;
63
+ break;
64
+ case '--assetA':
65
+ out.assetASymbol = v;
66
+ i++;
67
+ break;
68
+ case '--assetAId':
69
+ out.assetAId = v;
70
+ i++;
71
+ break;
72
+ case '--assetAPrecision':
73
+ out.assetAPrecision = Number(v);
74
+ i++;
75
+ break;
76
+ case '--assetB':
77
+ out.assetBSymbol = v;
78
+ i++;
79
+ break;
80
+ case '--assetBId':
81
+ out.assetBId = v;
82
+ i++;
83
+ break;
84
+ case '--assetBPrecision':
85
+ out.assetBPrecision = Number(v);
86
+ i++;
87
+ break;
88
+ case '--interval':
89
+ out.intervalSeconds = intervalMap[v] ?? parseInt(v, 10);
90
+ i++;
91
+ break;
92
+ case '--hours':
93
+ out.hours = Number(v);
94
+ i++;
95
+ break;
96
+ case '--out':
97
+ out.outFile = v;
98
+ i++;
99
+ break;
100
+ case '--help':
101
+ case '-h':
102
+ printHelp();
103
+ process.exit(0);
104
+ }
105
+ }
106
+ return out;
107
+ }
108
+ function printHelp() {
109
+ console.log('fetch_lp_candles.ts — fetch LP pool candles from Kibana for AMA optimizer');
110
+ console.log('');
111
+ console.log('Usage:');
112
+ console.log(' tsx fetch_lp_candles.ts --pool 1.19.133 \\');
113
+ console.log(' --assetA IOB.XRP --assetAId 1.3.3926 --assetAPrecision 4 \\');
114
+ console.log(' --assetB BTS --assetBId 1.3.0 --assetBPrecision 5');
115
+ console.log('');
116
+ console.log('Options:');
117
+ console.log(' --pool <id> Pool ID (e.g. 1.19.133)');
118
+ console.log(' --assetA <symbol> Asset A symbol (e.g. IOB.XRP)');
119
+ console.log(' --assetAId <id> Asset A object ID (e.g. 1.3.3926)');
120
+ console.log(' --assetAPrecision <n> Asset A precision (e.g. 8)');
121
+ console.log(' --assetB <symbol> Asset B symbol (e.g. BTS)');
122
+ console.log(' --assetBId <id> Asset B object ID (e.g. 1.3.0)');
123
+ console.log(' --assetBPrecision <n> Asset B precision (e.g. 5)');
124
+ console.log(' --interval <label> Candle interval (1m, 5m, 15m, 1h, 4h, 1d; default: 1h)');
125
+ console.log(' --hours <n> Lookback hours (default: 26280 = 3 years)');
126
+ console.log(' --out <filename> Output filename (default: auto-generated in market_adapter/data/lp/)');
127
+ }
128
+ function validateArgs(args) {
129
+ if (!args.pool)
130
+ throw new Error('--pool is required');
131
+ if (!args.assetAId)
132
+ throw new Error('--assetAId is required');
133
+ if (!Number.isFinite(args.assetAPrecision))
134
+ throw new Error('--assetAPrecision is required');
135
+ if (!args.assetBId)
136
+ throw new Error('--assetBId is required');
137
+ if (!Number.isFinite(args.assetBPrecision))
138
+ throw new Error('--assetBPrecision is required');
139
+ if (!Number.isFinite(args.hours) || args.hours <= 0)
140
+ throw new Error('--hours must be > 0');
141
+ }
142
+ async function main() {
143
+ const args = parseArgs();
144
+ validateArgs(args);
145
+ const assetA = {
146
+ id: args.assetAId,
147
+ precision: args.assetAPrecision,
148
+ symbol: args.assetASymbol || args.assetAId || '',
149
+ };
150
+ const assetB = {
151
+ id: args.assetBId,
152
+ precision: args.assetBPrecision,
153
+ symbol: args.assetBSymbol || args.assetBId || '',
154
+ };
155
+ const { intervalSeconds } = args;
156
+ const intervalLabel = toIntervalLabel(intervalSeconds);
157
+ const poolId = normalizePoolId(args.pool);
158
+ const lookback = Math.round(args.hours);
159
+ const yearsApprox = (lookback / (365 * 24)).toFixed(1);
160
+ console.log(`Fetching LP candles from Kibana`);
161
+ console.log(` Pool: ${poolId}`);
162
+ console.log(` Pair: ${assetA.symbol} / ${assetB.symbol}`);
163
+ console.log(` Interval: ${intervalLabel}`);
164
+ console.log(` Lookback: ${lookback}h (~${yearsApprox} years)`);
165
+ console.log('');
166
+ const candles = await kibanaSource.getLpCandlesForPool(poolId, assetA, assetB, {
167
+ intervalSeconds,
168
+ lookbackHours: lookback,
169
+ consolidateByTimestamp: true,
170
+ apiKey: null,
171
+ timeout: 60000,
172
+ });
173
+ if (!Array.isArray(candles) || candles.length === 0) {
174
+ throw new Error('Kibana returned no candles — check pool ID, asset IDs, and Kibana connectivity');
175
+ }
176
+ const firstTs = new Date(candles[0][0]).toISOString();
177
+ const lastTs = new Date(candles[candles.length - 1][0]).toISOString();
178
+ console.log(` Received: ${candles.length} candles (${firstTs} → ${lastTs})`);
179
+ const payload = {
180
+ meta: {
181
+ fetchedAt: new Date().toISOString(),
182
+ source: 'kibana',
183
+ pool: poolId,
184
+ assetA,
185
+ assetB,
186
+ intervalSeconds,
187
+ lookbackHours: lookback,
188
+ candleCount: candles.length,
189
+ format: '[timestamp_ms, open, high, low, close, volume_A]',
190
+ },
191
+ candles,
192
+ };
193
+ const poolShort = (poolId || '').replace('1.19.', '');
194
+ const pairFolder = slugPairFolder(assetA.symbol, assetB.symbol);
195
+ const defaultName = `lp_pool_${poolShort}_${intervalLabel}.json`;
196
+ const outName = args.outFile || defaultName;
197
+ const outPath = args.outFile && path.isAbsolute(args.outFile)
198
+ ? args.outFile
199
+ : path.join(DATA_DIR, pairFolder, outName);
200
+ const outDir = path.dirname(outPath);
201
+ if (!fs.existsSync(outDir))
202
+ ensureDir(outDir);
203
+ writeJSON(outPath, payload);
204
+ console.log(` Saved: ${path.relative(process.cwd(), outPath)}`);
205
+ console.log('');
206
+ console.log('Run optimizer:');
207
+ console.log(` npm run build && node dist/analysis/ama_fitting/optimizer_high_resolution.js --data ${path.relative(process.cwd(), outPath)}`);
208
+ }
209
+ main().catch((err) => {
210
+ console.error('Error:', getErrorMessage(err));
211
+ process.exit(1);
212
+ });
213
+ //# sourceMappingURL=fetch_lp_candles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch_lp_candles.js","sourceRoot":"","sources":["../../../analysis/ama_fitting/fetch_lp_candles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ declare const DEFAULT_STRATEGIES: {
2
+ name: string;
3
+ erPeriod: number;
4
+ fastPeriod: number;
5
+ slowPeriod: number;
6
+ color: string;
7
+ dash: string;
8
+ }[];
9
+ declare function showHelp(): void;
10
+ declare function parseArgs(argv: string[]): {
11
+ dataFile: string | null;
12
+ outFile: string | null;
13
+ quiet: boolean;
14
+ help: boolean;
15
+ };
16
+ declare function generateChart(options?: Record<string, any>): {
17
+ dataFile: string;
18
+ outFile: string;
19
+ amaResults: any[];
20
+ meta: any;
21
+ candleArrays: any[][];
22
+ };
23
+ declare function run(argv?: string[]): void;
24
+ export { DEFAULT_STRATEGIES, generateChart, parseArgs, run, showHelp };
25
+ //# sourceMappingURL=generate_unified_comparison_chart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate_unified_comparison_chart.d.ts","sourceRoot":"","sources":["../../../analysis/ama_fitting/generate_unified_comparison_chart.ts"],"names":[],"mappings":"AAkDA,QAAA,MAAM,kBAAkB;;;;;;;GAA2B,CAAC;AAyFpD,iBAAS,QAAQ,SAmBhB;AAID,iBAAS,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE;cACN,MAAM,GAAG,IAAI;aAAW,MAAM,GAAG,IAAI;WAAS,OAAO;UAAQ,OAAO;EAmB9F;AAED,iBAAS,aAAa,CAAC,OAAO,GAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;;;EAsDzD;AAED,iBAAS,GAAG,CAAC,IAAI,WAAwB,QAqBxC;AAMD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,247 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { pathToFileURL } from 'node:url';
4
+ import { calculateAMA } from '../../market_adapter/core/strategies/ama.js';
5
+ import { generateHTML } from '../../market_adapter/lp_chart_core.js';
6
+ import { toIntervalLabel } from '../../market_adapter/interval_utils.js';
7
+ import { loadCandleFile } from '../math_utils.js';
8
+ import { MARKET_ADAPTER } from '../../modules/constants.js';
9
+ import { getStorage } from '../../modules/storage/index.js';
10
+ const { ensureDir } = getStorage();
11
+ import { PATHS } from '../../modules/paths.js';
12
+ 'use strict';
13
+ /**
14
+ * UNIFIED COMPARISON CHART GENERATOR — Self-contained analysis chart
15
+ *
16
+ * Reads a local LP candle JSON file (any format: flat array, {candles: [...]},
17
+ * or {data: [...]}), computes AMA series, and writes an interactive HTML chart
18
+ * via the shared lp_chart_core renderer.
19
+ *
20
+ * No Kibana fetch, no market_adapter runtime deps beyond the core renderer.
21
+ *
22
+ * Usage:
23
+ * tsx analysis/ama_fitting/generate_unified_comparison_chart.ts --data <file.json>
24
+ * tsx analysis/ama_fitting/generate_unified_comparison_chart.ts (auto-discovers newest lp_pool_*.json)
25
+ */
26
+ // ── Config ─────────────────────────────────────────────────────────────────────
27
+ const LP_DATA_DIR = PATHS.MARKET_ADAPTER.LP_DATA_DIR;
28
+ const CHARTS_DIR = PATHS.ANALYSIS.CHARTS_DIR;
29
+ const DEFAULT_COLORS = ['#26a69a', '#fb8c00', '#5c9ee6', '#ef5350'];
30
+ const DEFAULT_DASHES = ['dot', 'solid', 'dash', 'dashdot'];
31
+ function buildDefaultStrategies() {
32
+ const presets = MARKET_ADAPTER.AMAS;
33
+ return Object.keys(presets).map((key, i) => ({
34
+ name: presets[key].name || key,
35
+ erPeriod: presets[key].erPeriod,
36
+ fastPeriod: presets[key].fastPeriod,
37
+ slowPeriod: presets[key].slowPeriod,
38
+ color: DEFAULT_COLORS[i % DEFAULT_COLORS.length],
39
+ dash: DEFAULT_DASHES[i % DEFAULT_DASHES.length],
40
+ }));
41
+ }
42
+ const DEFAULT_STRATEGIES = buildDefaultStrategies();
43
+ // ── Data loading (self-contained, no lp_chart_runner dep) ──────────────────────
44
+ function findLatestLpDataFile() {
45
+ if (!fs.existsSync(LP_DATA_DIR))
46
+ return null;
47
+ const stack = [LP_DATA_DIR];
48
+ const matches = [];
49
+ while (stack.length > 0) {
50
+ const dir = stack.pop();
51
+ if (!dir)
52
+ continue;
53
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
54
+ const full = path.join(dir, entry.name);
55
+ if (entry.isDirectory()) {
56
+ stack.push(full);
57
+ continue;
58
+ }
59
+ if (!entry.isFile() || !entry.name.endsWith('.json'))
60
+ continue;
61
+ if (!entry.name.startsWith('lp_pool_'))
62
+ continue;
63
+ matches.push({ path: full, mtime: fs.statSync(full).mtimeMs });
64
+ }
65
+ }
66
+ matches.sort((a, b) => b.mtime - a.mtime);
67
+ return matches.length > 0 ? matches[0].path : null;
68
+ }
69
+ function normalizeCandle(c, index) {
70
+ if (Array.isArray(c)) {
71
+ if (c.length < 5)
72
+ throw new Error(`Invalid candle at index ${index}: need at least 5 entries`);
73
+ return { timestamp: c[0], open: c[1], high: c[2], low: c[3], close: c[4], volume: c[5] ?? 0 };
74
+ }
75
+ if (c && typeof c === 'object') {
76
+ const { timestamp, open, high, low, close, volume = 0 } = c;
77
+ if ([timestamp, open, high, low, close].some(v => v == null)) {
78
+ throw new Error(`Invalid candle object at index ${index}`);
79
+ }
80
+ return { timestamp, open, high, low, close, volume };
81
+ }
82
+ throw new Error(`Unsupported candle format at index ${index}`);
83
+ }
84
+ function loadCandles(dataFile) {
85
+ const resolved = path.resolve(dataFile);
86
+ if (!fs.existsSync(resolved))
87
+ throw new Error(`File not found: ${resolved}`);
88
+ const { candles, meta } = loadCandleFile(resolved);
89
+ if (!Array.isArray(candles) || candles.length === 0) {
90
+ throw new Error('No candles found in file');
91
+ }
92
+ const candleObjects = candles.map((c, i) => normalizeCandle(c, i));
93
+ const candleArrays = candleObjects.map(c => [c.timestamp, c.open, c.high, c.low, c.close, c.volume]);
94
+ return { dataFile: resolved, meta, candleObjects, candleArrays };
95
+ }
96
+ // ── Metrics ────────────────────────────────────────────────────────────────────
97
+ function calculateMetrics(amaValues, candles) {
98
+ let maxDriftUp = 0, maxDriftDown = 0, areaAbove = 0, areaBelow = 0;
99
+ const skip = Math.max(20, Math.floor(candles.length * 0.1));
100
+ for (let i = skip; i < candles.length; i++) {
101
+ const ama = amaValues[i];
102
+ const driftUp = (candles[i].high - ama) / ama;
103
+ const driftDown = (ama - candles[i].low) / ama;
104
+ if (driftUp > maxDriftUp)
105
+ maxDriftUp = driftUp;
106
+ if (driftDown > maxDriftDown)
107
+ maxDriftDown = driftDown;
108
+ if (candles[i].high > ama)
109
+ areaAbove += driftUp;
110
+ if (candles[i].low < ama)
111
+ areaBelow += driftDown;
112
+ }
113
+ return {
114
+ maxDriftUp, maxDriftDown, areaAbove, areaBelow,
115
+ totalArea: areaAbove + areaBelow,
116
+ maxDistance: Math.max(maxDriftUp, maxDriftDown),
117
+ };
118
+ }
119
+ // ── Output path ────────────────────────────────────────────────────────────────
120
+ function defaultChartPath(meta) {
121
+ const intervalLabel = meta?.intervalSeconds
122
+ ? toIntervalLabel(meta.intervalSeconds)
123
+ : '1h';
124
+ const suffix = meta?.pool
125
+ ? `pool_${String(meta.pool).replace('1.19.', '')}`
126
+ : `${meta?.assetA?.symbol || 'unknown'}_${meta?.assetB?.symbol || 'pair'}`;
127
+ return path.join(CHARTS_DIR, `lp_chart_${suffix}_${intervalLabel}_UNIFIED_COMPARISON.html`);
128
+ }
129
+ // ── Help ───────────────────────────────────────────────────────────────────────
130
+ function showHelp() {
131
+ console.log(`
132
+ Unified Comparison Chart Generator
133
+
134
+ Usage:
135
+ tsx generate_unified_comparison_chart.ts [options]
136
+
137
+ Options:
138
+ --data FILE LP candle export JSON file
139
+ --file FILE Alias for --data
140
+ --output FILE Output HTML file
141
+ --quiet Suppress console output
142
+ --help Show this help
143
+
144
+ Notes:
145
+ - If --data is omitted, the newest lp_pool_*.json under market_adapter/data/lp is used.
146
+ - Accepts any candle JSON: flat [[ts,o,h,l,c,v],...], {candles: [...]}, or {data: [...]}.
147
+ - Separate from Kibana fetching — use fetch_lp_candles.ts to pull data first.
148
+ `);
149
+ }
150
+ // ── Main ───────────────────────────────────────────────────────────────────────
151
+ function parseArgs(argv) {
152
+ const cfg = {
153
+ dataFile: null,
154
+ outFile: null,
155
+ quiet: false,
156
+ help: false,
157
+ };
158
+ for (let i = 0; i < argv.length; i++) {
159
+ const arg = argv[i];
160
+ if ((arg === '--data' || arg === '--file') && argv[i + 1]) {
161
+ cfg.dataFile = path.resolve(argv[++i]);
162
+ }
163
+ else if ((arg === '--output' || arg === '--out') && argv[i + 1]) {
164
+ cfg.outFile = path.resolve(argv[++i]);
165
+ }
166
+ else if (arg === '--quiet') {
167
+ cfg.quiet = true;
168
+ }
169
+ else if (arg === '--help' || arg === '-h') {
170
+ cfg.help = true;
171
+ }
172
+ }
173
+ return cfg;
174
+ }
175
+ function generateChart(options = {}) {
176
+ const logger = options.logger ?? console;
177
+ const dataFile = options.dataFile
178
+ ? path.resolve(options.dataFile)
179
+ : findLatestLpDataFile();
180
+ if (!dataFile) {
181
+ throw new Error(`No LP data file found. Use --data <path> or run fetch_lp_candles.ts first.`);
182
+ }
183
+ const strategies = Array.isArray(options.strategies) && options.strategies.length
184
+ ? options.strategies
185
+ : [...DEFAULT_STRATEGIES];
186
+ const { meta, candleObjects, candleArrays } = loadCandles(dataFile);
187
+ const closes = candleObjects.map(c => c.close);
188
+ const enrichedMeta = {
189
+ ...(meta || {}),
190
+ assetA: meta?.assetA || { symbol: path.basename(dataFile, '.json') },
191
+ assetB: meta?.assetB || { symbol: '' },
192
+ intervalSeconds: meta?.intervalSeconds || 3600,
193
+ fetchedAt: meta?.fetchedAt || new Date().toISOString(),
194
+ };
195
+ logger.log(`Data: ${path.relative(process.cwd(), dataFile)} (${candleObjects.length} candles)`);
196
+ const amaResults = [];
197
+ logger.log('');
198
+ for (const [index, strategy] of strategies.entries()) {
199
+ const values = calculateAMA(closes, strategy);
200
+ const metrics = calculateMetrics(values, candleObjects);
201
+ amaResults.push({ ...strategy, lineWidth: index === 0 ? 2 : 1.5, values });
202
+ logger.log(`${strategy.name}`);
203
+ logger.log(` ├─ Total Area: ${metrics.totalArea.toFixed(2)}%`);
204
+ logger.log(` ├─ Max UP: ${(metrics.maxDriftUp * 100).toFixed(2)}%`);
205
+ logger.log(` ├─ Max DOWN: ${(metrics.maxDriftDown * 100).toFixed(2)}%`);
206
+ logger.log(` └─ Band Factor: ${(metrics.maxDistance * 200).toFixed(2)}%\n`);
207
+ }
208
+ const outFile = options.outFile
209
+ ? path.resolve(options.outFile)
210
+ : defaultChartPath(enrichedMeta);
211
+ logger.log(`Generating chart (${amaResults.length} AMAs)...`);
212
+ const html = generateHTML(enrichedMeta, candleArrays, amaResults);
213
+ ensureDir(path.dirname(outFile));
214
+ fs.writeFileSync(outFile, html, 'utf8');
215
+ logger.log(`\nChart saved: ${path.relative(process.cwd(), outFile)}`);
216
+ logger.log(`Open: file://${outFile}`);
217
+ return { dataFile, outFile, amaResults, meta: enrichedMeta, candleArrays };
218
+ }
219
+ function run(argv = process.argv.slice(2)) {
220
+ const { dataFile, outFile, quiet, help } = parseArgs(argv);
221
+ if (help) {
222
+ showHelp();
223
+ return;
224
+ }
225
+ if (!quiet) {
226
+ console.log('════════════════════════════════════════════════');
227
+ console.log(' Unified Comparison Chart Generator');
228
+ console.log('════════════════════════════════════════════════');
229
+ console.log('');
230
+ }
231
+ try {
232
+ generateChart({
233
+ dataFile,
234
+ outFile,
235
+ logger: quiet ? { log() { } } : console,
236
+ });
237
+ }
238
+ catch (e) {
239
+ console.error('Error:', e?.message ?? e);
240
+ process.exitCode = 1;
241
+ }
242
+ }
243
+ if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {
244
+ run();
245
+ }
246
+ export { DEFAULT_STRATEGIES, generateChart, parseArgs, run, showHelp };
247
+ //# sourceMappingURL=generate_unified_comparison_chart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate_unified_comparison_chart.js","sourceRoot":"","sources":["../../../analysis/ama_fitting/generate_unified_comparison_chart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ declare function parseArgs(argv?: string[]): {
2
+ dataFile: string | null;
3
+ er: {
4
+ min: number | null;
5
+ max: number | null;
6
+ step: number | null;
7
+ count: number | null;
8
+ };
9
+ fast: {
10
+ min: number | null;
11
+ max: number | null;
12
+ step: number | null;
13
+ count: number | null;
14
+ };
15
+ slow: {
16
+ min: number | null;
17
+ max: number | null;
18
+ step: number | null;
19
+ count: number | null;
20
+ };
21
+ workers: number | null;
22
+ writeProfiles: boolean;
23
+ fixedEr: number | null;
24
+ fixedFast: number | null;
25
+ ama1Cap: number | null;
26
+ ama2Cap: number | null;
27
+ ama3Cap: number | null;
28
+ ama4Cap: number | null;
29
+ ama1Weight: number | null;
30
+ ama2Weight: number | null;
31
+ ama3Weight: number | null;
32
+ ama4Weight: number | null;
33
+ };
34
+ export { parseArgs };
35
+ //# sourceMappingURL=optimizer_high_resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimizer_high_resolution.d.ts","sourceRoot":"","sources":["../../../analysis/ama_fitting/optimizer_high_resolution.ts"],"names":[],"mappings":"AA4HA,iBAAS,SAAS,CAAC,IAAI,WAAwB;cAG7B,MAAM,GAAG,IAAI;QACnB;QAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;UACnF;QAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;UACrF;QAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;aAClF,MAAM,GAAG,IAAI;mBACP,OAAO;aACb,MAAM,GAAG,IAAI;eACX,MAAM,GAAG,IAAI;aACf,MAAM,GAAG,IAAI;aACb,MAAM,GAAG,IAAI;aACb,MAAM,GAAG,IAAI;aACb,MAAM,GAAG,IAAI;gBACV,MAAM,GAAG,IAAI;gBACb,MAAM,GAAG,IAAI;gBACb,MAAM,GAAG,IAAI;gBACb,MAAM,GAAG,IAAI;EA6DhC;AA2kBD,OAAO,EAAE,SAAS,EAAE,CAAA"}