1010 resolve_bool_value ,
1111 resolve_cash_only_execution_env ,
1212 resolve_dry_run_env ,
13+ resolve_optional_bool_env ,
14+ resolve_optional_dca_mode_env ,
1315 resolve_optional_float_env ,
16+ resolve_optional_ibit_zscore_exit_mode_env ,
17+ resolve_optional_positive_float_env ,
18+ resolve_optional_ratio_env ,
19+ resolve_optional_symbol_env ,
20+ resolve_split_env_list ,
1421 resolve_strategy_runtime_path_settings ,
1522)
1623from quant_platform_kit .common .runtime_target import (
@@ -327,19 +334,19 @@ def load_platform_runtime_settings(
327334 debug_position_snapshot = resolve_bool_value (os .getenv ("LONGBRIDGE_DEBUG_POSITION_SNAPSHOT" )),
328335 income_threshold_usd = resolve_optional_float_env (os .environ , "INCOME_THRESHOLD_USD" ),
329336 qqqi_income_ratio = _qqqi_income_ratio_env (),
330- income_layer_enabled = _optional_bool_env ("INCOME_LAYER_ENABLED" ),
337+ income_layer_enabled = resolve_optional_bool_env ("INCOME_LAYER_ENABLED" ),
331338 income_layer_start_usd = _optional_non_negative_float_env ("INCOME_LAYER_START_USD" ),
332- income_layer_max_ratio = _optional_ratio_env ("INCOME_LAYER_MAX_RATIO" ),
333- dca_mode = _optional_dca_mode_env ("DCA_MODE" ),
334- dca_base_investment_usd = _optional_positive_float_env ("DCA_BASE_INVESTMENT_USD" ),
335- ibit_zscore_exit_enabled = _optional_bool_env ("IBIT_ZSCORE_EXIT_ENABLED" ),
336- ibit_zscore_exit_mode = _optional_ibit_zscore_exit_mode_env ("IBIT_ZSCORE_EXIT_MODE" ),
337- ibit_zscore_exit_parking_symbol = _optional_symbol_env ("IBIT_ZSCORE_EXIT_PARKING_SYMBOL" ),
338- ibit_zscore_exit_risk_reduced_exposure = _optional_ratio_env (
339+ income_layer_max_ratio = resolve_optional_ratio_env ("INCOME_LAYER_MAX_RATIO" ),
340+ dca_mode = resolve_optional_dca_mode_env ("DCA_MODE" ),
341+ dca_base_investment_usd = resolve_optional_positive_float_env ("DCA_BASE_INVESTMENT_USD" ),
342+ ibit_zscore_exit_enabled = resolve_optional_bool_env ("IBIT_ZSCORE_EXIT_ENABLED" ),
343+ ibit_zscore_exit_mode = resolve_optional_ibit_zscore_exit_mode_env ("IBIT_ZSCORE_EXIT_MODE" ),
344+ ibit_zscore_exit_parking_symbol = resolve_optional_symbol_env ("IBIT_ZSCORE_EXIT_PARKING_SYMBOL" ),
345+ ibit_zscore_exit_risk_reduced_exposure = resolve_optional_ratio_env (
339346 "IBIT_ZSCORE_EXIT_RISK_REDUCED_EXPOSURE"
340347 ),
341- ibit_zscore_exit_risk_off_exposure = _optional_ratio_env ("IBIT_ZSCORE_EXIT_RISK_OFF_EXPOSURE" ),
342- ibit_zscore_exit_allow_outside_execution_window = _optional_bool_env (
348+ ibit_zscore_exit_risk_off_exposure = resolve_optional_ratio_env ("IBIT_ZSCORE_EXIT_RISK_OFF_EXPOSURE" ),
349+ ibit_zscore_exit_allow_outside_execution_window = resolve_optional_bool_env (
343350 "IBIT_ZSCORE_EXIT_ALLOW_OUTSIDE_EXECUTION_WINDOW"
344351 ),
345352 runtime_execution_window_trading_days = _runtime_execution_window_trading_days_env (
@@ -404,8 +411,8 @@ def load_platform_runtime_settings(
404411 os .getenv ("LONGBRIDGE_STRATEGY_PLUGIN_MOUNTS_JSON" )
405412 or os .getenv ("STRATEGY_PLUGIN_MOUNTS_JSON" )
406413 ),
407- strategy_plugin_alert_channels = _split_env_list ( os . getenv ("STRATEGY_PLUGIN_ALERT_CHANNELS" )),
408- strategy_plugin_alert_email_recipients = _split_env_list ( os . getenv ("STRATEGY_PLUGIN_ALERT_EMAIL_RECIPIENTS" )),
414+ strategy_plugin_alert_channels = resolve_split_env_list ("STRATEGY_PLUGIN_ALERT_CHANNELS" )),
415+ strategy_plugin_alert_email_recipients = resolve_split_env_list ("STRATEGY_PLUGIN_ALERT_EMAIL_RECIPIENTS" )),
409416 strategy_plugin_alert_email_sender_email = _first_non_empty (os .getenv ("STRATEGY_PLUGIN_ALERT_EMAIL_SENDER_EMAIL" )),
410417 strategy_plugin_alert_email_sender_password = _first_non_empty (
411418 os .getenv ("STRATEGY_PLUGIN_ALERT_EMAIL_SENDER_PASSWORD" )
@@ -415,7 +422,7 @@ def load_platform_runtime_settings(
415422 strategy_plugin_alert_email_smtp_security = _first_non_empty (
416423 os .getenv ("STRATEGY_PLUGIN_ALERT_EMAIL_SMTP_SECURITY" )
417424 ),
418- strategy_plugin_alert_sms_recipients = _split_env_list ( os . getenv ("STRATEGY_PLUGIN_ALERT_SMS_RECIPIENTS" )),
425+ strategy_plugin_alert_sms_recipients = resolve_split_env_list ("STRATEGY_PLUGIN_ALERT_SMS_RECIPIENTS" )),
419426 strategy_plugin_alert_sms_provider = _first_non_empty (os .getenv ("STRATEGY_PLUGIN_ALERT_SMS_PROVIDER" )),
420427 strategy_plugin_alert_sms_account_id = _first_non_empty (os .getenv ("STRATEGY_PLUGIN_ALERT_SMS_ACCOUNT_ID" )),
421428 strategy_plugin_alert_sms_auth_token = _first_non_empty (os .getenv ("STRATEGY_PLUGIN_ALERT_SMS_AUTH_TOKEN" )),
@@ -427,7 +434,7 @@ def load_platform_runtime_settings(
427434 strategy_plugin_alert_sms_body_max_chars = _first_non_empty (
428435 os .getenv ("STRATEGY_PLUGIN_ALERT_SMS_BODY_MAX_CHARS" )
429436 ),
430- strategy_plugin_alert_push_recipients = _split_env_list ( os . getenv ("STRATEGY_PLUGIN_ALERT_PUSH_RECIPIENTS" )),
437+ strategy_plugin_alert_push_recipients = resolve_split_env_list ("STRATEGY_PLUGIN_ALERT_PUSH_RECIPIENTS" )),
431438 strategy_plugin_alert_push_provider = _first_non_empty (os .getenv ("STRATEGY_PLUGIN_ALERT_PUSH_PROVIDER" )),
432439 strategy_plugin_alert_push_app_token = _first_non_empty (os .getenv ("STRATEGY_PLUGIN_ALERT_PUSH_APP_TOKEN" )),
433440 strategy_plugin_alert_push_access_token = _first_non_empty (os .getenv ("STRATEGY_PLUGIN_ALERT_PUSH_ACCESS_TOKEN" )),
@@ -477,7 +484,7 @@ def _qqqi_income_ratio_env() -> float | None:
477484 return value
478485
479486
480- def _optional_bool_env (name : str ) -> bool | None :
487+ def resolve_optional_bool_env (name : str ) -> bool | None :
481488 raw_value = os .getenv (name )
482489 if raw_value is None or str (raw_value ).strip () == "" :
483490 return None
@@ -490,11 +497,11 @@ def _optional_bool_env(name: str) -> bool | None:
490497
491498
492499def _runtime_target_enabled_env () -> bool :
493- value = _optional_bool_env ("RUNTIME_TARGET_ENABLED" )
500+ value = resolve_optional_bool_env ("RUNTIME_TARGET_ENABLED" )
494501 return True if value is None else value
495502
496503
497- def _optional_ratio_env (name : str ) -> float | None :
504+ def resolve_optional_ratio_env (name : str ) -> float | None :
498505 value = resolve_optional_float_env (os .environ , name )
499506 if value is None :
500507 return None
@@ -516,7 +523,7 @@ def _optional_non_negative_float_env(name: str) -> float | None:
516523 return float (value )
517524
518525
519- def _optional_positive_float_env (name : str ) -> float | None :
526+ def resolve_optional_positive_float_env (name : str ) -> float | None :
520527 value = resolve_optional_float_env (os .environ , name )
521528 if value is None :
522529 return None
@@ -527,7 +534,7 @@ def _optional_positive_float_env(name: str) -> float | None:
527534 return float (value )
528535
529536
530- def _optional_dca_mode_env (name : str ) -> str | None :
537+ def resolve_optional_dca_mode_env (name : str ) -> str | None :
531538 raw_value = os .getenv (name )
532539 if raw_value is None or str (raw_value ).strip () == "" :
533540 return None
@@ -544,7 +551,7 @@ def _optional_dca_mode_env(name: str) -> str | None:
544551 return mode
545552
546553
547- def _optional_ibit_zscore_exit_mode_env (name : str ) -> str | None :
554+ def resolve_optional_ibit_zscore_exit_mode_env (name : str ) -> str | None :
548555 raw_value = os .getenv (name )
549556 if raw_value is None or str (raw_value ).strip () == "" :
550557 return None
@@ -565,7 +572,7 @@ def _optional_ibit_zscore_exit_mode_env(name: str) -> str | None:
565572 return mode
566573
567574
568- def _optional_symbol_env (name : str ) -> str | None :
575+ def resolve_optional_symbol_env (name : str ) -> str | None :
569576 raw_value = os .getenv (name )
570577 if raw_value is None or str (raw_value ).strip () == "" :
571578 return None
0 commit comments