results: 백테스트 및 주간 리포트 결과 일괄 추가

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
21in7
2026-05-04 09:03:03 +09:00
parent cc0838e854
commit 4a7b38ea43
33 changed files with 123930 additions and 0 deletions

View File

@@ -0,0 +1,549 @@
{
"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
},
"summary": {
"total_trades": 19,
"total_pnl": -90.5608,
"return_pct": -9.06,
"win_rate": 31.58,
"avg_win": 187.773,
"avg_loss": -93.6307,
"payoff_ratio": 2.01,
"max_consecutive_losses": 8,
"profit_factor": 0.93,
"max_drawdown_pct": 39.26,
"sharpe_ratio": -6.38,
"total_fees": 130.2737,
"close_reasons": {
"STOP_LOSS": 13,
"TAKE_PROFIT": 6
}
},
"trades": [
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-03-26 13:45:00",
"exit_time": "2025-03-26 14:30:00",
"entry_price": 2.415342,
"exit_price": 2.399559,
"quantity": 4140.6,
"sl": 2.399559,
"tp": 2.457429,
"gross_pnl": -65.350891,
"entry_fee": 4.000385,
"exit_fee": 3.974245,
"net_pnl": -73.325521,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 26.92729946174303,
"macd_hist": -0.004175927274053651,
"atr": 0.010521967932285681,
"adx": 28.1934914013265
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-03-29 09:30:00",
"exit_time": "2025-03-29 13:00:00",
"entry_price": 2.091091,
"exit_price": 2.117184,
"quantity": 4431.1,
"sl": 2.117184,
"tp": 2.02151,
"gross_pnl": -115.619197,
"entry_fee": 3.706333,
"exit_fee": 3.752581,
"net_pnl": -123.07811,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 29.5299317993386,
"macd_hist": -0.0016272252554855211,
"atr": 0.017395108299016367,
"adx": 35.60495925685308
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-04-02 02:00:00",
"exit_time": "2025-04-02 05:45:00",
"entry_price": 2.090609,
"exit_price": 2.070463,
"quantity": 3844.2,
"sl": 2.070463,
"tp": 2.144332,
"gross_pnl": -77.446201,
"entry_fee": 3.214688,
"exit_fee": 3.183709,
"net_pnl": -83.844598,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 29.415272650543557,
"macd_hist": -0.0038881862305720294,
"atr": 0.013430831024751285,
"adx": 26.024817307471817
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-04-03 12:15:00",
"exit_time": "2025-04-03 14:45:00",
"entry_price": 2.016898,
"exit_price": 1.956939,
"quantity": 3568.3,
"sl": 2.039383,
"tp": 1.956939,
"gross_pnl": 213.952202,
"entry_fee": 2.878759,
"exit_fee": 2.793178,
"net_pnl": 208.280264,
"close_reason": "TAKE_PROFIT",
"ml_proba": null,
"indicators": {
"rsi": 39.0031761939588,
"macd_hist": -0.00027555783529762453,
"atr": 0.01498978519243727,
"adx": 29.63100718549373
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-04-06 18:45:00",
"exit_time": "2025-04-06 20:30:00",
"entry_price": 1.994699,
"exit_price": 1.968556,
"quantity": 4653.0,
"sl": 1.968556,
"tp": 2.064416,
"gross_pnl": -121.647028,
"entry_fee": 3.712535,
"exit_fee": 3.663876,
"net_pnl": -129.023439,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 21.033027596614833,
"macd_hist": -0.006740564223060543,
"atr": 0.01742918952793266,
"adx": 42.14016267928252
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-04-08 12:00:00",
"exit_time": "2025-04-08 16:15:00",
"entry_price": 1.952805,
"exit_price": 1.879673,
"quantity": 4091.2,
"sl": 1.980229,
"tp": 1.879673,
"gross_pnl": 299.197837,
"entry_fee": 3.195726,
"exit_fee": 3.076047,
"net_pnl": 292.926065,
"close_reason": "TAKE_PROFIT",
"ml_proba": null,
"indicators": {
"rsi": 73.41350187407278,
"macd_hist": 0.010090522420784207,
"atr": 0.01828301215814375,
"adx": 26.85765122231918
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-04-09 01:00:00",
"exit_time": "2025-04-09 01:45:00",
"entry_price": 1.737226,
"exit_price": 1.775195,
"quantity": 5591.5,
"sl": 1.775195,
"tp": 1.635978,
"gross_pnl": -212.299611,
"entry_fee": 3.88548,
"exit_fee": 3.9704,
"net_pnl": -220.155491,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 27.2339289074866,
"macd_hist": -0.002023427338529095,
"atr": 0.025312183439683184,
"adx": 47.62708053828556
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-04-12 13:00:00",
"exit_time": "2025-04-12 13:30:00",
"entry_price": 2.085709,
"exit_price": 2.123429,
"quantity": 4180.2,
"sl": 2.071563,
"tp": 2.123429,
"gross_pnl": 157.679154,
"entry_fee": 3.487472,
"exit_fee": 3.550543,
"net_pnl": 150.641139,
"close_reason": "TAKE_PROFIT",
"ml_proba": null,
"indicators": {
"rsi": 71.08975614304354,
"macd_hist": 0.0004691893650785872,
"atr": 0.009430120184239851,
"adx": 41.039203834939215
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-04-22 13:15:00",
"exit_time": "2025-04-22 14:00:00",
"entry_price": 2.105411,
"exit_price": 2.137638,
"quantity": 4726.0,
"sl": 2.093325,
"tp": 2.137638,
"gross_pnl": 152.30925,
"entry_fee": 3.980068,
"exit_fee": 4.040992,
"net_pnl": 144.28819,
"close_reason": "TAKE_PROFIT",
"ml_proba": null,
"indicators": {
"rsi": 57.841977820073645,
"macd_hist": 4.316762016507922e-06,
"atr": 0.008056985291244722,
"adx": 27.486954266795543
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-04-24 08:30:00",
"exit_time": "2025-04-24 13:30:00",
"entry_price": 2.129213,
"exit_price": 2.178907,
"quantity": 4383.8,
"sl": 2.110578,
"tp": 2.178907,
"gross_pnl": 217.849236,
"entry_fee": 3.733617,
"exit_fee": 3.820757,
"net_pnl": 210.294862,
"close_reason": "TAKE_PROFIT",
"ml_proba": null,
"indicators": {
"rsi": 24.016950832949433,
"macd_hist": -0.003143540248224934,
"atr": 0.012423538716450883,
"adx": 45.63982334493204
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-04-26 07:30:00",
"exit_time": "2025-04-26 09:00:00",
"entry_price": 2.235676,
"exit_price": 2.198258,
"quantity": 3372.4,
"sl": 2.249708,
"tp": 2.198258,
"gross_pnl": 126.188433,
"entry_fee": 3.015838,
"exit_fee": 2.965363,
"net_pnl": 120.207233,
"close_reason": "TAKE_PROFIT",
"ml_proba": null,
"indicators": {
"rsi": 76.71113426509163,
"macd_hist": 0.005320482189513192,
"atr": 0.009354497780232585,
"adx": 30.700551675430855
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-04-28 07:15:00",
"exit_time": "2025-04-28 07:45:00",
"entry_price": 2.314669,
"exit_price": 2.333953,
"quantity": 2608.7,
"sl": 2.333953,
"tp": 2.263244,
"gross_pnl": -50.306622,
"entry_fee": 2.41531,
"exit_fee": 2.435433,
"net_pnl": -55.157366,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 73.98848696551217,
"macd_hist": 0.0034538468677465604,
"atr": 0.012856115408039817,
"adx": 27.89133838050565
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-04-30 07:45:00",
"exit_time": "2025-04-30 12:30:00",
"entry_price": 2.219022,
"exit_price": 2.205478,
"quantity": 3051.6,
"sl": 2.205478,
"tp": 2.255138,
"gross_pnl": -41.329913,
"entry_fee": 2.708627,
"exit_fee": 2.692095,
"net_pnl": -46.730634,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 33.11711659050469,
"macd_hist": -0.0028131165153663005,
"atr": 0.00902912407526822,
"adx": 27.47479838290321
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-04-30 13:15:00",
"exit_time": "2025-04-30 13:30:00",
"entry_price": 2.173717,
"exit_price": 2.152862,
"quantity": 3374.3,
"sl": 2.152862,
"tp": 2.229333,
"gross_pnl": -70.373501,
"entry_fee": 2.93391,
"exit_fee": 2.90576,
"net_pnl": -76.213172,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 27.513370415814684,
"macd_hist": -0.006240527006868588,
"atr": 0.013903822313270735,
"adx": 31.23141348514888
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-05-05 01:30:00",
"exit_time": "2025-05-05 02:15:00",
"entry_price": 2.139986,
"exit_price": 2.153598,
"quantity": 3803.3,
"sl": 2.153598,
"tp": 2.103686,
"gross_pnl": -51.77209,
"entry_fee": 3.255603,
"exit_fee": 3.276312,
"net_pnl": -58.304005,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 30.413570034116045,
"macd_hist": -0.0010637135478183844,
"atr": 0.009074941875769175,
"adx": 26.27401092812825
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-05-17 01:15:00",
"exit_time": "2025-05-17 01:45:00",
"entry_price": 2.335133,
"exit_price": 2.31116,
"quantity": 3709.9,
"sl": 2.31116,
"tp": 2.399062,
"gross_pnl": -88.937959,
"entry_fee": 3.465245,
"exit_fee": 3.42967,
"net_pnl": -95.832873,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 28.536979724863077,
"macd_hist": -0.004501483267526404,
"atr": 0.01598209455229851,
"adx": 51.966384578102044
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-05-18 14:30:00",
"exit_time": "2025-05-18 15:45:00",
"entry_price": 2.427557,
"exit_price": 2.442135,
"quantity": 3848.5,
"sl": 2.442135,
"tp": 2.388682,
"gross_pnl": -56.104255,
"entry_fee": 3.736982,
"exit_fee": 3.759423,
"net_pnl": -63.60066,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 73.26480732687115,
"macd_hist": 0.0028537582643641994,
"atr": 0.009718809144697027,
"adx": 29.42506362068419
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-05-20 12:30:00",
"exit_time": "2025-05-20 17:00:00",
"entry_price": 2.330967,
"exit_price": 2.345796,
"quantity": 4149.8,
"sl": 2.345796,
"tp": 2.291423,
"gross_pnl": -61.53732,
"entry_fee": 3.869219,
"exit_fee": 3.893833,
"net_pnl": -69.300372,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 33.11852309537045,
"macd_hist": -0.0003174284393988123,
"atr": 0.009885989673296352,
"adx": 34.742890662078324
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-05-23 12:15:00",
"exit_time": "2025-05-23 22:45:00",
"entry_price": 2.340634,
"exit_price": 2.313574,
"quantity": 4240.1,
"sl": 2.313574,
"tp": 2.412795,
"gross_pnl": -114.738573,
"entry_fee": 3.969809,
"exit_fee": 3.923914,
"net_pnl": -122.632296,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 18.100631569972105,
"macd_hist": -0.011460760086984913,
"atr": 0.018040230723781962,
"adx": 33.73789035029933
}
}
],
"validation": {
"overall": "PASS",
"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": "승률 정상 (31.6%)"
},
{
"name": "win_rate_low",
"passed": true,
"level": "WARNING",
"message": "승률 정상 (31.6%)"
},
{
"name": "mdd_nonzero",
"passed": true,
"level": "WARNING",
"message": "MDD 정상 (39.3%)"
},
{
"name": "trade_frequency",
"passed": true,
"level": "WARNING",
"message": "월 평균 10.0건"
},
{
"name": "profit_factor_high",
"passed": true,
"level": "WARNING",
"message": "PF 정상 (0.93)"
}
]
}
}

View File

@@ -0,0 +1,45 @@
{
"timestamp": "2026-03-21T19:58:40.087843",
"symbols": [
"XRPUSDT"
],
"ml_off": {
"total_trades": 362,
"total_pnl": -1076.1058,
"return_pct": -107.61,
"win_rate": 36.74,
"avg_win": 30.9612,
"avg_loss": -22.681,
"payoff_ratio": 1.37,
"max_consecutive_losses": 8,
"profit_factor": 0.79,
"max_drawdown_pct": 117.67,
"sharpe_ratio": -18.8,
"total_fees": 1094.0448,
"close_reasons": {
"STOP_LOSS": 202,
"TAKE_PROFIT": 74,
"REVERSE_SIGNAL": 84,
"END_OF_DATA": 2
}
},
"ml_on": {
"total_trades": 14,
"total_pnl": 2.0995,
"return_pct": 0.21,
"win_rate": 35.71,
"avg_win": 38.8329,
"avg_loss": -21.3406,
"payoff_ratio": 1.82,
"max_consecutive_losses": 6,
"profit_factor": 1.01,
"max_drawdown_pct": 11.88,
"sharpe_ratio": 0.74,
"total_fees": 54.5343,
"close_reasons": {
"STOP_LOSS": 7,
"REVERSE_SIGNAL": 4,
"TAKE_PROFIT": 3
}
}
}

View File

@@ -0,0 +1,44 @@
{
"timestamp": "2026-03-21T20:03:32.712401",
"symbols": [
"XRPUSDT"
],
"ml_off": {
"total_trades": 53,
"total_pnl": 121.6625,
"return_pct": 12.17,
"win_rate": 43.4,
"avg_win": 39.0003,
"avg_loss": -25.8448,
"payoff_ratio": 1.51,
"max_consecutive_losses": 8,
"profit_factor": 1.16,
"max_drawdown_pct": 25.63,
"sharpe_ratio": 11.94,
"total_fees": 181.3167,
"close_reasons": {
"STOP_LOSS": 30,
"TAKE_PROFIT": 15,
"REVERSE_SIGNAL": 8
}
},
"ml_on": {
"total_trades": 40,
"total_pnl": -256.2189,
"return_pct": -25.62,
"win_rate": 35.0,
"avg_win": 44.2545,
"avg_loss": -33.6839,
"payoff_ratio": 1.31,
"max_consecutive_losses": 11,
"profit_factor": 0.71,
"max_drawdown_pct": 36.87,
"sharpe_ratio": -27.75,
"total_fees": 151.8982,
"close_reasons": {
"STOP_LOSS": 21,
"REVERSE_SIGNAL": 10,
"TAKE_PROFIT": 9
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,835 @@
{
"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,
"payoff_ratio": 0.78,
"max_consecutive_losses": 3,
"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,
"payoff_ratio": 0.94,
"max_consecutive_losses": 3,
"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,
"payoff_ratio": 0.72,
"max_consecutive_losses": 3,
"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,
"payoff_ratio": "Infinity",
"max_consecutive_losses": 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)"
}
]
}
}

