Эта стратегия объединяет индикаторы EMA и RSI для выявления краткосрочных возможностей корректировки в биткоине. Она в основном использует EMA в качестве основного графического инструмента и RSI в качестве вспомогательного индикатора суждения для поиска очевидных моделей корректировки. Торговые сигналы генерируются, когда цена проходит ниже или поднимается выше линии EMA.
Стратегия в основном использует 50-периодную линию EMA и 25-периодный индикатор RSI. Линия EMA считается основным графическим индикатором, а RSI используется для определения условий перекупа и перепродажи, чтобы помочь в генерировании торговых сигналов. Сигнал продажи генерируется, когда цена падает ниже линии EMA, а сигнал покупки генерируется, когда цена превышает линию EMA, и индикатор RSI показывает сигнал неперекупа (значение RSI менее 70).
После вступления в сделку стратегия также устанавливает уровни стоп-лосса и прибыли. Расстояние стоп-лосса регулируется до 5,1%; расстояние прибыли также регулируется до 9,6%. Это эффективно ограничивает максимальную потерю на сделку.
В целом, стратегия в основном основана на моделях линий EMA, дополненных индикаторами RSI для предотвращения условий перекупа и перепродажи, при этом имея контроль стоп-лосса и прибыли.
Основными преимуществами этой стратегии являются:
Сочетание EMA и RSI делает сигналы более надежными, а не полагаются только на один индикатор.
Встроенный стоп-лосс и контроль прибыли. Это эффективно ограничивает убытки на сделку и является очень важным инструментом управления рисками.
Параметры стратегии могут быть оптимизированы. Длина EMA, длина RSI и многое другое являются регулируемыми параметрами. Пользователи могут найти оптимальные наборы параметров для различных рыночных условий.
Включено обратное тестирование. Стратегия позволяет устанавливать интервал даты обратного тестирования для проверки производительности.
Стратегия также сопряжена с определенными рисками, главным образом из-за:
Хотя стопы устанавливаются, BT Bitcoin часто имеет большие колебания цен, которые могут привести к большим, чем ожидалось, потерям.
Риск привлечения средств. Стратегия не учитывает общий контроль привлечения средств.
Более слабые сигналы в сильных тенденциях. BT Биткоин тенденции могут стать довольно расширенными в течение определенных рыночных условий. Краткосрочные сигналы, как правило, неэффективны, что приводит к остановке хороших сделок.
Для контроля и смягчения этих рисков:
В условиях сильного тренда диапазон стоп-лосса может быть увеличен, например, до 10%, чтобы избежать преждевременного остановки.
Добавить другие индикаторные фильтры. Можно добавить индикаторы, следующие за трендом, чтобы избежать торгов в течение длительных периодов консолидации.
Оптимизировать параметры. Настройки тестовых параметров в различных условиях рынка. Настройки параметров переключения при появлении сильных тенденций для улучшения качества сигнала.
Существует дополнительное пространство для оптимизации этой стратегии:
Добавьте общий контроль за снятием. Можно установить максимальный процент снятия, например 20%, который приостанавливает торговлю, когда достигается ограничение потерь.
Ограничить частоту входа. Может ограничить количество сделок на единицу времени, например, 2 сделки в час максимум, чтобы предотвратить перепродажу.
Оптимизировать параметры. Испытать комбинации параметров для различных рыночных условий. Создать шаблоны параметров для переключения между в режиме реального времени соответствия текущих условий.
Сочетание с другими индикаторами. Интегрирование тенденции, волатильности и других показателей для создания более полных правил входа в торговую систему.
В целом, стратегия в основном опирается на краткосрочные модели корректировки BT Bitcoin, используя EMA и RSI для генерации четких торговых сигналов, имея при этом стоп-лосс и контроль прибыли.
/*backtest start: 2023-11-06 00:00:00 end: 2023-12-06 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © mmoiwgg //@version=4 strategy(title="EMA+RSI Pump & Drop Swing Sniper (With Alerts & SL+TP) - Strategy", shorttitle="EMA+RSI Swing Strategy", overlay=true) emaLength = input(title="EMA Length", type=input.integer, defval=50, minval=0) emarsiSource = input(close, title="EMA+RSI Source") condSource = input(high, title="Long+Short Condition Source") emaVal = ema(emarsiSource, emaLength) rsiLength = input(title="RSI Length", type=input.integer, defval=25, minval=0) rsiVal = rsi(emarsiSource, rsiLength) //Safety emaLength2 = input(title="Safety EMA Length", type=input.integer, defval=70, minval=0) emaSource2 = input(close, title="Safety EMA Source") ema = ema(emaSource2, emaLength2) emaColorSource2 = close emaBSource2 = close // Backtest+Dates 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 = 2019, title = "From Year", minval = 2017) 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) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest end window window() => time >= start and time <= finish ? true : false // create function - add window() to entry/exit/close // Conditions exit_long = crossover(emaVal, condSource) longCond = crossunder(emaVal, condSource) and close > ema //Stoploss + TakeProfit sl = input(0.051, step=0.001, title="Stop Loss") tp = input(0.096, step=0.001, title="Take Profit") // Plots Colors colors = emarsiSource > emaVal and rsiVal > 14 ? color.green : color.red emaColorSource = input(close, title="Line Color Source") emaBSource = input(close, title="Line Color B Source") // Plots plot(ema, color=emaColorSource2[1] > ema and emaBSource2 > ema ? color.green : color.red, linewidth=1) plot(emaVal, color=emaColorSource[1] > emaVal and emaBSource > emaVal ? color.green : color.red, linewidth=3) plotcandle(open, high, low, close, color=colors) //Strategy Entry+Exits strategy.entry("long",1,when=window() and longCond) strategy.close("long",when=window() and exit_long) strategy.exit("long tp/sl", "long", profit = close * tp / syminfo.mintick, loss = close * sl / syminfo.mintick)