Торговая стратегия, основанная на двух постепенно меняющихся скользящих средних с разными параметрами


Дата создания: 2023-12-20 14:28:36 Последнее изменение: 2023-12-20 14:28:36
Копировать: 0 Количество просмотров: 661
1
Подписаться
1621
Подписчики

Торговая стратегия, основанная на двух постепенно меняющихся скользящих средних с разными параметрами

Обзор

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

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

Основными показателями стратегии являются две линии EMA: быстрая и медленная. Параметр быстрой линии по умолчанию устанавливается на 13-ю линию, что повышает чувствительность к изменению цены; параметр медленной линии по умолчанию устанавливается на 48-ю линию, что повышает медленную реакцию на изменение цен.

Согласно этому принципу, стратегия делает больше, когда быстрая линия сверху вверх пробивает медленную линию, что означает, что цена начинает расти, и можно купить; когда быстрая линия сверху вниз пробивает медленную линию, что означает, что восходящая тенденция закончена, и следует вовремя остановить. Для контроля риска стратегия также устанавливает начальный стоп-убыток и отслеживание стоп-убытков: начальный стоп-убыток составляет 8% от цены входа, а отслеживание стоп-убытков - 120 пунктов. Это может быть как можно скорее, чтобы остановить убыток и уменьшить убытки, когда цена переворачивается.

В кодовой реализации стратегия определяет EMA-крестные сигналы с помощью функций crossover и crossunder, которые вызывают соответствующие entry и close, чтобы купить и закрыть позиции.

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

Стратегия постепенного линейного трейдинга имеет следующие преимущества:

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

  2. Среднелинейный индикатор хорошо отражает рыночный шум и может обнаруживать изменения в тренде;

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

  4. В сочетании с методами сдерживания убытков можно эффективно контролировать риски.

  5. Устойчивость.

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

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

  1. В период сильных рыночных колебаний перекрестные сигналы EMA могут задерживаться и не отражать изменения цены;

  2. Слишком быстрое изменение параметров среднелинейного показателя может привести к большему количеству ошибочных сигналов;

  3. При слабой тенденции EMA пересекается с меньшим количеством и не может эффективно улавливать ценовые движения.

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

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

  1. в сочетании с другими показателями для подтверждения равнолинейного перекрестного сигнала, например MACD, KD и т. д.;

  2. Применение параметров EMA в зависимости от рынка для снижения частоты ошибочных сигналов;

  3. Добавление модуля определения тенденций, ссылаясь на долгосрочную среднюю линию для определения направления общей ситуации.

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

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

  1. Увеличение фильтрации условий открытия позиции, чтобы избежать чрезмерного количества ненужных сделок в условиях потрясений. Для установления порога открытия позиции можно использовать такие показатели, как волатильность, объем сделок;

  2. Для определения позиции стоп-стоп в сочетании с высокими и низкими точками рынка, уровнями поддержки и т. д. для повышения точности стоп-стоп-стоп;

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

  4. Параметры EMA могут быть обучены и оптимизированы с помощью машинного обучения, чтобы сделать их более подходящими для реальных рыночных условий и снизить погрешность сигналов.

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

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

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

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

//@version=3
// *** USE AT YOUR OWN RISK ***
// 
strategy("EMA Strategy", shorttitle = "EMA Strategy", overlay=true, pyramiding = 3,default_qty_type = strategy.percent_of_equity, default_qty_value = 10)


// === Inputs ===
// short ma
maFastSource   = input(defval = close, title = "Fast MA Source")
maFastLength   = input(defval = 13, title = "Fast MA Period", minval = 1)

// long ma
maSlowSource   = input(defval = close, title = "Slow MA Source")
maSlowLength   = input(defval = 48, title = "Slow MA Period", minval = 1)

// invert trade direction
tradeInvert = input(defval = false, title = "Invert Trade Direction?")
// risk management
useStop     = input(defval = true, title = "Use Initial Stop Loss?")
slPoints    = input(defval = 25, title = "Initial Stop Loss Points", minval = 1)
useTS       = input(defval = true, title = "Use Trailing Stop?")
tslPoints   = input(defval = 120, title = "Trail Points", minval = 1)
useTSO      = input(defval = false, title = "Use Offset For Trailing Stop?")
tslOffset   = input(defval = 20, title = "Trail Offset Points", minval = 1)

// === Vars and Series ===
fastMA = ema(maFastSource, maFastLength)
slowMA = ema(maSlowSource, maSlowLength)

plot(fastMA, color=blue)
plot(slowMA, color=purple)

goLong() => crossover(fastMA, slowMA)
killLong() => crossunder(fastMA, slowMA)
strategy.entry("Buy", strategy.long, when = goLong())
strategy.close("Buy", when = killLong())

// Shorting if using
goShort() => crossunder (fastMA, slowMA)
killShort() => crossover(fastMA, slowMA)
//strategy.entry("Sell", strategy.short, when = goShort())
//strategy.close("Sell", when = killShort())

if (useStop)
    strategy.exit("XLS", from_entry ="Buy", stop = strategy.position_avg_price / 1.08 )
    strategy.exit("XSS", from_entry ="Sell", stop = strategy.position_avg_price * 1.08)