dexbot 1.4.17 → 1.4.19

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 (247) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +1 -0
  3. package/analysis/README.md +43 -43
  4. package/analysis/ama_fitting/README.md +8 -8
  5. package/analysis/ama_fitting/package.json +1 -1
  6. package/analysis/bot_fitting/README.md +4 -4
  7. package/analysis/bot_fitting/backtest_ama_sweep.ts +1 -1
  8. package/analysis/bot_usage/discover_bot_accounts.ts +11 -11
  9. package/analysis/tradingview/README.md +4 -4
  10. package/analysis/trend_detection/DYNAMIC_WEIGHT_RESEARCH.md +2 -2
  11. package/analysis/trend_detection/SIGNAL_DOCUMENTATION.md +1 -1
  12. package/analysis/trend_detection/package.json +1 -1
  13. package/claw/README.md +45 -45
  14. package/claw/docs/AI_BOT_LIBRARY_API.md +6 -6
  15. package/claw/examples/short_mpa_bts_strategy.ts +3 -3
  16. package/claw/package.json +21 -21
  17. package/claw/runtimes/openclaw-plugin/openclaw.plugin.json +1 -1
  18. package/claw/runtimes/openclaw-plugin/package.json +1 -1
  19. package/claw/scripts/claw_bridge.ts +2 -2
  20. package/claw/scripts/claw_skill_md.ts +1 -1
  21. package/claw/skills/launcher-ops/references/launcher-workflow.md +5 -5
  22. package/claw/skills/margin-trading/references/honest-asset-list.md +1 -1
  23. package/claw/skills/memu-memory/SKILL.md +3 -3
  24. package/claw/tests/test_claw_mcp_transport.ts +2 -2
  25. package/dist/analysis/ama_fitting/analyze_ama_price_changes.d.ts +3 -0
  26. package/dist/analysis/ama_fitting/analyze_ama_price_changes.d.ts.map +1 -0
  27. package/dist/analysis/ama_fitting/analyze_ama_price_changes.js +148 -0
  28. package/dist/analysis/ama_fitting/analyze_ama_price_changes.js.map +1 -0
  29. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.d.ts +12 -0
  30. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.d.ts.map +1 -0
  31. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js +389 -0
  32. package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js.map +1 -0
  33. package/dist/analysis/ama_fitting/calibrate_convergence_er.d.ts +3 -0
  34. package/dist/analysis/ama_fitting/calibrate_convergence_er.d.ts.map +1 -0
  35. package/dist/analysis/ama_fitting/calibrate_convergence_er.js +200 -0
  36. package/dist/analysis/ama_fitting/calibrate_convergence_er.js.map +1 -0
  37. package/dist/analysis/ama_fitting/fetch_lp_candles.d.ts +3 -0
  38. package/dist/analysis/ama_fitting/fetch_lp_candles.d.ts.map +1 -0
  39. package/dist/analysis/ama_fitting/fetch_lp_candles.js +213 -0
  40. package/dist/analysis/ama_fitting/fetch_lp_candles.js.map +1 -0
  41. package/dist/analysis/ama_fitting/generate_unified_comparison_chart.d.ts +25 -0
  42. package/dist/analysis/ama_fitting/generate_unified_comparison_chart.d.ts.map +1 -0
  43. package/dist/analysis/ama_fitting/generate_unified_comparison_chart.js +247 -0
  44. package/dist/analysis/ama_fitting/generate_unified_comparison_chart.js.map +1 -0
  45. package/dist/analysis/ama_fitting/optimizer_high_resolution.d.ts +35 -0
  46. package/dist/analysis/ama_fitting/optimizer_high_resolution.d.ts.map +1 -0
  47. package/dist/analysis/ama_fitting/optimizer_high_resolution.js +782 -0
  48. package/dist/analysis/ama_fitting/optimizer_high_resolution.js.map +1 -0
  49. package/dist/analysis/analyze_derivatives.d.ts +86 -0
  50. package/dist/analysis/analyze_derivatives.d.ts.map +1 -0
  51. package/dist/analysis/analyze_derivatives.js +285 -0
  52. package/dist/analysis/analyze_derivatives.js.map +1 -0
  53. package/dist/analysis/analyze_dynamic_weight.d.ts +14 -0
  54. package/dist/analysis/analyze_dynamic_weight.d.ts.map +1 -0
  55. package/dist/analysis/analyze_dynamic_weight.js +197 -0
  56. package/dist/analysis/analyze_dynamic_weight.js.map +1 -0
  57. package/dist/analysis/analyze_kalman.d.ts +13 -0
  58. package/dist/analysis/analyze_kalman.d.ts.map +1 -0
  59. package/dist/analysis/analyze_kalman.js +118 -0
  60. package/dist/analysis/analyze_kalman.js.map +1 -0
  61. package/dist/analysis/analyze_regime.d.ts +20 -0
  62. package/dist/analysis/analyze_regime.d.ts.map +1 -0
  63. package/dist/analysis/analyze_regime.js +139 -0
  64. package/dist/analysis/analyze_regime.js.map +1 -0
  65. package/dist/analysis/analyze_regime_windows.d.ts +19 -0
  66. package/dist/analysis/analyze_regime_windows.d.ts.map +1 -0
  67. package/dist/analysis/analyze_regime_windows.js +414 -0
  68. package/dist/analysis/analyze_regime_windows.js.map +1 -0
  69. package/dist/analysis/analyze_risk_profile.d.ts +3 -0
  70. package/dist/analysis/analyze_risk_profile.d.ts.map +1 -0
  71. package/dist/analysis/analyze_risk_profile.js +186 -0
  72. package/dist/analysis/analyze_risk_profile.js.map +1 -0
  73. package/dist/analysis/analyze_trade_heatmap.d.ts +3 -0
  74. package/dist/analysis/analyze_trade_heatmap.d.ts.map +1 -0
  75. package/dist/analysis/analyze_trade_heatmap.js +358 -0
  76. package/dist/analysis/analyze_trade_heatmap.js.map +1 -0
  77. package/dist/analysis/analyze_volatility.d.ts +22 -0
  78. package/dist/analysis/analyze_volatility.d.ts.map +1 -0
  79. package/dist/analysis/analyze_volatility.js +165 -0
  80. package/dist/analysis/analyze_volatility.js.map +1 -0
  81. package/dist/analysis/bot_fitting/backtest_ama_sweep.d.ts +91 -0
  82. package/dist/analysis/bot_fitting/backtest_ama_sweep.d.ts.map +1 -0
  83. package/dist/analysis/bot_fitting/backtest_ama_sweep.js +792 -0
  84. package/dist/analysis/bot_fitting/backtest_ama_sweep.js.map +1 -0
  85. package/dist/analysis/bot_fitting/backtest_bot_fitting.d.ts +2 -0
  86. package/dist/analysis/bot_fitting/backtest_bot_fitting.d.ts.map +1 -0
  87. package/dist/analysis/bot_fitting/backtest_bot_fitting.js +380 -0
  88. package/dist/analysis/bot_fitting/backtest_bot_fitting.js.map +1 -0
  89. package/dist/analysis/bot_fitting/shared_utils.d.ts +26 -0
  90. package/dist/analysis/bot_fitting/shared_utils.d.ts.map +1 -0
  91. package/dist/analysis/bot_fitting/shared_utils.js +42 -0
  92. package/dist/analysis/bot_fitting/shared_utils.js.map +1 -0
  93. package/dist/analysis/bot_key_utils.d.ts +11 -0
  94. package/dist/analysis/bot_key_utils.d.ts.map +1 -0
  95. package/dist/analysis/bot_key_utils.js +153 -0
  96. package/dist/analysis/bot_key_utils.js.map +1 -0
  97. package/dist/analysis/bot_usage/discover_bot_accounts.d.ts +3 -0
  98. package/dist/analysis/bot_usage/discover_bot_accounts.d.ts.map +1 -0
  99. package/dist/analysis/bot_usage/discover_bot_accounts.js +499 -0
  100. package/dist/analysis/bot_usage/discover_bot_accounts.js.map +1 -0
  101. package/dist/analysis/bot_usage/kibana_bot_queries.d.ts +531 -0
  102. package/dist/analysis/bot_usage/kibana_bot_queries.d.ts.map +1 -0
  103. package/dist/analysis/bot_usage/kibana_bot_queries.js +399 -0
  104. package/dist/analysis/bot_usage/kibana_bot_queries.js.map +1 -0
  105. package/dist/analysis/chart_css.d.ts +17 -0
  106. package/dist/analysis/chart_css.d.ts.map +1 -0
  107. package/dist/analysis/chart_css.js +49 -0
  108. package/dist/analysis/chart_css.js.map +1 -0
  109. package/dist/analysis/chart_ui.d.ts +45 -0
  110. package/dist/analysis/chart_ui.d.ts.map +1 -0
  111. package/dist/analysis/chart_ui.js +97 -0
  112. package/dist/analysis/chart_ui.js.map +1 -0
  113. package/dist/analysis/chart_utils.d.ts +27 -0
  114. package/dist/analysis/chart_utils.d.ts.map +1 -0
  115. package/dist/analysis/chart_utils.js +153 -0
  116. package/dist/analysis/chart_utils.js.map +1 -0
  117. package/dist/analysis/derivative_chart_generator.d.ts +12 -0
  118. package/dist/analysis/derivative_chart_generator.d.ts.map +1 -0
  119. package/dist/analysis/derivative_chart_generator.js +891 -0
  120. package/dist/analysis/derivative_chart_generator.js.map +1 -0
  121. package/dist/analysis/math_utils.d.ts +22 -0
  122. package/dist/analysis/math_utils.d.ts.map +1 -0
  123. package/dist/analysis/math_utils.js +43 -0
  124. package/dist/analysis/math_utils.js.map +1 -0
  125. package/dist/analysis/price_sources.d.ts +40 -0
  126. package/dist/analysis/price_sources.d.ts.map +1 -0
  127. package/dist/analysis/price_sources.js +94 -0
  128. package/dist/analysis/price_sources.js.map +1 -0
  129. package/dist/analysis/resolve_source.d.ts +25 -0
  130. package/dist/analysis/resolve_source.d.ts.map +1 -0
  131. package/dist/analysis/resolve_source.js +69 -0
  132. package/dist/analysis/resolve_source.js.map +1 -0
  133. package/dist/analysis/trade_profitability.d.ts +115 -0
  134. package/dist/analysis/trade_profitability.d.ts.map +1 -0
  135. package/dist/analysis/trade_profitability.js +1240 -0
  136. package/dist/analysis/trade_profitability.js.map +1 -0
  137. package/dist/analysis/tradingview/analyze_tradingview.d.ts +31 -0
  138. package/dist/analysis/tradingview/analyze_tradingview.d.ts.map +1 -0
  139. package/dist/analysis/tradingview/analyze_tradingview.js +146 -0
  140. package/dist/analysis/tradingview/analyze_tradingview.js.map +1 -0
  141. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts +5 -0
  142. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts.map +1 -0
  143. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js +1714 -0
  144. package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js.map +1 -0
  145. package/dist/analysis/trend_detection/derivative_analyzer.d.ts +247 -0
  146. package/dist/analysis/trend_detection/derivative_analyzer.d.ts.map +1 -0
  147. package/dist/analysis/trend_detection/derivative_analyzer.js +901 -0
  148. package/dist/analysis/trend_detection/derivative_analyzer.js.map +1 -0
  149. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts +3 -0
  150. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts.map +1 -0
  151. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js +1361 -0
  152. package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js.map +1 -0
  153. package/dist/analysis/trend_detection/hurst_analyzer.d.ts +6 -0
  154. package/dist/analysis/trend_detection/hurst_analyzer.d.ts.map +1 -0
  155. package/dist/analysis/trend_detection/hurst_analyzer.js +7 -0
  156. package/dist/analysis/trend_detection/hurst_analyzer.js.map +1 -0
  157. package/dist/analysis/trend_detection/kalman_chart_generator.d.ts +3 -0
  158. package/dist/analysis/trend_detection/kalman_chart_generator.d.ts.map +1 -0
  159. package/dist/analysis/trend_detection/kalman_chart_generator.js +360 -0
  160. package/dist/analysis/trend_detection/kalman_chart_generator.js.map +1 -0
  161. package/dist/analysis/trend_detection/kalman_trend_analyzer.d.ts +8 -0
  162. package/dist/analysis/trend_detection/kalman_trend_analyzer.d.ts.map +1 -0
  163. package/dist/analysis/trend_detection/kalman_trend_analyzer.js +8 -0
  164. package/dist/analysis/trend_detection/kalman_trend_analyzer.js.map +1 -0
  165. package/dist/analysis/trend_detection/kalman_velocity_smoothing.d.ts +6 -0
  166. package/dist/analysis/trend_detection/kalman_velocity_smoothing.d.ts.map +1 -0
  167. package/dist/analysis/trend_detection/kalman_velocity_smoothing.js +7 -0
  168. package/dist/analysis/trend_detection/kalman_velocity_smoothing.js.map +1 -0
  169. package/dist/analysis/trend_detection/permutation_entropy_analyzer.d.ts +6 -0
  170. package/dist/analysis/trend_detection/permutation_entropy_analyzer.d.ts.map +1 -0
  171. package/dist/analysis/trend_detection/permutation_entropy_analyzer.js +7 -0
  172. package/dist/analysis/trend_detection/permutation_entropy_analyzer.js.map +1 -0
  173. package/dist/analysis/trend_detection/regime_chart_generator.d.ts +3 -0
  174. package/dist/analysis/trend_detection/regime_chart_generator.d.ts.map +1 -0
  175. package/dist/analysis/trend_detection/regime_chart_generator.js +310 -0
  176. package/dist/analysis/trend_detection/regime_chart_generator.js.map +1 -0
  177. package/dist/analysis/trend_detection/tests/test_kalman_trend.d.ts +2 -0
  178. package/dist/analysis/trend_detection/tests/test_kalman_trend.d.ts.map +1 -0
  179. package/dist/analysis/trend_detection/tests/test_kalman_trend.js +128 -0
  180. package/dist/analysis/trend_detection/tests/test_kalman_trend.js.map +1 -0
  181. package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.d.ts +2 -0
  182. package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.d.ts.map +1 -0
  183. package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.js +37 -0
  184. package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.js.map +1 -0
  185. package/dist/analysis/trend_detection/volatility_chart_generator.d.ts +3 -0
  186. package/dist/analysis/trend_detection/volatility_chart_generator.d.ts.map +1 -0
  187. package/dist/analysis/trend_detection/volatility_chart_generator.js +646 -0
  188. package/dist/analysis/trend_detection/volatility_chart_generator.js.map +1 -0
  189. package/dist/bot.js +1 -1
  190. package/dist/bot.js.map +1 -1
  191. package/dist/market_adapter/ama_signal_runner.js +1 -1
  192. package/dist/market_adapter/ama_signal_runner.js.map +1 -1
  193. package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js +1 -1
  194. package/dist/modules/account_bots.d.ts +1 -0
  195. package/dist/modules/account_bots.d.ts.map +1 -1
  196. package/dist/modules/account_bots.js +27 -5
  197. package/dist/modules/account_bots.js.map +1 -1
  198. package/dist/modules/constants.d.ts +1 -0
  199. package/dist/modules/constants.d.ts.map +1 -1
  200. package/dist/modules/constants.js +12 -3
  201. package/dist/modules/constants.js.map +1 -1
  202. package/dist/modules/dexbot_class.d.ts +22 -0
  203. package/dist/modules/dexbot_class.d.ts.map +1 -1
  204. package/dist/modules/dexbot_class.js +27 -1
  205. package/dist/modules/dexbot_class.js.map +1 -1
  206. package/dist/modules/dexbot_cow_runtime.d.ts +48 -1
  207. package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
  208. package/dist/modules/dexbot_cow_runtime.js +168 -4
  209. package/dist/modules/dexbot_cow_runtime.js.map +1 -1
  210. package/dist/modules/order/grid_reconcile_internal.d.ts.map +1 -1
  211. package/dist/modules/order/grid_reconcile_internal.js +6 -27
  212. package/dist/modules/order/grid_reconcile_internal.js.map +1 -1
  213. package/dist/modules/order/strategy.d.ts.map +1 -1
  214. package/dist/modules/order/strategy.js +6 -15
  215. package/dist/modules/order/strategy.js.map +1 -1
  216. package/dist/modules/order/utils/math.d.ts +29 -1
  217. package/dist/modules/order/utils/math.d.ts.map +1 -1
  218. package/dist/modules/order/utils/math.js +46 -1
  219. package/dist/modules/order/utils/math.js.map +1 -1
  220. package/dist/modules/order/utils/system.d.ts +2 -0
  221. package/dist/modules/order/utils/system.d.ts.map +1 -1
  222. package/dist/modules/order/utils/system.js +30 -2
  223. package/dist/modules/order/utils/system.js.map +1 -1
  224. package/dist/modules/runtime_settings.d.ts +1 -0
  225. package/dist/modules/runtime_settings.d.ts.map +1 -1
  226. package/dist/modules/runtime_settings.js +13 -2
  227. package/dist/modules/runtime_settings.js.map +1 -1
  228. package/dist/scripts/generate_lp_chart.js +1 -1
  229. package/dist/scripts/test-credit-renewal.js +1 -1
  230. package/docs/DEXBOT_COMPARISON.md +3 -3
  231. package/docs/EVOLUTION.md +26 -95
  232. package/docs/FUND_MOVEMENT_AND_ACCOUNTING.md +1 -1
  233. package/docs/GRID_RECALCULATION.md +2 -2
  234. package/docs/LIFECYCLE.md +207 -0
  235. package/docs/README.md +9 -1
  236. package/docs/developer_guide.md +4 -3
  237. package/market_adapter/README.md +23 -23
  238. package/package.json +18 -21
  239. package/scripts/README.md +12 -12
  240. package/scripts/bots +5 -7
  241. package/scripts/clear-market-adapter.sh +1 -1
  242. package/scripts/dexbot +5 -7
  243. package/scripts/keys +5 -7
  244. package/scripts/pm2 +5 -7
  245. package/scripts/unlock +5 -7
  246. package/scripts/update.js +6 -7
  247. package/scripts/repo-stats.html +0 -480