View File

@@ -0,0 +1,214 @@
{
"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)"
}
]
}
}

View File

@@ -0,0 +1,382 @@
{
"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": 6,
"test_months": 1,
"time_weight_decay": 2.0,
"negative_ratio": 3
},
"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
}
},
"folds": [
{
"fold": 1,
"train_period": "2025-03-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
}
}
}
],
"trades": [
{
"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": 1
},
{
"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": 1
},
{
"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": 1
},
{
"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": 1
},
{
"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": 1
},
{
"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": 1
},
{
"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": 1
},
{
"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": 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": 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": 1
},
{
"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": 1
}
],
"validation": {
"overall": "PASS",
"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": "승률 정상 (30.0%)"
},
{
"name": "win_rate_low",
"passed": true,
"level": "WARNING",
"message": "승률 정상 (30.0%)"
},
{
"name": "mdd_nonzero",
"passed": true,
"level": "WARNING",
"message": "MDD 정상 (28.2%)"
},
{
"name": "trade_frequency",
"passed": true,
"level": "WARNING",
"message": "월 평균 10.0건"
},
{
"name": "profit_factor_high",
"passed": true,
"level": "WARNING",
"message": "PF 정상 (0.83)"
}
]
}
}

View File

@@ -0,0 +1,838 @@
{
"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)"
}
]
}
}

