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.
- package/CHANGELOG.md +17 -0
- package/README.md +1 -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/modules/account_bots.d.ts +1 -0
- package/dist/modules/account_bots.d.ts.map +1 -1
- package/dist/modules/account_bots.js +27 -5
- package/dist/modules/account_bots.js.map +1 -1
- package/dist/modules/constants.d.ts +1 -0
- package/dist/modules/constants.d.ts.map +1 -1
- package/dist/modules/constants.js +12 -3
- package/dist/modules/constants.js.map +1 -1
- package/dist/modules/dexbot_class.d.ts +22 -0
- package/dist/modules/dexbot_class.d.ts.map +1 -1
- package/dist/modules/dexbot_class.js +27 -1
- package/dist/modules/dexbot_class.js.map +1 -1
- package/dist/modules/dexbot_cow_runtime.d.ts +48 -1
- package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_cow_runtime.js +168 -4
- package/dist/modules/dexbot_cow_runtime.js.map +1 -1
- package/dist/modules/order/grid_reconcile_internal.d.ts.map +1 -1
- package/dist/modules/order/grid_reconcile_internal.js +6 -27
- package/dist/modules/order/grid_reconcile_internal.js.map +1 -1
- package/dist/modules/order/strategy.d.ts.map +1 -1
- package/dist/modules/order/strategy.js +6 -15
- package/dist/modules/order/strategy.js.map +1 -1
- package/dist/modules/order/utils/math.d.ts +29 -1
- package/dist/modules/order/utils/math.d.ts.map +1 -1
- package/dist/modules/order/utils/math.js +46 -1
- package/dist/modules/order/utils/math.js.map +1 -1
- package/dist/modules/order/utils/system.d.ts +2 -0
- package/dist/modules/order/utils/system.d.ts.map +1 -1
- package/dist/modules/order/utils/system.js +30 -2
- package/dist/modules/order/utils/system.js.map +1 -1
- package/dist/modules/runtime_settings.d.ts +1 -0
- package/dist/modules/runtime_settings.d.ts.map +1 -1
- package/dist/modules/runtime_settings.js +13 -2
- package/dist/modules/runtime_settings.js.map +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 +26 -95
- package/docs/FUND_MOVEMENT_AND_ACCOUNTING.md +1 -1
- package/docs/GRID_RECALCULATION.md +2 -2
- package/docs/LIFECYCLE.md +207 -0
- package/docs/README.md +9 -1
- package/docs/developer_guide.md +4 -3
- package/market_adapter/README.md +23 -23
- package/package.json +18 -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
- package/scripts/repo-stats.html +0 -480
package/scripts/repo-stats.html
DELETED
|
@@ -1,480 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>DEXBot2 Repository Statistics</title>
|
|
7
|
-
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
|
|
8
|
-
<style>
|
|
9
|
-
* {
|
|
10
|
-
margin: 0;
|
|
11
|
-
padding: 0;
|
|
12
|
-
box-sizing: border-box;
|
|
13
|
-
}
|
|
14
|
-
body {
|
|
15
|
-
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
|
16
|
-
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
17
|
-
min-height: 100vh;
|
|
18
|
-
padding: 40px 20px;
|
|
19
|
-
}
|
|
20
|
-
.container {
|
|
21
|
-
max-width: 1400px;
|
|
22
|
-
margin: 0 auto;
|
|
23
|
-
}
|
|
24
|
-
.header {
|
|
25
|
-
text-align: center;
|
|
26
|
-
color: white;
|
|
27
|
-
margin-bottom: 40px;
|
|
28
|
-
}
|
|
29
|
-
.header h1 {
|
|
30
|
-
font-size: 3em;
|
|
31
|
-
margin-bottom: 10px;
|
|
32
|
-
text-shadow: 2px 2px 4px rgba(0,0,0,0.3);
|
|
33
|
-
}
|
|
34
|
-
.header p {
|
|
35
|
-
font-size: 1.3em;
|
|
36
|
-
opacity: 0.9;
|
|
37
|
-
}
|
|
38
|
-
.stats-grid {
|
|
39
|
-
display: grid;
|
|
40
|
-
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
|
41
|
-
gap: 20px;
|
|
42
|
-
margin-bottom: 40px;
|
|
43
|
-
}
|
|
44
|
-
.stat-card {
|
|
45
|
-
background: white;
|
|
46
|
-
border-radius: 12px;
|
|
47
|
-
padding: 25px;
|
|
48
|
-
box-shadow: 0 10px 30px rgba(0,0,0,0.2);
|
|
49
|
-
text-align: center;
|
|
50
|
-
}
|
|
51
|
-
.stat-card h3 {
|
|
52
|
-
color: #667eea;
|
|
53
|
-
font-size: 1.1em;
|
|
54
|
-
text-transform: uppercase;
|
|
55
|
-
margin-bottom: 10px;
|
|
56
|
-
letter-spacing: 1px;
|
|
57
|
-
font-weight: 600;
|
|
58
|
-
}
|
|
59
|
-
.stat-card .value {
|
|
60
|
-
font-size: 3em;
|
|
61
|
-
font-weight: bold;
|
|
62
|
-
color: #333;
|
|
63
|
-
}
|
|
64
|
-
.stat-card.added .value { color: #10b981; }
|
|
65
|
-
.stat-card.deleted .value { color: #ef4444; }
|
|
66
|
-
.stat-card.total .value { color: #667eea; }
|
|
67
|
-
.chart-container {
|
|
68
|
-
background: white;
|
|
69
|
-
border-radius: 12px;
|
|
70
|
-
padding: 30px;
|
|
71
|
-
box-shadow: 0 10px 30px rgba(0,0,0,0.2);
|
|
72
|
-
margin-bottom: 40px;
|
|
73
|
-
}
|
|
74
|
-
.chart-container h2 {
|
|
75
|
-
color: #333;
|
|
76
|
-
margin-bottom: 30px;
|
|
77
|
-
font-size: 1.8em;
|
|
78
|
-
text-align: center;
|
|
79
|
-
font-weight: 600;
|
|
80
|
-
}
|
|
81
|
-
.chart-wrapper {
|
|
82
|
-
position: relative;
|
|
83
|
-
height: 600px;
|
|
84
|
-
}
|
|
85
|
-
.footer {
|
|
86
|
-
text-align: center;
|
|
87
|
-
color: white;
|
|
88
|
-
margin-top: 40px;
|
|
89
|
-
font-size: 1.1em;
|
|
90
|
-
opacity: 0.8;
|
|
91
|
-
}
|
|
92
|
-
@media (max-width: 768px) {
|
|
93
|
-
.header h1 {
|
|
94
|
-
font-size: 1.8em;
|
|
95
|
-
}
|
|
96
|
-
.chart-wrapper {
|
|
97
|
-
height: 400px;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
</style>
|
|
101
|
-
</head>
|
|
102
|
-
<body>
|
|
103
|
-
<div class="container">
|
|
104
|
-
<div class="header">
|
|
105
|
-
<h1>📊 DEXBot2 Repository Statistics</h1>
|
|
106
|
-
<p>Lines Added vs Deleted Analysis</p>
|
|
107
|
-
</div>
|
|
108
|
-
|
|
109
|
-
<div class="stats-grid">
|
|
110
|
-
<div class="stat-card added">
|
|
111
|
-
<h3>Lines Added</h3>
|
|
112
|
-
<div class="value">81.780</div>
|
|
113
|
-
</div>
|
|
114
|
-
<div class="stat-card deleted">
|
|
115
|
-
<h3>Lines Deleted</h3>
|
|
116
|
-
<div class="value">53.747</div>
|
|
117
|
-
</div>
|
|
118
|
-
<div class="stat-card total">
|
|
119
|
-
<h3>Total Changes</h3>
|
|
120
|
-
<div class="value">135.527</div>
|
|
121
|
-
</div>
|
|
122
|
-
<div class="stat-card total">
|
|
123
|
-
<h3>Commits Analyzed</h3>
|
|
124
|
-
<div class="value">999</div>
|
|
125
|
-
</div>
|
|
126
|
-
</div>
|
|
127
|
-
|
|
128
|
-
<div class="chart-container">
|
|
129
|
-
<h2>➕➖ Added vs Deleted by File</h2>
|
|
130
|
-
<div class="chart-wrapper">
|
|
131
|
-
<canvas id="addDelChart"></canvas>
|
|
132
|
-
</div>
|
|
133
|
-
</div>
|
|
134
|
-
|
|
135
|
-
<div class="chart-container">
|
|
136
|
-
<h2>📈 Changes Over Time (Daily)</h2>
|
|
137
|
-
<div class="chart-wrapper" style="height: 400px;">
|
|
138
|
-
<canvas id="timeChart"></canvas>
|
|
139
|
-
</div>
|
|
140
|
-
</div>
|
|
141
|
-
|
|
142
|
-
<div class="chart-container">
|
|
143
|
-
<h2>📊 Cumulative Changes Over Time</h2>
|
|
144
|
-
<div class="chart-wrapper" style="height: 400px;">
|
|
145
|
-
<canvas id="cumulativeChart"></canvas>
|
|
146
|
-
</div>
|
|
147
|
-
</div>
|
|
148
|
-
|
|
149
|
-
<div class="chart-container">
|
|
150
|
-
<h2>📝 Total Net Lines Over Time</h2>
|
|
151
|
-
<div class="chart-wrapper" style="height: 400px;">
|
|
152
|
-
<canvas id="netLinesChart"></canvas>
|
|
153
|
-
</div>
|
|
154
|
-
</div>
|
|
155
|
-
|
|
156
|
-
<div class="footer">
|
|
157
|
-
<p>Generated on 3.3.2026, 23:52:19 | DEXBot2 Repository Analysis</p>
|
|
158
|
-
</div>
|
|
159
|
-
</div>
|
|
160
|
-
|
|
161
|
-
<script>
|
|
162
|
-
// Chart: Added vs Deleted stacked bar
|
|
163
|
-
const ctx = document.getElementById('addDelChart').getContext('2d');
|
|
164
|
-
const chart = new Chart(ctx, {
|
|
165
|
-
type: 'bar',
|
|
166
|
-
data: {
|
|
167
|
-
labels: ["modules/order/manager.js","modules/dexbot_class.js","modules/order/utils.js","modules/order/grid.js","modules/order/strategy.js","dexbot.js","modules/order/accounting.js","modules/order/startup_reconcile.js","modules/order/sync_engine.js","modules/account_bots.js","bot.js","README.md","modules/account_orders.js","modules/chain_orders.js","modules/constants.js","scripts/analyze-orders.js","modules/order/logger.js","modules/order/utils/system.js","pm2.js","modules/order/utils/helpers.js","modules/order/utils/order.js","modules/order/utils/math.js","scripts/repo-stats.html","modules/order/fund_snapshot.js","scripts/analyze-repo-stats.js","modules/chain_keys.js","modules/order/fund_snapshot_persistence.js","scripts/update.sh","scripts/update-dev.sh","modules/bot_instance.js","modules/order/price.js","scripts/analyze_fund_snapshots.js","modules/order/format.js","modules/order/order_grid.js","modules/node_manager.js","modules/bot.js","scripts/update.js","scripts/generate-pm2-config.js","modules/account_keys.js","modules/order/runner.js","scripts/README.md","modules/order/export.js","scripts/watch-all-changes.sh","modules/order/working_grid.js","credential-daemon.js","scripts/validate_bots.js","modules/order/utils/validate.js","modules/order/legacy-testing.js","modules/legacy-testing.js","scripts/check-update.sh","scripts/sync.sh","modules/bitshares_client.js","modules/order/utils/strategy_logic.js","modules/order/async_lock.js","modules/indexdb.js","modules/order/utils/grid_indexes.js","modules/order/utils/order_comparison.js","scripts/{watch-all-changes.sh => git-viewer.sh}","modules/order/logger_state.js","modules/bots_file_lock.js","scripts/pmain.sh","scripts/clear-orders.sh","scripts/bootstrap-profiles.js","modules/graceful_shutdown.js","scripts/divergence-calc.js","modules/order/constants.js","unlock-start.js","scripts/print_grid.js","scripts/clear-all.sh","modules/order/index.js","modules/btsdex_event_patch.js","scripts/migrate_pending_proceeds.js","scripts/clear-logs.sh","scripts/cleanup-temp-files.js","scripts/dev-install.sh","jest.config.js","scripts/setup-aliases.sh","modules/general_settings.js","scripts/create-bot-symlinks.sh","scripts/pdev.sh","scripts/ptest.sh","modules/{indexdb.js => account_orders.js}","modules/{account_keys.js => chain_keys.js}","modules/{account_orders.js => chain_orders.js}","modules/{ => order}/legacy-testing.js","scripts/bots","scripts/keys","modules/order/utils/{helpers.js => validate.js}","scripts/dexbot","scripts/pm2","scripts/{analyze-repo-stats.js => analyze-git.js}","modules/{order => }/constants.js"],
|
|
168
|
-
datasets: [
|
|
169
|
-
{
|
|
170
|
-
label: '➕ Added',
|
|
171
|
-
data: [10905,10679,6676,7197,6299,2748,2673,2699,2361,1984,1391,1335,1597,1117,1132,1267,996,1173,1023,1132,1202,1143,480,468,853,571,431,414,386,315,283,271,395,231,455,220,370,192,362,248,290,336,336,273,282,222,224,0,284,265,126,196,113,211,222,108,97,165,184,170,111,141,84,153,143,124,157,117,138,106,129,67,109,63,69,35,59,56,50,38,26,7,6,3,2,3,3,1,1,1,0,0],
|
|
172
|
-
backgroundColor: '#10b981',
|
|
173
|
-
borderRadius: 4,
|
|
174
|
-
borderSkipped: false
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
label: '🔴 Deleted',
|
|
178
|
-
data: [9389,7524,6760,5443,5864,1912,1736,1374,1302,789,1168,1036,495,684,456,241,509,273,403,271,94,114,480,468,24,299,431,414,386,315,283,271,76,231,0,220,53,192,0,107,58,10,0,35,19,67,63,284,0,16,126,40,113,11,0,108,97,28,4,16,66,32,84,12,20,36,0,33,0,31,7,67,24,63,24,35,0,0,0,0,0,16,8,4,2,0,0,1,0,0,0,0],
|
|
179
|
-
backgroundColor: '#ef4444',
|
|
180
|
-
borderRadius: 4,
|
|
181
|
-
borderSkipped: false
|
|
182
|
-
}
|
|
183
|
-
]
|
|
184
|
-
},
|
|
185
|
-
options: {
|
|
186
|
-
indexAxis: 'y',
|
|
187
|
-
responsive: true,
|
|
188
|
-
maintainAspectRatio: false,
|
|
189
|
-
scales: {
|
|
190
|
-
x: {
|
|
191
|
-
stacked: true,
|
|
192
|
-
beginAtZero: true,
|
|
193
|
-
ticks: {
|
|
194
|
-
font: { size: 14 }
|
|
195
|
-
}
|
|
196
|
-
},
|
|
197
|
-
y: {
|
|
198
|
-
stacked: true,
|
|
199
|
-
ticks: {
|
|
200
|
-
font: { size: 14 }
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
},
|
|
204
|
-
plugins: {
|
|
205
|
-
legend: {
|
|
206
|
-
position: 'top',
|
|
207
|
-
labels: {
|
|
208
|
-
usePointStyle: true,
|
|
209
|
-
padding: 20,
|
|
210
|
-
font: { size: 15 }
|
|
211
|
-
}
|
|
212
|
-
},
|
|
213
|
-
tooltip: {
|
|
214
|
-
callbacks: {
|
|
215
|
-
label: function(context) {
|
|
216
|
-
let label = context.dataset.label || '';
|
|
217
|
-
if (label) {
|
|
218
|
-
label += ': ';
|
|
219
|
-
}
|
|
220
|
-
if (context.parsed.x !== null) {
|
|
221
|
-
label += context.parsed.x.toLocaleString();
|
|
222
|
-
}
|
|
223
|
-
return label;
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
});
|
|
230
|
-
|
|
231
|
-
// Chart: Changes over time
|
|
232
|
-
const ctxTime = document.getElementById('timeChart').getContext('2d');
|
|
233
|
-
const timeChart = new Chart(ctxTime, {
|
|
234
|
-
type: 'line',
|
|
235
|
-
data: {
|
|
236
|
-
labels: ["2025-12-02","2025-12-03","2025-12-04","2025-12-05","2025-12-06","2025-12-07","2025-12-08","2025-12-09","2025-12-10","2025-12-11","2025-12-12","2025-12-13","2025-12-14","2025-12-15","2025-12-16","2025-12-17","2025-12-18","2025-12-19","2025-12-20","2025-12-21","2025-12-22","2025-12-23","2025-12-24","2025-12-25","2025-12-26","2025-12-27","2025-12-28","2025-12-29","2025-12-30","2025-12-31","2026-01-01","2026-01-02","2026-01-03","2026-01-04","2026-01-05","2026-01-06","2026-01-07","2026-01-08","2026-01-09","2026-01-10","2026-01-11","2026-01-12","2026-01-13","2026-01-14","2026-01-15","2026-01-16","2026-01-17","2026-01-18","2026-01-19","2026-01-20","2026-01-21","2026-01-22","2026-01-23","2026-01-24","2026-01-25","2026-01-26","2026-01-27","2026-01-28","2026-01-29","2026-01-30","2026-01-31","2026-02-01","2026-02-02","2026-02-03","2026-02-04","2026-02-05","2026-02-06","2026-02-07","2026-02-08","2026-02-09","2026-02-14","2026-02-15","2026-02-16","2026-02-17","2026-02-18","2026-02-19","2026-02-20","2026-02-21","2026-02-22","2026-02-23","2026-02-25","2026-02-26","2026-02-27","2026-02-28","2026-03-01","2026-03-02","2026-03-03"],
|
|
237
|
-
datasets: [
|
|
238
|
-
{
|
|
239
|
-
label: '➕ Added',
|
|
240
|
-
data: [3509,797,2629,1569,552,1167,287,1641,934,734,1843,349,549,311,659,813,826,710,241,20,836,1978,212,2,624,971,1058,853,1263,748,782,4258,716,2393,800,906,564,1812,636,1807,1916,1551,302,688,1608,723,4,4,68,600,664,913,2707,135,1108,425,348,783,0,193,197,1728,2681,208,311,2468,241,2207,831,1771,3520,566,2083,1757,102,99,103,296,13,825,407,0,539,331,165,202,30],
|
|
241
|
-
borderColor: '#10b981',
|
|
242
|
-
backgroundColor: 'rgba(16, 185, 129, 0.1)',
|
|
243
|
-
borderWidth: 2,
|
|
244
|
-
fill: false,
|
|
245
|
-
tension: 0.3,
|
|
246
|
-
pointRadius: 3,
|
|
247
|
-
pointBackgroundColor: '#10b981'
|
|
248
|
-
},
|
|
249
|
-
{
|
|
250
|
-
label: '🔴 Deleted',
|
|
251
|
-
data: [278,182,596,1806,93,607,211,123,502,171,645,58,173,94,331,259,309,241,203,4,578,1899,194,303,166,832,593,160,413,1069,316,3883,219,4656,817,543,820,409,334,1258,1114,751,208,792,1348,1272,27,27,30,135,63,874,2743,135,573,238,268,699,0,111,71,517,841,137,156,3292,62,1396,383,384,2671,570,2025,1067,287,98,36,350,3,241,478,0,560,108,23,169,66],
|
|
252
|
-
borderColor: '#ef4444',
|
|
253
|
-
backgroundColor: 'rgba(239, 68, 68, 0.1)',
|
|
254
|
-
borderWidth: 2,
|
|
255
|
-
fill: false,
|
|
256
|
-
tension: 0.3,
|
|
257
|
-
pointRadius: 3,
|
|
258
|
-
pointBackgroundColor: '#ef4444'
|
|
259
|
-
},
|
|
260
|
-
{
|
|
261
|
-
label: '📊 Total Edits',
|
|
262
|
-
data: [3787,979,3225,3375,645,1774,498,1764,1436,905,2488,407,722,405,990,1072,1135,951,444,24,1414,3877,406,305,790,1803,1651,1013,1676,1817,1098,8141,935,7049,1617,1449,1384,2221,970,3065,3030,2302,510,1480,2956,1995,31,31,98,735,727,1787,5450,270,1681,663,616,1482,0,304,268,2245,3522,345,467,5760,303,3603,1214,2155,6191,1136,4108,2824,389,197,139,646,16,1066,885,0,1099,439,188,371,96],
|
|
263
|
-
borderColor: '#667eea',
|
|
264
|
-
backgroundColor: 'rgba(102, 126, 234, 0.1)',
|
|
265
|
-
borderWidth: 2,
|
|
266
|
-
fill: false,
|
|
267
|
-
tension: 0.3,
|
|
268
|
-
pointRadius: 3,
|
|
269
|
-
pointBackgroundColor: '#667eea',
|
|
270
|
-
borderDash: [5, 5]
|
|
271
|
-
}
|
|
272
|
-
]
|
|
273
|
-
},
|
|
274
|
-
options: {
|
|
275
|
-
responsive: true,
|
|
276
|
-
maintainAspectRatio: false,
|
|
277
|
-
plugins: {
|
|
278
|
-
legend: {
|
|
279
|
-
position: 'top',
|
|
280
|
-
labels: {
|
|
281
|
-
usePointStyle: true,
|
|
282
|
-
padding: 20,
|
|
283
|
-
font: { size: 15 }
|
|
284
|
-
}
|
|
285
|
-
},
|
|
286
|
-
tooltip: {
|
|
287
|
-
callbacks: {
|
|
288
|
-
label: function(context) {
|
|
289
|
-
let label = context.dataset.label || '';
|
|
290
|
-
if (label) {
|
|
291
|
-
label += ': ';
|
|
292
|
-
}
|
|
293
|
-
if (context.parsed.y !== null) {
|
|
294
|
-
label += context.parsed.y.toLocaleString();
|
|
295
|
-
}
|
|
296
|
-
return label;
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
},
|
|
301
|
-
scales: {
|
|
302
|
-
x: {
|
|
303
|
-
ticks: {
|
|
304
|
-
font: { size: 13 }
|
|
305
|
-
}
|
|
306
|
-
},
|
|
307
|
-
y: {
|
|
308
|
-
beginAtZero: true,
|
|
309
|
-
ticks: {
|
|
310
|
-
font: { size: 13 }
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
});
|
|
316
|
-
|
|
317
|
-
// Chart: Cumulative changes over time
|
|
318
|
-
const ctxCumulative = document.getElementById('cumulativeChart').getContext('2d');
|
|
319
|
-
const cumulativeChart = new Chart(ctxCumulative, {
|
|
320
|
-
type: 'line',
|
|
321
|
-
data: {
|
|
322
|
-
labels: ["2025-12-02","2025-12-03","2025-12-04","2025-12-05","2025-12-06","2025-12-07","2025-12-08","2025-12-09","2025-12-10","2025-12-11","2025-12-12","2025-12-13","2025-12-14","2025-12-15","2025-12-16","2025-12-17","2025-12-18","2025-12-19","2025-12-20","2025-12-21","2025-12-22","2025-12-23","2025-12-24","2025-12-25","2025-12-26","2025-12-27","2025-12-28","2025-12-29","2025-12-30","2025-12-31","2026-01-01","2026-01-02","2026-01-03","2026-01-04","2026-01-05","2026-01-06","2026-01-07","2026-01-08","2026-01-09","2026-01-10","2026-01-11","2026-01-12","2026-01-13","2026-01-14","2026-01-15","2026-01-16","2026-01-17","2026-01-18","2026-01-19","2026-01-20","2026-01-21","2026-01-22","2026-01-23","2026-01-24","2026-01-25","2026-01-26","2026-01-27","2026-01-28","2026-01-29","2026-01-30","2026-01-31","2026-02-01","2026-02-02","2026-02-03","2026-02-04","2026-02-05","2026-02-06","2026-02-07","2026-02-08","2026-02-09","2026-02-14","2026-02-15","2026-02-16","2026-02-17","2026-02-18","2026-02-19","2026-02-20","2026-02-21","2026-02-22","2026-02-23","2026-02-25","2026-02-26","2026-02-27","2026-02-28","2026-03-01","2026-03-02","2026-03-03"],
|
|
323
|
-
datasets: [
|
|
324
|
-
{
|
|
325
|
-
label: '📈 Total Added (Cumulative)',
|
|
326
|
-
data: [3509,4306,6935,8504,9056,10223,10510,12151,13085,13819,15662,16011,16560,16871,17530,18343,19169,19879,20120,20140,20976,22954,23166,23168,23792,24763,25821,26674,27937,28685,29467,33725,34441,36834,37634,38540,39104,40916,41552,43359,45275,46826,47128,47816,49424,50147,50151,50155,50223,50823,51487,52400,55107,55242,56350,56775,57123,57906,57906,58099,58296,60024,62705,62913,63224,65692,65933,68140,68971,70742,74262,74828,76911,78668,78770,78869,78972,79268,79281,80106,80513,80513,81052,81383,81548,81750,81780],
|
|
327
|
-
borderColor: '#10b981',
|
|
328
|
-
backgroundColor: 'rgba(16, 185, 129, 0.15)',
|
|
329
|
-
borderWidth: 3,
|
|
330
|
-
fill: true,
|
|
331
|
-
tension: 0.3,
|
|
332
|
-
pointRadius: 3,
|
|
333
|
-
pointBackgroundColor: '#10b981',
|
|
334
|
-
pointBorderColor: '#fff',
|
|
335
|
-
pointBorderWidth: 2
|
|
336
|
-
},
|
|
337
|
-
{
|
|
338
|
-
label: '📉 Total Deleted (Cumulative)',
|
|
339
|
-
data: [278,460,1056,2862,2955,3562,3773,3896,4398,4569,5214,5272,5445,5539,5870,6129,6438,6679,6882,6886,7464,9363,9557,9860,10026,10858,11451,11611,12024,13093,13409,17292,17511,22167,22984,23527,24347,24756,25090,26348,27462,28213,28421,29213,30561,31833,31860,31887,31917,32052,32115,32989,35732,35867,36440,36678,36946,37645,37645,37756,37827,38344,39185,39322,39478,42770,42832,44228,44611,44995,47666,48236,50261,51328,51615,51713,51749,52099,52102,52343,52821,52821,53381,53489,53512,53681,53747],
|
|
340
|
-
borderColor: '#ef4444',
|
|
341
|
-
backgroundColor: 'rgba(239, 68, 68, 0.15)',
|
|
342
|
-
borderWidth: 3,
|
|
343
|
-
fill: true,
|
|
344
|
-
tension: 0.3,
|
|
345
|
-
pointRadius: 3,
|
|
346
|
-
pointBackgroundColor: '#ef4444',
|
|
347
|
-
pointBorderColor: '#fff',
|
|
348
|
-
pointBorderWidth: 2
|
|
349
|
-
},
|
|
350
|
-
{
|
|
351
|
-
label: '🎯 Total Edits (Cumulative)',
|
|
352
|
-
data: [3787,4766,7991,11366,12011,13785,14283,16047,17483,18388,20876,21283,22005,22410,23400,24472,25607,26558,27002,27026,28440,32317,32723,33028,33818,35621,37272,38285,39961,41778,42876,51017,51952,59001,60618,62067,63451,65672,66642,69707,72737,75039,75549,77029,79985,81980,82011,82042,82140,82875,83602,85389,90839,91109,92790,93453,94069,95551,95551,95855,96123,98368,101890,102235,102702,108462,108765,112368,113582,115737,121928,123064,127172,129996,130385,130582,130721,131367,131383,132449,133334,133334,134433,134872,135060,135431,135527],
|
|
353
|
-
borderColor: '#667eea',
|
|
354
|
-
backgroundColor: 'transparent',
|
|
355
|
-
borderWidth: 3,
|
|
356
|
-
fill: false,
|
|
357
|
-
tension: 0.3,
|
|
358
|
-
pointRadius: 4,
|
|
359
|
-
pointBackgroundColor: '#667eea',
|
|
360
|
-
pointBorderColor: '#fff',
|
|
361
|
-
pointBorderWidth: 2,
|
|
362
|
-
borderDash: [5, 5]
|
|
363
|
-
}
|
|
364
|
-
]
|
|
365
|
-
},
|
|
366
|
-
options: {
|
|
367
|
-
responsive: true,
|
|
368
|
-
maintainAspectRatio: false,
|
|
369
|
-
plugins: {
|
|
370
|
-
legend: {
|
|
371
|
-
position: 'top',
|
|
372
|
-
labels: {
|
|
373
|
-
usePointStyle: true,
|
|
374
|
-
padding: 20,
|
|
375
|
-
font: { size: 15 }
|
|
376
|
-
}
|
|
377
|
-
},
|
|
378
|
-
tooltip: {
|
|
379
|
-
callbacks: {
|
|
380
|
-
label: function(context) {
|
|
381
|
-
let label = context.dataset.label || '';
|
|
382
|
-
if (label) {
|
|
383
|
-
label += ': ';
|
|
384
|
-
}
|
|
385
|
-
if (context.parsed.y !== null) {
|
|
386
|
-
label += context.parsed.y.toLocaleString();
|
|
387
|
-
}
|
|
388
|
-
return label;
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
},
|
|
393
|
-
scales: {
|
|
394
|
-
x: {
|
|
395
|
-
ticks: {
|
|
396
|
-
font: { size: 13 }
|
|
397
|
-
}
|
|
398
|
-
},
|
|
399
|
-
y: {
|
|
400
|
-
beginAtZero: true,
|
|
401
|
-
ticks: {
|
|
402
|
-
font: { size: 11 },
|
|
403
|
-
callback: function(value) {
|
|
404
|
-
return value.toLocaleString();
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
});
|
|
411
|
-
|
|
412
|
-
// Chart: Net lines over time
|
|
413
|
-
const ctxNetLines = document.getElementById('netLinesChart').getContext('2d');
|
|
414
|
-
const netLinesChart = new Chart(ctxNetLines, {
|
|
415
|
-
type: 'line',
|
|
416
|
-
data: {
|
|
417
|
-
labels: ["2025-12-02","2025-12-03","2025-12-04","2025-12-05","2025-12-06","2025-12-07","2025-12-08","2025-12-09","2025-12-10","2025-12-11","2025-12-12","2025-12-13","2025-12-14","2025-12-15","2025-12-16","2025-12-17","2025-12-18","2025-12-19","2025-12-20","2025-12-21","2025-12-22","2025-12-23","2025-12-24","2025-12-25","2025-12-26","2025-12-27","2025-12-28","2025-12-29","2025-12-30","2025-12-31","2026-01-01","2026-01-02","2026-01-03","2026-01-04","2026-01-05","2026-01-06","2026-01-07","2026-01-08","2026-01-09","2026-01-10","2026-01-11","2026-01-12","2026-01-13","2026-01-14","2026-01-15","2026-01-16","2026-01-17","2026-01-18","2026-01-19","2026-01-20","2026-01-21","2026-01-22","2026-01-23","2026-01-24","2026-01-25","2026-01-26","2026-01-27","2026-01-28","2026-01-29","2026-01-30","2026-01-31","2026-02-01","2026-02-02","2026-02-03","2026-02-04","2026-02-05","2026-02-06","2026-02-07","2026-02-08","2026-02-09","2026-02-14","2026-02-15","2026-02-16","2026-02-17","2026-02-18","2026-02-19","2026-02-20","2026-02-21","2026-02-22","2026-02-23","2026-02-25","2026-02-26","2026-02-27","2026-02-28","2026-03-01","2026-03-02","2026-03-03"],
|
|
418
|
-
datasets: [
|
|
419
|
-
{
|
|
420
|
-
label: '📝 Net Lines (Added - Deleted)',
|
|
421
|
-
data: [3231,3846,5879,5642,6101,6661,6737,8255,8687,9250,10448,10739,11115,11332,11660,12214,12731,13200,13238,13254,13512,13591,13609,13308,13766,13905,14370,15063,15913,15592,16058,16433,16930,14667,14650,15013,14757,16160,16462,17011,17813,18613,18707,18603,18863,18314,18291,18268,18306,18771,19372,19411,19375,19375,19910,20097,20177,20261,20261,20343,20469,21680,23520,23591,23746,22922,23101,23912,24360,25747,26596,26592,26650,27340,27155,27156,27223,27169,27179,27763,27692,27692,27671,27894,28036,28069,28033],
|
|
422
|
-
borderColor: '#8b5cf6',
|
|
423
|
-
backgroundColor: 'rgba(139, 92, 246, 0.15)',
|
|
424
|
-
borderWidth: 3,
|
|
425
|
-
fill: true,
|
|
426
|
-
tension: 0.3,
|
|
427
|
-
pointRadius: 4,
|
|
428
|
-
pointBackgroundColor: '#8b5cf6',
|
|
429
|
-
pointBorderColor: '#fff',
|
|
430
|
-
pointBorderWidth: 2
|
|
431
|
-
}
|
|
432
|
-
]
|
|
433
|
-
},
|
|
434
|
-
options: {
|
|
435
|
-
responsive: true,
|
|
436
|
-
maintainAspectRatio: false,
|
|
437
|
-
plugins: {
|
|
438
|
-
legend: {
|
|
439
|
-
position: 'top',
|
|
440
|
-
labels: {
|
|
441
|
-
usePointStyle: true,
|
|
442
|
-
padding: 20,
|
|
443
|
-
font: { size: 15 }
|
|
444
|
-
}
|
|
445
|
-
},
|
|
446
|
-
tooltip: {
|
|
447
|
-
callbacks: {
|
|
448
|
-
label: function(context) {
|
|
449
|
-
let label = context.dataset.label || '';
|
|
450
|
-
if (label) {
|
|
451
|
-
label += ': ';
|
|
452
|
-
}
|
|
453
|
-
if (context.parsed.y !== null) {
|
|
454
|
-
label += context.parsed.y.toLocaleString();
|
|
455
|
-
}
|
|
456
|
-
return label;
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
}
|
|
460
|
-
},
|
|
461
|
-
scales: {
|
|
462
|
-
x: {
|
|
463
|
-
ticks: {
|
|
464
|
-
font: { size: 13 }
|
|
465
|
-
}
|
|
466
|
-
},
|
|
467
|
-
y: {
|
|
468
|
-
ticks: {
|
|
469
|
-
font: { size: 13 },
|
|
470
|
-
callback: function(value) {
|
|
471
|
-
return value.toLocaleString();
|
|
472
|
-
}
|
|
473
|
-
}
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
|
-
});
|
|
478
|
-
</script>
|
|
479
|
-
</body>
|
|
480
|
-
</html>
|