214 lines
5.1 KiB
JSON
214 lines
5.1 KiB
JSON
{
|
|
"mode": "walk_forward",
|
|
"config": {
|
|
"symbols": [
|
|
"XRPUSDT"
|
|
],
|
|
"start": null,
|
|
"end": null,
|
|
"initial_balance": 1000.0,
|
|
"leverage": 10,
|
|
"fee_pct": 0.04,
|
|
"slippage_pct": 0.01,
|
|
"use_ml": true,
|
|
"ml_threshold": 0.55,
|
|
"max_daily_loss_pct": 0.05,
|
|
"max_positions": 3,
|
|
"max_same_direction": 2,
|
|
"margin_max_ratio": 0.5,
|
|
"margin_min_ratio": 0.2,
|
|
"margin_decay_rate": 0.0006,
|
|
"atr_sl_mult": 1.5,
|
|
"atr_tp_mult": 3.0,
|
|
"min_notional": 5.0,
|
|
"signal_threshold": 3,
|
|
"adx_threshold": 0,
|
|
"volume_multiplier": 1.5,
|
|
"train_months": 6,
|
|
"test_months": 1,
|
|
"time_weight_decay": 2.0,
|
|
"negative_ratio": 3
|
|
},
|
|
"summary": {
|
|
"total_trades": 3,
|
|
"total_pnl": -5.1514,
|
|
"return_pct": -0.52,
|
|
"win_rate": 33.33,
|
|
"avg_win": 66.3376,
|
|
"avg_loss": -35.7445,
|
|
"payoff_ratio": 1.86,
|
|
"max_consecutive_losses": 2,
|
|
"profit_factor": 0.93,
|
|
"max_drawdown_pct": 3.76,
|
|
"sharpe_ratio": -6.68,
|
|
"total_fees": 11.5694,
|
|
"close_reasons": {
|
|
"STOP_LOSS": 2,
|
|
"TAKE_PROFIT": 1
|
|
}
|
|
},
|
|
"folds": [
|
|
{
|
|
"fold": 1,
|
|
"train_period": "2025-03-05 ~ 2025-09-05",
|
|
"test_period": "2025-09-05 ~ 2025-10-05",
|
|
"summary": {
|
|
"total_trades": 3,
|
|
"total_pnl": -5.1514,
|
|
"return_pct": -0.52,
|
|
"win_rate": 33.33,
|
|
"avg_win": 66.3376,
|
|
"avg_loss": -35.7445,
|
|
"payoff_ratio": 1.86,
|
|
"max_consecutive_losses": 2,
|
|
"profit_factor": 0.93,
|
|
"max_drawdown_pct": 3.76,
|
|
"sharpe_ratio": -6.68,
|
|
"total_fees": 11.5694,
|
|
"close_reasons": {
|
|
"STOP_LOSS": 2,
|
|
"TAKE_PROFIT": 1
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"trades": [
|
|
{
|
|
"symbol": "XRPUSDT",
|
|
"side": "SHORT",
|
|
"entry_time": "2025-09-24 03:15:00",
|
|
"exit_time": "2025-09-24 04:30:00",
|
|
"entry_price": 2.811019,
|
|
"exit_price": 2.828555,
|
|
"quantity": 1778.5,
|
|
"sl": 2.828555,
|
|
"tp": 2.775947,
|
|
"gross_pnl": -31.18734,
|
|
"entry_fee": 1.999759,
|
|
"exit_fee": 2.012234,
|
|
"net_pnl": -35.199332,
|
|
"close_reason": "STOP_LOSS",
|
|
"ml_proba": 0.5782,
|
|
"indicators": {
|
|
"rsi": 35.41445012242145,
|
|
"macd_hist": -0.0005539721484064007,
|
|
"atr": 0.011690503070987813,
|
|
"adx": 22.830095368917625
|
|
},
|
|
"fold": 1
|
|
},
|
|
{
|
|
"symbol": "XRPUSDT",
|
|
"side": "SHORT",
|
|
"entry_time": "2025-09-25 12:15:00",
|
|
"exit_time": "2025-09-25 12:30:00",
|
|
"entry_price": 2.793221,
|
|
"exit_price": 2.811993,
|
|
"quantity": 1726.9,
|
|
"sl": 2.811993,
|
|
"tp": 2.755676,
|
|
"gross_pnl": -32.41776,
|
|
"entry_fee": 1.929445,
|
|
"exit_fee": 1.942412,
|
|
"net_pnl": -36.289617,
|
|
"close_reason": "STOP_LOSS",
|
|
"ml_proba": 0.724,
|
|
"indicators": {
|
|
"rsi": 27.256149561284357,
|
|
"macd_hist": -0.0005773233003328118,
|
|
"atr": 0.012514818420656685,
|
|
"adx": 36.706433983392714
|
|
},
|
|
"fold": 1
|
|
},
|
|
{
|
|
"symbol": "XRPUSDT",
|
|
"side": "SHORT",
|
|
"entry_time": "2025-09-26 09:30:00",
|
|
"exit_time": "2025-09-26 11:00:00",
|
|
"entry_price": 2.742026,
|
|
"exit_price": 2.700663,
|
|
"quantity": 1692.9,
|
|
"sl": 2.762707,
|
|
"tp": 2.700663,
|
|
"gross_pnl": 70.023157,
|
|
"entry_fee": 1.85679,
|
|
"exit_fee": 1.828781,
|
|
"net_pnl": 66.337586,
|
|
"close_reason": "TAKE_PROFIT",
|
|
"ml_proba": 0.8238,
|
|
"indicators": {
|
|
"rsi": 42.61073221775071,
|
|
"macd_hist": -0.0004772649982219266,
|
|
"atr": 0.013787614360953772,
|
|
"adx": 15.435644479956943
|
|
},
|
|
"fold": 1
|
|
}
|
|
],
|
|
"validation": {
|
|
"overall": "FAIL",
|
|
"checks": [
|
|
{
|
|
"name": "exit_after_entry",
|
|
"passed": true,
|
|
"level": "FAIL",
|
|
"message": "모든 트레이드에서 청산 > 진입"
|
|
},
|
|
{
|
|
"name": "sl_tp_direction",
|
|
"passed": true,
|
|
"level": "FAIL",
|
|
"message": "SL/TP 방향 정합"
|
|
},
|
|
{
|
|
"name": "no_overlap",
|
|
"passed": true,
|
|
"level": "FAIL",
|
|
"message": "포지션 비중첩 확인"
|
|
},
|
|
{
|
|
"name": "positive_fees",
|
|
"passed": true,
|
|
"level": "FAIL",
|
|
"message": "수수료 양수 확인"
|
|
},
|
|
{
|
|
"name": "no_negative_balance",
|
|
"passed": true,
|
|
"level": "FAIL",
|
|
"message": "잔고 양수 유지"
|
|
},
|
|
{
|
|
"name": "win_rate_high",
|
|
"passed": true,
|
|
"level": "WARNING",
|
|
"message": "승률 정상 (33.3%)"
|
|
},
|
|
{
|
|
"name": "win_rate_low",
|
|
"passed": true,
|
|
"level": "WARNING",
|
|
"message": "승률 정상 (33.3%)"
|
|
},
|
|
{
|
|
"name": "mdd_nonzero",
|
|
"passed": true,
|
|
"level": "WARNING",
|
|
"message": "MDD 정상 (3.8%)"
|
|
},
|
|
{
|
|
"name": "trade_frequency",
|
|
"passed": false,
|
|
"level": "WARNING",
|
|
"message": "월 평균 3.0건 < 5건 — 신호 생성 부족"
|
|
},
|
|
{
|
|
"name": "profit_factor_high",
|
|
"passed": true,
|
|
"level": "WARNING",
|
|
"message": "PF 정상 (0.93)"
|
|
}
|
|
]
|
|
}
|
|
} |