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