Стратегия кроссовера Momentum Breakout EMA 34


Дата создания: 2024-02-26 15:05:18 Последнее изменение: 2024-02-26 15:05:18
Копировать: 0 Количество просмотров: 789
1
Подписаться
1617
Подписчики

Стратегия кроссовера Momentum Breakout EMA 34

Обзор

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

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

Эта стратегия сначала рассчитывает среднюю линию EMA на 34 циклах close, high, low и называется emaClose, emaHigh, emaLow. Затем она генерирует сигналы покупки и продажи в зависимости от того, пробивает ли цена emaHigh и emaLow.

В частности, когда цена закрытия превышает emaHigh, генерируется сигнал покупки; когда цена закрытия ниже emaLow, генерируется сигнал продажи. Как только сигнал генерируется, вход осуществляется по цене закрытия и установка стоп-стопа на 100 и стоп-лосс на 50 пунктов.

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

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

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

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

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

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

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

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

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

  2. Оптимизировать параметры цикла EMA и адаптировать их к более подходящим для данного сорта.

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

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

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

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

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

//@version=5
strategy("EMA 34 Crossover Strategy_4", overlay=true)

length = 34
exitPoints = 50

emaClose = ta.ema(close, length)
emaHigh = ta.ema(high, length)
emaLow = ta.ema(low, length)

var float[] entryPrices = array.new_float()
var float[] exitLevels = array.new_float()

// Long entry condition: Price crosses above EMA 34 high
enterLong = ta.crossover(close, emaHigh)

// Short entry condition: Price crosses below EMA 34 low
enterShort = ta.crossunder(close, emaLow)

// Exit condition for both long and short trades
exitLong = array.size(entryPrices) > 0 ? close >= array.get(entryPrices, array.size(entryPrices) - 1) + exitPoints : false
exitShort = array.size(entryPrices) > 0 ? close <= array.get(entryPrices, array.size(entryPrices) - 1) - exitPoints : false

if (enterLong)
    array.push(entryPrices, close)
    array.push(exitLevels, close + exitPoints)
    strategy.entry("Buy", strategy.long)

if (enterShort)
    array.push(entryPrices, close)
    array.push(exitLevels, close - exitPoints)
    strategy.entry("Sell", strategy.short)

if (exitLong)
    strategy.close("Buy")

if (exitShort)
    strategy.close("Sell")

plot(emaClose, color=color.blue, title="EMA 34 Close")
plot(emaHigh, color=color.red, title="EMA 34 High")
plot(emaLow, color=color.green, title="EMA 34 Low")