@@ -56,11 +56,11 @@ def portfolio_manager(mock_ib, mocker):
5656 cooldown_days = 2 ,
5757 choppiness_min = 0.1 ,
5858 efficiency_max = 0.9 ,
59- flow_trade_min = 2000.0 ,
60- flow_trade_stop = 1000.0 ,
59+ flow_trade_min = 0.025 ,
60+ flow_trade_stop = 0.0125 ,
6161 flow_imbalance_tau = 0.7 ,
62- deficit_rail_start = 5000.0 ,
63- deficit_rail_stop = 2500.0 ,
62+ deficit_rail_start = 0.06 ,
63+ deficit_rail_stop = 0.03 ,
6464 eps = 1e-8 ,
6565 order_history_lookback_days = 30 ,
6666 shares_only = False ,
@@ -104,11 +104,11 @@ def portfolio_manager_with_db(mock_ib, mocker, tmp_path):
104104 cooldown_days = 2 ,
105105 choppiness_min = 0.1 ,
106106 efficiency_max = 0.9 ,
107- flow_trade_min = 2000.0 ,
108- flow_trade_stop = 1000.0 ,
107+ flow_trade_min = 0.025 ,
108+ flow_trade_stop = 0.0125 ,
109109 flow_imbalance_tau = 0.7 ,
110- deficit_rail_start = 5000.0 ,
111- deficit_rail_stop = 2500.0 ,
110+ deficit_rail_start = 0.06 ,
111+ deficit_rail_stop = 0.03 ,
112112 eps = 1e-8 ,
113113 order_history_lookback_days = 30 ,
114114 shares_only = False ,
@@ -754,8 +754,8 @@ async def test_regime_rebalance_flow_trades_ignore_regime_gate(
754754 portfolio_manager .config .regime_rebalance .hard_band = 0.80
755755 portfolio_manager .config .regime_rebalance .choppiness_min = 10.0
756756 portfolio_manager .config .regime_rebalance .efficiency_max = 0.01
757- portfolio_manager .config .regime_rebalance .flow_trade_min = 200.0
758- portfolio_manager .config .regime_rebalance .flow_trade_stop = 100.0
757+ portfolio_manager .config .regime_rebalance .flow_trade_min = 0.10
758+ portfolio_manager .config .regime_rebalance .flow_trade_stop = 0.05
759759
760760 account_summary = {"NetLiquidation" : SimpleNamespace (value = "2000" )}
761761 portfolio_positions = {
@@ -807,12 +807,12 @@ def test_regime_rebalance_config_rejects_inverted_bands():
807807
808808def test_regime_rebalance_config_rejects_flow_hysteresis_inversion ():
809809 with pytest .raises (ValueError , match = "flow_trade_min" ):
810- RegimeRebalanceConfig (flow_trade_min = 100.0 , flow_trade_stop = 200.0 )
810+ RegimeRebalanceConfig (flow_trade_min = 0.10 , flow_trade_stop = 0.20 )
811811
812812
813813def test_regime_rebalance_config_rejects_deficit_hysteresis_inversion ():
814814 with pytest .raises (ValueError , match = "deficit_rail_start" ):
815- RegimeRebalanceConfig (deficit_rail_start = 100.0 , deficit_rail_stop = 200.0 )
815+ RegimeRebalanceConfig (deficit_rail_start = 0.10 , deficit_rail_stop = 0.20 )
816816
817817
818818def test_regime_rebalance_config_rejects_ratio_gate_missing_anchor ():
@@ -859,7 +859,7 @@ async def test_regime_rebalance_respects_no_trading(portfolio_manager, mocker):
859859 account_summary , portfolio_positions
860860 )
861861
862- assert orders == [( "BBB" , "NYSE" , 1 ) ]
862+ assert orders == []
863863
864864
865865@pytest .mark .asyncio
@@ -868,8 +868,8 @@ async def test_regime_rebalance_cash_added_triggers_buys(portfolio_manager, mock
868868 portfolio_manager .config .regime_rebalance .hard_band = 0.8
869869 portfolio_manager .config .regime_rebalance .choppiness_min = 0.0
870870 portfolio_manager .config .regime_rebalance .efficiency_max = 1.0
871- portfolio_manager .config .regime_rebalance .flow_trade_min = 200.0
872- portfolio_manager .config .regime_rebalance .flow_trade_stop = 100.0
871+ portfolio_manager .config .regime_rebalance .flow_trade_min = 0.10
872+ portfolio_manager .config .regime_rebalance .flow_trade_stop = 0.05
873873
874874 account_summary = {"NetLiquidation" : SimpleNamespace (value = "2000" )}
875875 portfolio_positions = {
@@ -896,8 +896,8 @@ async def test_regime_rebalance_cash_withdrawn_triggers_sells(
896896 portfolio_manager .config .regime_rebalance .hard_band = 0.8
897897 portfolio_manager .config .regime_rebalance .choppiness_min = 0.0
898898 portfolio_manager .config .regime_rebalance .efficiency_max = 1.0
899- portfolio_manager .config .regime_rebalance .flow_trade_min = 200.0
900- portfolio_manager .config .regime_rebalance .flow_trade_stop = 100.0
899+ portfolio_manager .config .regime_rebalance .flow_trade_min = 0.10
900+ portfolio_manager .config .regime_rebalance .flow_trade_stop = 0.05
901901
902902 account_summary = {"NetLiquidation" : SimpleNamespace (value = "2000" )}
903903 portfolio_positions = {
@@ -924,8 +924,8 @@ async def test_regime_rebalance_flow_hysteresis_uses_db_state(
924924 portfolio_manager_with_db .config .regime_rebalance .hard_band = 0.8
925925 portfolio_manager_with_db .config .regime_rebalance .choppiness_min = 0.0
926926 portfolio_manager_with_db .config .regime_rebalance .efficiency_max = 1.0
927- portfolio_manager_with_db .config .regime_rebalance .flow_trade_min = 500.0
928- portfolio_manager_with_db .config .regime_rebalance .flow_trade_stop = 100.0
927+ portfolio_manager_with_db .config .regime_rebalance .flow_trade_min = 0.25
928+ portfolio_manager_with_db .config .regime_rebalance .flow_trade_stop = 0.05
929929
930930 portfolio_manager_with_db .data_store .record_event (
931931 "regime_rebalance_state" , {"flow_active" : True , "deficit_active" : False }
@@ -962,8 +962,8 @@ async def test_regime_rebalance_deficit_rail_sells_overweights(
962962 portfolio_manager .config .regime_rebalance .hard_band = 1.5
963963 portfolio_manager .config .regime_rebalance .choppiness_min = 0.0
964964 portfolio_manager .config .regime_rebalance .efficiency_max = 1.0
965- portfolio_manager .config .regime_rebalance .deficit_rail_start = 300.0
966- portfolio_manager .config .regime_rebalance .deficit_rail_stop = 100.0
965+ portfolio_manager .config .regime_rebalance .deficit_rail_start = 0.30
966+ portfolio_manager .config .regime_rebalance .deficit_rail_stop = 0.10
967967
968968 account_summary = {"NetLiquidation" : SimpleNamespace (value = "1000" )}
969969 portfolio_positions = {
@@ -988,8 +988,8 @@ async def test_regime_rebalance_deficit_rail_sells_pro_rata(portfolio_manager, m
988988 portfolio_manager .config .regime_rebalance .hard_band = 0.8
989989 portfolio_manager .config .regime_rebalance .choppiness_min = 0.0
990990 portfolio_manager .config .regime_rebalance .efficiency_max = 1.0
991- portfolio_manager .config .regime_rebalance .deficit_rail_start = 100.0
992- portfolio_manager .config .regime_rebalance .deficit_rail_stop = 50.0
991+ portfolio_manager .config .regime_rebalance .deficit_rail_start = 0.10
992+ portfolio_manager .config .regime_rebalance .deficit_rail_stop = 0.05
993993
994994 account_summary = {"NetLiquidation" : SimpleNamespace (value = "1000" )}
995995 portfolio_positions = {
@@ -1016,7 +1016,7 @@ async def test_regime_rebalance_deficit_rail_sells_from_initial_amount(
10161016 portfolio_manager .config .regime_rebalance .hard_band = 1.5
10171017 portfolio_manager .config .regime_rebalance .choppiness_min = 0.0
10181018 portfolio_manager .config .regime_rebalance .efficiency_max = 1.0
1019- portfolio_manager .config .regime_rebalance .deficit_rail_start = 100.0
1019+ portfolio_manager .config .regime_rebalance .deficit_rail_start = 0.10
10201020 portfolio_manager .config .regime_rebalance .deficit_rail_stop = 0.0
10211021
10221022 account_summary = {"NetLiquidation" : SimpleNamespace (value = "1000" )}
@@ -1045,8 +1045,8 @@ async def test_regime_rebalance_deficit_cleanup_uses_stop_band(
10451045 portfolio_manager .config .regime_rebalance .hard_band_rebalance_fraction = 0.5
10461046 portfolio_manager .config .regime_rebalance .choppiness_min = 0.0
10471047 portfolio_manager .config .regime_rebalance .efficiency_max = 1.0
1048- portfolio_manager .config .regime_rebalance .deficit_rail_start = 500.0
1049- portfolio_manager .config .regime_rebalance .deficit_rail_stop = 200.0
1048+ portfolio_manager .config .regime_rebalance .deficit_rail_start = 0.50
1049+ portfolio_manager .config .regime_rebalance .deficit_rail_stop = 0.20
10501050
10511051 account_summary = {"NetLiquidation" : SimpleNamespace (value = "1000" )}
10521052 portfolio_positions = {
@@ -1074,8 +1074,8 @@ async def test_regime_rebalance_no_trading_blocks_deficit_and_hard(
10741074 portfolio_manager .config .regime_rebalance .hard_band = 0.20
10751075 portfolio_manager .config .regime_rebalance .choppiness_min = 0.0
10761076 portfolio_manager .config .regime_rebalance .efficiency_max = 1.0
1077- portfolio_manager .config .regime_rebalance .deficit_rail_start = 100.0
1078- portfolio_manager .config .regime_rebalance .deficit_rail_stop = 50.0
1077+ portfolio_manager .config .regime_rebalance .deficit_rail_start = 0.10
1078+ portfolio_manager .config .regime_rebalance .deficit_rail_stop = 0.05
10791079
10801080 account_summary = {"NetLiquidation" : SimpleNamespace (value = "1000" )}
10811081 portfolio_positions = {
0 commit comments