Hierarchical ML Pipeline for trading predictions:
- Level 0: Attention Models (volatility/flow classification)
- Level 1: Base Models (XGBoost per symbol/timeframe)
- Level 2: Metamodels (XGBoost Stacking + Neural Gating)
Key components:
- src/pipelines/hierarchical_pipeline.py - Main prediction pipeline
- src/models/ - All ML model classes
- src/training/ - Training utilities
- src/api/ - FastAPI endpoints
- scripts/ - Training and evaluation scripts
- config/ - YAML configurations
Note: Trained models (*.joblib, *.pt) are gitignored.
Regenerate with training scripts.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
230 lines
6.1 KiB
JSON
230 lines
6.1 KiB
JSON
{
|
|
"XAUUSD_5m": {
|
|
"symbol": "XAUUSD",
|
|
"timeframe": "5m",
|
|
"n_samples": "73226",
|
|
"mae_high": 1.0982241894407663,
|
|
"mae_low": 1.2216956629276754,
|
|
"rmse_high": 1.5840779165698429,
|
|
"rmse_low": 1.79103723697663,
|
|
"dir_accuracy_high": 0.9135279818643651,
|
|
"dir_accuracy_low": 0.93242837243602,
|
|
"high_signals": 65174,
|
|
"high_signal_accuracy": 0.9147205941019425,
|
|
"low_signals": 70547,
|
|
"low_signal_accuracy": 0.9324563765999971,
|
|
"rr_analysis": {
|
|
"rr_1.0": {
|
|
"win_rate": 0.5095685455810717,
|
|
"wins": 23432,
|
|
"losses": 22552,
|
|
"total_trades": 45984,
|
|
"expectancy": 0.01913709116214335,
|
|
"rr_ratio": 1.0
|
|
},
|
|
"rr_1.5": {
|
|
"win_rate": 0.3623434274889021,
|
|
"wins": 12815,
|
|
"losses": 22552,
|
|
"total_trades": 35367,
|
|
"expectancy": -0.09414143127774477,
|
|
"rr_ratio": 1.5
|
|
},
|
|
"rr_2.0": {
|
|
"win_rate": 0.2271948461380303,
|
|
"wins": 6630,
|
|
"losses": 22552,
|
|
"total_trades": 29182,
|
|
"expectancy": -0.3184154615859091,
|
|
"rr_ratio": 2.0
|
|
},
|
|
"rr_2.5": {
|
|
"win_rate": 0.13070963265620783,
|
|
"wins": 3391,
|
|
"losses": 22552,
|
|
"total_trades": 25943,
|
|
"expectancy": -0.5425162857032726,
|
|
"rr_ratio": 2.5
|
|
},
|
|
"rr_3.0": {
|
|
"win_rate": 0.07391590013140605,
|
|
"wins": 1800,
|
|
"losses": 22552,
|
|
"total_trades": 24352,
|
|
"expectancy": -0.7043363994743759,
|
|
"rr_ratio": 3.0
|
|
}
|
|
}
|
|
},
|
|
"XAUUSD_15m": {
|
|
"symbol": "XAUUSD",
|
|
"timeframe": "15m",
|
|
"n_samples": "24578",
|
|
"mae_high": 2.0019162363795133,
|
|
"mae_low": 2.388214974938367,
|
|
"rmse_high": 2.7940621425429786,
|
|
"rmse_low": 3.341656446664909,
|
|
"dir_accuracy_high": 0.9464561803238669,
|
|
"dir_accuracy_low": 0.9591097729676947,
|
|
"high_signals": 23131,
|
|
"high_signal_accuracy": 0.946608447537936,
|
|
"low_signals": 23701,
|
|
"low_signal_accuracy": 0.9589468798784861,
|
|
"rr_analysis": {
|
|
"rr_1.0": {
|
|
"win_rate": 0.5537220660056238,
|
|
"wins": 7483,
|
|
"losses": 6031,
|
|
"total_trades": 13514,
|
|
"expectancy": 0.10744413201124758,
|
|
"rr_ratio": 1.0
|
|
},
|
|
"rr_1.5": {
|
|
"win_rate": 0.391115598182736,
|
|
"wins": 3874,
|
|
"losses": 6031,
|
|
"total_trades": 9905,
|
|
"expectancy": -0.02221100454315994,
|
|
"rr_ratio": 1.5
|
|
},
|
|
"rr_2.0": {
|
|
"win_rate": 0.24461422845691383,
|
|
"wins": 1953,
|
|
"losses": 6031,
|
|
"total_trades": 7984,
|
|
"expectancy": -0.2661573146292585,
|
|
"rr_ratio": 2.0
|
|
},
|
|
"rr_2.5": {
|
|
"win_rate": 0.14247120716621642,
|
|
"wins": 1002,
|
|
"losses": 6031,
|
|
"total_trades": 7033,
|
|
"expectancy": -0.5013507749182425,
|
|
"rr_ratio": 2.5
|
|
},
|
|
"rr_3.0": {
|
|
"win_rate": 0.0809204510819872,
|
|
"wins": 531,
|
|
"losses": 6031,
|
|
"total_trades": 6562,
|
|
"expectancy": -0.6763181956720512,
|
|
"rr_ratio": 3.0
|
|
}
|
|
}
|
|
},
|
|
"EURUSD_5m": {
|
|
"symbol": "EURUSD",
|
|
"timeframe": "5m",
|
|
"n_samples": "76858",
|
|
"mae_high": 0.0003001063387650648,
|
|
"mae_low": 0.0002970068451901623,
|
|
"rmse_high": 0.0004111590789002654,
|
|
"rmse_low": 0.0004909341188902894,
|
|
"dir_accuracy_high": 0.9795727185198678,
|
|
"dir_accuracy_low": 0.9809128522730229,
|
|
"high_signals": 76858,
|
|
"high_signal_accuracy": 0.9795727185198678,
|
|
"low_signals": 76858,
|
|
"low_signal_accuracy": 0.9809128522730229,
|
|
"rr_analysis": {
|
|
"rr_1.0": {
|
|
"win_rate": 0.4421223462391945,
|
|
"wins": 13349,
|
|
"losses": 16844,
|
|
"total_trades": 30193,
|
|
"expectancy": -0.11575530752161095,
|
|
"rr_ratio": 1.0
|
|
},
|
|
"rr_1.5": {
|
|
"win_rate": 0.24466367713004483,
|
|
"wins": 5456,
|
|
"losses": 16844,
|
|
"total_trades": 22300,
|
|
"expectancy": -0.38834080717488795,
|
|
"rr_ratio": 1.5
|
|
},
|
|
"rr_2.0": {
|
|
"win_rate": 0.13907487860976234,
|
|
"wins": 2721,
|
|
"losses": 16844,
|
|
"total_trades": 19565,
|
|
"expectancy": -0.582775364170713,
|
|
"rr_ratio": 2.0
|
|
},
|
|
"rr_2.5": {
|
|
"win_rate": 0.07916028865077629,
|
|
"wins": 1448,
|
|
"losses": 16844,
|
|
"total_trades": 18292,
|
|
"expectancy": -0.722938989722283,
|
|
"rr_ratio": 2.5
|
|
},
|
|
"rr_3.0": {
|
|
"win_rate": 0.048254040004520285,
|
|
"wins": 854,
|
|
"losses": 16844,
|
|
"total_trades": 17698,
|
|
"expectancy": -0.8069838399819189,
|
|
"rr_ratio": 3.0
|
|
}
|
|
}
|
|
},
|
|
"EURUSD_15m": {
|
|
"symbol": "EURUSD",
|
|
"timeframe": "15m",
|
|
"n_samples": "25635",
|
|
"mae_high": 0.0005404965076600542,
|
|
"mae_low": 0.0005633543312223604,
|
|
"rmse_high": 0.0007034057315888307,
|
|
"rmse_low": 0.000855075888590468,
|
|
"dir_accuracy_high": 0.9861907548273844,
|
|
"dir_accuracy_low": 0.9879071581821728,
|
|
"high_signals": 25635,
|
|
"high_signal_accuracy": 0.9861907548273844,
|
|
"low_signals": 25635,
|
|
"low_signal_accuracy": 0.9879071581821728,
|
|
"rr_analysis": {
|
|
"rr_1.0": {
|
|
"win_rate": 0.4570922378474145,
|
|
"wins": 4128,
|
|
"losses": 4903,
|
|
"total_trades": 9031,
|
|
"expectancy": -0.08581552430517103,
|
|
"rr_ratio": 1.0
|
|
},
|
|
"rr_1.5": {
|
|
"win_rate": 0.27049546198482366,
|
|
"wins": 1818,
|
|
"losses": 4903,
|
|
"total_trades": 6721,
|
|
"expectancy": -0.32376134503794085,
|
|
"rr_ratio": 1.5
|
|
},
|
|
"rr_2.0": {
|
|
"win_rate": 0.15900514579759864,
|
|
"wins": 927,
|
|
"losses": 4903,
|
|
"total_trades": 5830,
|
|
"expectancy": -0.522984562607204,
|
|
"rr_ratio": 2.0
|
|
},
|
|
"rr_2.5": {
|
|
"win_rate": 0.0913639733135656,
|
|
"wins": 493,
|
|
"losses": 4903,
|
|
"total_trades": 5396,
|
|
"expectancy": -0.6802260934025204,
|
|
"rr_ratio": 2.5
|
|
},
|
|
"rr_3.0": {
|
|
"win_rate": 0.059466717820832536,
|
|
"wins": 310,
|
|
"losses": 4903,
|
|
"total_trades": 5213,
|
|
"expectancy": -0.7621331287166698,
|
|
"rr_ratio": 3.0
|
|
}
|
|
}
|
|
}
|
|
} |