Files
cointrader/results/xrpusdt/backtest_20260306_222621.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

1281 lines
35 KiB
JSON

{
"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.45,
"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
},
"summary": {
"total_trades": 51,
"total_pnl": 446.6039,
"return_pct": 44.66,
"win_rate": 41.18,
"avg_win": 69.0911,
"avg_loss": -33.477,
"profit_factor": 1.44,
"max_drawdown_pct": 10.97,
"sharpe_ratio": 22.33,
"total_fees": 172.3139,
"close_reasons": {
"TAKE_PROFIT": 19,
"STOP_LOSS": 28,
"REVERSE_SIGNAL": 4
}
},
"trades": [
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-03-23 11:00:00+00:00",
"exit_time": "2025-03-23 11:15:00+00:00",
"entry_price": 2.40504,
"exit_price": 2.423685,
"quantity": 2079.2,
"sl": 2.395718,
"tp": 2.423685,
"gross_pnl": 38.764865,
"entry_fee": 2.000224,
"exit_fee": 2.01573,
"net_pnl": 34.74891,
"close_reason": "TAKE_PROFIT",
"ml_proba": 0.4697,
"indicators": {
"rsi": 67.63836355444285,
"macd_hist": 0.00047377792598442617,
"atr": 0.00621470831100566,
"adx": 16.66388203602317
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-03-24 00:15:00+00:00",
"exit_time": "2025-03-24 04:00:00+00:00",
"entry_price": 2.442156,
"exit_price": 2.457596,
"quantity": 2031.1,
"sl": 2.457596,
"tp": 2.411275,
"gross_pnl": -31.360995,
"entry_fee": 1.984105,
"exit_fee": 1.996649,
"net_pnl": -35.341749,
"close_reason": "STOP_LOSS",
"ml_proba": 0.4755,
"indicators": {
"rsi": 67.27467027800083,
"macd_hist": 0.003523811800737309,
"atr": 0.010293599517042966,
"adx": 23.972228670297113
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-04-01 08:15:00+00:00",
"exit_time": "2025-04-01 08:45:00+00:00",
"entry_price": 2.133813,
"exit_price": 2.171226,
"quantity": 2332.7,
"sl": 2.115107,
"tp": 2.171226,
"gross_pnl": 87.271847,
"entry_fee": 1.991019,
"exit_fee": 2.025927,
"net_pnl": 83.254901,
"close_reason": "TAKE_PROFIT",
"ml_proba": 0.4727,
"indicators": {
"rsi": 67.41021385988114,
"macd_hist": 0.0018997583301910577,
"atr": 0.012470791647320312,
"adx": 15.441778935309731
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-04-02 20:00:00+00:00",
"exit_time": "2025-04-02 20:15:00+00:00",
"entry_price": 2.185118,
"exit_price": 2.156396,
"quantity": 2237.2,
"sl": 2.156396,
"tp": 2.242564,
"gross_pnl": -64.258232,
"entry_fee": 1.955419,
"exit_fee": 1.929716,
"net_pnl": -68.143366,
"close_reason": "STOP_LOSS",
"ml_proba": 0.4741,
"indicators": {
"rsi": 67.13554859431878,
"macd_hist": 0.0009805743149053324,
"atr": 0.019148409316554656,
"adx": 21.851568781968272
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-04-12 13:00:00+00:00",
"exit_time": "2025-04-12 13:30:00+00:00",
"entry_price": 2.085709,
"exit_price": 2.113999,
"quantity": 2394.2,
"sl": 2.071563,
"tp": 2.113999,
"gross_pnl": 67.732781,
"entry_fee": 1.997441,
"exit_fee": 2.024534,
"net_pnl": 63.710805,
"close_reason": "TAKE_PROFIT",
"ml_proba": 0.4805,
"indicators": {
"rsi": 71.08975614304354,
"macd_hist": 0.0004691893650785872,
"atr": 0.009430120184239851,
"adx": 41.039203834939215
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-04-22 21:30:00+00:00",
"exit_time": "2025-04-22 21:45:00+00:00",
"entry_price": 2.193119,
"exit_price": 2.231438,
"quantity": 2236.2,
"sl": 2.17396,
"tp": 2.231438,
"gross_pnl": 85.688506,
"entry_fee": 1.961701,
"exit_fee": 1.995977,
"net_pnl": 81.730828,
"close_reason": "TAKE_PROFIT",
"ml_proba": 0.5255,
"indicators": {
"rsi": 71.28868810200514,
"macd_hist": 0.0011497360749260716,
"atr": 0.01277293415280779,
"adx": 21.692956014763777
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-04-24 13:30:00+00:00",
"exit_time": "2025-04-24 15:00:00+00:00",
"entry_price": 2.185681,
"exit_price": 2.206259,
"quantity": 2159.5,
"sl": 2.206259,
"tp": 2.144526,
"gross_pnl": -44.437067,
"entry_fee": 1.887992,
"exit_fee": 1.905766,
"net_pnl": -48.230825,
"close_reason": "STOP_LOSS",
"ml_proba": 0.4707,
"indicators": {
"rsi": 66.83124653295135,
"macd_hist": 0.004927804210500074,
"atr": 0.013718319673320321,
"adx": 28.280377346113976
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-04-30 13:45:00+00:00",
"exit_time": "2025-04-30 17:30:00+00:00",
"entry_price": 2.126213,
"exit_price": 2.178374,
"quantity": 2278.7,
"sl": 2.100132,
"tp": 2.178374,
"gross_pnl": 118.85906,
"entry_fee": 1.938,
"exit_fee": 1.985544,
"net_pnl": 114.935516,
"close_reason": "TAKE_PROFIT",
"ml_proba": 0.5189,
"indicators": {
"rsi": 18.339202470468877,
"macd_hist": -0.009422791981245153,
"atr": 0.01738696923950385,
"adx": 37.751592918358305
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-05-10 10:00:00+00:00",
"exit_time": "2025-05-10 10:45:00+00:00",
"entry_price": 2.416642,
"exit_price": 2.393274,
"quantity": 1871.4,
"sl": 2.393274,
"tp": 2.463377,
"gross_pnl": -43.730431,
"entry_fee": 1.809001,
"exit_fee": 1.791509,
"net_pnl": -47.330942,
"close_reason": "STOP_LOSS",
"ml_proba": 0.4638,
"indicators": {
"rsi": 67.1907405666619,
"macd_hist": 0.0012127757287412558,
"atr": 0.015578508566356581,
"adx": 21.423863499726554
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-05-12 07:00:00+00:00",
"exit_time": "2025-05-12 07:45:00+00:00",
"entry_price": 2.429643,
"exit_price": 2.406718,
"quantity": 1926.9,
"sl": 2.406718,
"tp": 2.475492,
"gross_pnl": -44.173483,
"entry_fee": 1.872672,
"exit_fee": 1.855002,
"net_pnl": -47.901156,
"close_reason": "STOP_LOSS",
"ml_proba": 0.5212,
"indicators": {
"rsi": 69.38835524860481,
"macd_hist": 0.0015144198204793255,
"atr": 0.01528309116959292,
"adx": 13.164741033292744
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-05-22 08:15:00+00:00",
"exit_time": "2025-05-22 11:00:00+00:00",
"entry_price": 2.428543,
"exit_price": 2.410629,
"quantity": 1981.9,
"sl": 2.410629,
"tp": 2.46437,
"gross_pnl": -35.503029,
"entry_fee": 1.925252,
"exit_fee": 1.91105,
"net_pnl": -39.339331,
"close_reason": "STOP_LOSS",
"ml_proba": 0.4908,
"indicators": {
"rsi": 64.07310598104799,
"macd_hist": 0.0011319469214623882,
"atr": 0.011942421800759469,
"adx": 17.9303385003931
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-05-23 02:15:00+00:00",
"exit_time": "2025-05-23 04:30:00+00:00",
"entry_price": 2.470853,
"exit_price": 2.438268,
"quantity": 1982.6,
"sl": 2.487145,
"tp": 2.438268,
"gross_pnl": 64.602331,
"entry_fee": 1.959485,
"exit_fee": 1.933644,
"net_pnl": 60.709201,
"close_reason": "TAKE_PROFIT",
"ml_proba": 0.5847,
"indicators": {
"rsi": 75.08406565689027,
"macd_hist": 0.004905452274126379,
"atr": 0.010861550575088958,
"adx": 21.704459542796908
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-05-23 12:15:00+00:00",
"exit_time": "2025-05-23 22:45:00+00:00",
"entry_price": 2.340634,
"exit_price": 2.313574,
"quantity": 2038.0,
"sl": 2.313574,
"tp": 2.394755,
"gross_pnl": -55.148985,
"entry_fee": 1.908085,
"exit_fee": 1.886025,
"net_pnl": -58.943095,
"close_reason": "STOP_LOSS",
"ml_proba": 0.4711,
"indicators": {
"rsi": 18.100631569972105,
"macd_hist": -0.011460760086984913,
"atr": 0.018040230723781962,
"adx": 33.73789035029933
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-05-30 00:45:00+00:00",
"exit_time": "2025-05-30 02:15:00+00:00",
"entry_price": 2.155015,
"exit_price": 2.207692,
"quantity": 2275.4,
"sl": 2.128677,
"tp": 2.207692,
"gross_pnl": 119.859678,
"entry_fee": 1.961409,
"exit_fee": 2.009353,
"net_pnl": 115.888917,
"close_reason": "TAKE_PROFIT",
"ml_proba": 0.7602,
"indicators": {
"rsi": 13.158390769693794,
"macd_hist": -0.00797002840932291,
"atr": 0.01755877038478085,
"adx": 31.17699185815243
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-06-14 04:15:00+00:00",
"exit_time": "2025-06-14 08:15:00+00:00",
"entry_price": 2.164584,
"exit_price": 2.169417,
"quantity": 2132.9,
"sl": 2.175701,
"tp": 2.142349,
"gross_pnl": -10.309159,
"entry_fee": 1.846736,
"exit_fee": 1.85086,
"net_pnl": -14.006755,
"close_reason": "REVERSE_SIGNAL",
"ml_proba": 0.6115,
"indicators": {
"rsi": 69.92512937431012,
"macd_hist": 0.0026939087409630215,
"atr": 0.007411409293121909,
"adx": 20.278562659091943
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-06-14 08:15:00+00:00",
"exit_time": "2025-06-14 15:15:00+00:00",
"entry_price": 2.169417,
"exit_price": 2.157428,
"quantity": 2151.2,
"sl": 2.157428,
"tp": 2.193396,
"gross_pnl": -25.791619,
"entry_fee": 1.86674,
"exit_fee": 1.856423,
"net_pnl": -29.514782,
"close_reason": "STOP_LOSS",
"ml_proba": 0.4573,
"indicators": {
"rsi": 63.780412640957806,
"macd_hist": 0.00047636519207320616,
"atr": 0.007992939982748314,
"adx": 23.493601775103475
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-07-07 10:30:00+00:00",
"exit_time": "2025-07-07 12:45:00+00:00",
"entry_price": 2.291271,
"exit_price": 2.270246,
"quantity": 2074.9,
"sl": 2.301783,
"tp": 2.270246,
"gross_pnl": 43.62463,
"entry_fee": 1.901663,
"exit_fee": 1.884213,
"net_pnl": 39.838753,
"close_reason": "TAKE_PROFIT",
"ml_proba": 0.461,
"indicators": {
"rsi": 70.9375265622055,
"macd_hist": 0.0022343973370783808,
"atr": 0.007008310395535631,
"adx": 19.142084040682427
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-08-09 05:00:00+00:00",
"exit_time": "2025-08-09 13:15:00+00:00",
"entry_price": 3.312231,
"exit_price": 3.292646,
"quantity": 1403.0,
"sl": 3.292646,
"tp": 3.351402,
"gross_pnl": -27.478332,
"entry_fee": 1.858824,
"exit_fee": 1.847833,
"net_pnl": -31.184989,
"close_reason": "STOP_LOSS",
"ml_proba": 0.5224,
"indicators": {
"rsi": 59.23947009852718,
"macd_hist": 0.0003900966619318647,
"atr": 0.013056940780994142,
"adx": 10.004914128021252
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-08-14 12:30:00+00:00",
"exit_time": "2025-08-14 21:30:00+00:00",
"entry_price": 3.132487,
"exit_price": 3.035326,
"quantity": 1513.6,
"sl": 3.181067,
"tp": 3.035326,
"gross_pnl": 147.062468,
"entry_fee": 1.896533,
"exit_fee": 1.837708,
"net_pnl": 143.328228,
"close_reason": "TAKE_PROFIT",
"ml_proba": 0.8857,
"indicators": {
"rsi": 20.976757311144258,
"macd_hist": -0.0032317207367513617,
"atr": 0.032386907216145205,
"adx": 38.70665879423988
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-09-01 00:15:00+00:00",
"exit_time": "2025-09-01 02:45:00+00:00",
"entry_price": 2.750075,
"exit_price": 2.73304,
"quantity": 1542.7,
"sl": 2.73304,
"tp": 2.784144,
"gross_pnl": -26.279223,
"entry_fee": 1.697016,
"exit_fee": 1.686505,
"net_pnl": -29.662744,
"close_reason": "STOP_LOSS",
"ml_proba": 0.5754,
"indicators": {
"rsi": 20.77769666120342,
"macd_hist": -0.0054454742314916215,
"atr": 0.01135637668410908,
"adx": 32.97685850211662
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-09-07 13:30:00+00:00",
"exit_time": "2025-09-07 14:00:00+00:00",
"entry_price": 2.840884,
"exit_price": 2.853506,
"quantity": 1539.7,
"sl": 2.834573,
"tp": 2.853506,
"gross_pnl": 19.43456,
"entry_fee": 1.749644,
"exit_fee": 1.757417,
"net_pnl": 15.927499,
"close_reason": "TAKE_PROFIT",
"ml_proba": 0.4683,
"indicators": {
"rsi": 70.99242950155421,
"macd_hist": 0.0004291198138089815,
"atr": 0.00420743445077315,
"adx": 18.35128796934649
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-09-09 07:00:00+00:00",
"exit_time": "2025-09-09 07:15:00+00:00",
"entry_price": 3.009099,
"exit_price": 3.026836,
"quantity": 1434.1,
"sl": 3.026836,
"tp": 2.973625,
"gross_pnl": -25.436588,
"entry_fee": 1.72614,
"exit_fee": 1.736314,
"net_pnl": -28.899042,
"close_reason": "STOP_LOSS",
"ml_proba": 0.4623,
"indicators": {
"rsi": 73.38194905544738,
"macd_hist": 0.006160466326798198,
"atr": 0.011824646391069808,
"adx": 28.105801823844523
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-09-12 20:45:00+00:00",
"exit_time": "2025-09-13 08:45:00+00:00",
"entry_price": 3.121788,
"exit_price": 3.143446,
"quantity": 1421.5,
"sl": 3.143446,
"tp": 3.078472,
"gross_pnl": -30.78681,
"entry_fee": 1.775049,
"exit_fee": 1.787363,
"net_pnl": -34.349222,
"close_reason": "STOP_LOSS",
"ml_proba": 0.4532,
"indicators": {
"rsi": 78.88995114530964,
"macd_hist": 0.004793783646225545,
"atr": 0.014438649390670705,
"adx": 33.848649235778474
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-09-14 00:45:00+00:00",
"exit_time": "2025-09-14 01:15:00+00:00",
"entry_price": 3.109189,
"exit_price": 3.086009,
"quantity": 1468.9,
"sl": 3.120779,
"tp": 3.086009,
"gross_pnl": 34.049205,
"entry_fee": 1.826835,
"exit_fee": 1.813215,
"net_pnl": 30.409154,
"close_reason": "TAKE_PROFIT",
"ml_proba": 0.4996,
"indicators": {
"rsi": 38.7433537799598,
"macd_hist": -0.0002412627790731375,
"atr": 0.007726689972056756,
"adx": 19.663365885823197
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-10-01 09:15:00+00:00",
"exit_time": "2025-10-01 09:45:00+00:00",
"entry_price": 2.927107,
"exit_price": 2.946348,
"quantity": 1525.7,
"sl": 2.946348,
"tp": 2.888625,
"gross_pnl": -29.356267,
"entry_fee": 1.786355,
"exit_fee": 1.798098,
"net_pnl": -32.940719,
"close_reason": "STOP_LOSS",
"ml_proba": 0.4532,
"indicators": {
"rsi": 80.49171298427291,
"macd_hist": 0.009335434136548462,
"atr": 0.012827452561969592,
"adx": 26.949561875482654
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-10-04 08:15:00+00:00",
"exit_time": "2025-10-04 08:45:00+00:00",
"entry_price": 3.006199,
"exit_price": 2.9997,
"quantity": 1526.1,
"sl": 3.017102,
"tp": 2.984394,
"gross_pnl": 9.91875,
"entry_fee": 1.835104,
"exit_fee": 1.831137,
"net_pnl": 6.252508,
"close_reason": "REVERSE_SIGNAL",
"ml_proba": 0.4629,
"indicators": {
"rsi": 32.18935028498804,
"macd_hist": -0.0006595483423006182,
"atr": 0.007268324559455461,
"adx": 14.256879091102421
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-10-05 19:00:00+00:00",
"exit_time": "2025-10-06 02:45:00+00:00",
"entry_price": 2.953995,
"exit_price": 2.990353,
"quantity": 1548.4,
"sl": 2.935817,
"tp": 2.990353,
"gross_pnl": 56.295542,
"entry_fee": 1.829587,
"exit_fee": 1.852105,
"net_pnl": 52.613851,
"close_reason": "TAKE_PROFIT",
"ml_proba": 0.6037,
"indicators": {
"rsi": 22.68978567945751,
"macd_hist": -0.003579814992577557,
"atr": 0.012119078271027253,
"adx": 40.35268005132035
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-10-10 03:30:00+00:00",
"exit_time": "2025-10-10 04:30:00+00:00",
"entry_price": 2.824282,
"exit_price": 2.80916,
"quantity": 1553.7,
"sl": 2.80916,
"tp": 2.854527,
"gross_pnl": -23.495172,
"entry_fee": 1.755235,
"exit_fee": 1.745837,
"net_pnl": -26.996244,
"close_reason": "STOP_LOSS",
"ml_proba": 0.5018,
"indicators": {
"rsi": 62.01041612364824,
"macd_hist": 0.0007930491111498017,
"atr": 0.010081385063037305,
"adx": 15.010710180807658
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-10-10 20:45:00+00:00",
"exit_time": "2025-10-10 21:00:00+00:00",
"entry_price": 2.49595,
"exit_price": 2.373231,
"quantity": 1801.4,
"sl": 2.55731,
"tp": 2.373231,
"gross_pnl": 221.06706,
"entry_fee": 1.798482,
"exit_fee": 1.710055,
"net_pnl": 217.558523,
"close_reason": "TAKE_PROFIT",
"ml_proba": 0.8864,
"indicators": {
"rsi": 17.950089434981262,
"macd_hist": -0.010381022790605134,
"atr": 0.0409065283069771,
"adx": 56.13982003832872
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-10-13 06:30:00+00:00",
"exit_time": "2025-10-13 11:15:00+00:00",
"entry_price": 2.586659,
"exit_price": 2.558221,
"quantity": 1328.9,
"sl": 2.558221,
"tp": 2.643534,
"gross_pnl": -37.790627,
"entry_fee": 1.374964,
"exit_fee": 1.359848,
"net_pnl": -40.525439,
"close_reason": "STOP_LOSS",
"ml_proba": 0.4925,
"indicators": {
"rsi": 64.90781282379524,
"macd_hist": 0.001216598424255715,
"atr": 0.0189583500827506,
"adx": 24.51828115375263
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-10-14 16:15:00+00:00",
"exit_time": "2025-10-15 02:15:00+00:00",
"entry_price": 2.508449,
"exit_price": 2.523552,
"quantity": 1469.5,
"sl": 2.544104,
"tp": 2.437139,
"gross_pnl": -22.194152,
"entry_fee": 1.474466,
"exit_fee": 1.483344,
"net_pnl": -25.151963,
"close_reason": "REVERSE_SIGNAL",
"ml_proba": 0.5683,
"indicators": {
"rsi": 68.85343626442496,
"macd_hist": 0.010657476860447013,
"atr": 0.023769893751947626,
"adx": 39.4255156509299
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-10-27 16:00:00+00:00",
"exit_time": "2025-10-27 21:00:00+00:00",
"entry_price": 2.674233,
"exit_price": 2.623904,
"quantity": 1433.6,
"sl": 2.699397,
"tp": 2.623904,
"gross_pnl": 72.150456,
"entry_fee": 1.533512,
"exit_fee": 1.504652,
"net_pnl": 69.112292,
"close_reason": "TAKE_PROFIT",
"ml_proba": 0.5625,
"indicators": {
"rsi": 66.34709912155408,
"macd_hist": 0.005634259928464551,
"atr": 0.01677605457389115,
"adx": 23.34205636197947
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-11-09 23:00:00+00:00",
"exit_time": "2025-11-10 00:00:00+00:00",
"entry_price": 2.367437,
"exit_price": 2.346123,
"quantity": 1454.4,
"sl": 2.346123,
"tp": 2.410064,
"gross_pnl": -30.998616,
"entry_fee": 1.37728,
"exit_fee": 1.364881,
"net_pnl": -33.740777,
"close_reason": "STOP_LOSS",
"ml_proba": 0.5333,
"indicators": {
"rsi": 70.79337728670897,
"macd_hist": 0.0008725935921229458,
"atr": 0.014209120053368062,
"adx": 35.31657325998852
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-11-28 01:45:00+00:00",
"exit_time": "2025-11-28 05:30:00+00:00",
"entry_price": 2.171517,
"exit_price": 2.200054,
"quantity": 1682.4,
"sl": 2.157249,
"tp": 2.200054,
"gross_pnl": 48.010477,
"entry_fee": 1.461344,
"exit_fee": 1.480548,
"net_pnl": 45.068584,
"close_reason": "TAKE_PROFIT",
"ml_proba": 0.6381,
"indicators": {
"rsi": 22.942287299402874,
"macd_hist": -0.003478384036068617,
"atr": 0.009512299239799599,
"adx": 35.89384138114383
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-12-03 02:15:00+00:00",
"exit_time": "2025-12-03 11:00:00+00:00",
"entry_price": 2.185018,
"exit_price": 2.167996,
"quantity": 1551.6,
"sl": 2.167996,
"tp": 2.219064,
"gross_pnl": -26.412304,
"entry_fee": 1.35611,
"exit_fee": 1.345545,
"net_pnl": -29.113959,
"close_reason": "STOP_LOSS",
"ml_proba": 0.4614,
"indicators": {
"rsi": 69.30810031262361,
"macd_hist": 0.0011208506574461857,
"atr": 0.011348416152849924,
"adx": 24.033050875499793
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-12-19 13:15:00+00:00",
"exit_time": "2025-12-19 15:15:00+00:00",
"entry_price": 1.878712,
"exit_price": 1.889911,
"quantity": 1903.3,
"sl": 1.889911,
"tp": 1.856315,
"gross_pnl": -21.314056,
"entry_fee": 1.430301,
"exit_fee": 1.438827,
"net_pnl": -24.183184,
"close_reason": "STOP_LOSS",
"ml_proba": 0.5945,
"indicators": {
"rsi": 68.16547032772114,
"macd_hist": -4.5929936914913816e-05,
"atr": 0.007465649526915487,
"adx": 40.69667585881617
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-12-21 09:15:00+00:00",
"exit_time": "2025-12-21 13:00:00+00:00",
"entry_price": 1.940806,
"exit_price": 1.92321,
"quantity": 1918.6,
"sl": 1.949604,
"tp": 1.92321,
"gross_pnl": 33.758621,
"entry_fee": 1.489452,
"exit_fee": 1.475949,
"net_pnl": 30.79322,
"close_reason": "TAKE_PROFIT",
"ml_proba": 0.4792,
"indicators": {
"rsi": 65.76643793272899,
"macd_hist": 0.002238938403731349,
"atr": 0.005865148397743472,
"adx": 20.89431391053009
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2025-12-23 03:00:00+00:00",
"exit_time": "2025-12-23 10:45:00+00:00",
"entry_price": 1.888511,
"exit_price": 1.899093,
"quantity": 1881.8,
"sl": 1.899093,
"tp": 1.867347,
"gross_pnl": -19.913264,
"entry_fee": 1.42152,
"exit_fee": 1.429485,
"net_pnl": -22.76427,
"close_reason": "STOP_LOSS",
"ml_proba": 0.4996,
"indicators": {
"rsi": 33.27156265075251,
"macd_hist": -0.00040059391362373166,
"atr": 0.007054686661170676,
"adx": 15.759226809581437
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-12-25 22:45:00+00:00",
"exit_time": "2025-12-25 23:30:00+00:00",
"entry_price": 1.844884,
"exit_price": 1.836907,
"quantity": 2003.1,
"sl": 1.836907,
"tp": 1.86084,
"gross_pnl": -15.979996,
"entry_fee": 1.478195,
"exit_fee": 1.471803,
"net_pnl": -18.929995,
"close_reason": "STOP_LOSS",
"ml_proba": 0.6099,
"indicators": {
"rsi": 22.431779710524914,
"macd_hist": -0.0022220637884117073,
"atr": 0.005318421811566107,
"adx": 20.682478174103885
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2025-12-30 14:45:00+00:00",
"exit_time": "2025-12-30 15:00:00+00:00",
"entry_price": 1.872587,
"exit_price": 1.864721,
"quantity": 2034.1,
"sl": 1.864721,
"tp": 1.888319,
"gross_pnl": -16.000448,
"entry_fee": 1.523612,
"exit_fee": 1.517212,
"net_pnl": -19.041272,
"close_reason": "STOP_LOSS",
"ml_proba": 0.4638,
"indicators": {
"rsi": 65.57311944939059,
"macd_hist": 0.0003835495552406453,
"atr": 0.005244071365605494,
"adx": 15.102565712755416
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2026-01-11 12:45:00+00:00",
"exit_time": "2026-01-11 14:45:00+00:00",
"entry_price": 2.10289,
"exit_price": 2.108508,
"quantity": 1863.0,
"sl": 2.108508,
"tp": 2.091653,
"gross_pnl": -10.467425,
"entry_fee": 1.567073,
"exit_fee": 1.57126,
"net_pnl": -13.605758,
"close_reason": "STOP_LOSS",
"ml_proba": 0.5098,
"indicators": {
"rsi": 67.90556933822843,
"macd_hist": 0.0011236246859926337,
"atr": 0.0037457236024969268,
"adx": 14.695994703326152
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2026-01-17 15:00:00+00:00",
"exit_time": "2026-01-17 15:15:00+00:00",
"entry_price": 2.074093,
"exit_price": 2.080899,
"quantity": 1926.1,
"sl": 2.080899,
"tp": 2.06048,
"gross_pnl": -13.109859,
"entry_fee": 1.597964,
"exit_fee": 1.603208,
"net_pnl": -16.311031,
"close_reason": "STOP_LOSS",
"ml_proba": 0.594,
"indicators": {
"rsi": 69.16433708427633,
"macd_hist": 0.0015812464458042678,
"atr": 0.004537618137465387,
"adx": 16.189151941493567
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2026-01-19 00:15:00+00:00",
"exit_time": "2026-01-19 16:15:00+00:00",
"entry_price": 1.932293,
"exit_price": 1.992259,
"quantity": 2113.4,
"sl": 1.90231,
"tp": 1.992259,
"gross_pnl": 126.730954,
"entry_fee": 1.633483,
"exit_fee": 1.684176,
"net_pnl": 123.413295,
"close_reason": "TAKE_PROFIT",
"ml_proba": 0.4711,
"indicators": {
"rsi": 13.54901226600254,
"macd_hist": -0.01403438855925851,
"atr": 0.0199884789258432,
"adx": 39.319225558029224
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2026-01-28 09:45:00+00:00",
"exit_time": "2026-01-28 14:15:00+00:00",
"entry_price": 1.931393,
"exit_price": 1.921506,
"quantity": 1765.8,
"sl": 1.921506,
"tp": 1.951168,
"gross_pnl": -17.45946,
"entry_fee": 1.364182,
"exit_fee": 1.357198,
"net_pnl": -20.180839,
"close_reason": "STOP_LOSS",
"ml_proba": 0.5361,
"indicators": {
"rsi": 69.49360491728265,
"macd_hist": 0.0009318141405021494,
"atr": 0.006591708992321306,
"adx": 23.59253632415462
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2026-01-29 14:15:00+00:00",
"exit_time": "2026-01-29 14:30:00+00:00",
"entry_price": 1.853915,
"exit_price": 1.862898,
"quantity": 1910.5,
"sl": 1.862898,
"tp": 1.835947,
"gross_pnl": -17.163744,
"entry_fee": 1.416762,
"exit_fee": 1.423627,
"net_pnl": -20.004132,
"close_reason": "STOP_LOSS",
"ml_proba": 0.5373,
"indicators": {
"rsi": 27.456064937316995,
"macd_hist": -0.0003642198670342086,
"atr": 0.00598926765439418,
"adx": 29.652186976597193
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2026-01-29 15:30:00+00:00",
"exit_time": "2026-01-29 17:15:00+00:00",
"entry_price": 1.792279,
"exit_price": 1.830034,
"quantity": 2046.7,
"sl": 1.773402,
"tp": 1.830034,
"gross_pnl": 77.273078,
"entry_fee": 1.467303,
"exit_fee": 1.498212,
"net_pnl": 74.307562,
"close_reason": "TAKE_PROFIT",
"ml_proba": 0.5189,
"indicators": {
"rsi": 16.64017828809098,
"macd_hist": -0.007714360437304368,
"atr": 0.012584986826922885,
"adx": 45.78370985540058
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2026-01-30 01:30:00+00:00",
"exit_time": "2026-01-30 02:15:00+00:00",
"entry_price": 1.743626,
"exit_price": 1.733473,
"quantity": 1845.3,
"sl": 1.766432,
"tp": 1.698012,
"gross_pnl": 18.734021,
"entry_fee": 1.287005,
"exit_fee": 1.279511,
"net_pnl": 16.167504,
"close_reason": "REVERSE_SIGNAL",
"ml_proba": 0.6829,
"indicators": {
"rsi": 19.89605260729724,
"macd_hist": -0.003114826868995284,
"atr": 0.015204543588406344,
"adx": 20.39618087837
}
},
{
"symbol": "XRPUSDT",
"side": "SHORT",
"entry_time": "2026-02-05 15:15:00+00:00",
"exit_time": "2026-02-05 15:45:00+00:00",
"entry_price": 1.282372,
"exit_price": 1.316729,
"quantity": 2431.3,
"sl": 1.316729,
"tp": 1.213658,
"gross_pnl": -83.532156,
"entry_fee": 1.247132,
"exit_fee": 1.280545,
"net_pnl": -86.059834,
"close_reason": "STOP_LOSS",
"ml_proba": 0.473,
"indicators": {
"rsi": 23.261339624654603,
"macd_hist": -0.0031380743956073674,
"atr": 0.02290466179108103,
"adx": 40.264445756845205
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2026-02-21 14:00:00+00:00",
"exit_time": "2026-02-21 14:30:00+00:00",
"entry_price": 1.447345,
"exit_price": 1.460803,
"quantity": 2532.9,
"sl": 1.440616,
"tp": 1.460803,
"gross_pnl": 34.088774,
"entry_fee": 1.466392,
"exit_fee": 1.480027,
"net_pnl": 31.142355,
"close_reason": "TAKE_PROFIT",
"ml_proba": 0.5205,
"indicators": {
"rsi": 65.66004200808446,
"macd_hist": 0.0002040437812304472,
"atr": 0.004486132335137116,
"adx": 22.48469775979257
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2026-02-25 01:00:00+00:00",
"exit_time": "2026-02-25 03:15:00+00:00",
"entry_price": 1.383138,
"exit_price": 1.370396,
"quantity": 2523.3,
"sl": 1.370396,
"tp": 1.408624,
"gross_pnl": -32.153469,
"entry_fee": 1.396029,
"exit_fee": 1.383168,
"net_pnl": -34.932666,
"close_reason": "STOP_LOSS",
"ml_proba": 0.5054,
"indicators": {
"rsi": 73.1504226046038,
"macd_hist": 0.0014379189881605118,
"atr": 0.008495084124686957,
"adx": 16.57739949935574
}
},
{
"symbol": "XRPUSDT",
"side": "LONG",
"entry_time": "2026-02-28 06:15:00+00:00",
"exit_time": "2026-02-28 06:30:00+00:00",
"entry_price": 1.331433,
"exit_price": 1.322797,
"quantity": 2781.9,
"sl": 1.322797,
"tp": 1.348705,
"gross_pnl": -24.024911,
"entry_fee": 1.481566,
"exit_fee": 1.471956,
"net_pnl": -26.978432,
"close_reason": "STOP_LOSS",
"ml_proba": 0.7416,
"indicators": {
"rsi": 22.07257216583472,
"macd_hist": -0.0019878129960472814,
"atr": 0.005757434514952236,
"adx": 36.23941502849302
}
}
],
"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": "승률 정상 (41.2%)"
},
{
"name": "win_rate_low",
"passed": true,
"level": "WARNING",
"message": "승률 정상 (41.2%)"
},
{
"name": "mdd_nonzero",
"passed": true,
"level": "WARNING",
"message": "MDD 정상 (11.0%)"
},
{
"name": "trade_frequency",
"passed": false,
"level": "WARNING",
"message": "월 평균 4.5건 < 5건 — 신호 생성 부족"
},
{
"name": "profit_factor_high",
"passed": true,
"level": "WARNING",
"message": "PF 정상 (1.44)"
}
]
}
}