A novel approach to trading strategy parameter optimization using double out-of-sample data and walk-forward techniques

7.5/10

Томаш Мрозевич, Роберт Слепачук · Faculty of Economic Sciences, University of Warsaw · 11 февраля 2026

Переписка: Robert Ślepaczuk, rslepaczuk@wne.uw.edu.pl. Код: github.com/tmr-crypto/wf_optim_crypto_analysis.

Оригинал: Mroziewicz, T., Ślepaczuk, R. «A novel approach to trading strategy parameter optimization using double out-of-sample data and walk-forward techniques», 2026 — arxiv.org/abs/2602.10785 (PDF), лицензия CC BY-NC-ND 4.0.

Рисунки и таблицы воспроизведены из оригинальной публикации. Перевод выполнен с указанием источника в соответствии с условиями лицензии CC BY-NC-ND 4.0 (некоммерческое использование, без производных).

Аннотация

Предложен подход к walk-forward оптимизации, в котором длины окон обучения и теста сами являются параметрами. Показано, что результативность EMA-стратегии, оцениваемой walk-forward по Robust Sharpe Ratio, сильно зависит от размера окна. Исследование: внутридневной Bitcoin на шести частотах (1–60 мин), 81 комбинация окон (1–28 дней) на 19-месячном глобальном обучении. Два лучших набора применены к 21-месячному unseen-периоду; стратегия на тесте исполнена ровно один раз. Параметры, оценённые на Bitcoin, перенесены на Binance Coin и Ethereum. На обучении все комбинации окон обошли Buy-and-Hold. На тесте стратегия сопоставима с Buy-and-Hold, но с меньшей просадкой и более высоким Information Ratio. Реальная сила — портфель Buy-and-Hold + стратегии: лучшие метрики и сокращение просадки на 50%. Комиссия 0.1% за сделку; безубыточность около 0.4% за транзакцию.

Ключевые слова: архитектура теста; оптимизация; криптовалюты; скользящие средние; алготрейдинг; внутридневная торговля; Bitcoin; walk-forward. JEL: C4, C14, C45, C53, C58, G13.

1. Введение

Работы по техническому анализу акций и крипты часто игнорируют комиссии, проскальзывание и издержки. Ещё чаще не сообщают о повторных оптимизациях на данных, объявленных out-of-sample, или вовсе опускают OOS. Это создаёт нереалистичные ожидания и провал в живой торговле.

Статья даёт практический каркас: оценка прибыльности, статистическая значимость, контроль переобучения. Основа — EMA Crossover плюс walk-forward.

RH1. Walk-forward режет период на train/test вместо оптимизации на всём ряде. Как длины окон влияют на риск-доходность? Короткие vs длинные окна — вразрез с EMH (Fama, 1965), которая не предсказывает разницы.

RH2. Как частота данных (1–60 мин) и издержки бьют по результатам?

RH3. Стратегия лучше случайной? Bootstrap против случайно собранных альтернатив.

Новизна: длины окон — объект оптимизации, а не привычка. Данные делятся на global training (оптимизация) и unseen (однократное исполнение) — в отличие от итеративного «OOS», который уже не OOS. Параметры с Bitcoin переносятся на ETH и BNB. EMA+WF снижает волатильность и просадку относительно Buy-and-Hold; в портфеле с пассивом улучшает все метрики. Стратегия даёт положительную доходность почти два года без переобучения — открытый вопрос, поможет ли периодический ретренинг.

Дальше: разд. 2 — литература; 3 — данные; 4 — методы; 5 — обучение, издержки, сезонность; 6 — unseen; 7–8 — сводка и выводы.

2. Обзор литературы

Технический анализ слабо признан в академии. Опрос Group of Thirty (1985): 97% дилеров FX использовали его. Park & Irwin (2007): из 92 работ 58 прибыльных, 24 отрицательных, 10 смешанных. Nti et al. (2020): обзор 122 статей. Hsu et al. (2010): ETF снижают прибыльность TA, но неэффективности остаются на незрелых рынках. Zielonka (2004): инвесторы переоценивают сигналы из-за confirmation bias.