View File

@@ -0,0 +1,511 @@
{
"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": 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": 15,
"total_pnl": -128.8207,
"return_pct": -12.88,
"win_rate": 26.67,
"avg_win": 38.6226,
"avg_loss": -25.7556,
"payoff_ratio": 1.5,
"max_consecutive_losses": 6,
"profit_factor": 0.55,
"max_drawdown_pct": 20.39,
"sharpe_ratio": -52.86,
"total_fees": 57.6972,
"close_reasons": {
"TAKE_PROFIT": 4,
"STOP_LOSS": 11
}
},
"folds": [
{
"fold": 1,
"train_period": "2025-03-05 ~ 2025-09-05",
"test_period": "2025-09-05 ~ 2025-10-05",
"test_start": "2025-09-05T15:00:00",
"test_end": "2025-10-05T15:00:00",
"summary": {
"total_trades": 15,
"total_pnl": -128.8207,
"return_pct": -12.88,
"win_rate": 26.67,
"avg_win": 38.6226,
"avg_loss": -25.7556,
"payoff_ratio": 1.5,
"max_consecutive_losses": 6,
"profit_factor": 0.55,
"max_drawdown_pct": 20.39,
"sharpe_ratio": -52.86,
"total_fees": 57.6972,
"close_reasons": {
"TAKE_PROFIT": 4,
"STOP_LOSS": 11
}
},
"market_context": {
"btc_return_pct": 11.2,
"eth_return_pct": 5.8,
"btc_avg_adx": 24.6,
"market_regime": "횡보",
"ls_ratio": null
}
}
],
"trades": [
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-09-05 19:45:00",
"exit_time": "2025-09-05 21:15:00",
"entry_price": 2.863514,
"exit_price": 2.827446,
"quantity": 1745.9,
"sl": 2.881548,
"tp": 2.827446,
"gross_pnl": 62.97085,
"entry_fee": 1.999763,
"exit_fee": 1.974575,
"net_pnl": 58.996512,
"close_reason": "TAKE_PROFIT",
"ml_proba": null,
"indicators": {
"rsi": 66.8667614741176,
"macd_hist": 0.005566660638547516,
"atr": 0.012022614930199287,
"adx": 25.794325095274626
},
"fold": 1
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-09-06 09:00:00",
"exit_time": "2025-09-06 13:15:00",
"entry_price": 2.806619,
"exit_price": 2.812828,
"quantity": 1752.9,
"sl": 2.812828,
"tp": 2.794201,
"gross_pnl": -10.883731,
"entry_fee": 1.967889,
"exit_fee": 1.972243,
"net_pnl": -14.823863,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 34.00610631074574,
"macd_hist": -0.0004704685694576242,
"atr": 0.00413932368453192,
"adx": 14.008193990926515
},
"fold": 1
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-09-06 15:45:00",
"exit_time": "2025-09-06 22:00:00",
"entry_price": 2.80062,
"exit_price": 2.807842,
"quantity": 1765.2,
"sl": 2.807842,
"tp": 2.786175,
"gross_pnl": -12.748682,
"entry_fee": 1.977462,
"exit_fee": 1.982561,
"net_pnl": -16.708704,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 38.58702631504332,
"macd_hist": -0.0004103175941632724,
"atr": 0.004814820425995649,
"adx": 15.495502216732291
},
"fold": 1
},
{
"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": 1754.7,
"sl": 2.825709,
"tp": 2.843032,
"gross_pnl": -10.132486,
"entry_fee": 1.987361,
"exit_fee": 1.983308,
"net_pnl": -14.103156,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 70.72939012092385,
"macd_hist": 0.00013947818915852105,
"atr": 0.0038496557346203194,
"adx": 25.87514662158794
},
"fold": 1
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-09-07 13:30:00",
"exit_time": "2025-09-07 14:00:00",
"entry_price": 2.840884,
"exit_price": 2.853506,
"quantity": 1755.1,
"sl": 2.834573,
"tp": 2.853506,
"gross_pnl": 22.153405,
"entry_fee": 1.994414,
"exit_fee": 2.003276,
"net_pnl": 18.155715,
"close_reason": "TAKE_PROFIT",
"ml_proba": null,
"indicators": {
"rsi": 70.99242896973038,
"macd_hist": 0.0004291197510571344,
"atr": 0.0042074344637298,
"adx": 18.351295376801428
},
"fold": 1
},
{
"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": 1717.8,
"sl": 2.907326,
"tp": 2.851181,
"gross_pnl": -32.148496,
"entry_fee": 1.984822,
"exit_fee": 1.997682,
"net_pnl": -36.131,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 76.27147788789821,
"macd_hist": 0.006331113894477991,
"atr": 0.012476615713124774,
"adx": 29.135371839765913
},
"fold": 1
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-09-07 22:45:00",
"exit_time": "2025-09-08 02:15:00",
"entry_price": 2.875788,
"exit_price": 2.862379,
"quantity": 1730.8,
"sl": 2.862379,
"tp": 2.902605,
"gross_pnl": -23.207724,
"entry_fee": 1.990965,
"exit_fee": 1.981682,
"net_pnl": -27.180371,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 55.067227780514635,
"macd_hist": 0.00013194571339722526,
"atr": 0.008939112576366447,
"adx": 14.580517290441753
},
"fold": 1
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-09-08 07:15:00",
"exit_time": "2025-09-08 09:45:00",
"entry_price": 2.90089,
"exit_price": 2.932746,
"quantity": 1669.0,
"sl": 2.884962,
"tp": 2.932746,
"gross_pnl": 53.167202,
"entry_fee": 1.936634,
"exit_fee": 1.957901,
"net_pnl": 49.272667,
"close_reason": "TAKE_PROFIT",
"ml_proba": null,
"indicators": {
"rsi": 60.12434238530789,
"macd_hist": 0.00041228306459878275,
"atr": 0.010618574376478408,
"adx": 8.300763892347662
},
"fold": 1
},
{
"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": 1655.0,
"sl": 3.026836,
"tp": 2.973625,
"gross_pnl": -29.354685,
"entry_fee": 1.992024,
"exit_fee": 2.003765,
"net_pnl": -33.350474,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 73.38194905544675,
"macd_hist": 0.006160466326798137,
"atr": 0.011824646391069867,
"adx": 28.105801823891394
},
"fold": 1
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-09-09 23:00:00",
"exit_time": "2025-09-10 02:00:00",
"entry_price": 2.943406,
"exit_price": 2.956284,
"quantity": 1671.6,
"sl": 2.956284,
"tp": 2.917649,
"gross_pnl": -21.527774,
"entry_fee": 1.968079,
"exit_fee": 1.97669,
"net_pnl": -25.472542,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 39.53536171049937,
"macd_hist": -1.946210228058031e-05,
"atr": 0.008585695753008377,
"adx": 20.785784979630154
},
"fold": 1
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-09-11 08:30:00",
"exit_time": "2025-09-11 11:15:00",
"entry_price": 3.017402,
"exit_price": 3.006355,
"quantity": 1588.7,
"sl": 3.006355,
"tp": 3.039494,
"gross_pnl": -17.549278,
"entry_fee": 1.917498,
"exit_fee": 1.910479,
"net_pnl": -21.377255,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 65.07990381213337,
"macd_hist": 0.0004440826925332865,
"atr": 0.007364208872183876,
"adx": 14.825623048829055
},
"fold": 1
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-09-12 15:00:00",
"exit_time": "2025-09-12 16:15:00",
"entry_price": 3.019198,
"exit_price": 3.037941,
"quantity": 1552.0,
"sl": 3.037941,
"tp": 2.981711,
"gross_pnl": -29.089679,
"entry_fee": 1.874318,
"exit_fee": 1.885954,
"net_pnl": -32.849951,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 38.155616440178264,
"macd_hist": -0.0008867617207142038,
"atr": 0.012495566579322376,
"adx": 19.09633552921856
},
"fold": 1
},
{
"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": 1448.4,
"sl": 3.143446,
"tp": 3.078472,
"gross_pnl": -31.36941,
"entry_fee": 1.808639,
"exit_fee": 1.821187,
"net_pnl": -34.999235,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 78.88995114530964,
"macd_hist": 0.004793783646225545,
"atr": 0.014438649390670705,
"adx": 33.848649235778474
},
"fold": 1
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-09-13 09:15:00",
"exit_time": "2025-09-13 09:45:00",
"entry_price": 3.161284,
"exit_price": 3.177886,
"quantity": 1375.0,
"sl": 3.177886,
"tp": 3.128079,
"gross_pnl": -22.828175,
"entry_fee": 1.738706,
"exit_fee": 1.747837,
"net_pnl": -26.314718,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 75.37053214953528,
"macd_hist": 0.00511253369858191,
"atr": 0.011068206025146562,
"adx": 36.52494916026817
},
"fold": 1
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-09-14 00:45:00",
"exit_time": "2025-09-14 01:15:00",
"entry_price": 3.109189,
"exit_price": 3.086009,
"quantity": 1355.7,
"sl": 3.120779,
"tp": 3.086009,
"gross_pnl": 31.425221,
"entry_fee": 1.686051,
"exit_fee": 1.673481,
"net_pnl": 28.065689,
"close_reason": "TAKE_PROFIT",
"ml_proba": null,
"indicators": {
"rsi": 38.7433537799598,
"macd_hist": -0.0002412627790731375,
"atr": 0.007726689972056756,
"adx": 19.663365885823197
},
"fold": 1
}
],
"validation": {
"overall": "PASS",
"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": "승률 정상 (26.7%)"
},
{
"name": "win_rate_low",
"passed": true,
"level": "WARNING",
"message": "승률 정상 (26.7%)"
},
{
"name": "mdd_nonzero",
"passed": true,
"level": "WARNING",
"message": "MDD 정상 (20.4%)"
},
{
"name": "trade_frequency",
"passed": true,
"level": "WARNING",
"message": "월 평균 15.0건"
},
{
"name": "profit_factor_high",
"passed": true,
"level": "WARNING",
"message": "PF 정상 (0.55)"
}
]
}
}

