{ "mode": "walk_forward", "config": { "symbols": [ "XRPUSDT" ], "start": null, "end": null, "initial_balance": 1000.0, "leverage": 20, "fee_pct": 0.04, "slippage_pct": 0.01, "use_ml": false, "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": 4.0, "min_notional": 5.0, "signal_threshold": 3, "adx_threshold": 25.0, "volume_multiplier": 2.5, "train_months": 3, "test_months": 1, "time_weight_decay": 2.0, "negative_ratio": 3 }, "summary": { "total_trades": 27, "total_pnl": 817.0717, "return_pct": 81.71, "win_rate": 44.44, "avg_win": 140.6556, "avg_loss": -58.053, "payoff_ratio": 2.42, "max_consecutive_losses": 4, "profit_factor": 1.94, "max_drawdown_pct": 20.23, "sharpe_ratio": 51.77, "total_fees": 195.3719, "close_reasons": { "STOP_LOSS": 15, "TAKE_PROFIT": 11, "REVERSE_SIGNAL": 1 } }, "folds": [ { "fold": 1, "train_period": "2025-03-05 ~ 2025-06-05", "test_period": "2025-06-05 ~ 2025-07-05", "summary": { "total_trades": 9, "total_pnl": 454.4106, "return_pct": 45.44, "win_rate": 44.44, "avg_win": 186.0558, "avg_loss": -57.9625, "payoff_ratio": 3.21, "max_consecutive_losses": 2, "profit_factor": 2.57, "max_drawdown_pct": 8.26, "sharpe_ratio": 73.09, "total_fees": 60.8765, "close_reasons": { "STOP_LOSS": 5, "TAKE_PROFIT": 4 } } }, { "fold": 2, "train_period": "2025-06-05 ~ 2025-09-05", "test_period": "2025-09-05 ~ 2025-10-05", "summary": { "total_trades": 10, "total_pnl": -71.4118, "return_pct": -7.14, "win_rate": 30.0, "avg_win": 116.5629, "avg_loss": -60.1572, "payoff_ratio": 1.94, "max_consecutive_losses": 4, "profit_factor": 0.83, "max_drawdown_pct": 28.16, "sharpe_ratio": -15.9, "total_fees": 75.9924, "close_reasons": { "TAKE_PROFIT": 3, "STOP_LOSS": 7 } } }, { "fold": 3, "train_period": "2025-09-05 ~ 2025-12-05", "test_period": "2025-12-05 ~ 2026-01-05", "summary": { "total_trades": 8, "total_pnl": 434.073, "return_pct": 43.41, "win_rate": 62.5, "avg_win": 118.7911, "avg_loss": -53.2941, "payoff_ratio": 2.23, "max_consecutive_losses": 1, "profit_factor": 3.71, "max_drawdown_pct": 5.44, "sharpe_ratio": 101.65, "total_fees": 58.503, "close_reasons": { "STOP_LOSS": 3, "TAKE_PROFIT": 4, "REVERSE_SIGNAL": 1 } } } ], "trades": [ { "symbol": "XRPUSDT", "side": "SHORT", "entry_time": "2025-06-12 11:15:00", "exit_time": "2025-06-12 12:30:00", "entry_price": 2.223978, "exit_price": 2.23446, "quantity": 4496.0, "sl": 2.23446, "tp": 2.196023, "gross_pnl": -47.13086, "entry_fee": 3.999601, "exit_fee": 4.018454, "net_pnl": -55.148915, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 26.97199737318929, "macd_hist": -0.0007807103280135859, "atr": 0.006988561711463904, "adx": 43.4578914382015 }, "fold": 1 }, { "symbol": "XRPUSDT", "side": "SHORT", "entry_time": "2025-06-13 00:00:00", "exit_time": "2025-06-13 00:30:00", "entry_price": 2.149685, "exit_price": 2.095237, "quantity": 4394.9, "sl": 2.170103, "tp": 2.095237, "gross_pnl": 239.292043, "entry_fee": 3.77906, "exit_fee": 3.683343, "net_pnl": 231.829639, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 26.809985061770455, "macd_hist": -0.0014287229374708253, "atr": 0.01361191626294587, "adx": 45.994286262673526 }, "fold": 1 }, { "symbol": "XRPUSDT", "side": "LONG", "entry_time": "2025-06-16 22:30:00", "exit_time": "2025-06-16 23:45:00", "entry_price": 2.260826, "exit_price": 2.23893, "quantity": 4101.6, "sl": 2.23893, "tp": 2.319216, "gross_pnl": -89.809678, "entry_fee": 3.709202, "exit_fee": 3.673278, "net_pnl": -97.192157, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 33.211506920436555, "macd_hist": -0.007666291215691772, "atr": 0.014597503086660083, "adx": 41.77057022158849 }, "fold": 1 }, { "symbol": "XRPUSDT", "side": "SHORT", "entry_time": "2025-06-17 15:00:00", "exit_time": "2025-06-17 17:00:00", "entry_price": 2.188781, "exit_price": 2.14109, "quantity": 4461.0, "sl": 2.206665, "tp": 2.14109, "gross_pnl": 212.751364, "entry_fee": 3.905661, "exit_fee": 3.82056, "net_pnl": 205.025142, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 35.98442517376965, "macd_hist": -0.000473160901783975, "atr": 0.011922851577807921, "adx": 31.230008994240638 }, "fold": 1 }, { "symbol": "XRPUSDT", "side": "LONG", "entry_time": "2025-06-21 13:30:00", "exit_time": "2025-06-21 14:00:00", "entry_price": 2.119112, "exit_price": 2.112041, "quantity": 3992.4, "sl": 2.112041, "tp": 2.137967, "gross_pnl": -28.228437, "entry_fee": 3.384137, "exit_fee": 3.372846, "net_pnl": -34.98542, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 29.460371663394117, "macd_hist": -0.002291006577745399, "atr": 0.0047136955379463, "adx": 26.139853452702802 }, "fold": 1 }, { "symbol": "XRPUSDT", "side": "SHORT", "entry_time": "2025-06-21 21:15:00", "exit_time": "2025-06-21 21:30:00", "entry_price": 2.045995, "exit_price": 1.990773, "quantity": 4278.1, "sl": 2.066704, "tp": 1.990773, "gross_pnl": 236.248138, "entry_fee": 3.501189, "exit_fee": 3.40669, "net_pnl": 229.340259, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 24.112041978961905, "macd_hist": -0.0015821538372272313, "atr": 0.013805669484335523, "adx": 47.020225174544926 }, "fold": 1 }, { "symbol": "XRPUSDT", "side": "LONG", "entry_time": "2025-06-24 05:30:00", "exit_time": "2025-06-24 08:00:00", "entry_price": 2.184818, "exit_price": 2.167742, "quantity": 2879.5, "sl": 2.167742, "tp": 2.230355, "gross_pnl": -49.171401, "entry_fee": 2.516474, "exit_fee": 2.496805, "net_pnl": -54.18468, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 73.02163697288638, "macd_hist": 0.0005479493365071683, "atr": 0.011384245075129916, "adx": 47.36536786932758 }, "fold": 1 }, { "symbol": "XRPUSDT", "side": "SHORT", "entry_time": "2025-07-01 13:00:00", "exit_time": "2025-07-01 14:00:00", "entry_price": 2.185781, "exit_price": 2.19914, "quantity": 3196.0, "sl": 2.19914, "tp": 2.150157, "gross_pnl": -42.695683, "entry_fee": 2.794303, "exit_fee": 2.811381, "net_pnl": -48.301367, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 34.25494593254047, "macd_hist": -0.00014675405719808375, "atr": 0.008906066514248343, "adx": 38.40722178323835 }, "fold": 1 }, { "symbol": "XRPUSDT", "side": "SHORT", "entry_time": "2025-07-04 06:00:00", "exit_time": "2025-07-04 08:15:00", "entry_price": 2.232877, "exit_price": 2.208013, "quantity": 3379.7, "sl": 2.242201, "tp": 2.208013, "gross_pnl": 84.031619, "entry_fee": 3.018581, "exit_fee": 2.984969, "net_pnl": 78.028069, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 31.442919224174045, "macd_hist": -0.00029321477558042104, "atr": 0.0062159081353788895, "adx": 33.56850119916028 }, "fold": 1 }, { "symbol": "XRPUSDT", "side": "SHORT", "entry_time": "2025-09-05 19:45:00", "exit_time": "2025-09-05 22:15:00", "entry_price": 2.863514, "exit_price": 2.815423, "quantity": 3491.9, "sl": 2.881548, "tp": 2.815423, "gross_pnl": 167.927076, "entry_fee": 3.999641, "exit_fee": 3.93247, "net_pnl": 159.994965, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 66.8667614741176, "macd_hist": 0.005566660638547516, "atr": 0.012022614930199287, "adx": 25.794325095274626 }, "fold": 2 }, { "symbol": "XRPUSDT", "side": "LONG", "entry_time": "2025-09-07 07:30:00", "exit_time": "2025-09-07 10:15:00", "entry_price": 2.831483, "exit_price": 2.825709, "quantity": 3310.6, "sl": 2.825709, "tp": 2.846882, "gross_pnl": -19.117005, "entry_fee": 3.749563, "exit_fee": 3.741916, "net_pnl": -26.608485, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 70.72939012092385, "macd_hist": 0.00013947818915852105, "atr": 0.0038496557346203194, "adx": 25.87514662158794 }, "fold": 2 }, { "symbol": "XRPUSDT", "side": "SHORT", "entry_time": "2025-09-07 14:15:00", "exit_time": "2025-09-07 14:30:00", "entry_price": 2.888611, "exit_price": 2.907326, "quantity": 3295.3, "sl": 2.907326, "tp": 2.838705, "gross_pnl": -61.671288, "entry_fee": 3.807536, "exit_fee": 3.832205, "net_pnl": -69.311028, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 76.27147788789821, "macd_hist": 0.006331113894477991, "atr": 0.012476615713124774, "adx": 29.135371839765913 }, "fold": 2 }, { "symbol": "XRPUSDT", "side": "SHORT", "entry_time": "2025-09-09 07:00:00", "exit_time": "2025-09-09 07:15:00", "entry_price": 3.009099, "exit_price": 3.026836, "quantity": 3264.0, "sl": 3.026836, "tp": 2.9618, "gross_pnl": -57.893469, "entry_fee": 3.92868, "exit_fee": 3.951837, "net_pnl": -65.773986, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 73.38194905544675, "macd_hist": 0.006160466326798137, "atr": 0.011824646391069867, "adx": 28.105801823891394 }, "fold": 2 }, { "symbol": "XRPUSDT", "side": "SHORT", "entry_time": "2025-09-12 20:45:00", "exit_time": "2025-09-13 08:45:00", "entry_price": 3.121788, "exit_price": 3.143446, "quantity": 3197.5, "sl": 3.143446, "tp": 3.064033, "gross_pnl": -69.251372, "entry_fee": 3.992767, "exit_fee": 4.020467, "net_pnl": -77.264606, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 78.88995114530964, "macd_hist": 0.004793783646225545, "atr": 0.014438649390670705, "adx": 33.848649235778474 }, "fold": 2 }, { "symbol": "XRPUSDT", "side": "SHORT", "entry_time": "2025-09-14 11:15:00", "exit_time": "2025-09-14 13:45:00", "entry_price": 3.066993, "exit_price": 3.033085, "quantity": 3002.8, "sl": 3.079709, "tp": 3.033085, "gross_pnl": 101.818765, "entry_fee": 3.683827, "exit_fee": 3.643099, "net_pnl": 94.491838, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 31.419480021379645, "macd_hist": -0.0003629091436070245, "atr": 0.008476985221720718, "adx": 31.882046477112183 }, "fold": 2 }, { "symbol": "XRPUSDT", "side": "SHORT", "entry_time": "2025-09-20 14:00:00", "exit_time": "2025-09-20 14:45:00", "entry_price": 2.971603, "exit_price": 2.980986, "quantity": 3353.4, "sl": 2.980986, "tp": 2.94658, "gross_pnl": -31.466181, "entry_fee": 3.985989, "exit_fee": 3.998576, "net_pnl": -39.450746, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 36.09553473183674, "macd_hist": -0.00018720159437711752, "atr": 0.006255577606168083, "adx": 28.84076206692945 }, "fold": 2 }, { "symbol": "XRPUSDT", "side": "LONG", "entry_time": "2025-09-24 19:45:00", "exit_time": "2025-09-24 20:30:00", "entry_price": 2.976198, "exit_price": 2.955734, "quantity": 3279.9, "sl": 2.955734, "tp": 3.030766, "gross_pnl": -67.117005, "entry_fee": 3.904652, "exit_fee": 3.877805, "net_pnl": -74.899463, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 77.25608496751632, "macd_hist": 0.00019635721897620986, "atr": 0.013642083686890932, "adx": 66.36435142210216 }, "fold": 2 }, { "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": 3226.0, "sl": 2.811993, "tp": 2.743161, "gross_pnl": -60.559206, "entry_fee": 3.604372, "exit_fee": 3.628596, "net_pnl": -67.792174, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 27.256149561284357, "macd_hist": -0.0005773233003328118, "atr": 0.012514818420656685, "adx": 36.706433983392714 }, "fold": 2 }, { "symbol": "XRPUSDT", "side": "LONG", "entry_time": "2025-09-28 22:00:00", "exit_time": "2025-09-29 07:15:00", "entry_price": 2.850785, "exit_price": 2.885643, "quantity": 2923.6, "sl": 2.837713, "tp": 2.885643, "gross_pnl": 101.910302, "entry_fee": 3.333822, "exit_fee": 3.374586, "net_pnl": 95.201894, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 69.94607598871028, "macd_hist": 0.0002172037763433672, "atr": 0.008714453238038499, "adx": 45.96715774504039 }, "fold": 2 }, { "symbol": "XRPUSDT", "side": "SHORT", "entry_time": "2025-12-10 10:30:00", "exit_time": "2025-12-10 18:30:00", "entry_price": 2.069993, "exit_price": 2.080244, "quantity": 4830.5, "sl": 2.080244, "tp": 2.042658, "gross_pnl": -49.515419, "entry_fee": 3.99964, "exit_fee": 4.019447, "net_pnl": -57.534506, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 37.038012691554805, "macd_hist": -9.211636302669133e-05, "atr": 0.0068337189344636114, "adx": 28.943927763667713 }, "fold": 3 }, { "symbol": "XRPUSDT", "side": "LONG", "entry_time": "2025-12-12 16:00:00", "exit_time": "2025-12-13 05:00:00", "entry_price": 1.988899, "exit_price": 2.037103, "quantity": 4739.1, "sl": 1.970822, "tp": 2.037103, "gross_pnl": 228.445099, "entry_fee": 3.770236, "exit_fee": 3.861614, "net_pnl": 220.813249, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 28.182013495720106, "macd_hist": -0.00643391832048344, "atr": 0.01205108033747697, "adx": 30.769786891839054 }, "fold": 3 }, { "symbol": "XRPUSDT", "side": "SHORT", "entry_time": "2025-12-19 13:15:00", "exit_time": "2025-12-19 15:15:00", "entry_price": 1.878712, "exit_price": 1.889911, "quantity": 4978.2, "sl": 1.889911, "tp": 1.84885, "gross_pnl": -55.748245, "entry_fee": 3.741042, "exit_fee": 3.763341, "net_pnl": -63.252628, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 68.16547032772114, "macd_hist": -4.5929936914913816e-05, "atr": 0.007465649526915487, "adx": 40.69667585881617 }, "fold": 3 }, { "symbol": "XRPUSDT", "side": "LONG", "entry_time": "2025-12-25 23:30:00", "exit_time": "2025-12-26 02:15:00", "entry_price": 1.831783, "exit_price": 1.857641, "quantity": 5284.9, "sl": 1.822086, "tp": 1.857641, "gross_pnl": 136.657597, "entry_fee": 3.872316, "exit_fee": 3.926979, "net_pnl": 128.858301, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 18.688435627302994, "macd_hist": -0.0034657628634239823, "atr": 0.006464530874639477, "adx": 30.228290924248867 }, "fold": 3 }, { "symbol": "XRPUSDT", "side": "LONG", "entry_time": "2026-01-01 15:45:00", "exit_time": "2026-01-01 16:15:00", "entry_price": 1.861986, "exit_price": 1.855307, "quantity": 4787.6, "sl": 1.855307, "tp": 1.879797, "gross_pnl": -31.976479, "entry_fee": 3.565778, "exit_fee": 3.552987, "net_pnl": -39.095244, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 64.9515011671277, "macd_hist": 8.017825296896758e-05, "atr": 0.004452680396625609, "adx": 29.061543249865803 }, "fold": 3 }, { "symbol": "XRPUSDT", "side": "LONG", "entry_time": "2026-01-02 14:30:00", "exit_time": "2026-01-02 16:15:00", "entry_price": 1.906991, "exit_price": 1.93559, "quantity": 4818.6, "sl": 1.896266, "tp": 1.93559, "gross_pnl": 137.806916, "entry_fee": 3.67561, "exit_fee": 3.730733, "net_pnl": 130.400573, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 68.243618769103, "macd_hist": 0.00021763021087121363, "atr": 0.007149738287103824, "adx": 34.75978288472445 }, "fold": 3 }, { "symbol": "XRPUSDT", "side": "SHORT", "entry_time": "2026-01-04 00:45:00", "exit_time": "2026-01-04 03:00:00", "entry_price": 2.041396, "exit_price": 2.038904, "quantity": 3981.9, "sl": 2.052244, "tp": 2.012468, "gross_pnl": 9.922775, "entry_fee": 3.251454, "exit_fee": 3.247485, "net_pnl": 3.423837, "close_reason": "REVERSE_SIGNAL", "ml_proba": null, "indicators": { "rsi": 78.42031027026397, "macd_hist": 0.002773445174521872, "atr": 0.007231967338050755, "adx": 25.06146716762975 }, "fold": 3 }, { "symbol": "XRPUSDT", "side": "LONG", "entry_time": "2026-01-04 03:00:00", "exit_time": "2026-01-04 05:15:00", "entry_price": 2.038904, "exit_price": 2.068362, "quantity": 3971.2, "sl": 2.027857, "tp": 2.068362, "gross_pnl": 116.983697, "entry_fee": 3.238758, "exit_fee": 3.285551, "net_pnl": 110.459388, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 66.00101725582081, "macd_hist": 4.503977849404806e-05, "atr": 0.007364505506906315, "adx": 30.991168735172053 }, "fold": 3 } ], "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": "승률 정상 (44.4%)" }, { "name": "win_rate_low", "passed": true, "level": "WARNING", "message": "승률 정상 (44.4%)" }, { "name": "mdd_nonzero", "passed": true, "level": "WARNING", "message": "MDD 정상 (20.2%)" }, { "name": "trade_frequency", "passed": false, "level": "WARNING", "message": "월 평균 4.0건 < 5건 — 신호 생성 부족" }, { "name": "profit_factor_high", "passed": true, "level": "WARNING", "message": "PF 정상 (1.94)" } ] } }