Archived
research(5m): прогон 14 методов на 250 парах, сверка движка, издержки, графики
ЧТО: code/ (стенд и методы), results/ (сводки), charts/ (3 графика), reports/ (издержки, плацебо, по годам), docs/REJECTED.md. ПОЧЕМУ: цель — найти кандидатов на 5м или доказать с цифрами их отсутствие. КАК ПРОВЕРЕНО: движок сверен с прод-движком TON-бота 1:1; плацебо и рандом-контроль в отчёте; бутстрап по дням.
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
# Планка издержек на 5-минутных свечах
|
||||
|
||||
Посчитано скриптом `tools/costs.py` по 249 парам 36 328 179 барам 5м (данные Bybit).
|
||||
|
||||
## Что стоит торговля
|
||||
|
||||
- Комиссия тейкера: 0.055% на ногу, **0.11% на круг** (вход+выход);
|
||||
- Комиссия мейкера: 0.02% на ногу, **0.04% на круг**;
|
||||
- Проскальзывание: 1 б.п. на ногу для топ-30 по обороту, 3 б.п. для остальных пар;
|
||||
- Funding учитывается только при удержании через 00/08/16 UTC (0,006% за 8ч на BTC — на фоне комиссии незначимо, но в движке учтено).
|
||||
|
||||
## Типичные движения (факт по данным)
|
||||
|
||||
- Средний модуль доходности за 5м: **25.81 б.п.** (медиана по парам 23.33 б.п.);
|
||||
- Средний модуль доходности за 1 час: **90.1 б.п.**
|
||||
|
||||
Вывод: комиссия на круг (11 б.п.) сопоставима с типичным движением за 5 минут. Значит «скальпинг по одному 5м-бару» убыточен по построению, а осмысленны конструкции, где цель в 3–10 раз больше комиссии (сигнал на 5м, удержание десятки минут) либо мейкер-исполнение, либо кросс-секционные корзины.
|
||||
|
||||
## Порог безубыточной точности p* = (Стоп + Издержки) / (Цель + Стоп)
|
||||
|
||||
| Цель | Стоп | Тейкер (11 б.п.) | Мейкер (4 б.п.) |
|
||||
|---|---|---|---|
|
||||
| 0.1% | 0.1% | нужно выигрывать 105.0% | нужно выигрывать 70.0% |
|
||||
| 0.2% | 0.2% | нужно выигрывать 77.5% | нужно выигрывать 60.0% |
|
||||
| 0.3% | 0.2% | нужно выигрывать 62.0% | нужно выигрывать 48.0% |
|
||||
| 0.5% | 0.3% | нужно выигрывать 51.2% | нужно выигрывать 42.5% |
|
||||
| 1.0% | 0.5% | нужно выигрывать 40.7% | нужно выигрывать 36.0% |
|
||||
| 1.0% | 1.0% | нужно выигрывать 55.5% | нужно выигрывать 52.0% |
|
||||
| 2.0% | 1.0% | нужно выигрывать 37.0% | нужно выигрывать 34.7% |
|
||||
|
||||
## Топ-15 пар по среднему движению 5м
|
||||
|
||||
| Пара | баров | |r5м|, б.п. | σ 5м, б.п. | |r1ч|, б.п. |
|
||||
|---|---|---|---|---|
|
||||
| 4STOCKUSDT | 5596 | 98.97 | 156.51 | 345.70 |
|
||||
| LONGXIAUSDT | 4181 | 83.76 | 138.74 | 294.47 |
|
||||
| NIULAIUSDT | 9092 | 74.86 | 118.64 | 263.87 |
|
||||
| MARSCOINUSDT | 7898 | 73.25 | 121.57 | 265.85 |
|
||||
| BTWUSDT | 33271 | 71.21 | 126.09 | 245.68 |
|
||||
| CASHCATUSDT | 15682 | 71.03 | 107.43 | 256.14 |
|
||||
| PONSUSDT | 8201 | 62.01 | 89.07 | 215.86 |
|
||||
| BEATUSDT | 89701 | 58.67 | 96.51 | 203.93 |
|
||||
| LABUSDT | 96920 | 53.50 | 107.38 | 188.50 |
|
||||
| STONKUSDT | 3036 | 52.80 | 75.32 | 243.38 |
|
||||
| AKEUSDT | 104785 | 49.21 | 102.05 | 173.05 |
|
||||
| RIVERUSDT | 98326 | 48.23 | 83.57 | 167.50 |
|
||||
| HUSDT | 132627 | 46.78 | 89.22 | 160.55 |
|
||||
| PIPPINUSDT | 178429 | 45.00 | 91.74 | 156.84 |
|
||||
| CAPUSDT | 26421 | 44.47 | 78.81 | 154.40 |
|
||||
@@ -0,0 +1,22 @@
|
||||
# Плацебо- и рандом-контроль
|
||||
|
||||
Плацебо — правило, применённое к сигналу, сдвинутому вперёд на горизонт удержания.
|
||||
Рандом — случайные входы той же частоты и направления. Если EV метода близко к плацебо,
|
||||
значит «эдж» был движением рынка, а не сигналом.
|
||||
|
||||
| Метод | EV метода | плацебо | рандом | вердикт контроля |
|
||||
|---|---|---|---|---|
|
||||
| prod_mr_5m | -4.46 | 0.0 | 0.0 | контроль не проведён (не базовый метод) |
|
||||
| clv_flow | -9.88 | 0.0 | 0.0 | контроль не проведён (не базовый метод) |
|
||||
| pairs_btc_eth | -13.22 | 0.0 | 0.0 | контроль не проведён (не базовый метод) |
|
||||
| intraday_momentum | -13.8 | 0.0 | 0.0 | контроль не проведён (не базовый метод) |
|
||||
| xs_reversal_15m | -14.29 | -16.69 | -16.26 | метод не отличается от плацебо |
|
||||
| xs_reversal_costaware | -14.29 | 0.0 | 0.0 | контроль не проведён (не базовый метод) |
|
||||
| hour_xs_reversal | -14.7 | 0.0 | 0.0 | контроль не проведён (не базовый метод) |
|
||||
| ou_ema_costaware | -14.74 | 0.0 | 0.0 | контроль не проведён (не базовый метод) |
|
||||
| ou_ema_revert | -14.84 | 0.0 | 0.0 | контроль не проведён (не базовый метод) |
|
||||
| lead_lag_btc | -15.64 | 0.0 | 0.0 | контроль не проведён (не базовый метод) |
|
||||
| liquidity_sweep | -15.85 | 0.0 | 0.0 | контроль не проведён (не базовый метод) |
|
||||
| vwap_revert | -16.42 | 0.0 | 0.0 | контроль не проведён (не базовый метод) |
|
||||
| vol_breakout | -18.51 | 0.0 | 0.0 | контроль не проведён (не базовый метод) |
|
||||
| xs_momentum_15m | -18.87 | 0.0 | 0.0 | контроль не проведён (не базовый метод) |
|
||||
@@ -0,0 +1,85 @@
|
||||
method,year,ev_bp,n,n_trades
|
||||
clv_flow,2024,-12.194,25421,25421
|
||||
clv_flow,2025,-7.451,114859,114859
|
||||
clv_flow,2026,-11.756,116737,116737
|
||||
clv_flow_maker,2024,-5.194,25421,25421
|
||||
clv_flow_maker,2025,-0.451,114859,114859
|
||||
clv_flow_maker,2026,-4.756,116737,116737
|
||||
hour_xs_reversal,2024,-13.138,36800,36800
|
||||
hour_xs_reversal,2025,-15.361,146000,146000
|
||||
hour_xs_reversal,2026,-14.353,108400,108400
|
||||
hour_xs_reversal_maker,2024,-6.138,36800,36800
|
||||
hour_xs_reversal_maker,2025,-8.361,146000,146000
|
||||
hour_xs_reversal_maker,2026,-7.353,108400,108400
|
||||
intraday_momentum,2024,-3.978,11098,11098
|
||||
intraday_momentum,2025,-21.422,56698,56698
|
||||
intraday_momentum,2026,-8.227,57975,57975
|
||||
intraday_momentum_maker,2024,3.022,11098,11098
|
||||
intraday_momentum_maker,2025,-14.422,56698,56698
|
||||
intraday_momentum_maker,2026,-1.227,57975,57975
|
||||
lead_lag_btc,2024,-16.295,203946,203946
|
||||
lead_lag_btc,2025,-15.415,1055623,1055623
|
||||
lead_lag_btc,2026,-15.744,1051708,1051708
|
||||
lead_lag_btc_maker,2024,-9.295,203946,203946
|
||||
lead_lag_btc_maker,2025,-8.415,1055623,1055623
|
||||
lead_lag_btc_maker,2026,-8.744,1051708,1051708
|
||||
liquidity_sweep,2024,-16.179,109657,109657
|
||||
liquidity_sweep,2025,-15.979,534572,534572
|
||||
liquidity_sweep,2026,-15.651,521825,521825
|
||||
liquidity_sweep_maker,2024,-9.179,109657,109657
|
||||
liquidity_sweep_maker,2025,-8.979,534572,534572
|
||||
liquidity_sweep_maker,2026,-8.651,521825,521825
|
||||
ou_ema_costaware,2024,-17.433,93868,93868
|
||||
ou_ema_costaware,2025,-15.616,477667,477667
|
||||
ou_ema_costaware,2026,-13.327,475554,475554
|
||||
ou_ema_costaware_maker,2024,-10.433,93868,93868
|
||||
ou_ema_costaware_maker,2025,-8.616,477667,477667
|
||||
ou_ema_costaware_maker,2026,-6.327,475554,475554
|
||||
ou_ema_revert,2024,-17.399,97940,97940
|
||||
ou_ema_revert,2025,-15.645,502849,502849
|
||||
ou_ema_revert,2026,-13.588,523114,523114
|
||||
ou_ema_revert_maker,2024,-10.399,97940,97940
|
||||
ou_ema_revert_maker,2025,-8.645,502849,502849
|
||||
ou_ema_revert_maker,2026,-6.588,523114,523114
|
||||
pairs_btc_eth,2024,-15.364,242,242
|
||||
pairs_btc_eth,2025,-14.429,990,990
|
||||
pairs_btc_eth,2026,-10.802,712,712
|
||||
pairs_btc_eth_maker,2024,-8.364,242,242
|
||||
pairs_btc_eth_maker,2025,-7.429,990,990
|
||||
pairs_btc_eth_maker,2026,-3.802,712,712
|
||||
prod_mr_5m,2024,-4.717,10186,10186
|
||||
prod_mr_5m,2025,-3.832,45902,45902
|
||||
prod_mr_5m,2026,-5.004,49001,49001
|
||||
prod_mr_5m_maker,2024,2.283,10186,10186
|
||||
prod_mr_5m_maker,2025,3.168,45902,45902
|
||||
prod_mr_5m_maker,2026,1.996,49001,49001
|
||||
vol_breakout,2024,-12.294,67189,67189
|
||||
vol_breakout,2025,-18.546,340933,340933
|
||||
vol_breakout,2026,-19.739,330372,330372
|
||||
vol_breakout_maker,2024,-5.294,67189,67189
|
||||
vol_breakout_maker,2025,-11.546,340933,340933
|
||||
vol_breakout_maker,2026,-12.739,330372,330372
|
||||
vwap_revert,2024,-16.574,196980,196980
|
||||
vwap_revert,2025,-16.542,1199981,1199981
|
||||
vwap_revert,2026,-16.273,1258439,1258439
|
||||
vwap_revert_maker,2024,-9.574,196980,196980
|
||||
vwap_revert_maker,2025,-9.542,1199981,1199981
|
||||
vwap_revert_maker,2026,-9.273,1258439,1258439
|
||||
xs_momentum_15m,2024,-18.51,110400,110400
|
||||
xs_momentum_15m,2025,-19.401,438000,438000
|
||||
xs_momentum_15m,2026,-18.289,325100,325100
|
||||
xs_momentum_15m_maker,2024,-11.51,110400,110400
|
||||
xs_momentum_15m_maker,2025,-12.401,438000,438000
|
||||
xs_momentum_15m_maker,2026,-11.289,325100,325100
|
||||
xs_reversal_15m,2024,-14.27,110400,110400
|
||||
xs_reversal_15m,2025,-13.727,438000,438000
|
||||
xs_reversal_15m,2026,-15.06,325100,325100
|
||||
xs_reversal_15m_maker,2024,-7.27,110400,110400
|
||||
xs_reversal_15m_maker,2025,-6.727,438000,438000
|
||||
xs_reversal_15m_maker,2026,-8.06,325100,325100
|
||||
xs_reversal_costaware,2024,-14.277,110300,110300
|
||||
xs_reversal_costaware,2025,-13.727,438000,438000
|
||||
xs_reversal_costaware,2026,-15.06,325100,325100
|
||||
xs_reversal_costaware_maker,2024,-7.277,110300,110300
|
||||
xs_reversal_costaware_maker,2025,-6.727,438000,438000
|
||||
xs_reversal_costaware_maker,2026,-8.06,325100,325100
|
||||
|
@@ -0,0 +1,4 @@
|
||||
method,year,ev_bp,n
|
||||
prod_mr_5m,2024,2.28,105089
|
||||
prod_mr_5m,2025,3.17,105089
|
||||
prod_mr_5m,2026,2.0,105089
|
||||
|
+2059
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"pairs": {
|
||||
"BTCUSDT": {
|
||||
"prod_n": 107,
|
||||
"stand_n": 107,
|
||||
"prod_pf": 0.4799,
|
||||
"stand_pf": 0.4799,
|
||||
"prod_sum_pnl": -0.2231,
|
||||
"stand_sum_pnl": -0.2231,
|
||||
"bars_30m": 34602
|
||||
},
|
||||
"ETHUSDT": {
|
||||
"prod_n": 105,
|
||||
"stand_n": 105,
|
||||
"prod_pf": 0.3737,
|
||||
"stand_pf": 0.3737,
|
||||
"prod_sum_pnl": -0.3143,
|
||||
"stand_sum_pnl": -0.3143,
|
||||
"bars_30m": 34770
|
||||
},
|
||||
"SOLUSDT": {
|
||||
"prod_n": 82,
|
||||
"stand_n": 82,
|
||||
"prod_pf": 0.3604,
|
||||
"stand_pf": 0.3604,
|
||||
"prod_sum_pnl": -0.2581,
|
||||
"stand_sum_pnl": -0.2581,
|
||||
"bars_30m": 34937
|
||||
},
|
||||
"XRPUSDT": {
|
||||
"prod_n": 114,
|
||||
"stand_n": 114,
|
||||
"prod_pf": 0.6517,
|
||||
"stand_pf": 0.6517,
|
||||
"prod_sum_pnl": -0.1706,
|
||||
"stand_sum_pnl": -0.1706,
|
||||
"bars_30m": 34937
|
||||
},
|
||||
"ZECUSDT": {
|
||||
"prod_n": 107,
|
||||
"stand_n": 107,
|
||||
"prod_pf": 0.9739,
|
||||
"stand_pf": 0.9739,
|
||||
"prod_sum_pnl": -0.0139,
|
||||
"stand_sum_pnl": -0.0139,
|
||||
"bars_30m": 34937
|
||||
}
|
||||
},
|
||||
"fee_rt": 0.0011,
|
||||
"engine": "app.trading.mean_reversion.run_mr_backtest",
|
||||
"stand": "tools/mr_engine.stand_mr_backtest",
|
||||
"source": "30м из ресемпла 5м данных"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user