Стратегия 3-дневной реверсии торговой черепахи - это модификация стратегии
Благодаря практике и обратному тестированию, я обнаружил, что стратегия последовательно работает лучше, когда используется EMA вместо SMA для линии тренда.
Стратегия работает следующим образом:
По умолчанию выходная EMA устанавливается на 5-дневную EMA, ее длина регулируется.
Основная идея стратегии заключается в том, чтобы воспользоваться преимуществами краткосрочной средней реверсии. Когда цены непрерывно падают, они, вероятно, восстанут в краткосрочной перспективе. Стратегия определяет средние возможности реверсии, проверяя, сузились ли цены в течение 3 дней подряд ниже краткосрочной EMA. Как только происходит обратное движение, оно быстро выходит, когда цена превышает выходную EMA.
По сравнению с традиционными стратегиями перекрестного использования скользящей средней, эта стратегия имеет следующие преимущества:
Использование 3-дневного последовательного сужения для выявления отклонений улучшает качество сигнала.
Фильтрация с длинными и короткими EMA избегает торговли на трендовых рынках.
Использование EMA вместо SMA для линии тренда является более чувствительным при обнаружении реверсий.
Регулируемая длина выхода EMA позволяет настроить стратегию стоп-лосса на основе рыночных условий.
Низкая частота торговли с периодом хранения 1-2 дня позволяет избежать рисков, связанных с длинными направленными ставками.
Стратегия также имеет следующие риски:
Риск неудачного переворота: цена может не восстановиться и продолжить снижение после сигнала переворота.
Частый риск стоп-лосса.
Риск оптимизации параметров. Выход EMA и другие параметры нуждаются в постоянном тестировании и настройке на основе развивающихся рынков.
Оптимизация должна предотвращать переподборку. Параметры должны быть надежными.
Риски могут быть уменьшены:
Строго соблюдать правила стоп-лосса, чтобы контролировать однократные убытки.
Устойчивая настройка параметров во время оптимизации, чтобы сбалансировать риск и доходность.
Корректировка размеров позиций с целью снижения риска по сделке.
Стратегия может быть улучшена в следующих аспектах:
Проверьте различные длины EMA для входа и выхода, чтобы найти оптимальные параметры.
Добавьте другие фильтры, такие как громкость, чтобы гарантировать, что сигналы обратного движения более надежные.
Для большей гибкости используйте стоп-лосс с помощью таких методов, как ATR или trailing stops.
Включить фильтр тренда, чтобы избежать сигналов обворота в существующих тенденциях.
Комбинировать с другими стратегиями оптимизации и диверсификации портфеля.
Используйте машинное обучение для адаптивной настройки параметров.
Стратегия Turtle Trading 3-дневной реверсии определяет краткосрочные возможности реверсии путем обнаружения 3-дневных паттернов сужения ниже короткой EMA. По сравнению с традиционными движущимися средними стратегиями, она имеет более надежные сигналы входа и регулируемую выходной EMA для оптимизации стоп-лосса. Стратегия хорошо работает для хрупких рынков с диапазоном и ловли коротких отскоков.
/*backtest start: 2023-10-05 00:00:00 end: 2023-10-12 00:00:00 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // @version = 5 // Author = TradeAutomation strategy(title="ETF 3-Day Reversion Strategy", shorttitle="ETF 3-Day Reversion Strategy", process_orders_on_close=true, overlay=true, commission_type=strategy.commission.cash_per_order, commission_value=1, initial_capital = 10000000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Backtest Date Range Inputs // StartTime = input(defval=timestamp('01 Jan 2012 05:00 +0000'), title='Start Time') EndTime = input(defval=timestamp('01 Jan 2099 00:00 +0000'), title='End Time') InDateRange = true // Strategy Rules // DayEMA5 = ta.ema(close, 5) Rule1 = close>ta.ema(close, 200) Rule2 = close<DayEMA5 Rule3 = high<high[1] and low<low[1] and high[1]<high[2] and low[1]<low[2] and high[2]<high[3] and low[2]<low[3] ExitEMA = ta.ema(close, input.int(5, "EMA Length For Exit Strategy", tooltip = "The strategy will sell when the price crosses over this EMA")) plot(DayEMA5) plot(ExitEMA, color=color.green) // Entry & Exit Functions // if (InDateRange) strategy.entry("Long", strategy.long, when = Rule1 and Rule2 and Rule3) // strategy.close("Long", when = ta.crossunder(close, ATRTrailingStop)) strategy.close("Long", when = ta.crossover(close, ExitEMA)) if (not InDateRange) strategy.close_all()