dexbot 1.4.13 → 1.4.15
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/README.md +77 -68
- package/claw/data/positions.json +3391 -1
- package/claw/docs/AI_BOT_LIBRARY_API.md +1 -1
- package/claw/docs/POSITION_HEALTH.md +2 -2
- package/claw/modules/claw_catalog.ts +1 -3
- package/claw/modules/claw_launcher.ts +2 -3
- package/claw/modules/claw_skill_md.ts +1 -1
- package/claw/modules/decision_loop.ts +1 -1
- package/claw/modules/dexbot_profiles.ts +2 -33
- package/claw/modules/feed_price_source.ts +3 -32
- package/claw/modules/launcher_mode_detector.ts +1 -1
- package/claw/modules/mcp_utils.ts +1 -1
- package/claw/modules/mpa_utils.ts +36 -1
- package/claw/modules/position_discovery.ts +1 -28
- package/claw/modules/position_health.ts +1 -20
- package/claw/modules/position_manager.ts +3 -28
- package/claw/modules/skill_utils.ts +1 -1
- package/claw/modules/types.ts +0 -53
- package/claw/package.json +1 -1
- package/claw/runtimes/openclaw-plugin/openclaw.plugin.json +1 -1
- package/claw/runtimes/openclaw-plugin/package.json +1 -1
- package/claw/skills/margin-trading/references/honest-assets.md +1 -1
- package/claw/skills/margin-trading/references/position-management.md +2 -2
- package/claw/skills/shared/references/js-automation-overview.md +2 -2
- package/claw/skills/trend-detection/references/service.md +24 -17
- package/claw/tests/test_claw_bridge.ts +47 -47
- package/claw/tests/test_claw_catalog_and_credentials.ts +9 -9
- package/claw/tests/test_claw_chain_layer.ts +54 -54
- package/claw/tests/test_claw_data_flow.ts +41 -41
- package/claw/tests/test_claw_domain_logic.ts +26 -26
- package/claw/tests/test_claw_manifest_and_matrix.ts +1 -1
- package/claw/tests/test_claw_mcp_transport.ts +16 -16
- package/claw/tests/test_claw_regressions.ts +43 -43
- package/claw/tests/test_claw_skill_generation.ts +1 -1
- package/claw/tests/test_claw_state_store.ts +2 -2
- package/claw/tests/test_dexbot_profiles.ts +4 -4
- package/claw/tests/test_memu_bridge.ts +3 -3
- package/claw/tests/test_nullclaw_tmp_integration.ts +1 -1
- package/claw/tests/test_position_health.ts +2 -2
- package/claw/tests/test_position_manager.ts +18 -18
- package/claw/tests/test_position_manager_watch_health.ts +2 -2
- package/claw/tests/test_short_mpa_strategy.ts +12 -12
- package/dist/analysis/chart_utils.d.ts +13 -1
- package/dist/analysis/chart_utils.d.ts.map +1 -1
- package/dist/analysis/chart_utils.js +16 -1
- package/dist/analysis/chart_utils.js.map +1 -1
- package/dist/analysis/math_utils.d.ts +8 -12
- package/dist/analysis/math_utils.d.ts.map +1 -1
- package/dist/analysis/math_utils.js +9 -75
- package/dist/analysis/math_utils.js.map +1 -1
- package/dist/analysis/tradingview/tradingview_uplot_chart_generator.js +4 -4
- package/dist/dexbot.d.ts.map +1 -1
- package/dist/dexbot.js +54 -35
- package/dist/dexbot.js.map +1 -1
- package/dist/market_adapter/candle_utils.d.ts +18 -1
- package/dist/market_adapter/candle_utils.d.ts.map +1 -1
- package/dist/market_adapter/candle_utils.js +50 -1
- package/dist/market_adapter/candle_utils.js.map +1 -1
- package/dist/market_adapter/core/config_normalizers.js +1 -1
- package/dist/market_adapter/core/config_normalizers.js.map +1 -1
- package/dist/market_adapter/core/kibana_client.d.ts +2 -2
- package/dist/market_adapter/core/kibana_client.js +2 -2
- package/dist/market_adapter/core/kibana_market_candles.d.ts +1 -87
- package/dist/market_adapter/core/kibana_market_candles.d.ts.map +1 -1
- package/dist/market_adapter/core/kibana_market_candles.js +1 -80
- package/dist/market_adapter/core/kibana_market_candles.js.map +1 -1
- package/dist/market_adapter/core/market_adapter_service.d.ts +0 -8
- package/dist/market_adapter/core/market_adapter_service.d.ts.map +1 -1
- package/dist/market_adapter/core/market_adapter_service.js +28 -115
- package/dist/market_adapter/core/market_adapter_service.js.map +1 -1
- package/dist/market_adapter/core/signals/hurst_analyzer.d.ts.map +1 -0
- package/dist/{analysis/trend_detection → market_adapter/core/signals}/hurst_analyzer.js +2 -2
- package/dist/market_adapter/core/signals/hurst_analyzer.js.map +1 -0
- package/dist/{analysis/trend_detection → market_adapter/core/signals}/kalman_trend_analyzer.d.ts +0 -1
- package/dist/market_adapter/core/signals/kalman_trend_analyzer.d.ts.map +1 -0
- package/dist/{analysis/trend_detection → market_adapter/core/signals}/kalman_trend_analyzer.js +2 -4
- package/dist/market_adapter/core/signals/kalman_trend_analyzer.js.map +1 -0
- package/dist/{analysis/trend_detection → market_adapter/core/signals}/kalman_velocity_smoothing.d.ts +25 -4
- package/dist/market_adapter/core/signals/kalman_velocity_smoothing.d.ts.map +1 -0
- package/dist/{analysis/trend_detection → market_adapter/core/signals}/kalman_velocity_smoothing.js +41 -19
- package/dist/market_adapter/core/signals/kalman_velocity_smoothing.js.map +1 -0
- package/dist/market_adapter/core/signals/permutation_entropy_analyzer.d.ts.map +1 -0
- package/dist/{analysis/trend_detection → market_adapter/core/signals}/permutation_entropy_analyzer.js +2 -2
- package/dist/market_adapter/core/signals/permutation_entropy_analyzer.js.map +1 -0
- package/dist/market_adapter/core/strategies/ama.d.ts +1 -19
- package/dist/market_adapter/core/strategies/ama.d.ts.map +1 -1
- package/dist/market_adapter/core/strategies/ama.js +1 -1
- package/dist/market_adapter/core/strategies/ama.js.map +1 -1
- package/dist/market_adapter/core/strategies/ama_slope_model.d.ts +2 -13
- package/dist/market_adapter/core/strategies/ama_slope_model.d.ts.map +1 -1
- package/dist/market_adapter/core/strategies/ama_slope_model.js +15 -26
- package/dist/market_adapter/core/strategies/ama_slope_model.js.map +1 -1
- package/dist/market_adapter/core/strategies/atr/calculator.d.ts +38 -3
- package/dist/market_adapter/core/strategies/atr/calculator.d.ts.map +1 -1
- package/dist/market_adapter/core/strategies/atr/calculator.js +84 -24
- package/dist/market_adapter/core/strategies/atr/calculator.js.map +1 -1
- package/dist/market_adapter/core/strategies/collateral_manager.d.ts +1 -1
- package/dist/market_adapter/core/strategies/collateral_manager.js +1 -1
- package/dist/market_adapter/core/strategies/dynamic_weight_series.d.ts +32 -0
- package/dist/market_adapter/core/strategies/dynamic_weight_series.d.ts.map +1 -0
- package/dist/market_adapter/core/strategies/dynamic_weight_series.js +136 -0
- package/dist/market_adapter/core/strategies/dynamic_weight_series.js.map +1 -0
- package/dist/market_adapter/core/strategies/regime_gate.d.ts +6 -21
- package/dist/market_adapter/core/strategies/regime_gate.d.ts.map +1 -1
- package/dist/market_adapter/core/strategies/regime_gate.js +11 -74
- package/dist/market_adapter/core/strategies/regime_gate.js.map +1 -1
- package/dist/market_adapter/core/strategies/regime_interp.d.ts +13 -0
- package/dist/market_adapter/core/strategies/regime_interp.d.ts.map +1 -0
- package/dist/market_adapter/core/strategies/regime_interp.js +74 -0
- package/dist/market_adapter/core/strategies/regime_interp.js.map +1 -0
- package/dist/market_adapter/core/strategies/volatility_shift.d.ts +22 -0
- package/dist/market_adapter/core/strategies/volatility_shift.d.ts.map +1 -0
- package/dist/market_adapter/core/strategies/volatility_shift.js +37 -0
- package/dist/market_adapter/core/strategies/volatility_shift.js.map +1 -0
- package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js +3 -4
- package/dist/market_adapter/inputs/fetch_cex_synthetic_data.js.map +1 -1
- package/dist/market_adapter/inputs/fetch_lp_data.d.ts +1 -10
- package/dist/market_adapter/inputs/fetch_lp_data.d.ts.map +1 -1
- package/dist/market_adapter/inputs/fetch_lp_data.js +1 -1
- package/dist/market_adapter/inputs/fetch_lp_data.js.map +1 -1
- package/dist/market_adapter/lp_chart_core.d.ts.map +1 -1
- package/dist/market_adapter/lp_chart_core.js +0 -10
- package/dist/market_adapter/lp_chart_core.js.map +1 -1
- package/dist/market_adapter/lp_chart_runner.d.ts +1 -16
- package/dist/market_adapter/lp_chart_runner.d.ts.map +1 -1
- package/dist/market_adapter/lp_chart_runner.js +1 -15
- package/dist/market_adapter/lp_chart_runner.js.map +1 -1
- package/dist/market_adapter/market_adapter.d.ts +3 -3
- package/dist/market_adapter/market_adapter.d.ts.map +1 -1
- package/dist/market_adapter/market_adapter.js +6 -8
- package/dist/market_adapter/market_adapter.js.map +1 -1
- package/dist/market_adapter/merge_lp_data.js +5 -5
- package/dist/market_adapter/utils/adapter_client.d.ts +1 -3
- package/dist/market_adapter/utils/adapter_client.d.ts.map +1 -1
- package/dist/market_adapter/utils/adapter_client.js +1 -14
- package/dist/market_adapter/utils/adapter_client.js.map +1 -1
- package/dist/market_adapter/utils/data_discovery.d.ts.map +1 -1
- package/dist/market_adapter/utils/data_discovery.js +1 -2
- package/dist/market_adapter/utils/data_discovery.js.map +1 -1
- package/dist/market_adapter/utils/dynamic_grid_snapshot.d.ts +1 -3
- package/dist/market_adapter/utils/dynamic_grid_snapshot.d.ts.map +1 -1
- package/dist/market_adapter/utils/dynamic_grid_snapshot.js +1 -1
- package/dist/market_adapter/utils/dynamic_grid_snapshot.js.map +1 -1
- package/dist/market_adapter/utils/file_lock.d.ts +10 -2
- package/dist/market_adapter/utils/file_lock.d.ts.map +1 -1
- package/dist/market_adapter/utils/file_lock.js +171 -102
- package/dist/market_adapter/utils/file_lock.js.map +1 -1
- package/dist/market_adapter/utils/native_history.d.ts +1 -9
- package/dist/market_adapter/utils/native_history.d.ts.map +1 -1
- package/dist/market_adapter/utils/native_history.js +1 -21
- package/dist/market_adapter/utils/native_history.js.map +1 -1
- package/dist/modules/account_bots.d.ts +16 -38
- package/dist/modules/account_bots.d.ts.map +1 -1
- package/dist/modules/account_bots.js +16 -38
- package/dist/modules/account_bots.js.map +1 -1
- package/dist/modules/account_orders.d.ts +11 -11
- package/dist/modules/account_orders.d.ts.map +1 -1
- package/dist/modules/account_orders.js +11 -18
- package/dist/modules/account_orders.js.map +1 -1
- package/dist/modules/bitshares_client.d.ts +5 -8
- package/dist/modules/bitshares_client.d.ts.map +1 -1
- package/dist/modules/bitshares_client.js +6 -10
- package/dist/modules/bitshares_client.js.map +1 -1
- package/dist/modules/bots_file_lock.d.ts +8 -5
- package/dist/modules/bots_file_lock.d.ts.map +1 -1
- package/dist/modules/bots_file_lock.js +8 -5
- package/dist/modules/bots_file_lock.js.map +1 -1
- package/dist/modules/chain_keys.d.ts +31 -22
- package/dist/modules/chain_keys.d.ts.map +1 -1
- package/dist/modules/chain_keys.js +31 -22
- package/dist/modules/chain_keys.js.map +1 -1
- package/dist/modules/chain_orders.d.ts +52 -48
- package/dist/modules/chain_orders.d.ts.map +1 -1
- package/dist/modules/chain_orders.js +124 -49
- package/dist/modules/chain_orders.js.map +1 -1
- package/dist/modules/config.d.ts +3 -0
- package/dist/modules/config.d.ts.map +1 -1
- package/dist/modules/config.js +3 -0
- package/dist/modules/config.js.map +1 -1
- package/dist/modules/constants.d.ts +17 -13
- package/dist/modules/constants.d.ts.map +1 -1
- package/dist/modules/constants.js +42 -21
- package/dist/modules/constants.js.map +1 -1
- package/dist/modules/cr_planner.d.ts +2 -1
- package/dist/modules/cr_planner.d.ts.map +1 -1
- package/dist/modules/cr_planner.js +1 -1
- package/dist/modules/cr_planner.js.map +1 -1
- package/dist/modules/credential_policy.d.ts +6 -4
- package/dist/modules/credential_policy.d.ts.map +1 -1
- package/dist/modules/credential_policy.js +6 -4
- package/dist/modules/credential_policy.js.map +1 -1
- package/dist/modules/credit_runtime.d.ts.map +1 -1
- package/dist/modules/credit_runtime.js +4 -8
- package/dist/modules/credit_runtime.js.map +1 -1
- package/dist/modules/dexbot_class.d.ts +33 -88
- package/dist/modules/dexbot_class.d.ts.map +1 -1
- package/dist/modules/dexbot_class.js +36 -68
- package/dist/modules/dexbot_class.js.map +1 -1
- package/dist/modules/dexbot_cow_runtime.d.ts +7 -7
- package/dist/modules/dexbot_cow_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_cow_runtime.js +7 -7
- package/dist/modules/dexbot_cow_runtime.js.map +1 -1
- package/dist/modules/dexbot_credential_client.d.ts +3 -3
- package/dist/modules/dexbot_credential_client.js +3 -3
- package/dist/modules/dexbot_credential_client.js.map +1 -1
- package/dist/modules/dexbot_fill_runtime.d.ts +1 -7
- package/dist/modules/dexbot_fill_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_fill_runtime.js +1 -9
- package/dist/modules/dexbot_fill_runtime.js.map +1 -1
- package/dist/modules/dexbot_maintenance_runtime.d.ts.map +1 -1
- package/dist/modules/dexbot_maintenance_runtime.js +3 -1
- package/dist/modules/dexbot_maintenance_runtime.js.map +1 -1
- package/dist/modules/dexbot_state_recovery.d.ts.map +1 -1
- package/dist/modules/dexbot_state_recovery.js +99 -1
- package/dist/modules/dexbot_state_recovery.js.map +1 -1
- package/dist/modules/graceful_shutdown.d.ts +4 -2
- package/dist/modules/graceful_shutdown.d.ts.map +1 -1
- package/dist/modules/graceful_shutdown.js +4 -2
- package/dist/modules/graceful_shutdown.js.map +1 -1
- package/dist/modules/launcher/bot_supervisor.d.ts +1 -1
- package/dist/modules/launcher/bot_supervisor.d.ts.map +1 -1
- package/dist/modules/launcher/bot_supervisor.js +1 -4
- package/dist/modules/launcher/bot_supervisor.js.map +1 -1
- package/dist/modules/launcher/child_env.d.ts.map +1 -1
- package/dist/modules/launcher/child_env.js +3 -0
- package/dist/modules/launcher/child_env.js.map +1 -1
- package/dist/modules/market_adapter_whitelist.d.ts +1 -2
- package/dist/modules/market_adapter_whitelist.d.ts.map +1 -1
- package/dist/modules/market_adapter_whitelist.js +1 -4
- package/dist/modules/market_adapter_whitelist.js.map +1 -1
- package/dist/modules/node_health_cache.d.ts +12 -4
- package/dist/modules/node_health_cache.d.ts.map +1 -1
- package/dist/modules/node_health_cache.js +13 -13
- package/dist/modules/node_health_cache.js.map +1 -1
- package/dist/modules/node_manager.d.ts.map +1 -1
- package/dist/modules/node_manager.js +3 -6
- package/dist/modules/node_manager.js.map +1 -1
- package/dist/modules/order/accounting.d.ts +2 -37
- package/dist/modules/order/accounting.d.ts.map +1 -1
- package/dist/modules/order/accounting.js +2 -64
- package/dist/modules/order/accounting.js.map +1 -1
- package/dist/modules/order/export.d.ts +1 -37
- package/dist/modules/order/export.d.ts.map +1 -1
- package/dist/modules/order/export.js +1 -1
- package/dist/modules/order/export.js.map +1 -1
- package/dist/modules/order/format.d.ts +28 -14
- package/dist/modules/order/format.d.ts.map +1 -1
- package/dist/modules/order/format.js +73 -18
- package/dist/modules/order/format.js.map +1 -1
- package/dist/modules/order/grid.d.ts +11 -5
- package/dist/modules/order/grid.d.ts.map +1 -1
- package/dist/modules/order/grid.js +79 -37
- package/dist/modules/order/grid.js.map +1 -1
- package/dist/modules/order/grid_reconcile_internal.js +2 -2
- package/dist/modules/order/grid_reconcile_internal.js.map +1 -1
- package/dist/modules/order/logger_state.d.ts +3 -45
- package/dist/modules/order/logger_state.d.ts.map +1 -1
- package/dist/modules/order/logger_state.js +3 -55
- package/dist/modules/order/logger_state.js.map +1 -1
- package/dist/modules/order/manager.d.ts +0 -4
- package/dist/modules/order/manager.d.ts.map +1 -1
- package/dist/modules/order/manager.js +3 -9
- package/dist/modules/order/manager.js.map +1 -1
- package/dist/modules/order/sync_engine.d.ts +0 -2
- package/dist/modules/order/sync_engine.d.ts.map +1 -1
- package/dist/modules/order/sync_engine.js +1 -4
- package/dist/modules/order/sync_engine.js.map +1 -1
- package/dist/modules/order/utils/math.d.ts +2 -11
- package/dist/modules/order/utils/math.d.ts.map +1 -1
- package/dist/modules/order/utils/math.js +3 -14
- package/dist/modules/order/utils/math.js.map +1 -1
- package/dist/modules/order/utils/order.d.ts +1 -17
- package/dist/modules/order/utils/order.d.ts.map +1 -1
- package/dist/modules/order/utils/order.js +3 -21
- package/dist/modules/order/utils/order.js.map +1 -1
- package/dist/modules/order/utils/system.d.ts +1 -11
- package/dist/modules/order/utils/system.d.ts.map +1 -1
- package/dist/modules/order/utils/system.js +3 -3
- package/dist/modules/order/utils/system.js.map +1 -1
- package/dist/modules/order/utils/validate.d.ts +1 -26
- package/dist/modules/order/utils/validate.d.ts.map +1 -1
- package/dist/modules/order/utils/validate.js +1 -1
- package/dist/modules/order/utils/validate.js.map +1 -1
- package/dist/modules/order/working_grid.d.ts +3 -9
- package/dist/modules/order/working_grid.d.ts.map +1 -1
- package/dist/modules/order/working_grid.js +3 -11
- package/dist/modules/order/working_grid.js.map +1 -1
- package/dist/modules/paths.d.ts +43 -2
- package/dist/modules/paths.d.ts.map +1 -1
- package/dist/modules/paths.js +81 -21
- package/dist/modules/paths.js.map +1 -1
- package/dist/modules/runtime_settings.js +1 -1
- package/dist/modules/runtime_settings.js.map +1 -1
- package/dist/pm2.d.ts +1 -1
- package/dist/pm2.d.ts.map +1 -1
- package/dist/pm2.js +1 -4
- package/dist/pm2.js.map +1 -1
- package/dist/scripts/analyze-orders.d.ts.map +1 -1
- package/dist/scripts/analyze-orders.js +36 -45
- package/dist/scripts/analyze-orders.js.map +1 -1
- package/dist/scripts/sync-version.js +22 -0
- package/dist/scripts/sync-version.js.map +1 -1
- package/ecosystem.config.cjs +32 -0
- package/package.json +4 -1
- package/scripts/README.md +24 -8
- package/scripts/clear-all.sh +39 -12
- package/scripts/clear-logs.sh +1 -1
- package/scripts/clear-market-adapter.sh +3 -3
- package/scripts/clear-orders.sh +1 -1
- package/scripts/create-bot-symlinks.sh +4 -2
- package/scripts/lib/dexbot-paths.sh +63 -0
- package/scripts/reset-settings.sh +1 -1
- package/dist/analysis/trend_detection/hurst_analyzer.d.ts.map +0 -1
- package/dist/analysis/trend_detection/hurst_analyzer.js.map +0 -1
- package/dist/analysis/trend_detection/kalman_trend_analyzer.d.ts.map +0 -1
- package/dist/analysis/trend_detection/kalman_trend_analyzer.js.map +0 -1
- package/dist/analysis/trend_detection/kalman_velocity_smoothing.d.ts.map +0 -1
- package/dist/analysis/trend_detection/kalman_velocity_smoothing.js.map +0 -1
- package/dist/analysis/trend_detection/permutation_entropy_analyzer.d.ts.map +0 -1
- package/dist/analysis/trend_detection/permutation_entropy_analyzer.js.map +0 -1
- package/dist/market_adapter/index.d.ts +0 -32
- package/dist/market_adapter/index.d.ts.map +0 -1
- package/dist/market_adapter/index.js +0 -39
- package/dist/market_adapter/index.js.map +0 -1
- package/dist/scripts/fix-err-message.d.ts +0 -3
- package/dist/scripts/fix-err-message.d.ts.map +0 -1
- package/dist/scripts/fix-err-message.js +0 -193
- package/dist/scripts/fix-err-message.js.map +0 -1
- /package/dist/{analysis/trend_detection → market_adapter/core/signals}/hurst_analyzer.d.ts +0 -0
- /package/dist/{analysis/trend_detection → market_adapter/core/signals}/permutation_entropy_analyzer.d.ts +0 -0
package/dist/{analysis/trend_detection → market_adapter/core/signals}/kalman_velocity_smoothing.js
RENAMED
|
@@ -1,23 +1,45 @@
|
|
|
1
|
-
import { clamp } from '../../modules/order/utils/math.js';
|
|
2
|
-
import { MARKET_ADAPTER } from '../../modules/constants.js';
|
|
3
1
|
'use strict';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
2
|
+
import { MARKET_ADAPTER } from '../../../modules/constants.js';
|
|
3
|
+
/**
|
|
4
|
+
* Kalman velocity smoothing — canonical implementation shared by the live
|
|
5
|
+
* market adapter service, analysis research charts, and the browser-embedded
|
|
6
|
+
* chart scripts (injected via fn.toString()).
|
|
7
|
+
*
|
|
8
|
+
* The public functions below are intentionally self-contained (no module
|
|
9
|
+
* imports referenced inside function bodies) so the chart generators can embed
|
|
10
|
+
* their exact source into generated HTML and keep every consumer on one logic
|
|
11
|
+
* path. Node-side defaults resolve from MARKET_ADAPTER constants; embedded
|
|
12
|
+
* browser callers pass explicit config values from the chart payload.
|
|
13
|
+
*/
|
|
14
|
+
const KALMAN_VELOCITY_DEFAULTS = {
|
|
15
|
+
kalmanSmoothPct: MARKET_ADAPTER.DYNAMIC_WEIGHT_KALMAN_SMOOTH_PCT_DEFAULT,
|
|
16
|
+
kalmanDispScaleMult: MARKET_ADAPTER.DYNAMIC_WEIGHT_KALMAN_DISP_SCALE_MULT_DEFAULT,
|
|
17
|
+
kalmanDispThresholdMult: MARKET_ADAPTER.DYNAMIC_WEIGHT_KALMAN_DISP_THRESHOLD_MULT_DEFAULT,
|
|
18
|
+
kalmanSmoothSpanPct: MARKET_ADAPTER.DYNAMIC_WEIGHT_KALMAN_SMOOTH_SPAN_PCT_DEFAULT,
|
|
19
|
+
smoothingBudget: MARKET_ADAPTER.DYNAMIC_WEIGHT_KALMAN_SMOOTHING_BUDGET,
|
|
20
|
+
smoothingFloor: MARKET_ADAPTER.DYNAMIC_WEIGHT_KALMAN_SMOOTHING_FLOOR,
|
|
21
|
+
};
|
|
22
|
+
function resolveKalmanVelocitySmoothingConfig(config = {}, defaults = {}) {
|
|
23
|
+
const blend = Math.max(0, Math.min(200, config.kalmanSmoothPct ?? defaults.kalmanSmoothPct ?? 100)) / 100;
|
|
24
|
+
const dispScale = Math.max(1.0, Math.min(3.0, config.kalmanDispScaleMult ?? defaults.kalmanDispScaleMult ?? 1.8));
|
|
25
|
+
const dispThreshold = Math.max(0.25, Math.min(3.0, config.kalmanDispThresholdMult ?? defaults.kalmanDispThresholdMult ?? 1.5));
|
|
26
|
+
const spanPct = Math.max(20, Math.min(200, config.kalmanSmoothSpanPct ?? defaults.kalmanSmoothSpanPct ?? 100));
|
|
27
|
+
const smoothingBudget = Number.isFinite(config.smoothingBudget)
|
|
28
|
+
? config.smoothingBudget
|
|
29
|
+
: (Number.isFinite(defaults.smoothingBudget) ? defaults.smoothingBudget : 0.60);
|
|
30
|
+
const smoothingFloor = Number.isFinite(config.smoothingFloor)
|
|
31
|
+
? config.smoothingFloor
|
|
32
|
+
: (Number.isFinite(defaults.smoothingFloor) ? defaults.smoothingFloor : 0);
|
|
11
33
|
return {
|
|
12
34
|
blend,
|
|
13
35
|
dispScale,
|
|
14
36
|
dispThreshold,
|
|
15
|
-
smoothingFloor
|
|
16
|
-
smoothingBudget
|
|
17
|
-
smoothingSpan:
|
|
37
|
+
smoothingFloor,
|
|
38
|
+
smoothingBudget,
|
|
39
|
+
smoothingSpan: smoothingBudget * spanPct / 100,
|
|
18
40
|
};
|
|
19
41
|
}
|
|
20
|
-
function smoothKalmanVelocityPoint(rawVelocityPct, displacementPct, prevAdaptiveVelocity, config = {}) {
|
|
42
|
+
function smoothKalmanVelocityPoint(rawVelocityPct, displacementPct, prevAdaptiveVelocity, config = {}, defaults = {}) {
|
|
21
43
|
if (rawVelocityPct == null || displacementPct == null) {
|
|
22
44
|
return {
|
|
23
45
|
adaptiveVelocityPct: null,
|
|
@@ -26,8 +48,8 @@ function smoothKalmanVelocityPoint(rawVelocityPct, displacementPct, prevAdaptive
|
|
|
26
48
|
smoothingAlpha: null,
|
|
27
49
|
};
|
|
28
50
|
}
|
|
29
|
-
const resolved = resolveKalmanVelocitySmoothingConfig(config);
|
|
30
|
-
const trendConfidence =
|
|
51
|
+
const resolved = resolveKalmanVelocitySmoothingConfig(config, defaults);
|
|
52
|
+
const trendConfidence = Math.max(0, Math.min(1, Math.abs(displacementPct) / (resolved.dispScale * resolved.dispThreshold)));
|
|
31
53
|
const smoothingAlpha = Math.min(resolved.smoothingBudget, resolved.smoothingFloor + (resolved.smoothingSpan * trendConfidence));
|
|
32
54
|
const adaptiveVelocityPct = prevAdaptiveVelocity == null
|
|
33
55
|
? rawVelocityPct
|
|
@@ -42,10 +64,10 @@ function smoothKalmanVelocityPoint(rawVelocityPct, displacementPct, prevAdaptive
|
|
|
42
64
|
smoothingAlpha,
|
|
43
65
|
};
|
|
44
66
|
}
|
|
45
|
-
function buildKalmanVelocitySeries(kalmanHistory, config = {}) {
|
|
67
|
+
function buildKalmanVelocitySeries(kalmanHistory, config = {}, defaults = {}) {
|
|
46
68
|
if (!Array.isArray(kalmanHistory) || kalmanHistory.length === 0)
|
|
47
69
|
return [];
|
|
48
|
-
const resolved = resolveKalmanVelocitySmoothingConfig(config);
|
|
70
|
+
const resolved = resolveKalmanVelocitySmoothingConfig(config, defaults);
|
|
49
71
|
if (resolved.blend === 0) {
|
|
50
72
|
const rawSeries = new Array(kalmanHistory.length).fill(null);
|
|
51
73
|
for (let i = 0; i < kalmanHistory.length; i++) {
|
|
@@ -60,7 +82,7 @@ function buildKalmanVelocitySeries(kalmanHistory, config = {}) {
|
|
|
60
82
|
let prevAdaptiveVelocity = null;
|
|
61
83
|
for (let i = 0; i < kalmanHistory.length; i++) {
|
|
62
84
|
const point = kalmanHistory[i];
|
|
63
|
-
const result = smoothKalmanVelocityPoint(point?.velocityPct ?? null, point?.displacementPct ?? null, prevAdaptiveVelocity, config);
|
|
85
|
+
const result = smoothKalmanVelocityPoint(point?.velocityPct ?? null, point?.displacementPct ?? null, prevAdaptiveVelocity, config, defaults);
|
|
64
86
|
series[i] = result.smoothedVelocityPct;
|
|
65
87
|
prevAdaptiveVelocity = result.adaptiveVelocityPct ?? null;
|
|
66
88
|
}
|
|
@@ -80,5 +102,5 @@ function computeAbsolutePercentileThreshold(series, clipPercentile, fallback = I
|
|
|
80
102
|
const idx = Math.min(Math.floor((100 - clipPercentile) / 100 * magnitudes.length), magnitudes.length - 1);
|
|
81
103
|
return magnitudes[idx];
|
|
82
104
|
}
|
|
83
|
-
export { buildKalmanVelocitySeries, computeAbsolutePercentileThreshold, resolveKalmanVelocitySmoothingConfig, smoothKalmanVelocityPoint };
|
|
105
|
+
export { buildKalmanVelocitySeries, computeAbsolutePercentileThreshold, resolveKalmanVelocitySmoothingConfig, smoothKalmanVelocityPoint, KALMAN_VELOCITY_DEFAULTS };
|
|
84
106
|
//# sourceMappingURL=kalman_velocity_smoothing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kalman_velocity_smoothing.js","sourceRoot":"","sources":["../../../../market_adapter/core/signals/kalman_velocity_smoothing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permutation_entropy_analyzer.d.ts","sourceRoot":"","sources":["../../../../market_adapter/core/signals/permutation_entropy_analyzer.ts"],"names":[],"mappings":"AAsCA,UAAU,0BAA0B;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,cAAM,0BAA0B;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IAEjB;;;;;OAKG;gBACS,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;IAmB/C;;;;OAIG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,0BAA0B;IAoCjD,WAAW,IAAI,0BAA0B;CAwB5C;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { MARKET_ADAPTER } from '../../modules/constants.js';
|
|
2
|
-
import { roundTo } from '../../modules/utils/math_utils.js';
|
|
3
1
|
'use strict';
|
|
2
|
+
import { MARKET_ADAPTER } from '../../../modules/constants.js';
|
|
3
|
+
import { roundTo } from '../../../modules/utils/math_utils.js';
|
|
4
4
|
/**
|
|
5
5
|
* Permutation Entropy Analyzer
|
|
6
6
|
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permutation_entropy_analyzer.js","sourceRoot":"","sources":["../../../../market_adapter/core/signals/permutation_entropy_analyzer.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAG/D;;;;;;;;;;;;;;;;GAgBG;AAEH;;;;GAIG;AACH,SAAS,cAAc,CAAC,MAAgB,EAAE,KAAa,EAAE,CAAS,EAAE,KAAa;IAC7E,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;IAC1E,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,OAAO,GAAG,CAAC;AACf,CAAC;AAWD,MAAM,0BAA0B;IAC5B,CAAC,CAAS;IACV,KAAK,CAAS;IACd,MAAM,CAAS;IACf,QAAQ,CAAS;IACjB,WAAW,CAAS;IACpB,OAAO,CAAW;IAClB,YAAY,CAAS;IACrB,OAAO,CAAS;IAChB,iBAAiB,CAAS;IAC1B,OAAO,CAAU;IAEjB;;;;;OAKG;IACH,YAAY,SAAiC,EAAE;QAC3C,IAAI,CAAC,CAAC,GAAQ,MAAM,CAAC,CAAC,IAAS,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,GAAI,MAAM,CAAC,KAAK,IAAK,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC;QAEnC,+EAA+E;QAC/E,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAExD,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE;YAAE,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU;QAE1C,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAa;QAChB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;QAEpB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9B,CAAC;QAED,mDAAmD;QACnD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;QACzB,qEAAqE;QACrE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAEpE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAChE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,yCAAyC;QACzC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,KAAK,GAAG,WAAW,CAAC;YAC9B,OAAO,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC;IAED,WAAW;QACP,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAClC,MAAM,CAAC,MAAM,EAAE,AAAD,EAAG,OAAO,CAAC,GAAG,cAAc,CAAC,QAAoC,CAAC;QAChF,IAAI,MAAc,EAAE,cAAsB,CAAC;QAC3C,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;YACd,MAAM,GAAG,YAAY,CAAC;YACtB,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;QACzD,CAAC;aAAM,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;YACtB,MAAM,GAAG,OAAO,CAAC;YACjB,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACJ,MAAM,GAAG,OAAO,CAAC;YACjB,cAAc,GAAG,CAAC,CAAC;QACvB,CAAC;QAED,OAAO;YACH,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;YACrC,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC;YACzD,MAAM;YACN,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;YAC5C,WAAW,EAAE,IAAI,CAAC,YAAY;SACjC,CAAC;IACN,CAAC;CACJ;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAA"}
|
|
@@ -1,22 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Kaufman's Adaptive Moving Average (KAMA/AMA).
|
|
3
|
-
*/
|
|
4
|
-
declare class AMA {
|
|
5
|
-
erPeriod: any;
|
|
6
|
-
erSmoothPeriod: any;
|
|
7
|
-
erSmoothAlpha: any;
|
|
8
|
-
erSmoothValue: any;
|
|
9
|
-
fastSC: any;
|
|
10
|
-
slowSC: any;
|
|
11
|
-
prevAMA: any;
|
|
12
|
-
history: any;
|
|
13
|
-
warmedUp: any;
|
|
14
|
-
smaSum: any;
|
|
15
|
-
smaCount: any;
|
|
16
|
-
constructor(erPeriod: any, fastPeriod: any, slowPeriod: any, erSmoothPeriod: any);
|
|
17
|
-
update(price: any): any;
|
|
18
|
-
}
|
|
19
1
|
declare function getAmaWarmupBars(erPeriod: any, slowPeriod: any, lookbackBars: any, fastPeriod: any, erSmoothPeriod?: number): number;
|
|
20
2
|
declare function calculateAMA(closes: any, params: any): any[];
|
|
21
|
-
export {
|
|
3
|
+
export { calculateAMA, getAmaWarmupBars };
|
|
22
4
|
//# sourceMappingURL=ama.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ama.d.ts","sourceRoot":"","sources":["../../../../market_adapter/core/strategies/ama.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ama.d.ts","sourceRoot":"","sources":["../../../../market_adapter/core/strategies/ama.ts"],"names":[],"mappings":"AAgGA,iBAAS,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,SAAI,UAoC/G;AAED,iBAAS,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,SAmB7C;AAED,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAA"}
|
|
@@ -129,5 +129,5 @@ function calculateAMA(closes, params) {
|
|
|
129
129
|
const indicator = new AMA(params.erPeriod, params.fastPeriod, params.slowPeriod, params.erSmoothPeriod);
|
|
130
130
|
return closes.map(price => indicator.update(price));
|
|
131
131
|
}
|
|
132
|
-
export {
|
|
132
|
+
export { calculateAMA, getAmaWarmupBars };
|
|
133
133
|
//# sourceMappingURL=ama.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ama.js","sourceRoot":"","sources":["../../../../market_adapter/core/strategies/ama.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ama.js","sourceRoot":"","sources":["../../../../market_adapter/core/strategies/ama.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { computeAverageAmaSlopePct } from './dynamic_weight_series.js';
|
|
2
2
|
/**
|
|
3
3
|
* Compute AMA slope and volatility offsets from the AMA series.
|
|
4
4
|
*
|
|
@@ -16,23 +16,12 @@ declare function computeAverageAmaSlopePct(current: any, past: any, lookbackBars
|
|
|
16
16
|
* @param {number} [opts.volatilityScaleX=10.0] Scale factor penalty (10.0 = normal start)
|
|
17
17
|
* @param {number} [opts.volatilityThreshold=0.1] Minimum |symmetricDelta| before penalty applies
|
|
18
18
|
* @param {number} [opts.erPeriod=DEFAULT_ER_PERIOD] AMA warm-up bars to skip in isReady guard
|
|
19
|
-
* @param {number} [opts.slowPeriod=DEFAULT_SLOW_PERIOD] AMA slow period used for warm-up guard
|
|
20
|
-
* @param {number} [opts.fastPeriod=DEFAULT_FAST_PERIOD] AMA fast period used for warm-up guard
|
|
21
19
|
* @param {number} [opts.maxSlopeOffset=MARKET_ADAPTER.DYNAMIC_WEIGHT_ASYMMETRIC_OFFSET_CLAMP] Per-bot cap on buy/sell asymmetry offset
|
|
22
20
|
* @param {number} [opts.maxVolatilityOffset=MARKET_ADAPTER.DYNAMIC_WEIGHT_SYMMETRIC_SHIFT_CLAMP] Per-bot cap on volatility shift
|
|
23
|
-
* @param {number} [opts.
|
|
24
|
-
* @param {number} [opts.clipThreshold] Pre-computed clip threshold from slope history
|
|
21
|
+
* @param {number} [opts.clipThreshold=Infinity] Pre-computed clip threshold from slope history (percentile clipping is done by the caller)
|
|
25
22
|
* @returns {{ slopeOffset, rawSlopeOffset, symmetricDelta, slopePct, clippedSlopePct, confidence, trend, isReady }}
|
|
26
23
|
*/
|
|
27
24
|
declare function computeAmaSlopeWeights(amaValues: any, weightVariance: any, opts?: any): {
|
|
28
|
-
isReady: boolean;
|
|
29
|
-
slopeOffset: number;
|
|
30
|
-
symmetricDelta: number;
|
|
31
|
-
slopePct: number;
|
|
32
|
-
clippedSlopePct: number;
|
|
33
|
-
confidence: number;
|
|
34
|
-
trend: string;
|
|
35
|
-
} | {
|
|
36
25
|
slopeOffset: number;
|
|
37
26
|
rawSlopeOffset: number;
|
|
38
27
|
symmetricDelta: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ama_slope_model.d.ts","sourceRoot":"","sources":["../../../../market_adapter/core/strategies/ama_slope_model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ama_slope_model.d.ts","sourceRoot":"","sources":["../../../../market_adapter/core/strategies/ama_slope_model.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAOvE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,iBAAS,sBAAsB,CAAC,SAAS,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,IAAI,GAAE,GAAQ;;;;;;;;;EAiGlF;AAED,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,CAAA"}
|
|
@@ -2,17 +2,12 @@ import { clamp } from '../../../modules/order/utils/math.js';
|
|
|
2
2
|
import { MARKET_ADAPTER } from '../../../modules/constants.js';
|
|
3
3
|
import { roundTo } from '../../../modules/utils/math_utils.js';
|
|
4
4
|
import { normalizeMaxVolatilityOffset, normalizeVolatilityThreshold, } from '../config_normalizers.js';
|
|
5
|
+
import { computeVolatilityShift } from './volatility_shift.js';
|
|
6
|
+
// Canonical AMA slope % lives in dynamic_weight_series.ts (self-contained so the
|
|
7
|
+
// chart generators can embed its exact source); re-exported here for compat.
|
|
8
|
+
import { computeAverageAmaSlopePct } from './dynamic_weight_series.js';
|
|
5
9
|
const _DEFAULT_AMA_KEY = MARKET_ADAPTER.DEFAULT_AMA_KEY;
|
|
6
10
|
const DEFAULT_ER_PERIOD = MARKET_ADAPTER.AMAS[_DEFAULT_AMA_KEY].erPeriod;
|
|
7
|
-
function computeAverageAmaSlopePct(current, past, lookbackBars) {
|
|
8
|
-
const safeLookbackBars = Number.isFinite(lookbackBars) && lookbackBars > 0
|
|
9
|
-
? Math.ceil(lookbackBars)
|
|
10
|
-
: 1;
|
|
11
|
-
if (!Number.isFinite(current) || !Number.isFinite(past) || past === 0) {
|
|
12
|
-
return null;
|
|
13
|
-
}
|
|
14
|
-
return ((current - past) / past * 100) / safeLookbackBars;
|
|
15
|
-
}
|
|
16
11
|
/**
|
|
17
12
|
* Compute AMA slope and volatility offsets from the AMA series.
|
|
18
13
|
*
|
|
@@ -30,12 +25,9 @@ function computeAverageAmaSlopePct(current, past, lookbackBars) {
|
|
|
30
25
|
* @param {number} [opts.volatilityScaleX=10.0] Scale factor penalty (10.0 = normal start)
|
|
31
26
|
* @param {number} [opts.volatilityThreshold=0.1] Minimum |symmetricDelta| before penalty applies
|
|
32
27
|
* @param {number} [opts.erPeriod=DEFAULT_ER_PERIOD] AMA warm-up bars to skip in isReady guard
|
|
33
|
-
* @param {number} [opts.slowPeriod=DEFAULT_SLOW_PERIOD] AMA slow period used for warm-up guard
|
|
34
|
-
* @param {number} [opts.fastPeriod=DEFAULT_FAST_PERIOD] AMA fast period used for warm-up guard
|
|
35
28
|
* @param {number} [opts.maxSlopeOffset=MARKET_ADAPTER.DYNAMIC_WEIGHT_ASYMMETRIC_OFFSET_CLAMP] Per-bot cap on buy/sell asymmetry offset
|
|
36
29
|
* @param {number} [opts.maxVolatilityOffset=MARKET_ADAPTER.DYNAMIC_WEIGHT_SYMMETRIC_SHIFT_CLAMP] Per-bot cap on volatility shift
|
|
37
|
-
* @param {number} [opts.
|
|
38
|
-
* @param {number} [opts.clipThreshold] Pre-computed clip threshold from slope history
|
|
30
|
+
* @param {number} [opts.clipThreshold=Infinity] Pre-computed clip threshold from slope history (percentile clipping is done by the caller)
|
|
39
31
|
* @returns {{ slopeOffset, rawSlopeOffset, symmetricDelta, slopePct, clippedSlopePct, confidence, trend, isReady }}
|
|
40
32
|
*/
|
|
41
33
|
function computeAmaSlopeWeights(amaValues, weightVariance, opts = {}) {
|
|
@@ -64,6 +56,7 @@ function computeAmaSlopeWeights(amaValues, weightVariance, opts = {}) {
|
|
|
64
56
|
const notReady = {
|
|
65
57
|
isReady: false,
|
|
66
58
|
slopeOffset: 0,
|
|
59
|
+
rawSlopeOffset: 0,
|
|
67
60
|
symmetricDelta: 0,
|
|
68
61
|
slopePct: 0,
|
|
69
62
|
clippedSlopePct: 0,
|
|
@@ -105,19 +98,15 @@ function computeAmaSlopeWeights(amaValues, weightVariance, opts = {}) {
|
|
|
105
98
|
? Math.round((Math.abs(slopeOffset) / maxSlopeOffset) * 100)
|
|
106
99
|
: 0;
|
|
107
100
|
// 5. Volatility penalty — symmetric downward shift from ATR/price ratio.
|
|
108
|
-
//
|
|
109
|
-
//
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
const rawSymmetricDelta = clamp(volDelta, -maxVolatilityOffset, 0);
|
|
118
|
-
symmetricDelta = Math.abs(rawSymmetricDelta) < volatilityThreshold ? 0 : rawSymmetricDelta;
|
|
119
|
-
}
|
|
120
|
-
const roundedSymmetricDelta = (roundTo(symmetricDelta, 100)) || 0;
|
|
101
|
+
// Canonical implementation shared with the volatility research tool and
|
|
102
|
+
// the browser-embedded chart scripts (see strategies/volatility_shift.ts).
|
|
103
|
+
const shift = computeVolatilityShift(safeWeightVariance, {
|
|
104
|
+
exponent: safeVolatilityExponent,
|
|
105
|
+
scaleX: safeVolatilityScaleX,
|
|
106
|
+
threshold: volatilityThreshold,
|
|
107
|
+
clampValue: maxVolatilityOffset,
|
|
108
|
+
});
|
|
109
|
+
const roundedSymmetricDelta = (roundTo(shift.symmetricDelta, 100)) || 0;
|
|
121
110
|
return {
|
|
122
111
|
slopeOffset: roundedSlopeOffset,
|
|
123
112
|
rawSlopeOffset: slopeOffset,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ama_slope_model.js","sourceRoot":"","sources":["../../../../market_adapter/core/strategies/ama_slope_model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EACH,4BAA4B,EAC5B,4BAA4B,GAC/B,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"ama_slope_model.js","sourceRoot":"","sources":["../../../../market_adapter/core/strategies/ama_slope_model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EACH,4BAA4B,EAC5B,4BAA4B,GAC/B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,iFAAiF;AACjF,6EAA6E;AAC7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAIvE,MAAM,gBAAgB,GAAG,cAAc,CAAC,eAAmD,CAAC;AAC5F,MAAM,iBAAiB,GAAG,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC;AAEzE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAS,sBAAsB,CAAC,SAAc,EAAE,cAAmB,EAAE,OAAY,EAAE;IAC/E,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC;QAC7E,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAC9B,CAAC,CAAC,cAAc,CAAC,gCAAgC,CAAC;IACtD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,cAAc,CAAC,gCAAgC,CAAC;IACxF,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,mCAAmC,CAAC;IACjG,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,IAAI,cAAc,CAAC,kCAAkC,CAAC;IACxG,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,cAAc,CAAC,yCAAyC,CAAC;IAC3G,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACnF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC;QAChE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC1B,CAAC,CAAC,iBAAiB,CAAC;IACxB,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,sCAAsC,CAAC;IACpG,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACnF,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAC;IACrD,MAAM,oBAAoB,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,CAAC,CAAC;IACnF,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IACtG,MAAM,sBAAsB,GAAG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,IAAI,CAAC;QACzF,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,cAAc,CAAC,kCAAkC,CAAC;IACxD,MAAM,oBAAoB,GAAG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,gBAAgB,IAAI,CAAC;QACnF,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,cAAc,CAAC,yCAAyC,CAAC;IAE/D,MAAM,QAAQ,GAAG;QACb,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,CAAC;QACd,cAAc,EAAE,CAAC;QACjB,cAAc,EAAE,CAAC;QACjB,QAAQ,EAAE,CAAC;QACX,eAAe,EAAE,CAAC;QAClB,UAAU,EAAE,CAAC;QACb,KAAK,EAAE,SAAS;KACnB,CAAC;IAEF,qEAAqE;IACrE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC;QAC9E,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;IAC3B,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;IAE7C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QACjE,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,wEAAwE;IACxE,+EAA+E;IAC/E,MAAM,QAAQ,GAAG,yBAAyB,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;IACrE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,0DAA0D;IAC1D,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAE,aAAwB,EAAE,IAAI,CAAC,GAAG,CAAE,aAAwB,EAAE,QAAkB,CAAC,CAAC,CAAC;IAEtH,wDAAwD;IACxD,IAAI,WAAW,CAAC;IAChB,IAAI,KAAK,CAAC;IACV,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,cAAc,EAAE,CAAC;QAC9C,WAAW,GAAG,CAAC,CAAC;QAChB,KAAK,GAAG,SAAS,CAAC;IACtB,CAAC;SAAM,CAAC;QACJ,WAAW,GAAG,KAAK,CAAC,eAAe,GAAG,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,cAAc,CAAC;QAC3E,KAAK,GAAG,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAChD,CAAC;IAED,4DAA4D;IAC5D,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,oBAAoB;QACnC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC,GAAG,GAAG,CAAC;QAC5D,CAAC,CAAC,CAAC,CAAC;IAER,yEAAyE;IACzE,2EAA2E;IAC3E,8EAA8E;IAC9E,MAAM,KAAK,GAAG,sBAAsB,CAAC,kBAAkB,EAAE;QACrD,QAAQ,EAAE,sBAAsB;QAChC,MAAM,EAAE,oBAAoB;QAC5B,SAAS,EAAE,mBAAmB;QAC9B,UAAU,EAAE,mBAAmB;KAClC,CAAC,CAAC;IAEH,MAAM,qBAAqB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAExE,OAAO;QACH,WAAW,EAAE,kBAAkB;QAC/B,cAAc,EAAE,WAAW;QAC3B,cAAc,EAAE,qBAAqB;QACrC,QAAQ;QACR,eAAe;QACf,UAAU;QACV,KAAK;QACL,OAAO,EAAE,IAAI;KAChB,CAAC;AACN,CAAC;AAED,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,CAAA"}
|
|
@@ -1,13 +1,48 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Average True Range (ATR) Service
|
|
3
3
|
* Computes market volatility for symmetrical weight shifts.
|
|
4
|
+
*
|
|
5
|
+
* computeATRSeries is the canonical series implementation — it is shared by the
|
|
6
|
+
* live market adapter (via calculateATR), analysis tooling (re-exported through
|
|
7
|
+
* analysis/math_utils.ts), and the browser-embedded chart scripts (injected via
|
|
8
|
+
* fn.toString()). calculateATR is a thin single-value wrapper that preserves the
|
|
9
|
+
* production edge-case guards on top of the same series.
|
|
4
10
|
*/
|
|
11
|
+
/**
|
|
12
|
+
* ATR series over candles (High, Low, Close).
|
|
13
|
+
*
|
|
14
|
+
* Chain-breaking semantics: an invalid row resets the previous-close reference so
|
|
15
|
+
* a single bad candle never synthesizes a multi-bar gap into the next true range.
|
|
16
|
+
* Positions before `period` valid true ranges resolve to 0 (insufficient data).
|
|
17
|
+
*
|
|
18
|
+
* Candles may be rows ([timestamp, open, high, low, close, volume]) or objects
|
|
19
|
+
* ({ open, high, low, close, ... }); the getter logic is inlined so the function
|
|
20
|
+
* stays self-contained and can be injected into generated HTML verbatim.
|
|
21
|
+
*
|
|
22
|
+
* @param {Array} candles - Array of candle rows or candle objects
|
|
23
|
+
* @param {number} period - ATR period
|
|
24
|
+
* @param {Object} [stats] - Optional mutable object; when provided, the number of
|
|
25
|
+
* valid true ranges computed is written to `stats.validRanges`
|
|
26
|
+
* and the final running ATR value to `stats.atr` (useful for
|
|
27
|
+
* callers that need to distinguish "no valid data" from "warmup 0"
|
|
28
|
+
* without re-scanning the input, or to read the last computed ATR
|
|
29
|
+
* even when the final row is missing/invalid).
|
|
30
|
+
* @returns {number[]} Per-candle ATR values (0 during warmup / across breaks)
|
|
31
|
+
*/
|
|
32
|
+
declare function computeATRSeries(candles: any, period?: number, stats?: any): number[];
|
|
5
33
|
/**
|
|
6
34
|
* Calculates ATR from candles (High, Low, Close).
|
|
7
|
-
*
|
|
35
|
+
*
|
|
36
|
+
* Edge-case guards preserved on top of the shared series: all-invalid input
|
|
37
|
+
* yields NaN (so callers can detect a failed ATR and disable the volatility
|
|
38
|
+
* penalty) rather than a silent 0; fewer valid true ranges than the period
|
|
39
|
+
* remains a warmup 0. The final ATR is the last computed running value, so a
|
|
40
|
+
* trailing missing/invalid candle does not collapse a valid ATR to 0.
|
|
41
|
+
*
|
|
42
|
+
* @param {Array} candles - Array of candle rows or candle objects
|
|
8
43
|
* @param {number} period - ATR period
|
|
9
44
|
* @returns {number} Average True Range value
|
|
10
45
|
*/
|
|
11
|
-
declare function calculateATR(candles: any, period?: number):
|
|
12
|
-
export { calculateATR };
|
|
46
|
+
declare function calculateATR(candles: any, period?: number): any;
|
|
47
|
+
export { calculateATR, computeATRSeries };
|
|
13
48
|
//# sourceMappingURL=calculator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculator.d.ts","sourceRoot":"","sources":["../../../../../market_adapter/core/strategies/atr/calculator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"calculator.d.ts","sourceRoot":"","sources":["../../../../../market_adapter/core/strategies/atr/calculator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,iBAAS,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,SAAK,EAAE,KAAK,GAAE,GAAU,YA0CrE;AAED;;;;;;;;;;;;GAYG;AACH,iBAAS,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,SAAK,OAe9C;AAED,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAA"}
|
|
@@ -1,47 +1,107 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Average True Range (ATR) Service
|
|
3
3
|
* Computes market volatility for symmetrical weight shifts.
|
|
4
|
+
*
|
|
5
|
+
* computeATRSeries is the canonical series implementation — it is shared by the
|
|
6
|
+
* live market adapter (via calculateATR), analysis tooling (re-exported through
|
|
7
|
+
* analysis/math_utils.ts), and the browser-embedded chart scripts (injected via
|
|
8
|
+
* fn.toString()). calculateATR is a thin single-value wrapper that preserves the
|
|
9
|
+
* production edge-case guards on top of the same series.
|
|
4
10
|
*/
|
|
5
11
|
import { normalizeAtrPeriod } from '../../config_normalizers.js';
|
|
6
12
|
'use strict';
|
|
7
13
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
14
|
+
* ATR series over candles (High, Low, Close).
|
|
15
|
+
*
|
|
16
|
+
* Chain-breaking semantics: an invalid row resets the previous-close reference so
|
|
17
|
+
* a single bad candle never synthesizes a multi-bar gap into the next true range.
|
|
18
|
+
* Positions before `period` valid true ranges resolve to 0 (insufficient data).
|
|
19
|
+
*
|
|
20
|
+
* Candles may be rows ([timestamp, open, high, low, close, volume]) or objects
|
|
21
|
+
* ({ open, high, low, close, ... }); the getter logic is inlined so the function
|
|
22
|
+
* stays self-contained and can be injected into generated HTML verbatim.
|
|
23
|
+
*
|
|
24
|
+
* @param {Array} candles - Array of candle rows or candle objects
|
|
25
|
+
* @param {number} period - ATR period
|
|
26
|
+
* @param {Object} [stats] - Optional mutable object; when provided, the number of
|
|
27
|
+
* valid true ranges computed is written to `stats.validRanges`
|
|
28
|
+
* and the final running ATR value to `stats.atr` (useful for
|
|
29
|
+
* callers that need to distinguish "no valid data" from "warmup 0"
|
|
30
|
+
* without re-scanning the input, or to read the last computed ATR
|
|
31
|
+
* even when the final row is missing/invalid).
|
|
32
|
+
* @returns {number[]} Per-candle ATR values (0 during warmup / across breaks)
|
|
12
33
|
*/
|
|
13
|
-
function
|
|
14
|
-
const
|
|
34
|
+
function computeATRSeries(candles, period = 14, stats = null) {
|
|
35
|
+
const atrs = [];
|
|
15
36
|
if (!Array.isArray(candles))
|
|
16
|
-
return
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
let
|
|
37
|
+
return atrs;
|
|
38
|
+
const safePeriod = Math.max(1, Math.round(period));
|
|
39
|
+
let trSum = 0;
|
|
40
|
+
let trCount = 0;
|
|
20
41
|
let prevClose = null;
|
|
42
|
+
let atrVal = 0;
|
|
21
43
|
for (let i = 0; i < candles.length; i++) {
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
const
|
|
44
|
+
const c = candles[i];
|
|
45
|
+
const high = Array.isArray(c) ? Number(c?.[2]) : Number(c?.high);
|
|
46
|
+
const low = Array.isArray(c) ? Number(c?.[3]) : Number(c?.low);
|
|
47
|
+
const close = Array.isArray(c) ? Number(c?.[4]) : Number(c?.close);
|
|
25
48
|
if (!Number.isFinite(high) || !Number.isFinite(low) || !Number.isFinite(close)) {
|
|
26
|
-
// Break the ATR chain across missing/invalid rows so a single bad
|
|
27
|
-
// does not synthesize a multi-bar gap into the next valid true range.
|
|
49
|
+
// Break the ATR chain across missing/invalid rows so a single bad
|
|
50
|
+
// candle does not synthesize a multi-bar gap into the next valid true range.
|
|
28
51
|
prevClose = null;
|
|
52
|
+
atrs.push(0);
|
|
29
53
|
continue;
|
|
30
54
|
}
|
|
31
55
|
if (prevClose != null) {
|
|
32
|
-
tr
|
|
56
|
+
const tr = Math.max(high - low, Math.abs(high - prevClose), Math.abs(low - prevClose));
|
|
57
|
+
trCount++;
|
|
58
|
+
if (trCount <= safePeriod) {
|
|
59
|
+
trSum += tr;
|
|
60
|
+
atrVal = trSum / trCount;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
atrVal = (atrVal * (safePeriod - 1) + tr) / safePeriod;
|
|
64
|
+
}
|
|
33
65
|
}
|
|
34
66
|
prevClose = close;
|
|
67
|
+
atrs.push(trCount < safePeriod ? 0 : atrVal);
|
|
68
|
+
}
|
|
69
|
+
if (stats && typeof stats === 'object') {
|
|
70
|
+
stats.validRanges = trCount;
|
|
71
|
+
stats.atr = atrVal;
|
|
35
72
|
}
|
|
36
|
-
|
|
73
|
+
return atrs;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Calculates ATR from candles (High, Low, Close).
|
|
77
|
+
*
|
|
78
|
+
* Edge-case guards preserved on top of the shared series: all-invalid input
|
|
79
|
+
* yields NaN (so callers can detect a failed ATR and disable the volatility
|
|
80
|
+
* penalty) rather than a silent 0; fewer valid true ranges than the period
|
|
81
|
+
* remains a warmup 0. The final ATR is the last computed running value, so a
|
|
82
|
+
* trailing missing/invalid candle does not collapse a valid ATR to 0.
|
|
83
|
+
*
|
|
84
|
+
* @param {Array} candles - Array of candle rows or candle objects
|
|
85
|
+
* @param {number} period - ATR period
|
|
86
|
+
* @returns {number} Average True Range value
|
|
87
|
+
*/
|
|
88
|
+
function calculateATR(candles, period = 14) {
|
|
89
|
+
const safePeriod = normalizeAtrPeriod(period);
|
|
90
|
+
if (!Array.isArray(candles))
|
|
37
91
|
return Number.NaN;
|
|
38
|
-
if (
|
|
92
|
+
if (candles.length < safePeriod + 1)
|
|
39
93
|
return 0;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
94
|
+
const stats = {};
|
|
95
|
+
const series = computeATRSeries(candles, safePeriod, stats);
|
|
96
|
+
if (series.length === 0)
|
|
97
|
+
return Number.NaN;
|
|
98
|
+
// No valid true ranges at all (all rows missing/invalid) → NaN, not 0.
|
|
99
|
+
if (stats.validRanges === 0)
|
|
100
|
+
return Number.NaN;
|
|
101
|
+
// Fewer valid true ranges than the period → warmup 0.
|
|
102
|
+
if (stats.validRanges < safePeriod)
|
|
103
|
+
return 0;
|
|
104
|
+
return Number.isFinite(stats.atr) ? stats.atr : 0;
|
|
45
105
|
}
|
|
46
|
-
export { calculateATR };
|
|
106
|
+
export { calculateATR, computeATRSeries };
|
|
47
107
|
//# sourceMappingURL=calculator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculator.js","sourceRoot":"","sources":["../../../../../market_adapter/core/strategies/atr/calculator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"calculator.js","sourceRoot":"","sources":["../../../../../market_adapter/core/strategies/atr/calculator.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* and any CR adjustment should trigger a grid rebuild from fresh on-chain state.
|
|
16
16
|
*/
|
|
17
17
|
/**
|
|
18
|
-
* @param {Object} trendData -
|
|
18
|
+
* @param {Object} trendData - AMA slope model output ({ trend, confidence, isReady })
|
|
19
19
|
* @param {number} minRatio - Floor collateral ratio (e.g. 1.5)
|
|
20
20
|
* @param {number} maxRatio - Ceiling collateral ratio (e.g. 2.0)
|
|
21
21
|
* @returns {{ targetRatio: number, action: string, adjustment: number }}
|
|
@@ -17,7 +17,7 @@ import { roundTo, roundToDecimals } from '../../../modules/utils/math_utils.js';
|
|
|
17
17
|
* and any CR adjustment should trigger a grid rebuild from fresh on-chain state.
|
|
18
18
|
*/
|
|
19
19
|
/**
|
|
20
|
-
* @param {Object} trendData -
|
|
20
|
+
* @param {Object} trendData - AMA slope model output ({ trend, confidence, isReady })
|
|
21
21
|
* @param {number} minRatio - Floor collateral ratio (e.g. 1.5)
|
|
22
22
|
* @param {number} maxRatio - Ceiling collateral ratio (e.g. 2.0)
|
|
23
23
|
* @returns {{ targetRatio: number, action: string, adjustment: number }}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dynamic weight per-bar series — canonical implementation shared by the live
|
|
3
|
+
* market adapter service, the research test harness, and the browser-embedded
|
|
4
|
+
* dynamic-weight chart script.
|
|
5
|
+
*
|
|
6
|
+
* Computes the per-bar AMA/Kalman offset channels, the alpha-blended combined
|
|
7
|
+
* series, the pre-gain dead-band gate, the final gain/clamp, and the signal
|
|
8
|
+
* confirmation latch — the exact shape both the live `_computeDynamicWeights`
|
|
9
|
+
* and the interactive research chart render.
|
|
10
|
+
*
|
|
11
|
+
* This module is intentionally fully self-contained (no imports): the chart
|
|
12
|
+
* generator embeds its exact source into generated HTML via fn.toString(), so
|
|
13
|
+
* every consumer runs one logic path. The pure helper computeAverageAmaSlopePct
|
|
14
|
+
* is re-exported by strategies/ama_slope_model.ts so Node callers keep their
|
|
15
|
+
* existing import path.
|
|
16
|
+
*/
|
|
17
|
+
declare function computeAverageAmaSlopePct(current: any, past: any, lookbackBars: any): number | null;
|
|
18
|
+
declare function echoLatchSeries(appliedSeries: any[], preGainSeries: any[], confirmBars: any): {
|
|
19
|
+
echoedAppliedSeries: any[];
|
|
20
|
+
echoedPreGainSeries: any[];
|
|
21
|
+
};
|
|
22
|
+
declare function roundToN(value: any, factor: any): number;
|
|
23
|
+
declare function computeDynamicWeightSeries(inputs: any): {
|
|
24
|
+
amaOffsets: any[];
|
|
25
|
+
kalmanOffsets: any[];
|
|
26
|
+
combinedOffSeries: any[];
|
|
27
|
+
gatedOffSeries: any[];
|
|
28
|
+
echoedOffSeries: any[];
|
|
29
|
+
echoedGatedOffSeries: any[];
|
|
30
|
+
};
|
|
31
|
+
export { computeDynamicWeightSeries, computeAverageAmaSlopePct, echoLatchSeries, roundToN };
|
|
32
|
+
//# sourceMappingURL=dynamic_weight_series.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic_weight_series.d.ts","sourceRoot":"","sources":["../../../../market_adapter/core/strategies/dynamic_weight_series.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AAEH,iBAAS,yBAAyB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,iBAQ5E;AAED,iBAAS,eAAe,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,WAAW,EAAE,GAAG;;;EA+CpF;AAED,iBAAS,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,UAGxC;AAED,iBAAS,0BAA0B,CAAC,MAAM,EAAE,GAAG;;;;;;;EA6E9C;AAED,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAA"}
|