Add local runtime artifacts
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,38 @@
|
||||
BTCUSDT: loaded 2000 60 candles
|
||||
ETHUSDT: loaded 2000 60 candles
|
||||
LTCUSDT: loaded 2000 60 candles
|
||||
SOLUSDT: loaded 2000 60 candles
|
||||
BTCUSDT: replay records 720
|
||||
ETHUSDT: replay records 720
|
||||
SOLUSDT: replay records 720
|
||||
LTCUSDT: replay records 720
|
||||
|
||||
records_by_symbol {"BTCUSDT": 720, "ETHUSDT": 720, "LTCUSDT": 720, "SOLUSDT": 720}
|
||||
artifact {"created_at": "2026-06-23T19:07:54.434411+00:00", "feature_count": 55, "symbols": {"BTCUSDT": {"directional_accuracy": 0.725, "hidden_size": 96, "lookback": 64, "model": "torch_gru", "skill": 0.15903346077183758}, "ETHUSDT": {"directional_accuracy": 0.6916666666666667, "hidden_size": 64, "lookback": 64, "model": "torch_gru", "skill": 0.09273757527902074}, "LTCUSDT": {"directional_accuracy": 0.6583333333333333, "hidden_size": 96, "lookback": 64, "model": "torch_gru", "skill": 0.11954702418314447}, "SOLUSDT": {"directional_accuracy": 0.6416666666666667, "hidden_size": 96, "lookback": 64, "model": "torch_gru", "skill": 0.03400498728351002}}, "target_horizon": 3, "target_horizons": [1, 3, 6, 12], "target_transform": "net_return_over_volatility", "version": 4}
|
||||
|
||||
TOP_RESULTS
|
||||
edge=0.1000 prob=0.6200 conf=0.7200 trades=9 win=0.333 avg=0.8147% total=7.3321% dd=1.4888% pf=3.912 score=0.6897
|
||||
edge=0.1000 prob=0.6200 conf=0.6800 trades=9 win=0.333 avg=0.8147% total=7.3321% dd=1.4888% pf=3.912 score=0.6897
|
||||
edge=0.1000 prob=0.6200 conf=0.6400 trades=9 win=0.333 avg=0.8147% total=7.3321% dd=1.4888% pf=3.912 score=0.6897
|
||||
edge=0.1000 prob=0.6200 conf=0.6000 trades=9 win=0.333 avg=0.8147% total=7.3321% dd=1.4888% pf=3.912 score=0.6897
|
||||
edge=0.1000 prob=0.6200 conf=0.5600 trades=9 win=0.333 avg=0.8147% total=7.3321% dd=1.4888% pf=3.912 score=0.6897
|
||||
edge=0.1000 prob=0.6200 conf=0.5000 trades=9 win=0.333 avg=0.8147% total=7.3321% dd=1.4888% pf=3.912 score=0.6897
|
||||
edge=0.0800 prob=0.6200 conf=0.7200 trades=9 win=0.333 avg=0.8147% total=7.3321% dd=1.4888% pf=3.912 score=0.6897
|
||||
edge=0.0800 prob=0.6200 conf=0.6800 trades=9 win=0.333 avg=0.8147% total=7.3321% dd=1.4888% pf=3.912 score=0.6897
|
||||
edge=0.0800 prob=0.6200 conf=0.6400 trades=9 win=0.333 avg=0.8147% total=7.3321% dd=1.4888% pf=3.912 score=0.6897
|
||||
edge=0.0800 prob=0.6200 conf=0.6000 trades=9 win=0.333 avg=0.8147% total=7.3321% dd=1.4888% pf=3.912 score=0.6897
|
||||
edge=0.0800 prob=0.6200 conf=0.5600 trades=9 win=0.333 avg=0.8147% total=7.3321% dd=1.4888% pf=3.912 score=0.6897
|
||||
edge=0.0800 prob=0.6200 conf=0.5000 trades=9 win=0.333 avg=0.8147% total=7.3321% dd=1.4888% pf=3.912 score=0.6897
|
||||
edge=0.0600 prob=0.6200 conf=0.7200 trades=9 win=0.333 avg=0.8147% total=7.3321% dd=1.4888% pf=3.912 score=0.6897
|
||||
edge=0.0600 prob=0.6200 conf=0.6800 trades=9 win=0.333 avg=0.8147% total=7.3321% dd=1.4888% pf=3.912 score=0.6897
|
||||
edge=0.0600 prob=0.6200 conf=0.6400 trades=9 win=0.333 avg=0.8147% total=7.3321% dd=1.4888% pf=3.912 score=0.6897
|
||||
|
||||
RECOMMENDED
|
||||
edge=0.1000 prob=0.6000 conf=0.6800 trades=16 win=0.562 avg=0.4948% total=7.9171% dd=1.8130% pf=3.629 score=0.5817
|
||||
|
||||
FULL_REPLAY
|
||||
trades=5 win=1.000 avg=1.9149% total=9.5746% dd=0.0000% pf=999.000
|
||||
|
||||
WALK_FORWARD
|
||||
{"avg_net_percent": 0.4783, "max_drawdown_percent": 1.3024, "profit_factor": 3.471, "status": "ok", "total_net_percent": 7.1747, "trades": 15, "win_rate": 0.5333, "wins": 8}
|
||||
env TIME_SERIES_MIN_EDGE_PERCENT=0.1000 TIME_SERIES_MIN_PROBABILITY_UP=0.6000 TIME_SERIES_MIN_CONFIDENCE=0.6800
|
||||
@@ -0,0 +1,485 @@
|
||||
{
|
||||
"artifact": {
|
||||
"version": 4,
|
||||
"created_at": "2026-06-23T19:07:54.434411+00:00",
|
||||
"feature_count": 55,
|
||||
"target_horizon": 3,
|
||||
"target_horizons": [
|
||||
1,
|
||||
3,
|
||||
6,
|
||||
12
|
||||
],
|
||||
"target_transform": "net_return_over_volatility",
|
||||
"symbols": {
|
||||
"BTCUSDT": {
|
||||
"model": "torch_gru",
|
||||
"lookback": 64,
|
||||
"hidden_size": 96,
|
||||
"skill": 0.15903346077183758,
|
||||
"directional_accuracy": 0.725
|
||||
},
|
||||
"ETHUSDT": {
|
||||
"model": "torch_gru",
|
||||
"lookback": 64,
|
||||
"hidden_size": 64,
|
||||
"skill": 0.09273757527902074,
|
||||
"directional_accuracy": 0.6916666666666667
|
||||
},
|
||||
"SOLUSDT": {
|
||||
"model": "torch_gru",
|
||||
"lookback": 64,
|
||||
"hidden_size": 96,
|
||||
"skill": 0.03400498728351002,
|
||||
"directional_accuracy": 0.6416666666666667
|
||||
},
|
||||
"LTCUSDT": {
|
||||
"model": "torch_gru",
|
||||
"lookback": 64,
|
||||
"hidden_size": 96,
|
||||
"skill": 0.11954702418314447,
|
||||
"directional_accuracy": 0.6583333333333333
|
||||
}
|
||||
}
|
||||
},
|
||||
"records_by_symbol": {
|
||||
"BTCUSDT": 720,
|
||||
"ETHUSDT": 720,
|
||||
"SOLUSDT": 720,
|
||||
"LTCUSDT": 720
|
||||
},
|
||||
"recommended": {
|
||||
"edge": 0.1,
|
||||
"probability": 0.6,
|
||||
"confidence": 0.68,
|
||||
"trades": 16,
|
||||
"wins": 9,
|
||||
"win_rate": 0.5625,
|
||||
"total_net_percent": 7.917141995065847,
|
||||
"average_net_percent": 0.4948213746916154,
|
||||
"max_drawdown_percent": 1.812991648733242,
|
||||
"profit_factor": 3.629214989861449,
|
||||
"score": 0.5816887551556058
|
||||
},
|
||||
"full_replay": {
|
||||
"trades": 5,
|
||||
"wins": 5,
|
||||
"win_rate": 1.0,
|
||||
"total_net_percent": 9.5746,
|
||||
"avg_net_percent": 1.9149,
|
||||
"max_drawdown_percent": 0.0,
|
||||
"profit_factor": 999.0,
|
||||
"trades_detail": [
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1779940800000,
|
||||
"exit_timestamp": 1779962400000,
|
||||
"net_percent": 0.1545,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 6,
|
||||
"entry_probability": 0.6018,
|
||||
"entry_expected_percent": 0.3155
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1780300800000,
|
||||
"exit_timestamp": 1780336800000,
|
||||
"net_percent": 0.1707,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 10,
|
||||
"entry_probability": 0.6164,
|
||||
"entry_expected_percent": 0.3215
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1781154000000,
|
||||
"exit_timestamp": 1781157600000,
|
||||
"net_percent": 0.1476,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 1,
|
||||
"entry_probability": 0.6009,
|
||||
"entry_expected_percent": 0.3352
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1781161200000,
|
||||
"exit_timestamp": 1781164800000,
|
||||
"net_percent": 0.0713,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 1,
|
||||
"entry_probability": 0.6004,
|
||||
"entry_expected_percent": 0.3017
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1781445600000,
|
||||
"exit_timestamp": 1781532000000,
|
||||
"net_percent": 9.0305,
|
||||
"reason": "max_hold",
|
||||
"held_bars": 24,
|
||||
"entry_probability": 0.6014,
|
||||
"entry_expected_percent": 0.2946
|
||||
}
|
||||
]
|
||||
},
|
||||
"walk_forward": {
|
||||
"summary": {
|
||||
"trades": 15,
|
||||
"wins": 8,
|
||||
"win_rate": 0.5333,
|
||||
"total_net_percent": 7.1747,
|
||||
"avg_net_percent": 0.4783,
|
||||
"max_drawdown_percent": 1.3024,
|
||||
"profit_factor": 3.471,
|
||||
"status": "ok"
|
||||
},
|
||||
"folds": [
|
||||
{
|
||||
"fold": 1,
|
||||
"train_records": 720,
|
||||
"test_records": 720,
|
||||
"thresholds": {
|
||||
"edge": 0.1,
|
||||
"probability": 0.6,
|
||||
"confidence": 0.72,
|
||||
"trades": 2,
|
||||
"wins": 1,
|
||||
"win_rate": 0.5,
|
||||
"total_net_percent": -0.10348384852443271,
|
||||
"average_net_percent": -0.051741924262216354,
|
||||
"max_drawdown_percent": 0.5106090484004788,
|
||||
"profit_factor": 0.7973325211360753,
|
||||
"score": -0.014117837267286302
|
||||
},
|
||||
"test": {
|
||||
"trades": 4,
|
||||
"wins": 2,
|
||||
"win_rate": 0.5,
|
||||
"total_net_percent": 0.0557,
|
||||
"avg_net_percent": 0.0139,
|
||||
"max_drawdown_percent": 1.3024,
|
||||
"profit_factor": 1.0428
|
||||
}
|
||||
},
|
||||
{
|
||||
"fold": 2,
|
||||
"train_records": 1440,
|
||||
"test_records": 720,
|
||||
"thresholds": {
|
||||
"edge": 0.1,
|
||||
"probability": 0.55,
|
||||
"confidence": 0.72,
|
||||
"trades": 13,
|
||||
"wins": 8,
|
||||
"win_rate": 0.6153846153846154,
|
||||
"total_net_percent": 2.3573472403187523,
|
||||
"average_net_percent": 0.1813344031014425,
|
||||
"max_drawdown_percent": 1.812991648733242,
|
||||
"profit_factor": 2.0042930935847436,
|
||||
"score": 0.18692024685961114
|
||||
},
|
||||
"test": {
|
||||
"trades": 11,
|
||||
"wins": 6,
|
||||
"win_rate": 0.5455,
|
||||
"total_net_percent": 7.119,
|
||||
"avg_net_percent": 0.6472,
|
||||
"max_drawdown_percent": 1.0894,
|
||||
"profit_factor": 5.4462
|
||||
}
|
||||
},
|
||||
{
|
||||
"fold": 3,
|
||||
"train_records": 2160,
|
||||
"test_records": 720,
|
||||
"thresholds": {
|
||||
"edge": 0.1,
|
||||
"probability": 0.62,
|
||||
"confidence": 0.72,
|
||||
"trades": 9,
|
||||
"wins": 3,
|
||||
"win_rate": 0.3333333333333333,
|
||||
"total_net_percent": 7.33207561878414,
|
||||
"average_net_percent": 0.8146750687537934,
|
||||
"max_drawdown_percent": 1.4887951136316468,
|
||||
"profit_factor": 3.9118496582300852,
|
||||
"score": 0.8933256829599393
|
||||
},
|
||||
"test": {
|
||||
"trades": 0,
|
||||
"wins": 0,
|
||||
"win_rate": 0.0,
|
||||
"total_net_percent": 0,
|
||||
"avg_net_percent": 0.0,
|
||||
"max_drawdown_percent": 0.0,
|
||||
"profit_factor": 0.0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"probability_calibration": {
|
||||
"samples": 2880,
|
||||
"buckets": [
|
||||
{
|
||||
"bucket": "0.30-0.35",
|
||||
"samples": 38,
|
||||
"avg_probability": 0.336,
|
||||
"actual_win_rate": 0.1053,
|
||||
"avg_future_net_percent": -0.6575
|
||||
},
|
||||
{
|
||||
"bucket": "0.35-0.40",
|
||||
"samples": 418,
|
||||
"avg_probability": 0.3839,
|
||||
"actual_win_rate": 0.2225,
|
||||
"avg_future_net_percent": -0.6359
|
||||
},
|
||||
{
|
||||
"bucket": "0.40-0.45",
|
||||
"samples": 1065,
|
||||
"avg_probability": 0.427,
|
||||
"actual_win_rate": 0.2873,
|
||||
"avg_future_net_percent": -0.4036
|
||||
},
|
||||
{
|
||||
"bucket": "0.45-0.50",
|
||||
"samples": 911,
|
||||
"avg_probability": 0.4746,
|
||||
"actual_win_rate": 0.3271,
|
||||
"avg_future_net_percent": -0.3061
|
||||
},
|
||||
{
|
||||
"bucket": "0.50-0.55",
|
||||
"samples": 290,
|
||||
"avg_probability": 0.5188,
|
||||
"actual_win_rate": 0.3966,
|
||||
"avg_future_net_percent": -0.0583
|
||||
},
|
||||
{
|
||||
"bucket": "0.55-0.60",
|
||||
"samples": 104,
|
||||
"avg_probability": 0.5758,
|
||||
"actual_win_rate": 0.4327,
|
||||
"avg_future_net_percent": 0.0173
|
||||
},
|
||||
{
|
||||
"bucket": "0.60-0.65",
|
||||
"samples": 42,
|
||||
"avg_probability": 0.6138,
|
||||
"actual_win_rate": 0.4762,
|
||||
"avg_future_net_percent": -0.0041
|
||||
},
|
||||
{
|
||||
"bucket": "0.65-0.70",
|
||||
"samples": 6,
|
||||
"avg_probability": 0.6679,
|
||||
"actual_win_rate": 0.3333,
|
||||
"avg_future_net_percent": 0.6587
|
||||
},
|
||||
{
|
||||
"bucket": "0.70-0.75",
|
||||
"samples": 6,
|
||||
"avg_probability": 0.7103,
|
||||
"actual_win_rate": 0.8333,
|
||||
"avg_future_net_percent": 2.1268
|
||||
}
|
||||
]
|
||||
},
|
||||
"top_results": [
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.62,
|
||||
"confidence": 0.72,
|
||||
"trades": 9,
|
||||
"wins": 3,
|
||||
"win_rate": 0.3333333333333333,
|
||||
"total_net_percent": 7.33207561878414,
|
||||
"average_net_percent": 0.8146750687537934,
|
||||
"max_drawdown_percent": 1.4887951136316468,
|
||||
"profit_factor": 3.9118496582300852,
|
||||
"score": 0.689656915771491
|
||||
},
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.62,
|
||||
"confidence": 0.68,
|
||||
"trades": 9,
|
||||
"wins": 3,
|
||||
"win_rate": 0.3333333333333333,
|
||||
"total_net_percent": 7.33207561878414,
|
||||
"average_net_percent": 0.8146750687537934,
|
||||
"max_drawdown_percent": 1.4887951136316468,
|
||||
"profit_factor": 3.9118496582300852,
|
||||
"score": 0.689656915771491
|
||||
},
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.62,
|
||||
"confidence": 0.64,
|
||||
"trades": 9,
|
||||
"wins": 3,
|
||||
"win_rate": 0.3333333333333333,
|
||||
"total_net_percent": 7.33207561878414,
|
||||
"average_net_percent": 0.8146750687537934,
|
||||
"max_drawdown_percent": 1.4887951136316468,
|
||||
"profit_factor": 3.9118496582300852,
|
||||
"score": 0.689656915771491
|
||||
},
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.62,
|
||||
"confidence": 0.6,
|
||||
"trades": 9,
|
||||
"wins": 3,
|
||||
"win_rate": 0.3333333333333333,
|
||||
"total_net_percent": 7.33207561878414,
|
||||
"average_net_percent": 0.8146750687537934,
|
||||
"max_drawdown_percent": 1.4887951136316468,
|
||||
"profit_factor": 3.9118496582300852,
|
||||
"score": 0.689656915771491
|
||||
},
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.62,
|
||||
"confidence": 0.56,
|
||||
"trades": 9,
|
||||
"wins": 3,
|
||||
"win_rate": 0.3333333333333333,
|
||||
"total_net_percent": 7.33207561878414,
|
||||
"average_net_percent": 0.8146750687537934,
|
||||
"max_drawdown_percent": 1.4887951136316468,
|
||||
"profit_factor": 3.9118496582300852,
|
||||
"score": 0.689656915771491
|
||||
},
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.62,
|
||||
"confidence": 0.5,
|
||||
"trades": 9,
|
||||
"wins": 3,
|
||||
"win_rate": 0.3333333333333333,
|
||||
"total_net_percent": 7.33207561878414,
|
||||
"average_net_percent": 0.8146750687537934,
|
||||
"max_drawdown_percent": 1.4887951136316468,
|
||||
"profit_factor": 3.9118496582300852,
|
||||
"score": 0.689656915771491
|
||||
},
|
||||
{
|
||||
"edge": 0.08,
|
||||
"probability": 0.62,
|
||||
"confidence": 0.72,
|
||||
"trades": 9,
|
||||
"wins": 3,
|
||||
"win_rate": 0.3333333333333333,
|
||||
"total_net_percent": 7.33207561878414,
|
||||
"average_net_percent": 0.8146750687537934,
|
||||
"max_drawdown_percent": 1.4887951136316468,
|
||||
"profit_factor": 3.9118496582300852,
|
||||
"score": 0.689656915771491
|
||||
},
|
||||
{
|
||||
"edge": 0.08,
|
||||
"probability": 0.62,
|
||||
"confidence": 0.68,
|
||||
"trades": 9,
|
||||
"wins": 3,
|
||||
"win_rate": 0.3333333333333333,
|
||||
"total_net_percent": 7.33207561878414,
|
||||
"average_net_percent": 0.8146750687537934,
|
||||
"max_drawdown_percent": 1.4887951136316468,
|
||||
"profit_factor": 3.9118496582300852,
|
||||
"score": 0.689656915771491
|
||||
},
|
||||
{
|
||||
"edge": 0.08,
|
||||
"probability": 0.62,
|
||||
"confidence": 0.64,
|
||||
"trades": 9,
|
||||
"wins": 3,
|
||||
"win_rate": 0.3333333333333333,
|
||||
"total_net_percent": 7.33207561878414,
|
||||
"average_net_percent": 0.8146750687537934,
|
||||
"max_drawdown_percent": 1.4887951136316468,
|
||||
"profit_factor": 3.9118496582300852,
|
||||
"score": 0.689656915771491
|
||||
},
|
||||
{
|
||||
"edge": 0.08,
|
||||
"probability": 0.62,
|
||||
"confidence": 0.6,
|
||||
"trades": 9,
|
||||
"wins": 3,
|
||||
"win_rate": 0.3333333333333333,
|
||||
"total_net_percent": 7.33207561878414,
|
||||
"average_net_percent": 0.8146750687537934,
|
||||
"max_drawdown_percent": 1.4887951136316468,
|
||||
"profit_factor": 3.9118496582300852,
|
||||
"score": 0.689656915771491
|
||||
},
|
||||
{
|
||||
"edge": 0.08,
|
||||
"probability": 0.62,
|
||||
"confidence": 0.56,
|
||||
"trades": 9,
|
||||
"wins": 3,
|
||||
"win_rate": 0.3333333333333333,
|
||||
"total_net_percent": 7.33207561878414,
|
||||
"average_net_percent": 0.8146750687537934,
|
||||
"max_drawdown_percent": 1.4887951136316468,
|
||||
"profit_factor": 3.9118496582300852,
|
||||
"score": 0.689656915771491
|
||||
},
|
||||
{
|
||||
"edge": 0.08,
|
||||
"probability": 0.62,
|
||||
"confidence": 0.5,
|
||||
"trades": 9,
|
||||
"wins": 3,
|
||||
"win_rate": 0.3333333333333333,
|
||||
"total_net_percent": 7.33207561878414,
|
||||
"average_net_percent": 0.8146750687537934,
|
||||
"max_drawdown_percent": 1.4887951136316468,
|
||||
"profit_factor": 3.9118496582300852,
|
||||
"score": 0.689656915771491
|
||||
},
|
||||
{
|
||||
"edge": 0.06,
|
||||
"probability": 0.62,
|
||||
"confidence": 0.72,
|
||||
"trades": 9,
|
||||
"wins": 3,
|
||||
"win_rate": 0.3333333333333333,
|
||||
"total_net_percent": 7.33207561878414,
|
||||
"average_net_percent": 0.8146750687537934,
|
||||
"max_drawdown_percent": 1.4887951136316468,
|
||||
"profit_factor": 3.9118496582300852,
|
||||
"score": 0.689656915771491
|
||||
},
|
||||
{
|
||||
"edge": 0.06,
|
||||
"probability": 0.62,
|
||||
"confidence": 0.68,
|
||||
"trades": 9,
|
||||
"wins": 3,
|
||||
"win_rate": 0.3333333333333333,
|
||||
"total_net_percent": 7.33207561878414,
|
||||
"average_net_percent": 0.8146750687537934,
|
||||
"max_drawdown_percent": 1.4887951136316468,
|
||||
"profit_factor": 3.9118496582300852,
|
||||
"score": 0.689656915771491
|
||||
},
|
||||
{
|
||||
"edge": 0.06,
|
||||
"probability": 0.62,
|
||||
"confidence": 0.64,
|
||||
"trades": 9,
|
||||
"wins": 3,
|
||||
"win_rate": 0.3333333333333333,
|
||||
"total_net_percent": 7.33207561878414,
|
||||
"average_net_percent": 0.8146750687537934,
|
||||
"max_drawdown_percent": 1.4887951136316468,
|
||||
"profit_factor": 3.9118496582300852,
|
||||
"score": 0.689656915771491
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,515 @@
|
||||
{
|
||||
"artifact": {
|
||||
"version": 4,
|
||||
"created_at": "2026-06-23T19:07:54.434411+00:00",
|
||||
"feature_count": 55,
|
||||
"target_horizon": 3,
|
||||
"target_horizons": [
|
||||
1,
|
||||
3,
|
||||
6,
|
||||
12
|
||||
],
|
||||
"target_transform": "net_return_over_volatility",
|
||||
"symbols": {
|
||||
"BTCUSDT": {
|
||||
"model": "torch_gru",
|
||||
"lookback": 64,
|
||||
"hidden_size": 96,
|
||||
"skill": 0.15903346077183758,
|
||||
"directional_accuracy": 0.725
|
||||
},
|
||||
"ETHUSDT": {
|
||||
"model": "torch_gru",
|
||||
"lookback": 64,
|
||||
"hidden_size": 64,
|
||||
"skill": 0.09273757527902074,
|
||||
"directional_accuracy": 0.6916666666666667
|
||||
},
|
||||
"SOLUSDT": {
|
||||
"model": "torch_gru",
|
||||
"lookback": 64,
|
||||
"hidden_size": 96,
|
||||
"skill": 0.03400498728351002,
|
||||
"directional_accuracy": 0.6416666666666667
|
||||
},
|
||||
"LTCUSDT": {
|
||||
"model": "torch_gru",
|
||||
"lookback": 64,
|
||||
"hidden_size": 96,
|
||||
"skill": 0.11954702418314447,
|
||||
"directional_accuracy": 0.6583333333333333
|
||||
}
|
||||
}
|
||||
},
|
||||
"records_by_symbol": {
|
||||
"BTCUSDT": 720,
|
||||
"ETHUSDT": 720,
|
||||
"SOLUSDT": 720,
|
||||
"LTCUSDT": 720
|
||||
},
|
||||
"recommended": {
|
||||
"edge": 0.1,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.72,
|
||||
"trades": 30,
|
||||
"wins": 17,
|
||||
"win_rate": 0.5666666666666667,
|
||||
"total_net_percent": 12.82679871911413,
|
||||
"average_net_percent": 0.42755995730380436,
|
||||
"max_drawdown_percent": 1.812991648733242,
|
||||
"profit_factor": 3.2963631842987433,
|
||||
"score": 0.5882388552951857
|
||||
},
|
||||
"full_replay": {
|
||||
"trades": 8,
|
||||
"wins": 8,
|
||||
"win_rate": 1.0,
|
||||
"total_net_percent": 21.0484,
|
||||
"avg_net_percent": 2.631,
|
||||
"max_drawdown_percent": 0.0,
|
||||
"profit_factor": 999.0,
|
||||
"trades_detail": [
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1779832800000,
|
||||
"exit_timestamp": 1779868800000,
|
||||
"net_percent": 0.5281,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 10,
|
||||
"entry_probability": 0.5747,
|
||||
"entry_expected_percent": 0.3453
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1779940800000,
|
||||
"exit_timestamp": 1779984000000,
|
||||
"net_percent": 1.3185,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 12,
|
||||
"entry_probability": 0.6018,
|
||||
"entry_expected_percent": 0.3155
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1780300800000,
|
||||
"exit_timestamp": 1780347600000,
|
||||
"net_percent": 0.2591,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 13,
|
||||
"entry_probability": 0.6164,
|
||||
"entry_expected_percent": 0.3215
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1780768800000,
|
||||
"exit_timestamp": 1780855200000,
|
||||
"net_percent": 4.4581,
|
||||
"reason": "max_hold",
|
||||
"held_bars": 24,
|
||||
"entry_probability": 0.5632,
|
||||
"entry_expected_percent": 0.5685
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1780862400000,
|
||||
"exit_timestamp": 1780869600000,
|
||||
"net_percent": 2.4609,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 2,
|
||||
"entry_probability": 0.5368,
|
||||
"entry_expected_percent": 0.4055
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1781139600000,
|
||||
"exit_timestamp": 1781204400000,
|
||||
"net_percent": 2.0707,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 18,
|
||||
"entry_probability": 0.5775,
|
||||
"entry_expected_percent": 0.3013
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1781445600000,
|
||||
"exit_timestamp": 1781532000000,
|
||||
"net_percent": 9.0305,
|
||||
"reason": "max_hold",
|
||||
"held_bars": 24,
|
||||
"entry_probability": 0.6014,
|
||||
"entry_expected_percent": 0.2946
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1781892000000,
|
||||
"exit_timestamp": 1781942400000,
|
||||
"net_percent": 0.9224,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 14,
|
||||
"entry_probability": 0.5966,
|
||||
"entry_expected_percent": 0.2647
|
||||
}
|
||||
]
|
||||
},
|
||||
"walk_forward": {
|
||||
"summary": {
|
||||
"trades": 16,
|
||||
"wins": 8,
|
||||
"win_rate": 0.5,
|
||||
"total_net_percent": 6.8682,
|
||||
"avg_net_percent": 0.4293,
|
||||
"max_drawdown_percent": 1.3024,
|
||||
"profit_factor": 3.1396,
|
||||
"status": "warn"
|
||||
},
|
||||
"folds": [
|
||||
{
|
||||
"fold": 1,
|
||||
"train_records": 720,
|
||||
"test_records": 720,
|
||||
"thresholds": {
|
||||
"edge": 0.1,
|
||||
"probability": 0.6,
|
||||
"confidence": 0.72,
|
||||
"trades": 2,
|
||||
"wins": 1,
|
||||
"win_rate": 0.5,
|
||||
"total_net_percent": -0.10348384852443271,
|
||||
"average_net_percent": -0.051741924262216354,
|
||||
"max_drawdown_percent": 0.5106090484004788,
|
||||
"profit_factor": 0.7973325211360753,
|
||||
"score": -0.0037694524148430344
|
||||
},
|
||||
"test": {
|
||||
"trades": 4,
|
||||
"wins": 2,
|
||||
"win_rate": 0.5,
|
||||
"total_net_percent": 0.0557,
|
||||
"avg_net_percent": 0.0139,
|
||||
"max_drawdown_percent": 1.3024,
|
||||
"profit_factor": 1.0428
|
||||
}
|
||||
},
|
||||
{
|
||||
"fold": 2,
|
||||
"train_records": 1440,
|
||||
"test_records": 720,
|
||||
"thresholds": {
|
||||
"edge": 0.1,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.72,
|
||||
"trades": 18,
|
||||
"wins": 11,
|
||||
"win_rate": 0.6111111111111112,
|
||||
"total_net_percent": 6.01434645293809,
|
||||
"average_net_percent": 0.3341303584965606,
|
||||
"max_drawdown_percent": 1.812991648733242,
|
||||
"profit_factor": 2.6352078385564366,
|
||||
"score": 0.3944002502730791
|
||||
},
|
||||
"test": {
|
||||
"trades": 11,
|
||||
"wins": 6,
|
||||
"win_rate": 0.5455,
|
||||
"total_net_percent": 7.119,
|
||||
"avg_net_percent": 0.6472,
|
||||
"max_drawdown_percent": 1.0894,
|
||||
"profit_factor": 5.4462
|
||||
}
|
||||
},
|
||||
{
|
||||
"fold": 3,
|
||||
"train_records": 2160,
|
||||
"test_records": 720,
|
||||
"thresholds": {
|
||||
"edge": 0.1,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.72,
|
||||
"trades": 29,
|
||||
"wins": 17,
|
||||
"win_rate": 0.5862068965517241,
|
||||
"total_net_percent": 13.13332018590817,
|
||||
"average_net_percent": 0.4528731098589024,
|
||||
"max_drawdown_percent": 1.812991648733242,
|
||||
"profit_factor": 3.48775770371021,
|
||||
"score": 0.6189314390475966
|
||||
},
|
||||
"test": {
|
||||
"trades": 1,
|
||||
"wins": 0,
|
||||
"win_rate": 0.0,
|
||||
"total_net_percent": -0.3065,
|
||||
"avg_net_percent": -0.3065,
|
||||
"max_drawdown_percent": 0.3065,
|
||||
"profit_factor": 0.0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"probability_calibration": {
|
||||
"samples": 2880,
|
||||
"buckets": [
|
||||
{
|
||||
"bucket": "0.30-0.35",
|
||||
"samples": 38,
|
||||
"avg_probability": 0.336,
|
||||
"actual_win_rate": 0.1053,
|
||||
"avg_future_net_percent": -0.6575
|
||||
},
|
||||
{
|
||||
"bucket": "0.35-0.40",
|
||||
"samples": 418,
|
||||
"avg_probability": 0.3839,
|
||||
"actual_win_rate": 0.2225,
|
||||
"avg_future_net_percent": -0.6359
|
||||
},
|
||||
{
|
||||
"bucket": "0.40-0.45",
|
||||
"samples": 1065,
|
||||
"avg_probability": 0.427,
|
||||
"actual_win_rate": 0.2873,
|
||||
"avg_future_net_percent": -0.4036
|
||||
},
|
||||
{
|
||||
"bucket": "0.45-0.50",
|
||||
"samples": 911,
|
||||
"avg_probability": 0.4746,
|
||||
"actual_win_rate": 0.3271,
|
||||
"avg_future_net_percent": -0.3061
|
||||
},
|
||||
{
|
||||
"bucket": "0.50-0.55",
|
||||
"samples": 290,
|
||||
"avg_probability": 0.5188,
|
||||
"actual_win_rate": 0.3966,
|
||||
"avg_future_net_percent": -0.0583
|
||||
},
|
||||
{
|
||||
"bucket": "0.55-0.60",
|
||||
"samples": 104,
|
||||
"avg_probability": 0.5758,
|
||||
"actual_win_rate": 0.4327,
|
||||
"avg_future_net_percent": 0.0173
|
||||
},
|
||||
{
|
||||
"bucket": "0.60-0.65",
|
||||
"samples": 42,
|
||||
"avg_probability": 0.6138,
|
||||
"actual_win_rate": 0.4762,
|
||||
"avg_future_net_percent": -0.0041
|
||||
},
|
||||
{
|
||||
"bucket": "0.65-0.70",
|
||||
"samples": 6,
|
||||
"avg_probability": 0.6679,
|
||||
"actual_win_rate": 0.3333,
|
||||
"avg_future_net_percent": 0.6587
|
||||
},
|
||||
{
|
||||
"bucket": "0.70-0.75",
|
||||
"samples": 6,
|
||||
"avg_probability": 0.7103,
|
||||
"actual_win_rate": 0.8333,
|
||||
"avg_future_net_percent": 2.1268
|
||||
}
|
||||
]
|
||||
},
|
||||
"top_results": [
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.72,
|
||||
"trades": 30,
|
||||
"wins": 17,
|
||||
"win_rate": 0.5666666666666667,
|
||||
"total_net_percent": 12.82679871911413,
|
||||
"average_net_percent": 0.42755995730380436,
|
||||
"max_drawdown_percent": 1.812991648733242,
|
||||
"profit_factor": 3.2963631842987433,
|
||||
"score": 0.5882388552951857
|
||||
},
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.5,
|
||||
"confidence": 0.72,
|
||||
"trades": 30,
|
||||
"wins": 17,
|
||||
"win_rate": 0.5666666666666667,
|
||||
"total_net_percent": 12.82679871911413,
|
||||
"average_net_percent": 0.42755995730380436,
|
||||
"max_drawdown_percent": 1.812991648733242,
|
||||
"profit_factor": 3.2963631842987433,
|
||||
"score": 0.5882388552951857
|
||||
},
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.68,
|
||||
"trades": 38,
|
||||
"wins": 19,
|
||||
"win_rate": 0.5,
|
||||
"total_net_percent": 13.314209250896504,
|
||||
"average_net_percent": 0.35037392765517117,
|
||||
"max_drawdown_percent": 2.2311766078638495,
|
||||
"profit_factor": 2.618335500149353,
|
||||
"score": 0.5031517681827032
|
||||
},
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.5,
|
||||
"confidence": 0.68,
|
||||
"trades": 38,
|
||||
"wins": 19,
|
||||
"win_rate": 0.5,
|
||||
"total_net_percent": 13.314209250896504,
|
||||
"average_net_percent": 0.35037392765517117,
|
||||
"max_drawdown_percent": 2.2311766078638495,
|
||||
"profit_factor": 2.618335500149353,
|
||||
"score": 0.5031517681827032
|
||||
},
|
||||
{
|
||||
"edge": 0.08,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.64,
|
||||
"trades": 56,
|
||||
"wins": 28,
|
||||
"win_rate": 0.5,
|
||||
"total_net_percent": 17.433321755380405,
|
||||
"average_net_percent": 0.31130931706036435,
|
||||
"max_drawdown_percent": 3.6509791332801522,
|
||||
"profit_factor": 2.1428339375966368,
|
||||
"score": 0.4832797693926659
|
||||
},
|
||||
{
|
||||
"edge": 0.06,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.68,
|
||||
"trades": 56,
|
||||
"wins": 28,
|
||||
"win_rate": 0.5,
|
||||
"total_net_percent": 17.433321755380405,
|
||||
"average_net_percent": 0.31130931706036435,
|
||||
"max_drawdown_percent": 3.6509791332801522,
|
||||
"profit_factor": 2.1428339375966368,
|
||||
"score": 0.4832797693926659
|
||||
},
|
||||
{
|
||||
"edge": 0.05,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.68,
|
||||
"trades": 60,
|
||||
"wins": 29,
|
||||
"win_rate": 0.48333333333333334,
|
||||
"total_net_percent": 16.9130381260749,
|
||||
"average_net_percent": 0.281883968767915,
|
||||
"max_drawdown_percent": 3.7288680658046136,
|
||||
"profit_factor": 1.9655257883521706,
|
||||
"score": 0.44304683201823336
|
||||
},
|
||||
{
|
||||
"edge": 0.08,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.72,
|
||||
"trades": 38,
|
||||
"wins": 16,
|
||||
"win_rate": 0.42105263157894735,
|
||||
"total_net_percent": 12.356704347142244,
|
||||
"average_net_percent": 0.3251764301879538,
|
||||
"max_drawdown_percent": 2.826650409116027,
|
||||
"profit_factor": 2.4329654894966497,
|
||||
"score": 0.44256958838476457
|
||||
},
|
||||
{
|
||||
"edge": 0.08,
|
||||
"probability": 0.5,
|
||||
"confidence": 0.72,
|
||||
"trades": 38,
|
||||
"wins": 16,
|
||||
"win_rate": 0.42105263157894735,
|
||||
"total_net_percent": 12.356704347142244,
|
||||
"average_net_percent": 0.3251764301879538,
|
||||
"max_drawdown_percent": 2.826650409116027,
|
||||
"profit_factor": 2.4329654894966497,
|
||||
"score": 0.44256958838476457
|
||||
},
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.6,
|
||||
"trades": 59,
|
||||
"wins": 28,
|
||||
"win_rate": 0.4745762711864407,
|
||||
"total_net_percent": 16.704033568694644,
|
||||
"average_net_percent": 0.2831192130287228,
|
||||
"max_drawdown_percent": 3.9030543543860263,
|
||||
"profit_factor": 2.053895519143829,
|
||||
"score": 0.4355711367750193
|
||||
},
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.54,
|
||||
"confidence": 0.72,
|
||||
"trades": 29,
|
||||
"wins": 16,
|
||||
"win_rate": 0.5517241379310345,
|
||||
"total_net_percent": 9.266858120167019,
|
||||
"average_net_percent": 0.3195468317298972,
|
||||
"max_drawdown_percent": 1.812991648733242,
|
||||
"profit_factor": 2.659032178431275,
|
||||
"score": 0.41557735852998334
|
||||
},
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.55,
|
||||
"confidence": 0.72,
|
||||
"trades": 25,
|
||||
"wins": 14,
|
||||
"win_rate": 0.56,
|
||||
"total_net_percent": 9.16979950649479,
|
||||
"average_net_percent": 0.3667919802597916,
|
||||
"max_drawdown_percent": 1.812991648733242,
|
||||
"profit_factor": 3.155095090386423,
|
||||
"score": 0.41121722668525085
|
||||
},
|
||||
{
|
||||
"edge": 0.08,
|
||||
"probability": 0.5,
|
||||
"confidence": 0.64,
|
||||
"trades": 57,
|
||||
"wins": 28,
|
||||
"win_rate": 0.49122807017543857,
|
||||
"total_net_percent": 15.383105036720245,
|
||||
"average_net_percent": 0.2698790357319341,
|
||||
"max_drawdown_percent": 3.6509791332801522,
|
||||
"profit_factor": 1.8889561886320847,
|
||||
"score": 0.4107453600913507
|
||||
},
|
||||
{
|
||||
"edge": 0.06,
|
||||
"probability": 0.5,
|
||||
"confidence": 0.68,
|
||||
"trades": 57,
|
||||
"wins": 28,
|
||||
"win_rate": 0.49122807017543857,
|
||||
"total_net_percent": 15.383105036720245,
|
||||
"average_net_percent": 0.2698790357319341,
|
||||
"max_drawdown_percent": 3.6509791332801522,
|
||||
"profit_factor": 1.8889561886320847,
|
||||
"score": 0.4107453600913507
|
||||
},
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.55,
|
||||
"confidence": 0.68,
|
||||
"trades": 32,
|
||||
"wins": 16,
|
||||
"win_rate": 0.5,
|
||||
"total_net_percent": 9.83610967545454,
|
||||
"average_net_percent": 0.3073784273579544,
|
||||
"max_drawdown_percent": 2.2311766078638495,
|
||||
"profit_factor": 2.5019571623752666,
|
||||
"score": 0.40798477425385704
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
{
|
||||
"accepted": true,
|
||||
"reason": "candidate_passed_guard",
|
||||
"current": {
|
||||
"score": 0.0,
|
||||
"recommended": {},
|
||||
"full_replay": {},
|
||||
"walk_forward_summary": {}
|
||||
},
|
||||
"candidate": {
|
||||
"score": 3.499028,
|
||||
"recommended": {
|
||||
"edge": 0.1,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.72,
|
||||
"trades": 30,
|
||||
"wins": 17,
|
||||
"win_rate": 0.5666666666666667,
|
||||
"total_net_percent": 12.82679871911413,
|
||||
"average_net_percent": 0.42755995730380436,
|
||||
"max_drawdown_percent": 1.812991648733242,
|
||||
"profit_factor": 3.2963631842987433,
|
||||
"score": 0.5882388552951857
|
||||
},
|
||||
"full_replay": {
|
||||
"trades": 8,
|
||||
"wins": 8,
|
||||
"win_rate": 1.0,
|
||||
"total_net_percent": 21.0484,
|
||||
"avg_net_percent": 2.631,
|
||||
"max_drawdown_percent": 0.0,
|
||||
"profit_factor": 999.0,
|
||||
"trades_detail": [
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1779832800000,
|
||||
"exit_timestamp": 1779868800000,
|
||||
"net_percent": 0.5281,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 10,
|
||||
"entry_probability": 0.5747,
|
||||
"entry_expected_percent": 0.3453
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1779940800000,
|
||||
"exit_timestamp": 1779984000000,
|
||||
"net_percent": 1.3185,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 12,
|
||||
"entry_probability": 0.6018,
|
||||
"entry_expected_percent": 0.3155
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1780300800000,
|
||||
"exit_timestamp": 1780347600000,
|
||||
"net_percent": 0.2591,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 13,
|
||||
"entry_probability": 0.6164,
|
||||
"entry_expected_percent": 0.3215
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1780768800000,
|
||||
"exit_timestamp": 1780855200000,
|
||||
"net_percent": 4.4581,
|
||||
"reason": "max_hold",
|
||||
"held_bars": 24,
|
||||
"entry_probability": 0.5632,
|
||||
"entry_expected_percent": 0.5685
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1780862400000,
|
||||
"exit_timestamp": 1780869600000,
|
||||
"net_percent": 2.4609,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 2,
|
||||
"entry_probability": 0.5368,
|
||||
"entry_expected_percent": 0.4055
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1781139600000,
|
||||
"exit_timestamp": 1781204400000,
|
||||
"net_percent": 2.0707,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 18,
|
||||
"entry_probability": 0.5775,
|
||||
"entry_expected_percent": 0.3013
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1781445600000,
|
||||
"exit_timestamp": 1781532000000,
|
||||
"net_percent": 9.0305,
|
||||
"reason": "max_hold",
|
||||
"held_bars": 24,
|
||||
"entry_probability": 0.6014,
|
||||
"entry_expected_percent": 0.2946
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1781892000000,
|
||||
"exit_timestamp": 1781942400000,
|
||||
"net_percent": 0.9224,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 14,
|
||||
"entry_probability": 0.5966,
|
||||
"entry_expected_percent": 0.2647
|
||||
}
|
||||
]
|
||||
},
|
||||
"walk_forward_summary": {
|
||||
"trades": 16,
|
||||
"wins": 8,
|
||||
"win_rate": 0.5,
|
||||
"total_net_percent": 6.8682,
|
||||
"avg_net_percent": 0.4293,
|
||||
"max_drawdown_percent": 1.3024,
|
||||
"profit_factor": 3.1396,
|
||||
"status": "warn"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,515 @@
|
||||
{
|
||||
"artifact": {
|
||||
"version": 4,
|
||||
"created_at": "2026-06-23T19:07:54.434411+00:00",
|
||||
"feature_count": 55,
|
||||
"target_horizon": 3,
|
||||
"target_horizons": [
|
||||
1,
|
||||
3,
|
||||
6,
|
||||
12
|
||||
],
|
||||
"target_transform": "net_return_over_volatility",
|
||||
"symbols": {
|
||||
"BTCUSDT": {
|
||||
"model": "torch_gru",
|
||||
"lookback": 64,
|
||||
"hidden_size": 96,
|
||||
"skill": 0.15903346077183758,
|
||||
"directional_accuracy": 0.725
|
||||
},
|
||||
"ETHUSDT": {
|
||||
"model": "torch_gru",
|
||||
"lookback": 64,
|
||||
"hidden_size": 64,
|
||||
"skill": 0.09273757527902074,
|
||||
"directional_accuracy": 0.6916666666666667
|
||||
},
|
||||
"SOLUSDT": {
|
||||
"model": "torch_gru",
|
||||
"lookback": 64,
|
||||
"hidden_size": 96,
|
||||
"skill": 0.03400498728351002,
|
||||
"directional_accuracy": 0.6416666666666667
|
||||
},
|
||||
"LTCUSDT": {
|
||||
"model": "torch_gru",
|
||||
"lookback": 64,
|
||||
"hidden_size": 96,
|
||||
"skill": 0.11954702418314447,
|
||||
"directional_accuracy": 0.6583333333333333
|
||||
}
|
||||
}
|
||||
},
|
||||
"records_by_symbol": {
|
||||
"BTCUSDT": 720,
|
||||
"ETHUSDT": 720,
|
||||
"SOLUSDT": 720,
|
||||
"LTCUSDT": 720
|
||||
},
|
||||
"recommended": {
|
||||
"edge": 0.1,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.72,
|
||||
"trades": 30,
|
||||
"wins": 17,
|
||||
"win_rate": 0.5666666666666667,
|
||||
"total_net_percent": 12.82679871911413,
|
||||
"average_net_percent": 0.42755995730380436,
|
||||
"max_drawdown_percent": 1.812991648733242,
|
||||
"profit_factor": 3.2963631842987433,
|
||||
"score": 0.5882388552951857
|
||||
},
|
||||
"full_replay": {
|
||||
"trades": 8,
|
||||
"wins": 8,
|
||||
"win_rate": 1.0,
|
||||
"total_net_percent": 21.0484,
|
||||
"avg_net_percent": 2.631,
|
||||
"max_drawdown_percent": 0.0,
|
||||
"profit_factor": 999.0,
|
||||
"trades_detail": [
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1779832800000,
|
||||
"exit_timestamp": 1779868800000,
|
||||
"net_percent": 0.5281,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 10,
|
||||
"entry_probability": 0.5747,
|
||||
"entry_expected_percent": 0.3453
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1779940800000,
|
||||
"exit_timestamp": 1779984000000,
|
||||
"net_percent": 1.3185,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 12,
|
||||
"entry_probability": 0.6018,
|
||||
"entry_expected_percent": 0.3155
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1780300800000,
|
||||
"exit_timestamp": 1780347600000,
|
||||
"net_percent": 0.2591,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 13,
|
||||
"entry_probability": 0.6164,
|
||||
"entry_expected_percent": 0.3215
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1780768800000,
|
||||
"exit_timestamp": 1780855200000,
|
||||
"net_percent": 4.4581,
|
||||
"reason": "max_hold",
|
||||
"held_bars": 24,
|
||||
"entry_probability": 0.5632,
|
||||
"entry_expected_percent": 0.5685
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1780862400000,
|
||||
"exit_timestamp": 1780869600000,
|
||||
"net_percent": 2.4609,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 2,
|
||||
"entry_probability": 0.5368,
|
||||
"entry_expected_percent": 0.4055
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1781139600000,
|
||||
"exit_timestamp": 1781204400000,
|
||||
"net_percent": 2.0707,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 18,
|
||||
"entry_probability": 0.5775,
|
||||
"entry_expected_percent": 0.3013
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1781445600000,
|
||||
"exit_timestamp": 1781532000000,
|
||||
"net_percent": 9.0305,
|
||||
"reason": "max_hold",
|
||||
"held_bars": 24,
|
||||
"entry_probability": 0.6014,
|
||||
"entry_expected_percent": 0.2946
|
||||
},
|
||||
{
|
||||
"symbol": "ETHUSDT",
|
||||
"entry_timestamp": 1781892000000,
|
||||
"exit_timestamp": 1781942400000,
|
||||
"net_percent": 0.9224,
|
||||
"reason": "forecast_weak_profit_lock",
|
||||
"held_bars": 14,
|
||||
"entry_probability": 0.5966,
|
||||
"entry_expected_percent": 0.2647
|
||||
}
|
||||
]
|
||||
},
|
||||
"walk_forward": {
|
||||
"summary": {
|
||||
"trades": 16,
|
||||
"wins": 8,
|
||||
"win_rate": 0.5,
|
||||
"total_net_percent": 6.8682,
|
||||
"avg_net_percent": 0.4293,
|
||||
"max_drawdown_percent": 1.3024,
|
||||
"profit_factor": 3.1396,
|
||||
"status": "warn"
|
||||
},
|
||||
"folds": [
|
||||
{
|
||||
"fold": 1,
|
||||
"train_records": 720,
|
||||
"test_records": 720,
|
||||
"thresholds": {
|
||||
"edge": 0.1,
|
||||
"probability": 0.6,
|
||||
"confidence": 0.72,
|
||||
"trades": 2,
|
||||
"wins": 1,
|
||||
"win_rate": 0.5,
|
||||
"total_net_percent": -0.10348384852443271,
|
||||
"average_net_percent": -0.051741924262216354,
|
||||
"max_drawdown_percent": 0.5106090484004788,
|
||||
"profit_factor": 0.7973325211360753,
|
||||
"score": -0.0037694524148430344
|
||||
},
|
||||
"test": {
|
||||
"trades": 4,
|
||||
"wins": 2,
|
||||
"win_rate": 0.5,
|
||||
"total_net_percent": 0.0557,
|
||||
"avg_net_percent": 0.0139,
|
||||
"max_drawdown_percent": 1.3024,
|
||||
"profit_factor": 1.0428
|
||||
}
|
||||
},
|
||||
{
|
||||
"fold": 2,
|
||||
"train_records": 1440,
|
||||
"test_records": 720,
|
||||
"thresholds": {
|
||||
"edge": 0.1,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.72,
|
||||
"trades": 18,
|
||||
"wins": 11,
|
||||
"win_rate": 0.6111111111111112,
|
||||
"total_net_percent": 6.01434645293809,
|
||||
"average_net_percent": 0.3341303584965606,
|
||||
"max_drawdown_percent": 1.812991648733242,
|
||||
"profit_factor": 2.6352078385564366,
|
||||
"score": 0.3944002502730791
|
||||
},
|
||||
"test": {
|
||||
"trades": 11,
|
||||
"wins": 6,
|
||||
"win_rate": 0.5455,
|
||||
"total_net_percent": 7.119,
|
||||
"avg_net_percent": 0.6472,
|
||||
"max_drawdown_percent": 1.0894,
|
||||
"profit_factor": 5.4462
|
||||
}
|
||||
},
|
||||
{
|
||||
"fold": 3,
|
||||
"train_records": 2160,
|
||||
"test_records": 720,
|
||||
"thresholds": {
|
||||
"edge": 0.1,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.72,
|
||||
"trades": 29,
|
||||
"wins": 17,
|
||||
"win_rate": 0.5862068965517241,
|
||||
"total_net_percent": 13.13332018590817,
|
||||
"average_net_percent": 0.4528731098589024,
|
||||
"max_drawdown_percent": 1.812991648733242,
|
||||
"profit_factor": 3.48775770371021,
|
||||
"score": 0.6189314390475966
|
||||
},
|
||||
"test": {
|
||||
"trades": 1,
|
||||
"wins": 0,
|
||||
"win_rate": 0.0,
|
||||
"total_net_percent": -0.3065,
|
||||
"avg_net_percent": -0.3065,
|
||||
"max_drawdown_percent": 0.3065,
|
||||
"profit_factor": 0.0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"probability_calibration": {
|
||||
"samples": 2880,
|
||||
"buckets": [
|
||||
{
|
||||
"bucket": "0.30-0.35",
|
||||
"samples": 38,
|
||||
"avg_probability": 0.336,
|
||||
"actual_win_rate": 0.1053,
|
||||
"avg_future_net_percent": -0.6575
|
||||
},
|
||||
{
|
||||
"bucket": "0.35-0.40",
|
||||
"samples": 418,
|
||||
"avg_probability": 0.3839,
|
||||
"actual_win_rate": 0.2225,
|
||||
"avg_future_net_percent": -0.6359
|
||||
},
|
||||
{
|
||||
"bucket": "0.40-0.45",
|
||||
"samples": 1065,
|
||||
"avg_probability": 0.427,
|
||||
"actual_win_rate": 0.2873,
|
||||
"avg_future_net_percent": -0.4036
|
||||
},
|
||||
{
|
||||
"bucket": "0.45-0.50",
|
||||
"samples": 911,
|
||||
"avg_probability": 0.4746,
|
||||
"actual_win_rate": 0.3271,
|
||||
"avg_future_net_percent": -0.3061
|
||||
},
|
||||
{
|
||||
"bucket": "0.50-0.55",
|
||||
"samples": 290,
|
||||
"avg_probability": 0.5188,
|
||||
"actual_win_rate": 0.3966,
|
||||
"avg_future_net_percent": -0.0583
|
||||
},
|
||||
{
|
||||
"bucket": "0.55-0.60",
|
||||
"samples": 104,
|
||||
"avg_probability": 0.5758,
|
||||
"actual_win_rate": 0.4327,
|
||||
"avg_future_net_percent": 0.0173
|
||||
},
|
||||
{
|
||||
"bucket": "0.60-0.65",
|
||||
"samples": 42,
|
||||
"avg_probability": 0.6138,
|
||||
"actual_win_rate": 0.4762,
|
||||
"avg_future_net_percent": -0.0041
|
||||
},
|
||||
{
|
||||
"bucket": "0.65-0.70",
|
||||
"samples": 6,
|
||||
"avg_probability": 0.6679,
|
||||
"actual_win_rate": 0.3333,
|
||||
"avg_future_net_percent": 0.6587
|
||||
},
|
||||
{
|
||||
"bucket": "0.70-0.75",
|
||||
"samples": 6,
|
||||
"avg_probability": 0.7103,
|
||||
"actual_win_rate": 0.8333,
|
||||
"avg_future_net_percent": 2.1268
|
||||
}
|
||||
]
|
||||
},
|
||||
"top_results": [
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.72,
|
||||
"trades": 30,
|
||||
"wins": 17,
|
||||
"win_rate": 0.5666666666666667,
|
||||
"total_net_percent": 12.82679871911413,
|
||||
"average_net_percent": 0.42755995730380436,
|
||||
"max_drawdown_percent": 1.812991648733242,
|
||||
"profit_factor": 3.2963631842987433,
|
||||
"score": 0.5882388552951857
|
||||
},
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.5,
|
||||
"confidence": 0.72,
|
||||
"trades": 30,
|
||||
"wins": 17,
|
||||
"win_rate": 0.5666666666666667,
|
||||
"total_net_percent": 12.82679871911413,
|
||||
"average_net_percent": 0.42755995730380436,
|
||||
"max_drawdown_percent": 1.812991648733242,
|
||||
"profit_factor": 3.2963631842987433,
|
||||
"score": 0.5882388552951857
|
||||
},
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.68,
|
||||
"trades": 38,
|
||||
"wins": 19,
|
||||
"win_rate": 0.5,
|
||||
"total_net_percent": 13.314209250896504,
|
||||
"average_net_percent": 0.35037392765517117,
|
||||
"max_drawdown_percent": 2.2311766078638495,
|
||||
"profit_factor": 2.618335500149353,
|
||||
"score": 0.5031517681827032
|
||||
},
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.5,
|
||||
"confidence": 0.68,
|
||||
"trades": 38,
|
||||
"wins": 19,
|
||||
"win_rate": 0.5,
|
||||
"total_net_percent": 13.314209250896504,
|
||||
"average_net_percent": 0.35037392765517117,
|
||||
"max_drawdown_percent": 2.2311766078638495,
|
||||
"profit_factor": 2.618335500149353,
|
||||
"score": 0.5031517681827032
|
||||
},
|
||||
{
|
||||
"edge": 0.08,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.64,
|
||||
"trades": 56,
|
||||
"wins": 28,
|
||||
"win_rate": 0.5,
|
||||
"total_net_percent": 17.433321755380405,
|
||||
"average_net_percent": 0.31130931706036435,
|
||||
"max_drawdown_percent": 3.6509791332801522,
|
||||
"profit_factor": 2.1428339375966368,
|
||||
"score": 0.4832797693926659
|
||||
},
|
||||
{
|
||||
"edge": 0.06,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.68,
|
||||
"trades": 56,
|
||||
"wins": 28,
|
||||
"win_rate": 0.5,
|
||||
"total_net_percent": 17.433321755380405,
|
||||
"average_net_percent": 0.31130931706036435,
|
||||
"max_drawdown_percent": 3.6509791332801522,
|
||||
"profit_factor": 2.1428339375966368,
|
||||
"score": 0.4832797693926659
|
||||
},
|
||||
{
|
||||
"edge": 0.05,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.68,
|
||||
"trades": 60,
|
||||
"wins": 29,
|
||||
"win_rate": 0.48333333333333334,
|
||||
"total_net_percent": 16.9130381260749,
|
||||
"average_net_percent": 0.281883968767915,
|
||||
"max_drawdown_percent": 3.7288680658046136,
|
||||
"profit_factor": 1.9655257883521706,
|
||||
"score": 0.44304683201823336
|
||||
},
|
||||
{
|
||||
"edge": 0.08,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.72,
|
||||
"trades": 38,
|
||||
"wins": 16,
|
||||
"win_rate": 0.42105263157894735,
|
||||
"total_net_percent": 12.356704347142244,
|
||||
"average_net_percent": 0.3251764301879538,
|
||||
"max_drawdown_percent": 2.826650409116027,
|
||||
"profit_factor": 2.4329654894966497,
|
||||
"score": 0.44256958838476457
|
||||
},
|
||||
{
|
||||
"edge": 0.08,
|
||||
"probability": 0.5,
|
||||
"confidence": 0.72,
|
||||
"trades": 38,
|
||||
"wins": 16,
|
||||
"win_rate": 0.42105263157894735,
|
||||
"total_net_percent": 12.356704347142244,
|
||||
"average_net_percent": 0.3251764301879538,
|
||||
"max_drawdown_percent": 2.826650409116027,
|
||||
"profit_factor": 2.4329654894966497,
|
||||
"score": 0.44256958838476457
|
||||
},
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.52,
|
||||
"confidence": 0.6,
|
||||
"trades": 59,
|
||||
"wins": 28,
|
||||
"win_rate": 0.4745762711864407,
|
||||
"total_net_percent": 16.704033568694644,
|
||||
"average_net_percent": 0.2831192130287228,
|
||||
"max_drawdown_percent": 3.9030543543860263,
|
||||
"profit_factor": 2.053895519143829,
|
||||
"score": 0.4355711367750193
|
||||
},
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.54,
|
||||
"confidence": 0.72,
|
||||
"trades": 29,
|
||||
"wins": 16,
|
||||
"win_rate": 0.5517241379310345,
|
||||
"total_net_percent": 9.266858120167019,
|
||||
"average_net_percent": 0.3195468317298972,
|
||||
"max_drawdown_percent": 1.812991648733242,
|
||||
"profit_factor": 2.659032178431275,
|
||||
"score": 0.41557735852998334
|
||||
},
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.55,
|
||||
"confidence": 0.72,
|
||||
"trades": 25,
|
||||
"wins": 14,
|
||||
"win_rate": 0.56,
|
||||
"total_net_percent": 9.16979950649479,
|
||||
"average_net_percent": 0.3667919802597916,
|
||||
"max_drawdown_percent": 1.812991648733242,
|
||||
"profit_factor": 3.155095090386423,
|
||||
"score": 0.41121722668525085
|
||||
},
|
||||
{
|
||||
"edge": 0.08,
|
||||
"probability": 0.5,
|
||||
"confidence": 0.64,
|
||||
"trades": 57,
|
||||
"wins": 28,
|
||||
"win_rate": 0.49122807017543857,
|
||||
"total_net_percent": 15.383105036720245,
|
||||
"average_net_percent": 0.2698790357319341,
|
||||
"max_drawdown_percent": 3.6509791332801522,
|
||||
"profit_factor": 1.8889561886320847,
|
||||
"score": 0.4107453600913507
|
||||
},
|
||||
{
|
||||
"edge": 0.06,
|
||||
"probability": 0.5,
|
||||
"confidence": 0.68,
|
||||
"trades": 57,
|
||||
"wins": 28,
|
||||
"win_rate": 0.49122807017543857,
|
||||
"total_net_percent": 15.383105036720245,
|
||||
"average_net_percent": 0.2698790357319341,
|
||||
"max_drawdown_percent": 3.6509791332801522,
|
||||
"profit_factor": 1.8889561886320847,
|
||||
"score": 0.4107453600913507
|
||||
},
|
||||
{
|
||||
"edge": 0.1,
|
||||
"probability": 0.55,
|
||||
"confidence": 0.68,
|
||||
"trades": 32,
|
||||
"wins": 16,
|
||||
"win_rate": 0.5,
|
||||
"total_net_percent": 9.83610967545454,
|
||||
"average_net_percent": 0.3073784273579544,
|
||||
"max_drawdown_percent": 2.2311766078638495,
|
||||
"profit_factor": 2.5019571623752666,
|
||||
"score": 0.40798477425385704
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
BTCUSDT: model=torch_gru lookback=64 features=55 hidden=96 layers=2 horizons=1,3,6,12 mae=0.47001% baseline=0.55889% skill=0.1590 dir=0.725 p_brier=0.2443
|
||||
ETHUSDT: model=torch_gru lookback=64 features=55 hidden=64 layers=2 horizons=1,3,6,12 mae=0.63328% baseline=0.69801% skill=0.0927 dir=0.692 p_brier=0.2239
|
||||
SOLUSDT: model=torch_gru lookback=64 features=55 hidden=96 layers=2 horizons=1,3,6,12 mae=0.85491% baseline=0.88500% skill=0.0340 dir=0.642 p_brier=0.2308
|
||||
LTCUSDT: model=torch_gru lookback=64 features=55 hidden=96 layers=2 horizons=1,3,6,12 mae=0.57185% baseline=0.64949% skill=0.1195 dir=0.658 p_brier=0.2369
|
||||
saved G:\Repos\TradeBot\runtime\lstm_forecaster.candidate.json
|
||||
Binary file not shown.
Reference in New Issue
Block a user