View File

@@ -0,0 +1,865 @@
{
"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",
"test_start": "2025-06-05T15:00:00",
"test_end": "2025-07-05T15:00:00",
"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
}
},
"market_context": {
"btc_return_pct": 3.7,
"eth_return_pct": -2.5,
"btc_avg_adx": 24.9,
"market_regime": "횡보",
"ls_ratio": null
}
},
{
"fold": 2,
"train_period": "2025-06-05 ~ 2025-09-05",
"test_period": "2025-09-05 ~ 2025-10-05",
"test_start": "2025-09-05T15:00:00",
"test_end": "2025-10-05T15:00:00",
"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
}
},
"market_context": {
"btc_return_pct": 11.2,
"eth_return_pct": 5.8,
"btc_avg_adx": 24.6,
"market_regime": "횡보",
"ls_ratio": null
}
},
{
"fold": 3,
"train_period": "2025-09-05 ~ 2025-12-05",
"test_period": "2025-12-05 ~ 2026-01-05",
"test_start": "2025-12-05T15:00:00",
"test_end": "2026-01-05T15:00:00",
"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
}
},
"market_context": {
"btc_return_pct": 2.6,
"eth_return_pct": 0.8,
"btc_avg_adx": 25.5,
"market_regime": "상승 추세",
"ls_ratio": null
}
}
],
"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)"
}
]
}
}

