Files
cointrader/results/trxusdt/wf_backtest_20260306_231211.json
21in7 cd9d379bc2 feat: implement multi-symbol dashboard with updated data handling
- Added support for multi-symbol trading (XRP, TRX, DOGE) in the dashboard.
- Updated bot log messages to include [SYMBOL] prefix for better tracking.
- Enhanced log parser for multi-symbol state tracking and updated database schema.
- Introduced new API endpoints and UI components for symbol filtering and display.
- Added new model files and backtest results for multi-symbol strategies.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 23:43:41 +09:00

900 lines
23 KiB
JSON

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