Neftçi (1991): crossover MA статистически хорошо определён. Farias Nazário et al. (2017): самый популярный метод (44 из 80). Brock et al. (1992): после buy — выше доходность и ниже волатильность. Zakamulin & Giner (2020): при RW crossover ≈ подбрасывание монеты.

Крипта: Brown & Pelosi (2019) — MA crossover бьёт B&H лишь на 10 из 40 монет. Walk-forward: Pardo (2012) — снижает overfitting; López de Prado (2019) предпочитает Монте-Карло на синтетике, потому что WF предполагает стационарный процесс. LeBaron & Weigend (1998): сплиты train/val/test завышают качество. Karathanasopoulos et al. (2016): окна 300 vs 400 дней. Kryńska & Ślepaczuk (2023): удлинение in-sample при укорочении OOS улучшало результат.

Ahmed et al. (2020): crossover на Dash +14–18% к B&H. Wen et al. (2022): внутридневные momentum/reversal в крипте, без издержек. Anghel (2021): Reality Check — значимые доходности редки после data snooping и фрикций. Ограничения: только 37% работ корректируют на риск (Farias Nazário et al.); block bootstrap (Politis & Romano, 1992) нужен из-за автокорреляции.

3. Данные

Минутные цены с Kaggle (контест G-Forecast, 10 криптовалют; использовано подмножество). Два периода; unseen чуть длиннее:

Разрыв между ними — выравнивание границ под walk-forward при разной частоте.

Цена Bitcoin с периодами Global Training и Unseen
Рис. 1. Цена Bitcoin с отмеченными Global Training (фиолетовый) и Unseen (зелёный). Разрыв сентябрь–ноябрь 2019 — выравнивание окон.
Таблица 1. Описательные статистики лог-доходностей Bitcoin на глобальном обучении (неагрегированные). JB p-value = 0 на всех частотах.
МинMeanSDMinMaxSkewKurtosis
100.0013−0.04650.0315−0.07718.13
500.0027−0.07920.05890.01031.97
1000.0037−0.07600.0610−0.03226.16
1500.0045−0.13640.0770−0.34137.87
3000.0064−0.08780.10330.07822.63
6000.0089−0.09250.10810.16016.08

Высокий эксцесс (лептокуртозис), падает с частотой, кроме 5 мин. Положительный (или почти) skew: правый хвост длиннее. Petukhina et al. (2021) документировали эксцесс Bitcoin до 49 на 5-минутках — выше, чем здесь.

4. Методология

Все параметры подбираются только на Global Training. Unseen используется один раз для финальной комбинации — чтобы результат был настоящим OOS.

Второй уровень оптимизации — длины окон walk-forward, обычно выбираемые произвольно. Литература по этому почти пуста: Karathanasopoulos et al. сравнивали 300 vs 400 дней; Kryńska & Ślepaczuk меняли in/out sample.

4.1. Walk-forward

История режется на $n$ равных кусков; каждый — на in-sample (подбор fast/slow EMA по Sharpe) и out-of-sample (оценка этих EMA). Итоговая статистика Global Training — только из тестовых кусков WF.

4.2. EMA Crossover

Периоды EMA: 5, 7, 10, 15, 20, 30, 40, 50, 100, 150, 200. Длиннее 35 — «медленные», короче — «быстрые» (порог произвольный).

\[ \mathrm{EMA}_n=\alpha P_n+(1-\alpha)\mathrm{EMA}_{n-1},\qquad \alpha=\frac{2}{n+1},\quad \mathrm{EMA}_0=P_0. \]

Длинная позиция, если $\mathrm{EMA}_{\mathrm{fast}}\ge\mathrm{EMA}_{\mathrm{slow}}$, иначе короткая. Всегда в рынке.

4.3. Оптимизация окон

