Add state Continue path interaction features
This commit is contained in:
@@ -18,7 +18,7 @@ from trader_training.state_continue_experiment import STATE_FEATURES, _predict_f
|
||||
|
||||
|
||||
class StateContinueExperimentTest(unittest.TestCase):
|
||||
def test_state_rows_include_required_position_and_frozen_entry_features(self) -> None:
|
||||
def test_state_rows_include_required_position_path_and_side_market_features(self) -> None:
|
||||
row = {
|
||||
"current_sample_id": "s0",
|
||||
"symbol": "BTC-USDT-PERP",
|
||||
@@ -41,6 +41,13 @@ class StateContinueExperimentTest(unittest.TestCase):
|
||||
}
|
||||
for feature_name in FEATURE_ORDER:
|
||||
row[feature_name] = 0.0
|
||||
row["ret_1m_bps"] = 2.0
|
||||
row["ret_5m_bps"] = 3.0
|
||||
row["taker_imbalance_1m"] = 0.1
|
||||
row["taker_imbalance_5m"] = 0.2
|
||||
row["book_microprice_basis_bps"] = 4.0
|
||||
row["book_pressure_taker_1m"] = 5.0
|
||||
row["book_pressure_taker_5m"] = 6.0
|
||||
frame = pd.DataFrame([row])
|
||||
|
||||
out = _state_rows_for_age(frame, stop_bps=8.0, target_bps=12.0, cost_bps=6.5)
|
||||
@@ -50,6 +57,17 @@ class StateContinueExperimentTest(unittest.TestCase):
|
||||
self.assertEqual(1, int(out.iloc[0]["continue_target"]))
|
||||
self.assertAlmostEqual(8.5, float(out.iloc[0]["entry_predicted_edge_bps"]))
|
||||
self.assertAlmostEqual(0.64, float(out.iloc[0]["entry_direction_prob"]), places=6)
|
||||
self.assertAlmostEqual(16.5, float(out.iloc[0]["giveback_from_mfe_bps"]), places=4)
|
||||
self.assertAlmostEqual(8.5025, float(out.iloc[0]["recovery_from_mae_bps"]), places=4)
|
||||
self.assertGreater(float(out.iloc[0]["path_efficiency"]), 0.13)
|
||||
self.assertGreater(float(out.iloc[0]["mfe_mae_ratio"]), 3.3)
|
||||
self.assertAlmostEqual(2.0, float(out.iloc[0]["side_ret_1m_bps"]))
|
||||
self.assertAlmostEqual(3.0, float(out.iloc[0]["side_ret_5m_bps"]))
|
||||
self.assertAlmostEqual(0.1, float(out.iloc[0]["side_taker_imbalance_1m"]), places=6)
|
||||
self.assertAlmostEqual(0.2, float(out.iloc[0]["side_taker_imbalance_5m"]), places=6)
|
||||
self.assertAlmostEqual(4.0, float(out.iloc[0]["side_book_microprice_basis_bps"]))
|
||||
self.assertAlmostEqual(5.0, float(out.iloc[0]["side_book_pressure_taker_1m"]))
|
||||
self.assertAlmostEqual(6.0, float(out.iloc[0]["side_book_pressure_taker_5m"]))
|
||||
self.assertAlmostEqual(0.0, float(out.iloc[0]["add_count"]))
|
||||
self.assertAlmostEqual(9999.0, float(out.iloc[0]["minutes_since_last_add"]))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user