Стратегия отслеживания двойного EMA Golden Cross и Death Cross


Дата создания: 2023-11-13 17:35:14 Последнее изменение: 2023-11-13 17:35:14
Копировать: 0 Количество просмотров: 681
1
Подписаться
1617
Подписчики

Стратегия отслеживания двойного EMA Golden Cross и Death Cross

Обзор

Эта стратегия относится к стратегии отслеживания тренда, которая реализует торговые сигналы для золотых и мертвых форков с двойными ЭМА путем вычисления быстрого и медленного ЭМА и сравнения их величины. Простая стратегия отслеживания тренда заключается в том, чтобы генерировать сигнал покупки при прохождении медленной линии на быстрой линии и сигнал продажи при прохождении медленной линии под быстрой линией.

Стратегический принцип

Основная логика этой стратегии состоит из следующих частей:

  1. Вычислить скоростную EMA и медленную EMA: вычислить скоростную EMA с длиной fastInput и медленную EMA с длиной slowInput через функцию ta.ema (().

  2. Настройка диапазона времени отсчета: настройка фильтра отсчета с помощью параметров useDateFilter, настройка времени начала и окончания отсчета backtestStartDate и backtestEndDate.

  3. Производство торговых сигналов: с помощью функций ta.crossover ((() и ta.crossunder ((() сравнивается величина отношений между EMA скоростной линии и EMA медленной линии, генерируя сигнал покупки при прохождении медленной линии на скоростной линии и сигнал продажи при прохождении медленной линии под скоростной линией.

  4. Обработка ордеров за пределами временного диапазона: за пределами временного диапазона отсчета отменяются невыполненные ордера и уравняются все позиции.

  5. Нарисуйте скользящие средние: Нарисуйте скользящие средние для быстрого EMA и медленного EMA на графике.

Стратегические преимущества

Это очень простая стратегия отслеживания трендов, которая имеет следующие преимущества:

  1. Стратегическая логика проста, легко понятна и реализуема.

  2. EMA упростила ценовые данные, что позволило снизить уровень шума в торговле.

  3. Можно настроить параметры цикла EMA, чтобы адаптироваться к различным рыночным условиям.

  4. Гибкий диапазон времени отсчета для тестирования в определенный период времени.

  5. Оптимизируемые условия входа и выхода, используемые в сочетании с другими показателями.

Анализ рисков

В этой стратегии также есть некоторые риски, о которых следует помнить:

  1. Двойная стратегия EMA является слишком гибкой и не может реагировать на изменения рынка.

  2. Существуют риски частых и повторяющихся сделок.

  3. Неправильная настройка параметров EMA может привести к ошибке торгового сигнала.

  4. Необоснованный диапазон времени отслеживания может привести к пересоответствию.

  5. Существует неизбежный риск отзыва и убытков.

Риск можно контролировать путем оптимизации параметров, соответствующего фильтра колебаний, установки стоп-убытков и т. д.

Направление оптимизации

Эта стратегия может быть оптимизирована в следующих аспектах:

  1. Оптимизация параметров цикла EMA, выбор оптимальной комбинации параметров.

  2. Добавить фильтры на другие показатели, чтобы избежать ненужных сделок.

  3. Повышение стратегии сдерживания убытков, контроль за единичными потерями.

  4. Фильтры, такие как тенденции и волатильность, снижают частоту торгов.

  5. Проверка контрактов различных сортов, чтобы найти оптимальную стратегию, применимую к объектам.

  6. Использование слайдов, контроль затрат и т.д. позволяет сделать отсчет более реалистичным.

Подвести итог

Эта стратегия в целом является очень простой двойной стратегией EMA Gold Fork Dead Fork, логика четкая и понятная, она генерирует торговый сигнал с помощью сравнения быстрого и медленного линии EMA. Преимущества этой стратегии заключаются в простоте реализации, но также есть некоторые проблемы, такие как частота торговли, которая может привести к переоптимизации и т. Д. Следующий шаг может быть улучшен с точки зрения оптимизации параметров, контроля риска и т. Д., что делает стратегию более устойчивой и практичной.

Исходный код стратегии
/*backtest
start: 2022-11-06 00:00:00
end: 2023-11-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=5
strategy("MollyETF_EMA_Crossover", overlay = true, initial_capital = 100000, default_qty_value=100, default_qty_type=strategy.percent_of_equity)

fastInput = input( 10, "Fast EMA")
slowInput = input( 21, "Slow EMA")

// Calculate two moving averages with different lengths.
float fastMA = ta.ema(close, fastInput)
float slowMA = ta.ema(close, slowInput)


// STEP 1. Create inputs that configure the backtest's date range
useDateFilter = input.bool(true, title="Filter Date Range of Backtest",
     group="Backtest Time Period")
backtestStartDate = input(timestamp("1 Jan 2018"), 
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " +  
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")
backtestEndDate = input(timestamp("7 Sep 2023"),
     title="End Date", group="Backtest Time Period",
     tooltip="This end date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")

// STEP 2. See if current bar falls inside the date range
inTradeWindow = true

// STEP 3. Include the date filter with the entry order conditions

// Enter a long position when `fastMA` crosses over `slowMA`.
if inTradeWindow and ta.crossover(fastMA, slowMA)
    strategy.entry("buy", strategy.long)

// Enter a short position when `fastMA` crosses under `slowMA`.
if inTradeWindow and ta.crossunder(fastMA, slowMA)
    strategy.close_all(comment="sell")

// STEP 4. With the backtest date range over, exit all open
// trades and cancel all unfilled pending orders
if not inTradeWindow and inTradeWindow[1]
    strategy.cancel_all()
    strategy.close_all(comment="Date Range Exit")

// Plot the moving averages.
plot(fastMA, "Fast MA", color.aqua)
plot(slowMA, "Slow MA", color.orange)