Длины: 1, 2, 3, 5, 7, 10 дней плюс кратные недели 14, 21, 28 (проверка недельной сезонности). Каждая пара train×test — отдельный WF на всём Global Training, Sharpe считается по тестовым кускам. Сетка $9\times 9=81$ (рис. 2).

Соседние ячейки шумные — сглаживание по Gómez & Ślepaczuk (2021): исходная ячейка вес $1/2$, соседи делят оставшуюся половину:

\[ \mathrm{Smoothed}=\tfrac12\cdot\mathrm{Original}+\tfrac12\cdot\frac1n\sum_{i=1}^{n}\mathrm{Neighbor}_i. \]

Две ячейки с максимальным сглаженным Sharpe идут на unseen. Альтернативы (не использованы): минимизация разрыва train/test; bootstrap по значимости.

Ограничения: data mining (81 окно × подбор EMA внутри WF); сплит global/unseen влияет на выбор; parameter decay — параметры 2018–19 могут устареть.

4.4. Статистическая значимость

Классический bootstrap Efron не годится для рядов (гетероскедастичность, автокорреляция). Используется block bootstrap Politis & Romano (1994), 1000 итераций, только на двух лучших окнах.

  1. Случайные EMA: вместо лучшей пары fast/slow на train-шаге — случайная из предопределённого набора.
  2. Перемешанные блоки позиций:consecutive long/short блоки шаффлятся, доходности актива накладываются заново.

Нуль: стратегия не лучше случайных сигналов. На уровне 5% нужно обойти 95% случайных реализаций.

4.5. Чувствительность к издержкам

Svogun & Bazán-Palomino (2022): издержки критичны на 1-минутках и почти безвредны на дневках. EMA всегда в рынке: разворот long→short = две сделки, при 0.1% это 0.2%. База 0.1% — не конкретная биржа, а типичный уровень крупных площадок плюс проскальзывание и спред. Сетка: 0.05, 0.07, 0.10, 0.20, 0.30, 0.40, 0.50%. Издержки накладываются на уже сгенерированный список позиций (не переоптимизация под издержки).

4.6. Алгоритмы

Алгоритм 1 (оптимизация окон): цикл по всем парам train/test → запуск WF (алг. 2) → Sharpe → сетка → сглаживание → две лучшие пары → однократный прогон на unseen.

Алгоритм 2 (сам WF): для каждого шага оптимизировать EMA на train-окне по Sharpe, применить на следующем test-окне, склеить только test-доходности.

Таблица 2. Определения метрик (по Ryś & Ślepaczuk, 2019). $r_{\mathrm{rf}}=0$. Information Ratio** — авторская: $\mathrm{sign}(\mu)\mu^2/(\sigma\cdot\mathrm{MaxDD})$.
МетрикаСмысл
Лог-доходность$R_t=\ln(p_t/p_{t-1})$
Annualized Meanсреднее лог-доходностей × число наблюдений в году
Annualized Volвыборочное СКО × $\sqrt{n_{\mathrm{year}}}$
SharpeMean / Vol ($r_{\mathrm{rf}}=0$)
Max Drawdownхудшее падение от локального максимума
Information Ratio**$\mathrm{sign}(\mu)\mu^2/(\sigma\cdot\mathrm{MaxDD})$
SortinoMean / СКО отрицательных лог-доходностей, annualized

5. Результаты: Global Training

5.1. Частота данных

81 комбинация окон на каждой из 6 частот. Комиссия 0.1%.

Таблица 3. Sharpe 81 walk-forward комбинации по частотам, Global Training.
МинMeanMaxMinSDQ50
1−12.71−11.41−16.651.09−12.56
5−2.84−1.60−5.050.83−2.64
10−1.49−0.49−2.930.66−1.47
15−0.980.20−2.720.72−0.80
30−0.500.74−2.150.64−0.45
600.791.250.190.230.81