View File

@@ -0,0 +1,537 @@
{
"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": 1.5,
"atr_tp_mult": 4.0,
"min_notional": 5.0,
"signal_threshold": 3,
"adx_threshold": 25.0,
"volume_multiplier": 1.5,
"train_months": 6,
"test_months": 1,
"time_weight_decay": 2.0,
"negative_ratio": 3
},
"summary": {
"total_trades": 16,
"total_pnl": -130.1928,
"return_pct": -13.02,
"win_rate": 25.0,
"avg_win": 65.5037,
"avg_loss": -32.684,
"payoff_ratio": 2.0,
"max_consecutive_losses": 5,
"profit_factor": 0.67,
"max_drawdown_pct": 19.46,
"sharpe_ratio": -34.26,
"total_fees": 61.4728,
"close_reasons": {
"TAKE_PROFIT": 4,
"STOP_LOSS": 11,
"REVERSE_SIGNAL": 1
}
},
"folds": [
{
"fold": 1,
"train_period": "2025-03-05 ~ 2025-09-05",
"test_period": "2025-09-05 ~ 2025-10-05",
"test_start": "2025-09-05T15:00:00",
"test_end": "2025-10-05T15:00:00",
"summary": {
"total_trades": 16,
"total_pnl": -130.1928,
"return_pct": -13.02,
"win_rate": 25.0,
"avg_win": 65.5037,
"avg_loss": -32.684,
"payoff_ratio": 2.0,
"max_consecutive_losses": 5,
"profit_factor": 0.67,
"max_drawdown_pct": 19.46,
"sharpe_ratio": -34.26,
"total_fees": 61.4728,
"close_reasons": {
"TAKE_PROFIT": 4,
"STOP_LOSS": 11,
"REVERSE_SIGNAL": 1
}
},
"market_context": {
"btc_return_pct": 11.2,
"eth_return_pct": 5.8,
"btc_avg_adx": 24.6,
"market_regime": "횡보",
"ls_ratio": null
}
}
],
"trades": [
{
"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": 1745.9,
"sl": 2.881548,
"tp": 2.815423,
"gross_pnl": 83.961134,
"entry_fee": 1.999763,
"exit_fee": 1.966179,
"net_pnl": 79.995191,
"close_reason": "TAKE_PROFIT",
"ml_proba": null,
"indicators": {
"rsi": 66.8667614741176,
"macd_hist": 0.005566660638547516,
"atr": 0.012022614930199287,
"adx": 25.794325095274626
},
"fold": 1
},
{
"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": 1724.2,
"sl": 2.825709,
"tp": 2.846882,
"gross_pnl": -9.956365,
"entry_fee": 1.952817,
"exit_fee": 1.948835,
"net_pnl": -13.858017,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 70.72939012092385,
"macd_hist": 0.00013947818915852105,
"atr": 0.0038496557346203194,
"adx": 25.87514662158794
},
"fold": 1
},
{
"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": 1698.8,
"sl": 2.907326,
"tp": 2.838705,
"gross_pnl": -31.792912,
"entry_fee": 1.962869,
"exit_fee": 1.975586,
"net_pnl": -35.731367,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 76.27147788789821,
"macd_hist": 0.006331113894477991,
"atr": 0.012476615713124774,
"adx": 29.135371839765913
},
"fold": 1
},
{
"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": 1649.5,
"sl": 3.026836,
"tp": 2.9618,
"gross_pnl": -29.257131,
"entry_fee": 1.985404,
"exit_fee": 1.997106,
"net_pnl": -33.239641,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 73.38194905544675,
"macd_hist": 0.006160466326798137,
"atr": 0.011824646391069867,
"adx": 28.105801823891394
},
"fold": 1
},
{
"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": 1596.9,
"sl": 3.143446,
"tp": 3.064033,
"gross_pnl": -34.585619,
"entry_fee": 1.994073,
"exit_fee": 2.007907,
"net_pnl": -38.587599,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 78.88995114530964,
"macd_hist": 0.004793783646225545,
"atr": 0.014438649390670705,
"adx": 33.848649235778474
},
"fold": 1
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-09-13 09:15:00",
"exit_time": "2025-09-13 09:45:00",
"entry_price": 3.161284,
"exit_price": 3.177886,
"quantity": 1516.0,
"sl": 3.177886,
"tp": 3.117011,
"gross_pnl": -25.169101,
"entry_fee": 1.917003,
"exit_fee": 1.92707,
"net_pnl": -29.013173,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 75.37053214953528,
"macd_hist": 0.00511253369858191,
"atr": 0.011068206025146562,
"adx": 36.52494916026817
},
"fold": 1
},
{
"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": 1515.3,
"sl": 3.079709,
"tp": 3.033085,
"gross_pnl": 51.380703,
"entry_fee": 1.858966,
"exit_fee": 1.838414,
"net_pnl": 47.683323,
"close_reason": "TAKE_PROFIT",
"ml_proba": null,
"indicators": {
"rsi": 31.419480021379645,
"macd_hist": -0.0003629091436070245,
"atr": 0.008476985221720718,
"adx": 31.882046477112183
},
"fold": 1
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-09-14 23:15:00",
"exit_time": "2025-09-15 01:30:00",
"entry_price": 3.030497,
"exit_price": 3.044966,
"quantity": 1612.2,
"sl": 3.044966,
"tp": 2.991913,
"gross_pnl": -23.326699,
"entry_fee": 1.954307,
"exit_fee": 1.963638,
"net_pnl": -27.244643,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 41.86565415846166,
"macd_hist": -6.680085954976589e-05,
"atr": 0.009645907843496216,
"adx": 26.821083958033373
},
"fold": 1
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-09-19 20:00:00",
"exit_time": "2025-09-20 06:30:00",
"entry_price": 2.988001,
"exit_price": 3.002469,
"quantity": 1589.5,
"sl": 3.002469,
"tp": 2.949422,
"gross_pnl": -22.995886,
"entry_fee": 1.899771,
"exit_fee": 1.908969,
"net_pnl": -26.804627,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 36.43471826247567,
"macd_hist": -0.00020348228213156426,
"atr": 0.009644913974796715,
"adx": 38.358109484089894
},
"fold": 1
},
{
"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": 1553.2,
"sl": 2.980986,
"tp": 2.94658,
"gross_pnl": -14.574245,
"entry_fee": 1.846197,
"exit_fee": 1.852027,
"net_pnl": -18.272469,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 36.09553473183674,
"macd_hist": -0.00018720159437711752,
"atr": 0.006255577606168083,
"adx": 28.84076206692945
},
"fold": 1
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-09-24 14:15:00",
"exit_time": "2025-09-24 15:30:00",
"entry_price": 2.894089,
"exit_price": 2.929027,
"quantity": 1563.6,
"sl": 2.880988,
"tp": 2.929027,
"gross_pnl": 54.628771,
"entry_fee": 1.810079,
"exit_fee": 1.831931,
"net_pnl": 50.986761,
"close_reason": "TAKE_PROFIT",
"ml_proba": null,
"indicators": {
"rsi": 66.07824522998891,
"macd_hist": 0.0002837479638076925,
"atr": 0.008734454267839082,
"adx": 33.216876327535196
},
"fold": 1
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-09-24 19:45:00",
"exit_time": "2025-09-24 20:00:00",
"entry_price": 2.976198,
"exit_price": 2.963004,
"quantity": 1606.1,
"sl": 2.955734,
"tp": 3.030766,
"gross_pnl": -21.190755,
"entry_fee": 1.912028,
"exit_fee": 1.903552,
"net_pnl": -25.006335,
"close_reason": "REVERSE_SIGNAL",
"ml_proba": null,
"indicators": {
"rsi": 77.25608496751632,
"macd_hist": 0.00019635721897620986,
"atr": 0.013642083686890932,
"adx": 66.36435142210216
},
"fold": 1
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-09-24 20:00:00",
"exit_time": "2025-09-25 01:00:00",
"entry_price": 2.963004,
"exit_price": 2.90759,
"quantity": 1570.7,
"sl": 2.983784,
"tp": 2.90759,
"gross_pnl": 87.037912,
"entry_fee": 1.861596,
"exit_fee": 1.826781,
"net_pnl": 83.349535,
"close_reason": "TAKE_PROFIT",
"ml_proba": null,
"indicators": {
"rsi": 66.65458359619365,
"macd_hist": -7.427449332575442e-05,
"atr": 0.013853363423541577,
"adx": 67.76721468449082
},
"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": 1784.3,
"sl": 2.811993,
"tp": 2.743161,
"gross_pnl": -33.495286,
"entry_fee": 1.993577,
"exit_fee": 2.006976,
"net_pnl": -37.495839,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 27.256149561284357,
"macd_hist": -0.0005773233003328118,
"atr": 0.012514818420656685,
"adx": 36.706433983392714
},
"fold": 1
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-09-25 17:15:00",
"exit_time": "2025-09-25 17:30:00",
"entry_price": 2.769777,
"exit_price": 2.742807,
"quantity": 1763.4,
"sl": 2.742807,
"tp": 2.841698,
"gross_pnl": -47.559642,
"entry_fee": 1.95369,
"exit_fee": 1.934666,
"net_pnl": -51.447998,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 31.610683788190443,
"macd_hist": -0.006544986366080717,
"atr": 0.01798028133337769,
"adx": 26.44006928288656
},
"fold": 1
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-09-25 17:45:00",
"exit_time": "2025-09-26 11:00:00",
"entry_price": 2.736174,
"exit_price": 2.705528,
"quantity": 1691.1,
"sl": 2.705528,
"tp": 2.817895,
"gross_pnl": -51.824893,
"entry_fee": 1.850857,
"exit_fee": 1.830127,
"net_pnl": -55.505877,
"close_reason": "STOP_LOSS",
"ml_proba": null,
"indicators": {
"rsi": 25.044837785333744,
"macd_hist": -0.0090419871390266,
"atr": 0.020430446659902204,
"adx": 30.966856582892532
},
"fold": 1
}
],
"validation": {
"overall": "PASS",
"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": "승률 정상 (25.0%)"
},
{
"name": "win_rate_low",
"passed": true,
"level": "WARNING",
"message": "승률 정상 (25.0%)"
},
{
"name": "mdd_nonzero",
"passed": true,
"level": "WARNING",
"message": "MDD 정상 (19.5%)"
},
{
"name": "trade_frequency",
"passed": true,
"level": "WARNING",
"message": "월 평균 16.0건"
},
{
"name": "profit_factor_high",
"passed": true,
"level": "WARNING",
"message": "PF 정상 (0.67)"
}
]
}
}

File diff suppressed because it is too large Load Diff