Крипто-стратегия обратной торговли, основанная на перекрестном использовании стохастического RSI и EMA

Автор:Чао Чжан, Дата: 2024-03-08 16:44:51
Тэги:

img

Обзор стратегии

Эта стратегия объединяет стохастический RSI и EMA для обнаружения тенденций и проверки торговых сигналов. Когда цена восстанавливается выше EMA20 до уровня между EMA9 и EMA14, и стохастический RSI находится ниже уровня перепродажи, генерируется длинный сигнал; когда цена восстанавливается ниже EMA20 до уровня между EMA9 и EMA14, и стохастический RSI находится выше уровня перекупки, генерируется короткий сигнал.

Принципы стратегии

  1. Используйте функцию ta.ema для вычисления 3 EMA с различными периодами, а именно EMA9, EMA14 и EMA20, для определения состояния тренда цены.
  2. Используйте функцию ta.rsi для расчета индикатора RSI, затем используйте функцию ta.stoch для преобразования RSI в индикатор Stochastic RSI для определения того, является ли цена перекупленной или перепроданной.
  3. Когда цена закрытия > EMA20 и цена закрытия < EMA9 и EMA14, а Stochastic RSI < уровень перепроданности, запускается длинный сигнал и выполняется операция покупки.
  4. Когда цена закрытия < EMA20 и цена закрытия > EMA9 и EMA14, а также Stochastic RSI > перекуплены, запускается короткий сигнал и выполняется операция продажи.

Основная идея этой стратегии состоит в том, чтобы использовать стохастический RSI для определения того, достиг ли ценовой ретракцион в основном тренде (представленный EMA20) соответствующей зоны перекупленности или перепроданности, используя при этом быструю EMA и среднюю EMA для проверки силы ретракциона. Если цена прорвется через быструю EMA и среднюю EMA, ретракцион может закончиться, и тенденция может перевернуться, что не подходит для входа в позицию. Только когда цена ретракционируется между EMA9 и EMA14, считается, что она входит в позицию в направлении тренда. Этот многоусловной метод проверки может эффективно улучшить качество сигнала и уменьшить ошибочные оценки.

Преимущества стратегии

  1. Комбинирует индикаторы тренда (EMA) и индикаторы осциллятора (RSI) для лучшего понимания тренда и времени перекупки/перепродажи.
  2. Принимает стохастический показатель RSI, который имеет два преимущества по сравнению с исходным индикатором RSI: одно - увеличение плавности показателя, а другое - избегание длительного придерживания показателя экстремальных значений.
  3. Многоуровневая проверка может эффективно отфильтровать многие ложные сигналы и повысить надежность сигналов.
  4. Логика кода ясна и проста, легко понять и изменить, и может быть использована в качестве шаблона для обучения новичков.

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

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

Руководство по оптимизации

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

Резюме

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


/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Crypto-EMA_Pullback=-", overlay=true,initial_capital = 10000000,default_qty_type=strategy.percent_of_equity, default_qty_value=10.0, pyramiding = 10)

// Inputs
lengthRsi = input(14, title="RSI Length")
k = input(3, title="Stoch %K")
d = input(3, title="Stoch %D")
lengthStoch = input(14, title="Stochastic RSI Length")
overSold = input(25, title="Oversold Level")
overBought = input(85, title="Overbought Level")
emaFastLength = input(9, title="Fast EMA Length")
emaMediumLength = input(14, title="Medium EMA Length")
emaSlowLength = input(20, title="Slow EMA Length")

// Calculating EMAs
emaFast = ta.ema(close, emaFastLength)
emaMedium = ta.ema(close, emaMediumLength)
emaSlow = ta.ema(close, emaSlowLength)

// Calculating the RSI and Stoch RSI
rsi = ta.rsi(close, lengthRsi)
stochRsiK = ta.sma(ta.stoch(rsi, rsi, rsi, lengthStoch), k)
stochRsiD = ta.sma(stochRsiK, d)

// Entry Conditions
bullishCondition = close > emaSlow and close < emaFast and close < emaMedium and stochRsiK < overSold
bearishCondition = close < emaSlow and close > emaFast and close > emaMedium and stochRsiK > overBought

// Strategy Execution
if (bullishCondition)
    strategy.entry("Long", strategy.long)

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

// Plotting
plot(emaFast, color=color.blue, title="Fast EMA")
plot(emaMedium, color=color.orange, title="Medium EMA")
plot(emaSlow, color=color.red, title="Slow EMA")
hline(overSold, "Oversold", color=color.green)
hline(overBought, "Overbought", color=color.red)


Больше