1–15 мин убиваются комиссией 0.1%. На 60 мин все 81 комбинации имеют положительный Sharpe — даже случайный выбор окна прибылен.

5.2. Теплокарта окон (60 мин)

Теплокарта Sharpe по длинам train и test окон
Рис. 2. Sharpe walk-forward на 60-минутках BTC. Оси — длины train (горизонталь) и test (вертикаль) в днях. Максимум 1.25 при train 7 / test 28.

Четыре квадранта: короткие окна (1–7) дают низкий Sharpe; частое переобучение (≤3 дня) хуже. Лучшие короткие: train 5, test 7. Длинный test (28) с коротким train 5–7 — высокие Sharpe. Длинный train + короткий test: почти всё ниже 1, test=1 день стабильно худший. Длинный train + длинный test: 8 ячеек Sharpe > 1, лучшая 14/10. Контринтуитивно: редкое переобучение (квадрант 4) даёт лучшие Sharpe.

Сглаженная теплокарта Robust Sharpe
Рис. 3. Robust Sharpe: сглаживание рис. 2 (вес 1/2 своей ячейке, 1/2 соседям). Выбраны 7/28 и 14/10.

Авторы признают: 21/14 визуально «серее» (устойчивее), а 7/28 на краю сетки (5 соседей вместо 8). Выбрали просто две лучшие после первого сглаживания.

Таблица 4. Метрики двух лучших окон, Global Training, BTC, комиссия 0.1%.
Ann. MeanAnn. VolSharpeIR**MaxDDSortino
Train 7 / Test 280.9480.7571.2524.6220.3521.799
Train 14 / Test 100.8920.7571.1782.9020.4511.678
Кривые капитала EMA-стратегий против Buy-and-Hold на обучении
Рис. 4. Equity: обе EMA бьют Buy-and-Hold на обучении. Выигрывают на падениях BTC, отстают на восстановлении 2019. Основной профит — в первой половине периода.

5.5. Bootstrap

Таблица 5. Bootstrap случайных EMA (1000 итераций). «Significance%» — доля случайных Sharpe выше оригинала.
Orig. SharpeЛучше случайных%
7/281.25280 / 10008.0
14/101.178137 / 100013.7

Средний случайный Sharpe ≈ 0.79, max случайных на 40–50% выше оригинала — выбор «лучшей EMA на train» не оптимален. Оригинал внутри 1 СКО среднего bootstrap.

Таблица 7. Bootstrap перемешанных блоков позиций. Оба набора значимы на 5%.
Orig. SharpeЛучше случайных%
7/281.25235 / 10003.5
14/101.17844 / 10004.4

Таблица 8: средний Sharpe шаффла отрицательный (−0.24 и −0.17), СКО ~0.80, max случайных 2.27–2.72 — снова намекает, что есть лучший способ выбирать EMA, чем «победитель train-шага».

5.6. Издержки

Таблица 9. Чувствительность к комиссии (окно 7/28, Global Training).
КомиссияAnn. MeanVolSharpeIR**MaxDDSortino
0.05%1.1070.7571.466.650.3412.10
0.10%0.9480.7571.254.620.3521.80
0.20%0.6200.7580.821.590.4241.17
0.30%0.2950.7600.390.290.4980.55
0.40%−0.0300.763−0.04−0.000.645−0.06
0.50%−0.3550.767−0.46−0.220.779−0.65
Метрики стратегии при разных комиссиях
Рис. 5. Метрики vs комиссия. IR** падает нелинейно и сильнее всех. Безубыточность ≈ 0.36–0.40% за сделку.
Кривые капитала при разных комиссиях
Рис. 6. Equity при разных издержках для окна 7/28 на Global Training.

6. Результаты: Unseen

Два окна с обучения — однократно на BTC, ETH, BNB (ETH/BNB не участвовали в оптимизации; отбор по капитализации, без cherry-picking).

