Стратегия Golden Cross и Death Cross Double MA


Дата создания: 2024-01-31 11:29:45 Последнее изменение: 2024-01-31 11:29:45
Копировать: 0 Количество просмотров: 577
1
Подписаться
1617
Подписчики

Стратегия Golden Cross и Death Cross Double MA

Обзор

Эта стратегия - это стратегия торговли, основанная на двойных движущихся средних. Она выполняет операции по золотому и мертвому виску на двух движущихся средних по длине и ширине, установленных пользователем, то есть посылает торговый сигнал при прохождении медленного движущегося среднего по быстрому движущемуся среднему или по медленному движущемуся среднему.

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

Центральная логика этой стратегии основана на принципе пересечения двух движущихся средних. Движущаяся средняя - это средняя цена, полученная при использовании цены закрытия в качестве среднего за определенный период времени. Движущаяся средняя эффективно устраняет случайный шум и отражает более четкие ценовые тенденции.

В этой стратегии краткосрочный МА представляет собой краткосрочную тенденцию цены, а долгосрочный МА представляет собой долгосрочную тенденцию цены. Краткосрочный МА более чувствителен к изменениям цены, чем долгосрочный МА, и может быстрее улавливать ценовые изменения.

В частности, стратегия использует ta.sma для вычисления простых скользящих средних за заданный период, чтобы использовать их в качестве торгового сигнала. Пользователь может настроить два параметра MA, то есть длинный период long_period и короткий период short_period. Стратегия использует ta.crossover и ta.crossunder для определения золотых крестов и мертвых крестов в MA.

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

Эта стратегия имеет следующие преимущества:

  1. Простые и легкие в использовании.
  2. Настраиваемые параметры, адаптированные к различным рыночным условиям.
  3. Используя принцип двойного MA-пересечения, эффективно фильтрует шум и улавливает обратный тренд.
  4. Это высокая чувствительность, которая позволяет вовремя зафиксировать ценовые переломы.

Стратегический риск

Однако эта стратегия также несет в себе некоторые риски:

  1. Слишком маленькое расстояние между двумя МА может привести к ошибочному сигналу.
  2. Неправильно отрезав циклы МА, мы упустили основную тенденцию.
  3. В то же время, поскольку обратный тренд не обязательно означает обратный тренд, это может привести к ложным сигналам.
  4. Необходимо скорректировать параметры, чтобы избежать переоптимизации.

В зависимости от вышеуказанных рисков, можно оптимизировать их путем корректировки параметров MA, установки стоп-стоп или в сочетании с другими показателями.

Оптимизация пространства

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

  1. Оптимизация параметров цикла MA с использованием адаптированного цикла MA.
  2. Повышение фильтрации трафика, чтобы избежать ложных прорывов.
  3. В сочетании с другими техническими показателями, такими как MACD, KDJ и т. д.
  4. Добавлена логика стоп-лосса, чтобы контролировать одиночные потери.
  5. Оптимизация структуры кода, увеличение пространства для последующего расширения модуля.

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

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

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

//@version=5
strategy("Cross 2 Moving Average Strategy", shorttitle="2MA Cross", overlay=true)

// User-defined input for moving averages
long_period = input(20, title="Long Period")
short_period = input(5, title="Short Period")
type_ma = input.string("SMA", title = "MA type", options = ["SMA", "EMA"])

// Calculating moving averages
long_ma = ta.sma(close, long_period)
short_ma = ta.sma(close, short_period)

// Plot moving averages
plot(long_ma, title="Long Moving Average", color=color.red)
plot(short_ma, title="Short Moving Average", color=color.green)

// Strategy logic for crossing of moving averages
longCondition = ta.crossover(short_ma, long_ma)
shortCondition = ta.crossunder(short_ma, long_ma)

// Entry orders
if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

// Optional: Add stop loss and take profit
stop_loss_perc = input(1, title="Stop Loss (%)") / 100
take_profit_perc = input(2, title="Take Profit (%)") / 100

strategy.exit("Exit Long", from_entry="Long", stop=close*(1-stop_loss_perc), limit=close*(1+take_profit_perc))
strategy.exit("Exit Short", from_entry="Short", stop=close*(1+stop_loss_perc), limit=close*(1-take_profit_perc))