results: 백테스트 및 주간 리포트 결과 일괄 추가
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
44
results/dogeusdt/ml_comparison_20260321_195841.json
Normal file
44
results/dogeusdt/ml_comparison_20260321_195841.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"timestamp": "2026-03-21T19:58:41.732033",
|
||||
"symbols": [
|
||||
"DOGEUSDT"
|
||||
],
|
||||
"ml_off": {
|
||||
"total_trades": 322,
|
||||
"total_pnl": -1547.342,
|
||||
"return_pct": -154.73,
|
||||
"win_rate": 31.37,
|
||||
"avg_win": 44.161,
|
||||
"avg_loss": -27.1837,
|
||||
"payoff_ratio": 1.62,
|
||||
"max_consecutive_losses": 9,
|
||||
"profit_factor": 0.74,
|
||||
"max_drawdown_pct": 155.09,
|
||||
"sharpe_ratio": -23.72,
|
||||
"total_fees": 891.5776,
|
||||
"close_reasons": {
|
||||
"STOP_LOSS": 198,
|
||||
"REVERSE_SIGNAL": 58,
|
||||
"TAKE_PROFIT": 66
|
||||
}
|
||||
},
|
||||
"ml_on": {
|
||||
"total_trades": 20,
|
||||
"total_pnl": -173.2651,
|
||||
"return_pct": -17.33,
|
||||
"win_rate": 35.0,
|
||||
"avg_win": 42.0257,
|
||||
"avg_loss": -35.9573,
|
||||
"payoff_ratio": 1.17,
|
||||
"max_consecutive_losses": 3,
|
||||
"profit_factor": 0.63,
|
||||
"max_drawdown_pct": 18.86,
|
||||
"sharpe_ratio": -40.35,
|
||||
"total_fees": 77.1422,
|
||||
"close_reasons": {
|
||||
"STOP_LOSS": 13,
|
||||
"REVERSE_SIGNAL": 4,
|
||||
"TAKE_PROFIT": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
45
results/dogeusdt/ml_comparison_20260321_200334.json
Normal file
45
results/dogeusdt/ml_comparison_20260321_200334.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"timestamp": "2026-03-21T20:03:34.650022",
|
||||
"symbols": [
|
||||
"DOGEUSDT"
|
||||
],
|
||||
"ml_off": {
|
||||
"total_trades": 40,
|
||||
"total_pnl": 161.0802,
|
||||
"return_pct": 16.11,
|
||||
"win_rate": 25.0,
|
||||
"avg_win": 107.1017,
|
||||
"avg_loss": -30.3312,
|
||||
"payoff_ratio": 3.53,
|
||||
"max_consecutive_losses": 8,
|
||||
"profit_factor": 1.18,
|
||||
"max_drawdown_pct": 22.19,
|
||||
"sharpe_ratio": 7.08,
|
||||
"total_fees": 150.4991,
|
||||
"close_reasons": {
|
||||
"STOP_LOSS": 25,
|
||||
"REVERSE_SIGNAL": 8,
|
||||
"END_OF_DATA": 1,
|
||||
"TAKE_PROFIT": 6
|
||||
}
|
||||
},
|
||||
"ml_on": {
|
||||
"total_trades": 47,
|
||||
"total_pnl": -285.0131,
|
||||
"return_pct": -28.5,
|
||||
"win_rate": 34.04,
|
||||
"avg_win": 61.4296,
|
||||
"avg_loss": -40.8996,
|
||||
"payoff_ratio": 1.5,
|
||||
"max_consecutive_losses": 7,
|
||||
"profit_factor": 0.78,
|
||||
"max_drawdown_pct": 40.93,
|
||||
"sharpe_ratio": -21.03,
|
||||
"total_fees": 176.3033,
|
||||
"close_reasons": {
|
||||
"STOP_LOSS": 30,
|
||||
"REVERSE_SIGNAL": 6,
|
||||
"TAKE_PROFIT": 11
|
||||
}
|
||||
}
|
||||
}
|
||||
1054
results/dogeusdt/wf_backtest_20260318_232112.json
Normal file
1054
results/dogeusdt/wf_backtest_20260318_232112.json
Normal file
File diff suppressed because it is too large
Load Diff
188
results/dogeusdt/wf_backtest_20260321_194418.json
Normal file
188
results/dogeusdt/wf_backtest_20260321_194418.json
Normal file
@@ -0,0 +1,188 @@
|
||||
{
|
||||
"mode": "walk_forward",
|
||||
"config": {
|
||||
"symbols": [
|
||||
"DOGEUSDT"
|
||||
],
|
||||
"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": 2,
|
||||
"total_pnl": -84.5014,
|
||||
"return_pct": -8.45,
|
||||
"win_rate": 0.0,
|
||||
"avg_win": 0.0,
|
||||
"avg_loss": -42.2507,
|
||||
"payoff_ratio": 0.0,
|
||||
"max_consecutive_losses": 2,
|
||||
"profit_factor": 0.0,
|
||||
"max_drawdown_pct": 4.28,
|
||||
"sharpe_ratio": -5831.15,
|
||||
"total_fees": 7.8265,
|
||||
"close_reasons": {
|
||||
"STOP_LOSS": 2
|
||||
}
|
||||
},
|
||||
"folds": [
|
||||
{
|
||||
"fold": 1,
|
||||
"train_period": "2025-03-05 ~ 2025-09-05",
|
||||
"test_period": "2025-09-05 ~ 2025-10-05",
|
||||
"summary": {
|
||||
"total_trades": 2,
|
||||
"total_pnl": -84.5014,
|
||||
"return_pct": -8.45,
|
||||
"win_rate": 0.0,
|
||||
"avg_win": 0.0,
|
||||
"avg_loss": -42.2507,
|
||||
"payoff_ratio": 0.0,
|
||||
"max_consecutive_losses": 2,
|
||||
"profit_factor": 0.0,
|
||||
"max_drawdown_pct": 4.28,
|
||||
"sharpe_ratio": -5831.15,
|
||||
"total_fees": 7.8265,
|
||||
"close_reasons": {
|
||||
"STOP_LOSS": 2
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"trades": [
|
||||
{
|
||||
"symbol": "DOGEUSDT",
|
||||
"side": "SHORT",
|
||||
"entry_time": "2025-10-03 14:00:00",
|
||||
"exit_time": "2025-10-03 14:30:00",
|
||||
"entry_price": 0.253975,
|
||||
"exit_price": 0.255986,
|
||||
"quantity": 19685.0,
|
||||
"sl": 0.255986,
|
||||
"tp": 0.249952,
|
||||
"gross_pnl": -39.591591,
|
||||
"entry_fee": 1.999796,
|
||||
"exit_fee": 2.015633,
|
||||
"net_pnl": -43.60702,
|
||||
"close_reason": "STOP_LOSS",
|
||||
"ml_proba": 0.6215,
|
||||
"indicators": {
|
||||
"rsi": 39.31265367759862,
|
||||
"macd_hist": -9.917203695834255e-06,
|
||||
"atr": 0.001340837894829163,
|
||||
"adx": 22.11118870853989
|
||||
},
|
||||
"fold": 1
|
||||
},
|
||||
{
|
||||
"symbol": "DOGEUSDT",
|
||||
"side": "LONG",
|
||||
"entry_time": "2025-10-04 02:00:00",
|
||||
"exit_time": "2025-10-04 03:00:00",
|
||||
"entry_price": 0.254255,
|
||||
"exit_price": 0.252284,
|
||||
"quantity": 18809.6,
|
||||
"sl": 0.252284,
|
||||
"tp": 0.258198,
|
||||
"gross_pnl": -37.083263,
|
||||
"entry_fee": 1.912977,
|
||||
"exit_fee": 1.898144,
|
||||
"net_pnl": -40.894384,
|
||||
"close_reason": "STOP_LOSS",
|
||||
"ml_proba": 0.589,
|
||||
"indicators": {
|
||||
"rsi": 29.729826487088012,
|
||||
"macd_hist": -0.0004551413936173264,
|
||||
"atr": 0.0013143381729553857,
|
||||
"adx": 17.29524723775582
|
||||
},
|
||||
"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": "승률 정상 (0.0%)"
|
||||
},
|
||||
{
|
||||
"name": "win_rate_low",
|
||||
"passed": false,
|
||||
"level": "WARNING",
|
||||
"message": "승률 0.0% < 20% — 신호 로직 반전 의심"
|
||||
},
|
||||
{
|
||||
"name": "mdd_nonzero",
|
||||
"passed": true,
|
||||
"level": "WARNING",
|
||||
"message": "MDD 정상 (4.3%)"
|
||||
},
|
||||
{
|
||||
"name": "trade_frequency",
|
||||
"passed": false,
|
||||
"level": "WARNING",
|
||||
"message": "월 평균 2.0건 < 5건 — 신호 생성 부족"
|
||||
},
|
||||
{
|
||||
"name": "profit_factor_high",
|
||||
"passed": true,
|
||||
"level": "WARNING",
|
||||
"message": "PF 정상 (0.00)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
44
results/solusdt/ml_comparison_20260321_195841.json
Normal file
44
results/solusdt/ml_comparison_20260321_195841.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"timestamp": "2026-03-21T19:58:41.166218",
|
||||
"symbols": [
|
||||
"SOLUSDT"
|
||||
],
|
||||
"ml_off": {
|
||||
"total_trades": 346,
|
||||
"total_pnl": -1287.9804,
|
||||
"return_pct": -128.8,
|
||||
"win_rate": 33.82,
|
||||
"avg_win": 35.5174,
|
||||
"avg_loss": -23.7708,
|
||||
"payoff_ratio": 1.49,
|
||||
"max_consecutive_losses": 11,
|
||||
"profit_factor": 0.76,
|
||||
"max_drawdown_pct": 176.42,
|
||||
"sharpe_ratio": -20.59,
|
||||
"total_fees": 940.6664,
|
||||
"close_reasons": {
|
||||
"STOP_LOSS": 187,
|
||||
"TAKE_PROFIT": 68,
|
||||
"REVERSE_SIGNAL": 91
|
||||
}
|
||||
},
|
||||
"ml_on": {
|
||||
"total_trades": 14,
|
||||
"total_pnl": 80.7573,
|
||||
"return_pct": 8.08,
|
||||
"win_rate": 35.71,
|
||||
"avg_win": 72.906,
|
||||
"avg_loss": -31.5303,
|
||||
"payoff_ratio": 2.31,
|
||||
"max_consecutive_losses": 4,
|
||||
"profit_factor": 1.28,
|
||||
"max_drawdown_pct": 11.46,
|
||||
"sharpe_ratio": 18.5,
|
||||
"total_fees": 51.8491,
|
||||
"close_reasons": {
|
||||
"STOP_LOSS": 7,
|
||||
"TAKE_PROFIT": 5,
|
||||
"REVERSE_SIGNAL": 2
|
||||
}
|
||||
}
|
||||
}
|
||||
45
results/solusdt/ml_comparison_20260321_200332.json
Normal file
45
results/solusdt/ml_comparison_20260321_200332.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"timestamp": "2026-03-21T20:03:32.481740",
|
||||
"symbols": [
|
||||
"SOLUSDT"
|
||||
],
|
||||
"ml_off": {
|
||||
"total_trades": 31,
|
||||
"total_pnl": -3218.5412,
|
||||
"return_pct": -321.85,
|
||||
"win_rate": 25.81,
|
||||
"avg_win": 40.6328,
|
||||
"avg_loss": -154.0697,
|
||||
"payoff_ratio": 0.26,
|
||||
"max_consecutive_losses": 7,
|
||||
"profit_factor": 0.09,
|
||||
"max_drawdown_pct": 333.12,
|
||||
"sharpe_ratio": -39.57,
|
||||
"total_fees": 112.8457,
|
||||
"close_reasons": {
|
||||
"STOP_LOSS": 21,
|
||||
"TAKE_PROFIT": 5,
|
||||
"REVERSE_SIGNAL": 4,
|
||||
"END_OF_DATA": 1
|
||||
}
|
||||
},
|
||||
"ml_on": {
|
||||
"total_trades": 17,
|
||||
"total_pnl": -488.3431,
|
||||
"return_pct": -48.83,
|
||||
"win_rate": 11.76,
|
||||
"avg_win": 79.5151,
|
||||
"avg_loss": -43.1582,
|
||||
"payoff_ratio": 1.84,
|
||||
"max_consecutive_losses": 8,
|
||||
"profit_factor": 0.25,
|
||||
"max_drawdown_pct": 45.94,
|
||||
"sharpe_ratio": -123.73,
|
||||
"total_fees": 61.1816,
|
||||
"close_reasons": {
|
||||
"STOP_LOSS": 14,
|
||||
"REVERSE_SIGNAL": 1,
|
||||
"TAKE_PROFIT": 2
|
||||
}
|
||||
}
|
||||
}
|
||||
81
results/solusdt/wf_backtest_20260321_194417.json
Normal file
81
results/solusdt/wf_backtest_20260321_194417.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"mode": "walk_forward",
|
||||
"config": {
|
||||
"symbols": [
|
||||
"SOLUSDT"
|
||||
],
|
||||
"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": 0,
|
||||
"total_pnl": 0.0,
|
||||
"return_pct": 0.0,
|
||||
"win_rate": 0.0,
|
||||
"avg_win": 0.0,
|
||||
"avg_loss": 0.0,
|
||||
"payoff_ratio": 0.0,
|
||||
"max_consecutive_losses": 0,
|
||||
"profit_factor": 0.0,
|
||||
"max_drawdown_pct": 0.0,
|
||||
"sharpe_ratio": 0.0,
|
||||
"total_fees": 0.0,
|
||||
"close_reasons": {}
|
||||
},
|
||||
"folds": [
|
||||
{
|
||||
"fold": 1,
|
||||
"train_period": "2025-03-18 ~ 2025-09-18",
|
||||
"test_period": "2025-09-18 ~ 2025-10-18",
|
||||
"summary": {
|
||||
"total_trades": 0,
|
||||
"total_pnl": 0.0,
|
||||
"return_pct": 0.0,
|
||||
"win_rate": 0.0,
|
||||
"avg_win": 0.0,
|
||||
"avg_loss": 0.0,
|
||||
"payoff_ratio": 0.0,
|
||||
"max_consecutive_losses": 0,
|
||||
"profit_factor": 0.0,
|
||||
"max_drawdown_pct": 0.0,
|
||||
"sharpe_ratio": 0.0,
|
||||
"total_fees": 0.0,
|
||||
"close_reasons": {}
|
||||
}
|
||||
}
|
||||
],
|
||||
"trades": [],
|
||||
"validation": {
|
||||
"overall": "PASS",
|
||||
"checks": [
|
||||
{
|
||||
"name": "trade_count",
|
||||
"passed": true,
|
||||
"level": "FAIL",
|
||||
"message": "트레이드 없음 (검증 스킵)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
13407
results/weekly/report_2026-03-22.html
Normal file
13407
results/weekly/report_2026-03-22.html
Normal file
File diff suppressed because it is too large
Load Diff
2235
results/weekly/report_2026-03-22.json
Normal file
2235
results/weekly/report_2026-03-22.json
Normal file
File diff suppressed because it is too large
Load Diff
13739
results/weekly/report_2026-03-29.html
Normal file
13739
results/weekly/report_2026-03-29.html
Normal file
File diff suppressed because it is too large
Load Diff
1398
results/weekly/report_2026-03-29.json
Normal file
1398
results/weekly/report_2026-03-29.json
Normal file
File diff suppressed because it is too large
Load Diff
13739
results/weekly/report_2026-04-05.html
Normal file
13739
results/weekly/report_2026-04-05.html
Normal file
File diff suppressed because it is too large
Load Diff
1401
results/weekly/report_2026-04-05.json
Normal file
1401
results/weekly/report_2026-04-05.json
Normal file
File diff suppressed because it is too large
Load Diff
13739
results/weekly/report_2026-04-12.html
Normal file
13739
results/weekly/report_2026-04-12.html
Normal file
File diff suppressed because it is too large
Load Diff
1401
results/weekly/report_2026-04-12.json
Normal file
1401
results/weekly/report_2026-04-12.json
Normal file
File diff suppressed because it is too large
Load Diff
13739
results/weekly/report_2026-04-19.html
Normal file
13739
results/weekly/report_2026-04-19.html
Normal file
File diff suppressed because it is too large
Load Diff
1401
results/weekly/report_2026-04-19.json
Normal file
1401
results/weekly/report_2026-04-19.json
Normal file
File diff suppressed because it is too large
Load Diff
13739
results/weekly/report_2026-04-26.html
Normal file
13739
results/weekly/report_2026-04-26.html
Normal file
File diff suppressed because it is too large
Load Diff
1401
results/weekly/report_2026-04-26.json
Normal file
1401
results/weekly/report_2026-04-26.json
Normal file
File diff suppressed because it is too large
Load Diff
13204
results/weekly/report_2026-05-03.html
Normal file
13204
results/weekly/report_2026-05-03.html
Normal file
File diff suppressed because it is too large
Load Diff
1761
results/weekly/report_2026-05-03.json
Normal file
1761
results/weekly/report_2026-05-03.json
Normal file
File diff suppressed because it is too large
Load Diff
549
results/xrpusdt/backtest_20260322_224712.json
Normal file
549
results/xrpusdt/backtest_20260322_224712.json
Normal 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)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
45
results/xrpusdt/ml_comparison_20260321_195840.json
Normal file
45
results/xrpusdt/ml_comparison_20260321_195840.json
Normal 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
|
||||
}
|
||||
}
|
||||
}
|
||||
44
results/xrpusdt/ml_comparison_20260321_200332.json
Normal file
44
results/xrpusdt/ml_comparison_20260321_200332.json
Normal 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
|
||||
}
|
||||
}
|
||||
}
|
||||
8243
results/xrpusdt/strategy_sweep_20260329_142440.json
Normal file
8243
results/xrpusdt/strategy_sweep_20260329_142440.json
Normal file
File diff suppressed because it is too large
Load Diff
835
results/xrpusdt/wf_backtest_20260318_232111.json
Normal file
835
results/xrpusdt/wf_backtest_20260318_232111.json
Normal 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)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
214
results/xrpusdt/wf_backtest_20260321_194417.json
Normal file
214
results/xrpusdt/wf_backtest_20260321_194417.json
Normal 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)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
382
results/xrpusdt/wf_backtest_20260322_224634.json
Normal file
382
results/xrpusdt/wf_backtest_20260322_224634.json
Normal 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)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
838
results/xrpusdt/wf_backtest_20260322_224727.json
Normal file
838
results/xrpusdt/wf_backtest_20260322_224727.json
Normal 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)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
511
results/xrpusdt/wf_backtest_20260322_231113.json
Normal file
511
results/xrpusdt/wf_backtest_20260322_231113.json
Normal 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)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
865
results/xrpusdt/wf_backtest_20260322_231737.json
Normal file
865
results/xrpusdt/wf_backtest_20260322_231737.json
Normal 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)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
537
results/xrpusdt/wf_backtest_20260322_231837.json
Normal file
537
results/xrpusdt/wf_backtest_20260322_231837.json
Normal 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)"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
3062
results/xrpusdt/wf_backtest_20260322_232159.json
Normal file
3062
results/xrpusdt/wf_backtest_20260322_232159.json
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user