@@ -0,0 +1,153 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { PATHS } from '../modules/paths.js';
4
+ import { getStorage } from '../modules/storage/index.js';
5
+ const { readJSON } = getStorage();
6
+ import { MARKET_ADAPTER } from '../modules/constants.js';
7
+ import { loadMarketProfiles } from './tradingview/tradingview_uplot_chart_generator.js';
8
+ 'use strict';
9
+ const DEFAULT_AMA_KEY = String(MARKET_ADAPTER.DEFAULT_AMA_KEY).toUpperCase();
10
+ const BUILTIN_AMAS = MARKET_ADAPTER.AMAS;
11
+ const AMA_KEYWORDS = new Set(['ama', 'ama1', 'ama2', 'ama3', 'ama4']);
12
+ function loadBotSettings(filePath = PATHS.PROFILES.BOTS_JSON) {
13
+ if (!filePath || !fs.existsSync(filePath))
14
+ return null;
15
+ try {
16
+ return readJSON(filePath);
17
+ }
18
+ catch (_) {
19
+ return null;
20
+ }
21
+ }
22
+ function sanitizeKey(source) {
23
+ if (!source)
24
+ return 'bot';
25
+ return String(source).trim().toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-+|-+$/g, '') || 'bot';
26
+ }
27
+ function computeBotKey(bot, index) {
28
+ if (bot && bot.name) {
29
+ return sanitizeKey(bot.name);
30
+ }
31
+ return `${sanitizeKey(bot?.name || `bot-${index}`)}-${index}`;
32
+ }
33
+ function resolveBotKey(botName, filePath = PATHS.PROFILES.BOTS_JSON) {
34
+ if (!botName)
35
+ return null;
36
+ const settings = loadBotSettings(filePath);
37
+ const entries = Array.isArray(settings?.bots) ? settings.bots : [];
38
+ const sanitized = sanitizeKey(botName);
39
+ const entry = entries.find((b) => sanitizeKey(b.name) === sanitized);
40
+ if (!entry)
41
+ return null;
42
+ return computeBotKey(entry, entries.indexOf(entry));
43
+ }
44
+ function candleFileForBot(botKey, intervalLabel, dataDir = PATHS.MARKET_ADAPTER.DATA_DIR) {
45
+ return path.join(dataDir, `market_adapter_${botKey}_${intervalLabel}.json`);
46
+ }
47
+ function resolveCandleFile(botKey, intervalLabel, dataDir = PATHS.MARKET_ADAPTER.DATA_DIR, botsFile = PATHS.PROFILES.BOTS_JSON) {
48
+ const directPath = candleFileForBot(botKey, intervalLabel, dataDir);
49
+ if (fs.existsSync(directPath))
50
+ return directPath;
51
+ const resolved = resolveBotKey(botKey, botsFile);
52
+ if (resolved) {
53
+ const resolvedPath = candleFileForBot(resolved, intervalLabel, dataDir);
54
+ if (fs.existsSync(resolvedPath))
55
+ return resolvedPath;
56
+ }
57
+ return null;
58
+ }
59
+ function loadBotMeta(botKey, filePath = PATHS.PROFILES.BOTS_JSON) {
60
+ const settings = loadBotSettings(filePath);
61
+ const entries = Array.isArray(settings?.bots) ? settings.bots : [];
62
+ if (!botKey)
63
+ return null;
64
+ const normalizedKey = String(botKey).toLowerCase();
65
+ const exact = entries.find((bot, index) => computeBotKey(bot, index) === normalizedKey);
66
+ if (exact)
67
+ return exact;
68
+ const loose = entries.find((bot) => sanitizeKey(bot?.name) === normalizedKey.replace(/-\d+$/, ''));
69
+ return loose || null;
70
+ }
71
+ function resolveAmaConfig(botKey) {
72
+ const botMeta = loadBotMeta(botKey);
73
+ if (!botMeta)
74
+ return { ...MARKET_ADAPTER.AMAS.AMA3, erSmoothPeriod: 0 };
75
+ const rawGridPrice = String(botMeta?.gridPrice || '').trim().toLowerCase();
76
+ const isAmaKeyword = AMA_KEYWORDS.has(rawGridPrice);
77
+ // erSmoothPeriod: bot.ama inline > global default (matches production resolveErSmoothPeriodForBot)
78
+ const botAmaInline = (botMeta?.ama && typeof botMeta.ama === 'object') ? botMeta.ama : null;
79
+ const rawErSmooth = botAmaInline && Object.prototype.hasOwnProperty.call(botAmaInline, 'erSmoothPeriod')
80
+ ? Number(botAmaInline.erSmoothPeriod)
81
+ : Number(MARKET_ADAPTER.AMA_ER_SMOOTH_FAST_PERIOD);
82
+ const erSmoothPeriod = rawErSmooth === 0 ? 0
83
+ : (Number.isFinite(rawErSmooth) && rawErSmooth >= 1 ? rawErSmooth : 0);
84
+ // Priority: inline bot.ama overrides market profile for analysis visibility.
85
+ // Production inverts this (profiles first, inline as fallback — market_adapter.ts:694-730).
86
+ if (botAmaInline) {
87
+ const cfg = {
88
+ erPeriod: Number(botAmaInline.erPeriod),
89
+ fastPeriod: Number(botAmaInline.fastPeriod),
90
+ slowPeriod: Number(botAmaInline.slowPeriod),
91
+ erSmoothPeriod,
92
+ };
93
+ if (isAmaKeyword) {
94
+ const key = rawGridPrice === 'ama' ? DEFAULT_AMA_KEY : rawGridPrice.toUpperCase();
95
+ const preset = BUILTIN_AMAS[key];
96
+ if (preset) {
97
+ if (!Number.isFinite(cfg.erPeriod) || cfg.erPeriod < 1)
98
+ cfg.erPeriod = preset.erPeriod;
99
+ if (!Number.isFinite(cfg.fastPeriod) || cfg.fastPeriod < 1)
100
+ cfg.fastPeriod = preset.fastPeriod;
101
+ if (!Number.isFinite(cfg.slowPeriod) || cfg.slowPeriod < 1)
102
+ cfg.slowPeriod = preset.slowPeriod;
103
+ }
104
+ }
105
+ if (!Number.isFinite(cfg.erPeriod) || cfg.erPeriod < 1)
106
+ cfg.erPeriod = MARKET_ADAPTER.AMAS.AMA3.erPeriod;
107
+ if (!Number.isFinite(cfg.fastPeriod) || cfg.fastPeriod < 1)
108
+ cfg.fastPeriod = MARKET_ADAPTER.AMAS.AMA3.fastPeriod;
109
+ if (!Number.isFinite(cfg.slowPeriod) || cfg.slowPeriod < 1)
110
+ cfg.slowPeriod = MARKET_ADAPTER.AMAS.AMA3.slowPeriod;
111
+ if (cfg.fastPeriod > cfg.slowPeriod) {
112
+ const t = cfg.fastPeriod;
113
+ cfg.fastPeriod = cfg.slowPeriod;
114
+ cfg.slowPeriod = t;
115
+ }
116
+ return cfg;
117
+ }
118
+ const marketProfiles = loadMarketProfiles();
119
+ const selectedProfile = marketProfiles?.profiles
120
+ ? marketProfiles.profiles.find((entry) => String(entry.assetA) === String(botMeta.assetA) &&
121
+ String(entry.assetB) === String(botMeta.assetB) &&
122
+ Number(entry.intervalSeconds) === 3600)
123
+ : null;
124
+ if (selectedProfile?.amas) {
125
+ const fallbackKey = selectedProfile.defaultAma || DEFAULT_AMA_KEY;
126
+ const requestedKey = isAmaKeyword
127
+ ? (rawGridPrice === 'ama' ? fallbackKey : rawGridPrice.toUpperCase())
128
+ : fallbackKey;
129
+ const fromProfile = selectedProfile.amas[requestedKey] || selectedProfile.amas[fallbackKey];
130
+ const fromBuiltin = BUILTIN_AMAS[requestedKey] || BUILTIN_AMAS[fallbackKey];
131
+ const base = fromProfile || fromBuiltin;
132
+ if (base) {
133
+ return { erPeriod: base.erPeriod, fastPeriod: base.fastPeriod, slowPeriod: base.slowPeriod, erSmoothPeriod };
134
+ }
135
+ }
136
+ const key = isAmaKeyword
137
+ ? (rawGridPrice === 'ama' ? DEFAULT_AMA_KEY : rawGridPrice.toUpperCase())
138
+ : DEFAULT_AMA_KEY;
139
+ const builtin = BUILTIN_AMAS[key] || MARKET_ADAPTER.AMAS.AMA3;
140
+ return { erPeriod: builtin.erPeriod, fastPeriod: builtin.fastPeriod, slowPeriod: builtin.slowPeriod, erSmoothPeriod };
141
+ }
142
+ function resolveAmaKey(botKey) {
143
+ const botMeta = loadBotMeta(botKey);
144
+ if (!botMeta)
145
+ return 'AMA3';
146
+ const rawGridPrice = String(botMeta?.gridPrice || '').trim().toLowerCase();
147
+ if (AMA_KEYWORDS.has(rawGridPrice)) {
148
+ return rawGridPrice === 'ama' ? DEFAULT_AMA_KEY : rawGridPrice.toUpperCase();
149
+ }
150
+ return 'AMA3';
151
+ }
152
+ export { loadBotSettings, sanitizeKey, computeBotKey, resolveBotKey, candleFileForBot, resolveCandleFile, loadBotMeta, resolveAmaConfig, resolveAmaKey };
153
+ //# sourceMappingURL=bot_key_utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bot_key_utils.js","sourceRoot":"","sources":["../../analysis/bot_key_utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=discover_bot_accounts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discover_bot_accounts.d.ts","sourceRoot":"","sources":["../../../analysis/bot_usage/discover_bot_accounts.ts"],"names":[],"mappings":""}