Таблица 10. Unseen, 7 ноя 2019 — 22 авг 2021, комиссия 0.1%. Жирный — лучшее внутри актива.
MeanVolSharpeIR**MaxDDSortino
BTC B&H0.9270.8211.1282.0490.6231.554
BTC 7/280.6830.8220.8311.3190.5851.220
BTC 14/100.9090.8221.1062.6280.5241.625
ETH B&H1.5771.0261.5374.0570.6942.109
ETH 7/281.2411.0271.2092.0650.7701.767
ETH 14/101.3731.0271.3374.2640.6181.952
BNB B&H1.7141.1711.4643.5800.7482.021
BNB 7/281.2881.1711.1001.8790.7801.630
BNB 14/101.4031.1711.1982.6570.7281.785

B&H лидирует по Sharpe на всех трёх. WF 14/10 лучше WF 7/28 (на BTC Sharpe +40%). На BTC 14/10 почти догоняет B&H по Sharpe (−2%) и бьёт по IR** и Sortino. На ETH 14/10 бьёт B&H по IR**. Лучший на обучении (7/28) на тесте хуже — вопрос к правилу отбора окон.

Кривые капитала на unseen периоде по трём криптовалютам
Рис. 7. Unseen equity. WF выигрывает 2020 (в т.ч. март 2020, когда B&H падает) и проигрывает 2021 на ралли. Если бы исследование кончилось в конце 2020, WF был бы однозначным победителем. Параметры 2018–19, похоже, устарели.

6.2. Портфели

Равные веса BTC/ETH/BNB без ребалансировки: (1) B&H; (2) WF 7/28; (3) WF 14/10; (4) все три вместе.

Таблица 11. Портфели на unseen.
MeanVolSharpeIR**MaxDDSortino
WF 7/28, 3 актива1.1290.8891.273.050.6191.87
WF 14/10, 3 актива1.2690.9071.404.270.5692.07
B&H, 3 актива1.4950.9701.543.870.6832.08
Все вместе1.3180.6861.929.370.4382.76

Комбинация бьёт всех: Sharpe +20% к B&H, IR** удваивается относительно 14/10, MaxDD с ~70% у B&H до 44%.

Кривые капитала портфелей на unseen
Рис. 8. Портфели. WF зарабатывает в высокой волатильности, когда B&H теряет; отстаёт на восстановлениях и спокойном аптренде. ~70% времени WF впереди, но финальная доходность выше у B&H.

7. Сводка

Данные пополам: global training и unseen, каждый >18 месяцев внутридневных. Оптимизировали не EMA напрямую, а длины окон WF по Robust Sharpe. Unseen — один раз. Стратегии чуть хуже B&H по Sharpe, лучше по MaxDD. Лучший на обучении (7/28) на тесте проиграл 14/10. Sharpe с обучения на тест упал в среднем на 20% (лучший −30%, второй −10%). Перенос BTC→ETH/BNB дал ту же картину. Гибрид B&H + два WF бьёт всех без ребалансировки. EMA сильна в высокой волатильности и режет просадку. Все 81 комбинации на 60 мин обошли B&H на обучении (Sharpe > 0). Block bootstrap: значимость на 5% для обеих пар окон.

8. Заключение

RH1. На обучении лучше 7/28, на unseen — 14/10. Окна длиннее 7 дней с обеих сторон, похоже, предпочтительнее.

RH2. При 0.1% за сделку прибыльны интервалы ≳ 30–60 мин; ниже 60 мин при этих издержках лучше не торговать. Безубыточность ~0.4% на 60-минутках.

RH3. Block bootstrap — превосходство на 5%. Random-EMA bootstrap: лишь малая доля случайных лучше — метод имеет merit, но выбор EMA на train-шаге не идеален.

Ограничения: импакт стакана (средние bid/ask не отражают крупные заявки); 0.1% оптимистично на неликвидных биржах; издержки холда фьючерсов; доступность шорта; влияние сплита данных; неисследованные bias.

