{ "mode": "walk_forward", "config": { "symbols": [ "TRXUSDT" ], "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": 1.0, "atr_tp_mult": 2.0, "min_notional": 5.0, "signal_threshold": 3, "adx_threshold": 20.0, "volume_multiplier": 2.5, "train_months": 3, "test_months": 1, "time_weight_decay": 2.0, "negative_ratio": 5 }, "summary": { "total_trades": 30, "total_pnl": 82.5579, "return_pct": 8.26, "win_rate": 56.67, "avg_win": 18.6156, "avg_loss": -17.9929, "profit_factor": 1.35, "max_drawdown_pct": 9.39, "sharpe_ratio": 17.82, "total_fees": 115.4404, "close_reasons": { "STOP_LOSS": 13, "TAKE_PROFIT": 17 } }, "folds": [ { "fold": 1, "train_period": "2025-03-05 ~ 2025-06-05", "test_period": "2025-06-05 ~ 2025-07-05", "summary": { "total_trades": 7, "total_pnl": -93.5562, "return_pct": -9.36, "win_rate": 28.57, "avg_win": 21.9794, "avg_loss": -27.503, "profit_factor": 0.32, "max_drawdown_pct": 9.39, "sharpe_ratio": -83.68, "total_fees": 25.9916, "close_reasons": { "STOP_LOSS": 5, "TAKE_PROFIT": 2 } } }, { "fold": 2, "train_period": "2025-06-05 ~ 2025-09-05", "test_period": "2025-09-05 ~ 2025-10-05", "summary": { "total_trades": 15, "total_pnl": 155.2593, "return_pct": 15.53, "win_rate": 66.67, "avg_win": 22.197, "avg_loss": -13.3422, "profit_factor": 3.33, "max_drawdown_pct": 2.95, "sharpe_ratio": 63.82, "total_fees": 57.5397, "close_reasons": { "TAKE_PROFIT": 10, "STOP_LOSS": 5 } } }, { "fold": 3, "train_period": "2025-09-05 ~ 2025-12-05", "test_period": "2025-12-05 ~ 2026-01-05", "summary": { "total_trades": 8, "total_pnl": 20.8549, "return_pct": 2.09, "win_rate": 62.5, "avg_win": 10.1073, "avg_loss": -9.8938, "profit_factor": 1.7, "max_drawdown_pct": 0.99, "sharpe_ratio": 41.49, "total_fees": 31.9091, "close_reasons": { "TAKE_PROFIT": 5, "STOP_LOSS": 3 } } } ], "trades": [ { "symbol": "TRXUSDT", "side": "LONG", "entry_time": "2025-06-11 17:00:00", "exit_time": "2025-06-11 17:45:00", "entry_price": 0.282968, "exit_price": 0.281514, "quantity": 17671.6, "sl": 0.281514, "tp": 0.285877, "gross_pnl": -25.701813, "entry_fee": 2.000201, "exit_fee": 1.98992, "net_pnl": -29.691935, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 21.310011221387928, "macd_hist": -0.0009208923407909242, "atr": 0.001454413485759152, "adx": 32.474695496414746 }, "fold": 1 }, { "symbol": "TRXUSDT", "side": "SHORT", "entry_time": "2025-06-13 00:00:00", "exit_time": "2025-06-13 00:15:00", "entry_price": 0.268723, "exit_price": 0.269681, "quantity": 18015.0, "sl": 0.269681, "tp": 0.266808, "gross_pnl": -17.253496, "entry_fee": 1.936419, "exit_fee": 1.94332, "net_pnl": -21.133235, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 26.966927261980565, "macd_hist": -1.9569743207310678e-05, "atr": 0.0009577294352106148, "adx": 26.838036717103265 }, "fold": 1 }, { "symbol": "TRXUSDT", "side": "LONG", "entry_time": "2025-06-16 12:30:00", "exit_time": "2025-06-16 12:45:00", "entry_price": 0.281208, "exit_price": 0.278854, "quantity": 16808.4, "sl": 0.278854, "tp": 0.285916, "gross_pnl": -39.565619, "entry_fee": 1.890663, "exit_fee": 1.874837, "net_pnl": -43.33112, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 84.3200899004785, "macd_hist": 0.0005755897383287943, "atr": 0.0023539194130354013, "adx": 24.98726333785949 }, "fold": 1 }, { "symbol": "TRXUSDT", "side": "LONG", "entry_time": "2025-06-16 23:45:00", "exit_time": "2025-06-17 00:00:00", "entry_price": 0.273887, "exit_price": 0.272484, "quantity": 16432.1, "sl": 0.272484, "tp": 0.276694, "gross_pnl": -23.061898, "entry_fee": 1.800218, "exit_fee": 1.790993, "net_pnl": -26.653109, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 28.74454185909087, "macd_hist": -0.0006231433167976357, "atr": 0.0014034662689071044, "adx": 28.215673425255815 }, "fold": 1 }, { "symbol": "TRXUSDT", "side": "LONG", "entry_time": "2025-06-22 14:15:00", "exit_time": "2025-06-22 14:45:00", "entry_price": 0.264836, "exit_price": 0.267254, "quantity": 16456.4, "sl": 0.263628, "tp": 0.267254, "gross_pnl": 39.776618, "entry_fee": 1.743302, "exit_fee": 1.759213, "net_pnl": 36.274103, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 23.816317652581944, "macd_hist": -0.0007482968367435475, "atr": 0.0012085455367911535, "adx": 28.05756581397983 }, "fold": 1 }, { "symbol": "TRXUSDT", "side": "SHORT", "entry_time": "2025-06-28 07:00:00", "exit_time": "2025-06-28 07:45:00", "entry_price": 0.274403, "exit_price": 0.273718, "quantity": 16508.7, "sl": 0.274745, "tp": 0.273718, "gross_pnl": 11.304155, "entry_fee": 1.812012, "exit_fee": 1.80749, "net_pnl": 7.684653, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 69.9178346428632, "macd_hist": 0.00010551255130301432, "atr": 0.0003423696394189119, "adx": 24.542335118437286 }, "fold": 1 }, { "symbol": "TRXUSDT", "side": "LONG", "entry_time": "2025-07-04 14:15:00", "exit_time": "2025-07-04 15:15:00", "entry_price": 0.283728, "exit_price": 0.282916, "quantity": 16072.7, "sl": 0.282916, "tp": 0.285354, "gross_pnl": -13.062601, "entry_fee": 1.824112, "exit_fee": 1.818887, "net_pnl": -16.705601, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 27.74105415081286, "macd_hist": -0.0003117196058060476, "atr": 0.0008127197629142321, "adx": 32.363795146724236 }, "fold": 1 }, { "symbol": "TRXUSDT", "side": "SHORT", "entry_time": "2025-09-06 20:45:00", "exit_time": "2025-09-06 21:00:00", "entry_price": 0.321678, "exit_price": 0.319715, "quantity": 15541.9, "sl": 0.322659, "tp": 0.319715, "gross_pnl": 30.509805, "entry_fee": 1.999794, "exit_fee": 1.98759, "net_pnl": 26.522421, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 14.50979679434796, "macd_hist": -0.0001481211181555309, "atr": 0.0009815339390825979, "adx": 64.7935479437538 }, "fold": 2 }, { "symbol": "TRXUSDT", "side": "LONG", "entry_time": "2025-09-06 22:00:00", "exit_time": "2025-09-06 22:15:00", "entry_price": 0.305541, "exit_price": 0.31122, "quantity": 16274.0, "sl": 0.302701, "tp": 0.31122, "gross_pnl": 92.431123, "entry_fee": 1.988947, "exit_fee": 2.025919, "net_pnl": 88.416257, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 7.92971732591285, "macd_hist": -0.0020195476384628087, "atr": 0.0028398403210786296, "adx": 72.55182590993492 }, "fold": 2 }, { "symbol": "TRXUSDT", "side": "LONG", "entry_time": "2025-09-08 09:15:00", "exit_time": "2025-09-08 10:00:00", "entry_price": 0.332173, "exit_price": 0.333369, "quantity": 14497.5, "sl": 0.331575, "tp": 0.333369, "gross_pnl": 17.330829, "entry_fee": 1.926272, "exit_fee": 1.933205, "net_pnl": 13.471352, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 65.07783460048826, "macd_hist": 1.5209076637119471e-05, "atr": 0.0005977178625434464, "adx": 29.94633147610989 }, "fold": 2 }, { "symbol": "TRXUSDT", "side": "LONG", "entry_time": "2025-09-10 12:30:00", "exit_time": "2025-09-10 12:45:00", "entry_price": 0.338144, "exit_price": 0.337604, "quantity": 14159.5, "sl": 0.337604, "tp": 0.339223, "gross_pnl": -7.639274, "entry_fee": 1.915179, "exit_fee": 1.912123, "net_pnl": -11.466576, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 69.27306940076188, "macd_hist": 1.761110324105758e-05, "atr": 0.0005395157903468375, "adx": 28.042143316321827 }, "fold": 2 }, { "symbol": "TRXUSDT", "side": "SHORT", "entry_time": "2025-09-13 05:30:00", "exit_time": "2025-09-13 06:45:00", "entry_price": 0.354365, "exit_price": 0.353225, "quantity": 13598.9, "sl": 0.354934, "tp": 0.353225, "gross_pnl": 15.499603, "entry_fee": 1.927587, "exit_fee": 1.921387, "net_pnl": 11.650628, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 75.09668428355302, "macd_hist": 0.00010590971216388305, "atr": 0.0005698844413077655, "adx": 40.031791993546236 }, "fold": 2 }, { "symbol": "TRXUSDT", "side": "LONG", "entry_time": "2025-09-18 16:15:00", "exit_time": "2025-09-18 17:00:00", "entry_price": 0.349035, "exit_price": 0.350709, "quantity": 13743.4, "sl": 0.348198, "tp": 0.350709, "gross_pnl": 23.014546, "entry_fee": 1.91877, "exit_fee": 1.927976, "net_pnl": 19.167799, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 71.40338684709819, "macd_hist": 2.7945430776989415e-05, "atr": 0.0008372944810174205, "adx": 41.403707409730266 }, "fold": 2 }, { "symbol": "TRXUSDT", "side": "SHORT", "entry_time": "2025-09-19 15:00:00", "exit_time": "2025-09-20 02:00:00", "entry_price": 0.344696, "exit_price": 0.342745, "quantity": 13787.0, "sl": 0.345671, "tp": 0.342745, "gross_pnl": 26.891239, "entry_fee": 1.900927, "exit_fee": 1.89017, "net_pnl": 23.100142, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 36.3929743759645, "macd_hist": -4.9173165000631076e-05, "atr": 0.0009752389588793218, "adx": 20.73583082347764 }, "fold": 2 }, { "symbol": "TRXUSDT", "side": "SHORT", "entry_time": "2025-09-21 08:15:00", "exit_time": "2025-09-21 09:15:00", "entry_price": 0.344206, "exit_price": 0.343239, "quantity": 13636.7, "sl": 0.344689, "tp": 0.343239, "gross_pnl": 13.180653, "entry_fee": 1.877531, "exit_fee": 1.872259, "net_pnl": 9.430863, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 30.782692658162308, "macd_hist": -7.421870424645718e-05, "atr": 0.0004832786824330342, "adx": 31.221203425283278 }, "fold": 2 }, { "symbol": "TRXUSDT", "side": "LONG", "entry_time": "2025-09-21 23:00:00", "exit_time": "2025-09-22 00:15:00", "entry_price": 0.342464, "exit_price": 0.342008, "quantity": 13644.1, "sl": 0.342008, "tp": 0.343378, "gross_pnl": -6.231495, "entry_fee": 1.869047, "exit_fee": 1.866554, "net_pnl": -9.967096, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 32.492156959618264, "macd_hist": -0.00011844966177527712, "atr": 0.0004567172002937059, "adx": 30.86524355608222 }, "fold": 2 }, { "symbol": "TRXUSDT", "side": "SHORT", "entry_time": "2025-09-22 06:00:00", "exit_time": "2025-09-22 06:30:00", "entry_price": 0.334297, "exit_price": 0.335684, "quantity": 14077.5, "sl": 0.335684, "tp": 0.331521, "gross_pnl": -19.537013, "entry_fee": 1.882424, "exit_fee": 1.890239, "net_pnl": -23.309675, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 19.554287882129668, "macd_hist": -0.00022792604366828832, "atr": 0.0013878183290049766, "adx": 30.760886738521233 }, "fold": 2 }, { "symbol": "TRXUSDT", "side": "LONG", "entry_time": "2025-09-23 09:00:00", "exit_time": "2025-09-23 09:15:00", "entry_price": 0.341044, "exit_price": 0.342135, "quantity": 14000.1, "sl": 0.340499, "tp": 0.342135, "gross_pnl": 15.274224, "entry_fee": 1.909861, "exit_fee": 1.91597, "net_pnl": 11.448393, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 60.568797010213174, "macd_hist": 4.5460317085828014e-05, "atr": 0.0005455040859896886, "adx": 20.641276471653338 }, "fold": 2 }, { "symbol": "TRXUSDT", "side": "LONG", "entry_time": "2025-09-27 08:00:00", "exit_time": "2025-09-27 08:30:00", "entry_price": 0.336534, "exit_price": 0.33605, "quantity": 14114.3, "sl": 0.33605, "tp": 0.337501, "gross_pnl": -6.829669, "entry_fee": 1.899975, "exit_fee": 1.897243, "net_pnl": -10.626887, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 28.90053605935814, "macd_hist": -0.00025988593478820746, "atr": 0.00048388294790651314, "adx": 26.380156011508365 }, "fold": 2 }, { "symbol": "TRXUSDT", "side": "LONG", "entry_time": "2025-09-29 10:00:00", "exit_time": "2025-09-29 10:45:00", "entry_price": 0.332323, "exit_price": 0.333211, "quantity": 14390.1, "sl": 0.331879, "tp": 0.333211, "gross_pnl": 12.782308, "entry_fee": 1.912866, "exit_fee": 1.917979, "net_pnl": 8.951463, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 19.362378267287347, "macd_hist": -0.0002291318308186226, "atr": 0.00044413546950098455, "adx": 29.645494050123773 }, "fold": 2 }, { "symbol": "TRXUSDT", "side": "LONG", "entry_time": "2025-09-30 03:30:00", "exit_time": "2025-09-30 04:00:00", "entry_price": 0.337134, "exit_price": 0.336601, "quantity": 14131.8, "sl": 0.336601, "tp": 0.3382, "gross_pnl": -7.532294, "entry_fee": 1.905722, "exit_fee": 1.90271, "net_pnl": -11.340726, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 58.81934618554273, "macd_hist": 9.633358724452359e-06, "atr": 0.0005330031631932522, "adx": 34.07177915564808 }, "fold": 2 }, { "symbol": "TRXUSDT", "side": "LONG", "entry_time": "2025-10-01 08:15:00", "exit_time": "2025-10-01 08:45:00", "entry_price": 0.335354, "exit_price": 0.336308, "quantity": 14305.7, "sl": 0.334876, "tp": 0.336308, "gross_pnl": 13.654332, "entry_fee": 1.918987, "exit_fee": 1.924449, "net_pnl": 9.810896, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 70.24789531394917, "macd_hist": 4.729285330987371e-05, "atr": 0.0004772339591884286, "adx": 31.542285567700812 }, "fold": 2 }, { "symbol": "TRXUSDT", "side": "SHORT", "entry_time": "2025-12-08 23:15:00", "exit_time": "2025-12-09 00:00:00", "entry_price": 0.281402, "exit_price": 0.28061, "quantity": 17766.4, "sl": 0.281798, "tp": 0.28061, "gross_pnl": 14.063894, "entry_fee": 1.999799, "exit_fee": 1.994174, "net_pnl": 10.069921, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 22.36971195563758, "macd_hist": -5.3411406416355763e-05, "atr": 0.0003958003322855375, "adx": 36.500835949606106 }, "fold": 3 }, { "symbol": "TRXUSDT", "side": "SHORT", "entry_time": "2025-12-12 07:45:00", "exit_time": "2025-12-12 08:15:00", "entry_price": 0.278582, "exit_price": 0.277953, "quantity": 17915.9, "sl": 0.278897, "tp": 0.277953, "gross_pnl": 11.265055, "entry_fee": 1.99642, "exit_fee": 1.991914, "net_pnl": 7.276721, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 29.438038967517357, "macd_hist": -2.5520992386730775e-05, "atr": 0.0003143870866373587, "adx": 26.711440675930646 }, "fold": 3 }, { "symbol": "TRXUSDT", "side": "SHORT", "entry_time": "2025-12-12 15:30:00", "exit_time": "2025-12-12 15:45:00", "entry_price": 0.276062, "exit_price": 0.275244, "quantity": 18057.8, "sl": 0.276471, "tp": 0.275244, "gross_pnl": 14.773959, "entry_fee": 1.994032, "exit_fee": 1.988122, "net_pnl": 10.791805, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 28.751521638219945, "macd_hist": -8.36146151699088e-06, "atr": 0.00040907415881422674, "adx": 39.02029513782675 }, "fold": 3 }, { "symbol": "TRXUSDT", "side": "LONG", "entry_time": "2025-12-13 08:00:00", "exit_time": "2025-12-13 10:15:00", "entry_price": 0.272847, "exit_price": 0.272547, "quantity": 18235.1, "sl": 0.272547, "tp": 0.273447, "gross_pnl": -5.469501, "entry_fee": 1.990159, "exit_fee": 1.987971, "net_pnl": -9.447632, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 29.793316197464588, "macd_hist": -7.840319164560051e-05, "atr": 0.00029994358844533694, "adx": 21.992497694217974 }, "fold": 3 }, { "symbol": "TRXUSDT", "side": "LONG", "entry_time": "2025-12-15 00:00:00", "exit_time": "2025-12-15 01:00:00", "entry_price": 0.277738, "exit_price": 0.27865, "quantity": 17963.3, "sl": 0.277282, "tp": 0.27865, "gross_pnl": 16.381607, "entry_fee": 1.995635, "exit_fee": 2.002187, "net_pnl": 12.383784, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 67.78500804560913, "macd_hist": 4.083572769007836e-06, "atr": 0.00045597430865612724, "adx": 21.311964821547978 }, "fold": 3 }, { "symbol": "TRXUSDT", "side": "SHORT", "entry_time": "2025-12-26 15:00:00", "exit_time": "2025-12-26 15:30:00", "entry_price": 0.277452, "exit_price": 0.277801, "quantity": 17933.7, "sl": 0.277801, "tp": 0.276756, "gross_pnl": -6.246853, "entry_fee": 1.990298, "exit_fee": 1.992797, "net_pnl": -10.229948, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 29.51622507815984, "macd_hist": -4.6760678561223154e-05, "atr": 0.0003483303942996465, "adx": 36.669526375660595 }, "fold": 3 }, { "symbol": "TRXUSDT", "side": "LONG", "entry_time": "2025-12-27 20:00:00", "exit_time": "2025-12-27 22:00:00", "entry_price": 0.283318, "exit_price": 0.284114, "quantity": 17616.7, "sl": 0.282921, "tp": 0.284114, "gross_pnl": 14.012606, "entry_fee": 1.996454, "exit_fee": 2.002059, "net_pnl": 10.014094, "close_reason": "TAKE_PROFIT", "ml_proba": null, "indicators": { "rsi": 77.49503286668957, "macd_hist": 3.5147071292014305e-05, "atr": 0.00039770804019150625, "adx": 43.053847108404184 }, "fold": 3 }, { "symbol": "TRXUSDT", "side": "SHORT", "entry_time": "2026-01-04 00:00:00", "exit_time": "2026-01-04 00:30:00", "entry_price": 0.294841, "exit_price": 0.295197, "quantity": 16893.5, "sl": 0.295197, "tp": 0.294128, "gross_pnl": -6.016701, "entry_fee": 1.992355, "exit_fee": 1.994762, "net_pnl": -10.003818, "close_reason": "STOP_LOSS", "ml_proba": null, "indicators": { "rsi": 66.6678799584072, "macd_hist": -3.2551549800375387e-05, "atr": 0.00035615479915180313, "adx": 74.06247870613235 }, "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": "승률 정상 (56.7%)" }, { "name": "win_rate_low", "passed": true, "level": "WARNING", "message": "승률 정상 (56.7%)" }, { "name": "mdd_nonzero", "passed": true, "level": "WARNING", "message": "MDD 정상 (9.4%)" }, { "name": "trade_frequency", "passed": false, "level": "WARNING", "message": "월 평균 4.4건 < 5건 — 신호 생성 부족" }, { "name": "profit_factor_high", "passed": true, "level": "WARNING", "message": "PF 정상 (1.35)" } ] } }