Торговая стратегия на основе скользящей средней «золотой крест» и «мертвый крест»


Дата создания: 2024-01-24 11:48:29 Последнее изменение: 2024-01-24 11:48:29
Копировать: 0 Количество просмотров: 359
1
Подписаться
1222
Подписчики

Торговая стратегия на основе скользящей средней «золотой крест» и «мертвый крест»

Обзор

Стратегия торговли движущимися средними золотыми спицами генерирует сигналы покупки и продажи, рассчитывая пересечение быстрого EMA ((fastLength) и медленного EMA ((slowLength). При пересечении медленного на быстром направлении генерируется сигнал покупки; при пересечении медленного ниже быстрого направления генерируется сигнал продажи.

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

Стратегия использует две движущиеся средние, быструю и медленную линии. Параметр быстрой линии EMAfastLength является дефолтной 9-дневной линией, а параметр медленной линии EMAAslowLength - дефолтной 26-дневной линией.

  1. Когда быстрая линия прорывает медленную линию вверх-вниз, образуется сигнал покупки (enterLong)
  2. Когда быстрая линия переходит вверх и вниз и прорывает медленную линию, генерируется сигнал продажи enterShort ()

Конкретные торговые сигналы и правила стратегии:

  1. При прохождении медленной линии на быстрой линии, играть больше; при прохождении медленной линии под быстрой линией, играть равномерно.
  2. Стоп-стоп - это Targetpercentage (по умолчанию 0.15%), то есть выход из позиции, когда рост достигнет 15%.
  3. Стоп-лосс - это StopLosspercentage цены (по умолчанию 0.20%), стоп-лосс при падении до 20%.
  4. Я не хочу, чтобы это повторялось.

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

Анализ преимуществ

  1. Стратегия проста, понятна и понятна.
  2. Применение движущихся средних фильтрует определенный уровень рыночного шума, что делает торговые сигналы более точными.
  3. Правила торговли ясны, есть четкая стратегия стоп-стоп-лосс.
  4. Параметры тестирования могут быть гибко изменены в зависимости от рыночных условий.

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

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

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

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

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

  1. Смена типа движущейся средней: помимо EMA, можно также тестировать SMA, LWMA, HMA и другие типы линий.
  2. Добавление других показателей: в сочетании с RSI, MACD и другими показателями для рассеянной торговли во времени.
  3. Параметры автоматической оптимизации: автоматический поиск параметров двух циклов EMA для поиска оптимальной комбинации параметров.
  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=4
strategy("EMA Cross by MarketAlpha", overlay=true)
EMAfastLength = input(defval = 9, minval = 2)
EMAslowLength = input(defval = 26, minval = 2)
Targetpercentage = input(defval = 0.15, title = "Profit Target in percentage", minval = 0.05)
StopLosspercentage = input(defval = 0.20, title = "Stop Loss in percentage", minval = 0.05)
profitpoints = close*Targetpercentage
stoplosspoints = close*StopLosspercentage
price = close

FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2000)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

emafast = ema(price, EMAfastLength)
emaslow = sma(price, EMAslowLength)
plot(emafast,color=green)
plot(emaslow,color=red)

enterLong() => crossover(emafast, emaslow)
strategy.entry(id = "MarketAlpha Long", long = true, when = window() and enterLong())
strategy.exit("Exit Long", from_entry = "MarketAlpha Long", profit = profitpoints,loss = stoplosspoints)

enterShort() => crossunder(emafast, emaslow)
strategy.entry(id = "MarketAlpha Short", long = false, when = window() and enterShort())
strategy.exit("Exit Short", from_entry = "MarketAlpha Short", profit = profitpoints,loss = stoplosspoints)