{ "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": 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": 2.0, "atr_tp_mult": 2.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": 5 }, "summary": { "total_trades": 27, "total_pnl": 217.0703, "return_pct": 21.71, "win_rate": 66.67, "avg_win": 33.2223, "avg_loss": -42.3256, "profit_factor": 1.57, "max_drawdown_pct": 11.99, "sharpe_ratio": 33.32, "total_fees": 102.7825, "close_reasons": { "STOP_LOSS": 9, "TAKE_PROFIT": 18 } }, "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": -54.288, "return_pct": -5.43, "win_rate": 44.44, "avg_win": 40.6662, "avg_loss": -43.3906, "profit_factor": 0.75, "max_drawdown_pct": 11.99, "sharpe_ratio": -21.46, "total_fees": 32.8699, "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": 13.0734, "return_pct": 1.31, "win_rate": 60.0, "avg_win": 29.5084, "avg_loss": -40.9943, "profit_factor": 1.08, "max_drawdown_pct": 10.97, "sharpe_ratio": 5.62, "total_fees": 39.3346, "close_reasons": { "TAKE_PROFIT": 6, "STOP_LOSS": 4 } } }, { "fold": 3, "train_period": "2025-09-05 ~ 2025-12-05", "test_period": "2025-12-05 ~ 2026-01-05", "summary": { "total_trades": 8, "total_pnl": 258.2849, "return_pct": 25.83, "win_rate": 100.0, "avg_win": 32.2856, "avg_loss": 0.0, "profit_factor": "Infinity", "max_drawdown_pct": 0.0, "sharpe_ratio": 502.51, "total_fees": 30.578, "close_reasons": { "TAKE_PROFIT": 8 } } } ], "trades": [ { "symbol": "XRPUSDT", "side": "SHORT", "entry_time": "2025-06-12 11:15:00", "exit_time": "2025-06-12 13:00:00", "entry_price": 2.223978, "exit_price": 2.237955, "quantity": 2248.0, "sl": 2.237955, "tp": 2.21, "gross_pnl": -31.420573, "entry_fee": 1.999801, "exit_fee": 2.012369, "net_pnl": -35.432743, "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": "LONG", "entry_time": "2025-06-12 20:30:00", "exit_time": "2025-06-13 00:00:00", "entry_price": 2.186419, "exit_price": 2.163885, "quantity": 2201.5, "sl": 2.163885, "tp": 2.208952, "gross_pnl": -49.607437, "entry_fee": 1.92536, "exit_fee": 1.905517, "net_pnl": -53.438315, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 26.41519543415668, "macd_hist": -0.005495027011351469, "atr": 0.011266735681191995, "adx": 35.41443548413551 }, "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.231631, "quantity": 2006.6, "sl": 2.231631, "tp": 2.290021, "gross_pnl": -58.582699, "entry_fee": 1.814629, "exit_fee": 1.791196, "net_pnl": -62.188525, "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 15:30:00", "entry_price": 2.188781, "exit_price": 2.164935, "quantity": 1926.0, "sl": 2.212627, "tp": 2.164935, "gross_pnl": 45.926824, "entry_fee": 1.686237, "exit_fee": 1.667866, "net_pnl": 42.572721, "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 15:15:00", "entry_price": 2.119112, "exit_price": 2.109684, "quantity": 2086.2, "sl": 2.109684, "tp": 2.128539, "gross_pnl": -19.667423, "entry_fee": 1.768356, "exit_fee": 1.76049, "net_pnl": -23.196269, "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": 2.018384, "quantity": 2099.3, "sl": 2.073607, "tp": 2.018384, "gross_pnl": 57.964484, "entry_fee": 1.718063, "exit_fee": 1.694877, "net_pnl": 54.551543, "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 06:00:00", "entry_price": 2.184818, "exit_price": 2.207587, "quantity": 2087.2, "sl": 2.16205, "tp": 2.207587, "gross_pnl": 47.522393, "entry_fee": 1.824061, "exit_fee": 1.84307, "net_pnl": 43.855261, "close_reason": "TAKE_PROFIT", "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:15:00", "entry_price": 2.185781, "exit_price": 2.203594, "quantity": 2182.0, "sl": 2.203594, "tp": 2.167969, "gross_pnl": -38.866074, "entry_fee": 1.90775, "exit_fee": 1.923296, "net_pnl": -42.697121, "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 07:30:00", "entry_price": 2.232877, "exit_price": 2.220445, "quantity": 2036.1, "sl": 2.245309, "tp": 2.220445, "gross_pnl": 25.312421, "entry_fee": 1.818544, "exit_fee": 1.808419, "net_pnl": 21.685458, "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 21:00:00", "entry_price": 2.863514, "exit_price": 2.839468, "quantity": 1745.9, "sl": 2.887559, "tp": 2.839468, "gross_pnl": 41.980567, "entry_fee": 1.999763, "exit_fee": 1.982971, "net_pnl": 37.997832, "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 13:30:00", "entry_price": 2.831483, "exit_price": 2.839182, "quantity": 1750.6, "sl": 2.823784, "tp": 2.839182, "gross_pnl": 13.478415, "entry_fee": 1.982718, "exit_fee": 1.988109, "net_pnl": 9.507588, "close_reason": "TAKE_PROFIT", "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 17:45:00", "entry_price": 2.888611, "exit_price": 2.863658, "quantity": 1711.8, "sl": 2.913564, "tp": 2.863658, "gross_pnl": 42.714942, "entry_fee": 1.97789, "exit_fee": 1.960804, "net_pnl": 38.776248, "close_reason": "TAKE_PROFIT", "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 08:30:00", "entry_price": 3.009099, "exit_price": 3.032748, "quantity": 1621.9, "sl": 3.032748, "tp": 2.98545, "gross_pnl": -38.356788, "entry_fee": 1.952183, "exit_fee": 1.967526, "net_pnl": -42.276497, "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-12 21:30:00", "entry_price": 3.121788, "exit_price": 3.09291, "quantity": 1587.4, "sl": 3.150665, "tp": 3.09291, "gross_pnl": 45.839824, "entry_fee": 1.98221, "exit_fee": 1.963874, "net_pnl": 41.893739, "close_reason": "TAKE_PROFIT", "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 12:30:00", "entry_price": 3.066993, "exit_price": 3.050039, "quantity": 1594.0, "sl": 3.083947, "tp": 3.050039, "gross_pnl": 27.024629, "entry_fee": 1.955515, "exit_fee": 1.944705, "net_pnl": 23.124409, "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 15:00:00", "entry_price": 2.971603, "exit_price": 2.984114, "quantity": 1630.7, "sl": 2.984114, "tp": 2.959092, "gross_pnl": -20.401941, "entry_fee": 1.938317, "exit_fee": 1.946478, "net_pnl": -24.286736, "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 21:45:00", "entry_price": 2.976198, "exit_price": 2.948913, "quantity": 1646.2, "sl": 2.948913, "tp": 3.003482, "gross_pnl": -44.915196, "entry_fee": 1.959767, "exit_fee": 1.941801, "net_pnl": -48.816763, "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.81825, "quantity": 1781.8, "sl": 2.81825, "tp": 2.768191, "gross_pnl": -44.597807, "entry_fee": 1.990784, "exit_fee": 2.008623, "net_pnl": -48.597214, "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 02:15:00", "entry_price": 2.850785, "exit_price": 2.868214, "quantity": 1700.7, "sl": 2.833356, "tp": 2.868214, "gross_pnl": 29.641341, "entry_fee": 1.939332, "exit_fee": 1.951189, "net_pnl": 25.750821, "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 14:30:00", "entry_price": 2.069993, "exit_price": 2.056326, "quantity": 2415.2, "sl": 2.08366, "tp": 2.056326, "gross_pnl": 33.009596, "entry_fee": 1.999779, "exit_fee": 1.986575, "net_pnl": 29.023242, "close_reason": "TAKE_PROFIT", "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-12 18:30:00", "entry_price": 1.988899, "exit_price": 2.013001, "quantity": 2498.4, "sl": 1.964797, "tp": 2.013001, "gross_pnl": 60.216838, "entry_fee": 1.987626, "exit_fee": 2.011713, "net_pnl": 56.2175, "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 13:45:00", "entry_price": 1.878712, "exit_price": 1.863781, "quantity": 2596.8, "sl": 1.893643, "tp": 1.863781, "gross_pnl": 38.773597, "entry_fee": 1.951456, "exit_fee": 1.935946, "net_pnl": 34.886195, "close_reason": "TAKE_PROFIT", "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:00:00", "entry_price": 1.831783, "exit_price": 1.844712, "quantity": 2624.8, "sl": 1.818854, "tp": 1.844712, "gross_pnl": 33.936201, "entry_fee": 1.923226, "exit_fee": 1.9368, "net_pnl": 30.076175, "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 17:15:00", "entry_price": 1.861986, "exit_price": 1.870892, "quantity": 2543.8, "sl": 1.853081, "tp": 1.870892, "gross_pnl": 22.653457, "entry_fee": 1.894608, "exit_fee": 1.90367, "net_pnl": 18.855179, "close_reason": "TAKE_PROFIT", "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 14:45:00", "entry_price": 1.906991, "exit_price": 1.92129, "quantity": 2458.8, "sl": 1.892691, "tp": 1.92129, "gross_pnl": 35.159553, "entry_fee": 1.875563, "exit_fee": 1.889627, "net_pnl": 31.394362, "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 01:30:00", "entry_price": 2.041396, "exit_price": 2.026932, "quantity": 2251.8, "sl": 2.05586, "tp": 2.026932, "gross_pnl": 32.569888, "entry_fee": 1.838726, "exit_fee": 1.825698, "net_pnl": 28.905464, "close_reason": "TAKE_PROFIT", "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 03:45:00", "entry_price": 2.038904, "exit_price": 2.053633, "quantity": 2209.5, "sl": 2.024175, "tp": 2.053633, "gross_pnl": 32.54375, "entry_fee": 1.801983, "exit_fee": 1.815001, "net_pnl": 28.926766, "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": "승률 정상 (66.7%)" }, { "name": "win_rate_low", "passed": true, "level": "WARNING", "message": "승률 정상 (66.7%)" }, { "name": "mdd_nonzero", "passed": true, "level": "WARNING", "message": "MDD 정상 (12.0%)" }, { "name": "trade_frequency", "passed": false, "level": "WARNING", "message": "월 평균 4.0건 < 5건 — 신호 생성 부족" }, { "name": "profit_factor_high", "passed": true, "level": "WARNING", "message": "PF 정상 (1.57)" } ] } }