Стратегия торговли откатом криптовалюты на основе Stochastic RSI и EMA Crossover


Дата создания: 2024-03-08 16:44:51 Последнее изменение: 2024-03-08 16:44:51
Копировать: 4 Количество просмотров: 672
1
Подписаться
1617
Подписчики

Стратегия торговли откатом криптовалюты на основе Stochastic RSI и EMA Crossover

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

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

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

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

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

Стратегические преимущества

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

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

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

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

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

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

Стратегия использует случайный 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)