Практический вывод: длины окон WF надо оптимизировать; OOS исполнять один раз. Эквивалентная прибыль при меньшем риске, устойчивость к просадкам. Дальше: срок жизни параметров, ретренинг раз в 2–3 месяца, отбор EMA по минимуму разрыва train/test, риск-менеджмент не full-position, mean-reversion на фазах восстановления.

Литература

  1. Ahmed, S., Grobys, K. & Sapkota, N. (2020). Profitability of technical trading rules among cryptocurrencies with privacy function. Finance Research Letters 35, 101495.
  2. Alonso-Monsalve, S. et al. (2020). CNN for high-frequency trend prediction of cryptocurrency rates. Expert Systems with Applications 149, 113250.
  3. Anghel, D.-G. (2021). A reality check on trading rule performance in crypto. Finance Research Letters 39, 101655.
  4. Ayala, J. et al. (2021). Technical analysis strategy optimization using ML. Knowledge-Based Systems 225, 107119.
  5. Brock, W., Lakonishok, J. & LeBaron, B. (1992). Simple technical trading rules. Journal of Finance 47(5), 1731–1764.
  6. Brown, M. & Pelosi, M. (2019). Moving averages trading method applied to cryptocurrencies.
  7. Efron, B. (1979). Bootstrap methods. Annals of Statistics 7(1), 1–26.
  8. Fama, E. F. (1965). The behavior of stock-market prices. Journal of Business 38(1), 34–105.
  9. Farias Nazário, R. T. et al. (2017). A literature review of technical analysis. QREF 66, 115–126.
  10. Gómez, S. C. & Ślepaczuk, R. (2021). Robust optimisation in algorithmic investment strategies. WNE WP 27/2021.
  11. Hsu, P.-H., Hsu, Y.-C. & Kuan, C.-M. (2010). Testing the predictive ability of technical analysis. Journal of Empirical Finance 17(3), 471–484.
  12. Karathanasopoulos, A., Dunis, C. & Khalil, S. (2016). Sliding window approach: the crack spread. Quantitative Finance 16(12), 1875–1886.
  13. Kosc, K., Sakowski, P. & Ślepaczuk, R. (2019). Momentum and contrarian effects on crypto. Physica A 523, 691–701.
  14. Kryńska, K. & Ślepaczuk, R. (2023). LSTM architectures in algorithmic strategies on Bitcoin and S&P 500. SSRN 4628806.
  15. LeBaron, B. & Weigend, A. S. (1998). Bootstrap evaluation of data splitting. IEEE TNN 9(1), 213–220.
  16. López de Prado, M. (2019). Tactical Investment Algorithms. SSRN 3459866.
  17. Neftçi, S. N. (1991). Naive trading rules and Wiener–Kolmogorov prediction. Journal of Business 64, 549–571.
  18. Nti, I. K. et al. (2020). Systematic review of fundamental and technical analysis. Artificial Intelligence Review 53(4), 3007–3057.
  19. Pardo, R. (2012). Walk-Forward Analysis. In The Evaluation and Optimization of Trading Strategies. Wiley.
  20. Park, C.-H. & Irwin, S. H. (2007). What do we know about the profitability of technical analysis? Journal of Economic Surveys.
  21. Politis, D. N. & Romano, J. P. (1994). The stationary bootstrap. JASA.
  22. Ryś, P. & Ślepaczuk, R. (2019). Evaluation of automated trading systems.
  23. Svogun, D. & Bazán-Palomino, W. (2022). Transaction costs and intraday strategies.
  24. Wen, F. et al. (2022). Intraday predictability, momentum and reversal in cryptocurrencies.
  25. Zakamulin, V. & Giner, J. (2020). Momentum versus moving average crossover.

Перевод выполнен с сохранением структуры, формул, таблиц и рисунков оригинала. Код: tmr-crypto/wf_optim_crypto_analysis. Оригинал: arXiv:2602.10785 · Mroziewicz, Ślepaczuk · CC BY-NC-ND 4.0.