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.
- package/CHANGELOG.md +6 -0
- package/analysis/README.md +43 -43
- package/analysis/ama_fitting/README.md +8 -8
- package/analysis/ama_fitting/package.json +1 -1
- package/analysis/bot_fitting/README.md +4 -4
- package/analysis/bot_fitting/backtest_ama_sweep.ts +1 -1
- package/analysis/bot_usage/discover_bot_accounts.ts +11 -11
- package/analysis/tradingview/README.md +4 -4
- package/analysis/trend_detection/DYNAMIC_WEIGHT_RESEARCH.md +2 -2
- package/analysis/trend_detection/SIGNAL_DOCUMENTATION.md +1 -1
- package/analysis/trend_detection/package.json +1 -1
- package/claw/README.md +45 -45
- package/claw/docs/AI_BOT_LIBRARY_API.md +6 -6
- package/claw/examples/short_mpa_bts_strategy.ts +3 -3
- package/claw/package.json +21 -21
- package/claw/runtimes/openclaw-plugin/openclaw.plugin.json +1 -1
- package/claw/runtimes/openclaw-plugin/package.json +1 -1
- package/claw/scripts/claw_bridge.ts +2 -2
- package/claw/scripts/claw_skill_md.ts +1 -1
- package/claw/skills/launcher-ops/references/launcher-workflow.md +5 -5
- package/claw/skills/margin-trading/references/honest-asset-list.md +1 -1
- package/claw/skills/memu-memory/SKILL.md +3 -3
- package/claw/tests/test_claw_mcp_transport.ts +2 -2
- package/dist/analysis/ama_fitting/analyze_ama_price_changes.d.ts +3 -0
- package/dist/analysis/ama_fitting/analyze_ama_price_changes.d.ts.map +1 -0
- package/dist/analysis/ama_fitting/analyze_ama_price_changes.js +148 -0
- package/dist/analysis/ama_fitting/analyze_ama_price_changes.js.map +1 -0
- package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.d.ts +12 -0
- package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.d.ts.map +1 -0
- package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js +389 -0
- package/dist/analysis/ama_fitting/analyze_lambda_vs_slow.js.map +1 -0
- package/dist/analysis/ama_fitting/calibrate_convergence_er.d.ts +3 -0
- package/dist/analysis/ama_fitting/calibrate_convergence_er.d.ts.map +1 -0
- package/dist/analysis/ama_fitting/calibrate_convergence_er.js +200 -0
- package/dist/analysis/ama_fitting/calibrate_convergence_er.js.map +1 -0
- package/dist/analysis/ama_fitting/fetch_lp_candles.d.ts +3 -0
- package/dist/analysis/ama_fitting/fetch_lp_candles.d.ts.map +1 -0
- package/dist/analysis/ama_fitting/fetch_lp_candles.js +213 -0
- package/dist/analysis/ama_fitting/fetch_lp_candles.js.map +1 -0
- package/dist/analysis/ama_fitting/generate_unified_comparison_chart.d.ts +25 -0
- package/dist/analysis/ama_fitting/generate_unified_comparison_chart.d.ts.map +1 -0
- package/dist/analysis/ama_fitting/generate_unified_comparison_chart.js +247 -0
- package/dist/analysis/ama_fitting/generate_unified_comparison_chart.js.map +1 -0
- package/dist/analysis/ama_fitting/optimizer_high_resolution.d.ts +35 -0
- package/dist/analysis/ama_fitting/optimizer_high_resolution.d.ts.map +1 -0
- package/dist/analysis/ama_fitting/optimizer_high_resolution.js +782 -0
- package/dist/analysis/ama_fitting/optimizer_high_resolution.js.map +1 -0
- package/dist/analysis/analyze_derivatives.d.ts +86 -0
- package/dist/analysis/analyze_derivatives.d.ts.map +1 -0
- package/dist/analysis/analyze_derivatives.js +285 -0
- package/dist/analysis/analyze_derivatives.js.map +1 -0
- package/dist/analysis/analyze_dynamic_weight.d.ts +14 -0
- package/dist/analysis/analyze_dynamic_weight.d.ts.map +1 -0
- package/dist/analysis/analyze_dynamic_weight.js +197 -0
- package/dist/analysis/analyze_dynamic_weight.js.map +1 -0
- package/dist/analysis/analyze_kalman.d.ts +13 -0
- package/dist/analysis/analyze_kalman.d.ts.map +1 -0
- package/dist/analysis/analyze_kalman.js +118 -0
- package/dist/analysis/analyze_kalman.js.map +1 -0
- package/dist/analysis/analyze_regime.d.ts +20 -0
- package/dist/analysis/analyze_regime.d.ts.map +1 -0
- package/dist/analysis/analyze_regime.js +139 -0
- package/dist/analysis/analyze_regime.js.map +1 -0
- package/dist/analysis/analyze_regime_windows.d.ts +19 -0
- package/dist/analysis/analyze_regime_windows.d.ts.map +1 -0
- package/dist/analysis/analyze_regime_windows.js +414 -0
- package/dist/analysis/analyze_regime_windows.js.map +1 -0
- package/dist/analysis/analyze_risk_profile.d.ts +3 -0
- package/dist/analysis/analyze_risk_profile.d.ts.map +1 -0
- package/dist/analysis/analyze_risk_profile.js +186 -0
- package/dist/analysis/analyze_risk_profile.js.map +1 -0
- package/dist/analysis/analyze_trade_heatmap.d.ts +3 -0
- package/dist/analysis/analyze_trade_heatmap.d.ts.map +1 -0
- package/dist/analysis/analyze_trade_heatmap.js +358 -0
- package/dist/analysis/analyze_trade_heatmap.js.map +1 -0
- package/dist/analysis/analyze_volatility.d.ts +22 -0
- package/dist/analysis/analyze_volatility.d.ts.map +1 -0
- package/dist/analysis/analyze_volatility.js +165 -0
- package/dist/analysis/analyze_volatility.js.map +1 -0
- package/dist/analysis/bot_fitting/backtest_ama_sweep.d.ts +91 -0
- package/dist/analysis/bot_fitting/backtest_ama_sweep.d.ts.map +1 -0
- package/dist/analysis/bot_fitting/backtest_ama_sweep.js +792 -0
- package/dist/analysis/bot_fitting/backtest_ama_sweep.js.map +1 -0
- package/dist/analysis/bot_fitting/backtest_bot_fitting.d.ts +2 -0
- package/dist/analysis/bot_fitting/backtest_bot_fitting.d.ts.map +1 -0
- package/dist/analysis/bot_fitting/backtest_bot_fitting.js +380 -0
- package/dist/analysis/bot_fitting/backtest_bot_fitting.js.map +1 -0
- package/dist/analysis/bot_fitting/shared_utils.d.ts +26 -0
- package/dist/analysis/bot_fitting/shared_utils.d.ts.map +1 -0
- package/dist/analysis/bot_fitting/shared_utils.js +42 -0
- package/dist/analysis/bot_fitting/shared_utils.js.map +1 -0
- package/dist/analysis/bot_key_utils.d.ts +11 -0
- package/dist/analysis/bot_key_utils.d.ts.map +1 -0
- package/dist/analysis/bot_key_utils.js +153 -0
- package/dist/analysis/bot_key_utils.js.map +1 -0
- package/dist/analysis/bot_usage/discover_bot_accounts.d.ts +3 -0
- package/dist/analysis/bot_usage/discover_bot_accounts.d.ts.map +1 -0
- package/dist/analysis/bot_usage/discover_bot_accounts.js +499 -0
- package/dist/analysis/bot_usage/discover_bot_accounts.js.map +1 -0
- package/dist/analysis/bot_usage/kibana_bot_queries.d.ts +531 -0
- package/dist/analysis/bot_usage/kibana_bot_queries.d.ts.map +1 -0
- package/dist/analysis/bot_usage/kibana_bot_queries.js +399 -0
- package/dist/analysis/bot_usage/kibana_bot_queries.js.map +1 -0
- package/dist/analysis/chart_css.d.ts +17 -0
- package/dist/analysis/chart_css.d.ts.map +1 -0
- package/dist/analysis/chart_css.js +49 -0
- package/dist/analysis/chart_css.js.map +1 -0
- package/dist/analysis/chart_ui.d.ts +45 -0
- package/dist/analysis/chart_ui.d.ts.map +1 -0
- package/dist/analysis/chart_ui.js +97 -0
- package/dist/analysis/chart_ui.js.map +1 -0
- package/dist/analysis/chart_utils.d.ts +27 -0
- package/dist/analysis/chart_utils.d.ts.map +1 -0
- package/dist/analysis/chart_utils.js +153 -0
- package/dist/analysis/chart_utils.js.map +1 -0
- package/dist/analysis/derivative_chart_generator.d.ts +12 -0
- package/dist/analysis/derivative_chart_generator.d.ts.map +1 -0
- package/dist/analysis/derivative_chart_generator.js +891 -0
- package/dist/analysis/derivative_chart_generator.js.map +1 -0
- package/dist/analysis/math_utils.d.ts +22 -0
- package/dist/analysis/math_utils.d.ts.map +1 -0
- package/dist/analysis/math_utils.js +43 -0
- package/dist/analysis/math_utils.js.map +1 -0
- package/dist/analysis/price_sources.d.ts +40 -0
- package/dist/analysis/price_sources.d.ts.map +1 -0
- package/dist/analysis/price_sources.js +94 -0
- package/dist/analysis/price_sources.js.map +1 -0
- package/dist/analysis/resolve_source.d.ts +25 -0
- package/dist/analysis/resolve_source.d.ts.map +1 -0
- package/dist/analysis/resolve_source.js +69 -0
- package/dist/analysis/resolve_source.js.map +1 -0
- package/dist/analysis/trade_profitability.d.ts +115 -0
- package/dist/analysis/trade_profitability.d.ts.map +1 -0
- package/dist/analysis/trade_profitability.js +1240 -0
- package/dist/analysis/trade_profitability.js.map +1 -0
- package/dist/analysis/tradingview/analyze_tradingview.d.ts +31 -0
- package/dist/analysis/tradingview/analyze_tradingview.d.ts.map +1 -0
- package/dist/analysis/tradingview/analyze_tradingview.js +146 -0
- package/dist/analysis/tradingview/analyze_tradingview.js.map +1 -0
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts +5 -0
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.d.ts.map +1 -0
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js +1714 -0
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js.map +1 -0
- package/dist/analysis/trend_detection/derivative_analyzer.d.ts +247 -0
- package/dist/analysis/trend_detection/derivative_analyzer.d.ts.map +1 -0
- package/dist/analysis/trend_detection/derivative_analyzer.js +901 -0
- package/dist/analysis/trend_detection/derivative_analyzer.js.map +1 -0
- package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts +3 -0
- package/dist/analysis/trend_detection/dynamic_weight_chart_generator.d.ts.map +1 -0
- package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js +1361 -0
- package/dist/analysis/trend_detection/dynamic_weight_chart_generator.js.map +1 -0
- package/dist/analysis/trend_detection/hurst_analyzer.d.ts +6 -0
- package/dist/analysis/trend_detection/hurst_analyzer.d.ts.map +1 -0
- package/dist/analysis/trend_detection/hurst_analyzer.js +7 -0
- package/dist/analysis/trend_detection/hurst_analyzer.js.map +1 -0
- package/dist/analysis/trend_detection/kalman_chart_generator.d.ts +3 -0
- package/dist/analysis/trend_detection/kalman_chart_generator.d.ts.map +1 -0
- package/dist/analysis/trend_detection/kalman_chart_generator.js +360 -0
- package/dist/analysis/trend_detection/kalman_chart_generator.js.map +1 -0
- package/dist/analysis/trend_detection/kalman_trend_analyzer.d.ts +8 -0
- package/dist/analysis/trend_detection/kalman_trend_analyzer.d.ts.map +1 -0
- package/dist/analysis/trend_detection/kalman_trend_analyzer.js +8 -0
- package/dist/analysis/trend_detection/kalman_trend_analyzer.js.map +1 -0
- package/dist/analysis/trend_detection/kalman_velocity_smoothing.d.ts +6 -0
- package/dist/analysis/trend_detection/kalman_velocity_smoothing.d.ts.map +1 -0
- package/dist/analysis/trend_detection/kalman_velocity_smoothing.js +7 -0
- package/dist/analysis/trend_detection/kalman_velocity_smoothing.js.map +1 -0
- package/dist/analysis/trend_detection/permutation_entropy_analyzer.d.ts +6 -0
- package/dist/analysis/trend_detection/permutation_entropy_analyzer.d.ts.map +1 -0
- package/dist/analysis/trend_detection/permutation_entropy_analyzer.js +7 -0
- package/dist/analysis/trend_detection/permutation_entropy_analyzer.js.map +1 -0
- package/dist/analysis/trend_detection/regime_chart_generator.d.ts +3 -0
- package/dist/analysis/trend_detection/regime_chart_generator.d.ts.map +1 -0
- package/dist/analysis/trend_detection/regime_chart_generator.js +310 -0
- package/dist/analysis/trend_detection/regime_chart_generator.js.map +1 -0
- package/dist/analysis/trend_detection/tests/test_kalman_trend.d.ts +2 -0
- package/dist/analysis/trend_detection/tests/test_kalman_trend.d.ts.map +1 -0
- package/dist/analysis/trend_detection/tests/test_kalman_trend.js +128 -0
- package/dist/analysis/trend_detection/tests/test_kalman_trend.js.map +1 -0
- package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.d.ts +2 -0
- package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.d.ts.map +1 -0
- package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.js +37 -0
- package/dist/analysis/trend_detection/tests/test_kalman_velocity_smoothing.js.map +1 -0
- package/dist/analysis/trend_detection/volatility_chart_generator.d.ts +3 -0
- package/dist/analysis/trend_detection/volatility_chart_generator.d.ts.map +1 -0
- package/dist/analysis/trend_detection/volatility_chart_generator.js +646 -0
- package/dist/analysis/trend_detection/volatility_chart_generator.js.map +1 -0
- package/dist/bot.js +1 -1
- package/dist/bot.js.map +1 -1
- package/dist/market_adapter/ama_signal_runner.js +1 -1
- package/dist/market_adapter/ama_signal_runner.js.map +1 -1
- package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js +1 -1
- package/dist/scripts/generate_lp_chart.js +1 -1
- package/dist/scripts/test-credit-renewal.js +1 -1
- package/docs/DEXBOT_COMPARISON.md +3 -3
- package/docs/EVOLUTION.md +5 -4
- package/docs/FUND_MOVEMENT_AND_ACCOUNTING.md +1 -1
- package/docs/GRID_RECALCULATION.md +2 -2
- package/docs/README.md +1 -1
- package/market_adapter/README.md +23 -23
- package/package.json +17 -21
- package/scripts/README.md +12 -12
- package/scripts/bots +5 -7
- package/scripts/clear-market-adapter.sh +1 -1
- package/scripts/dexbot +5 -7
- package/scripts/keys +5 -7
- package/scripts/pm2 +5 -7
- package/scripts/unlock +5 -7
- 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 @@
|
|
|
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"}
|