Эта стратегия разработана на основе индикатора относительной силы (RSI) для выявления ситуаций с перекуплением и перепродажей и отслеживания тенденции.
Эта стратегия использует индикатор RSI для выявления условий перекупа и перепродажи на рынке. RSI рассчитывается на основе изменений цен за определенный период времени. RSI ниже 30 считается перепроданным, а RSI выше 70 считается перекупленным.
В частности, эта стратегия сначала определяет параметры RSI length=14, overbought=70, oversold=30. Затем рассчитывает значение RSI vrsi на основе цены закрытия. Когда vrsi пересекает линию перекупленной или ниже линии перепроданной, он соответствующим образом запускает длинную или короткую торговлю. После входа в торговлю устанавливается стоп-лосс кликнов etoroStopTicks. Позиции будут закрыты, когда в торговом окне запускается стоп-лосс.
Таким образом, стратегия может следовать основной тенденции рынка - идти длинным в ситуациях перепродажи и идти коротким в ситуациях перекупки.
Решения:
Стратегия может быть оптимизирована в следующих аспектах:
Проверьте различные периоды RSI и уровни перекупленности/перепроданности, чтобы найти оптимальные параметры и уменьшить ложные сигналы.
Добавьте MA, MACD, чтобы оценить направление тренда и избежать неправильных сигналов в поворотные моменты.
Использовать ATR для установки адаптивной стоп-лосс для лучшего отслеживания колебаний рынка.
Добавьте другие условия, такие как прорыв, увеличение объема сигнала RSI, чтобы улучшить точность входа.
Стратегия улавливает тенденцию, идентифицируя ситуации с перекупленностью и перепроданностью с использованием RSI. По сравнению с традиционными стратегиями отслеживания остановки, она имеет преимущество синхронизации рынка с индикаторами. Однако необходимо решить такие проблемы, как дивергенция RSI и неспособность обнаружить изменение тренда. Дальнейшие улучшения в оптимизации параметров, оценке тренда, динамической стоп-лосс могут повысить стабильность и прибыльность.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("RSI Etoro Strategy", overlay=true, max_bars_back=2000) // To use: // Capital = capital * leverage // Slippage Ticks: 3, 5 ? (Mainly for spread) // etoroStopTicks: Set it accordingly to the stock (to corresponds to etoro default of 50 % for exemple...) // === INPUT BACKTEST RANGE === FromMonth = input(defval = 12, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) FromYear = input(defval = 2018, title = "From Year", minval = 1995) 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 = 1995) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" length = input( 14 ) overSold = input( 30 ) overBought = input( 70 ) etoroStopTicks = input( 120 ) // 120 because it is approximatively the number of ticks for default SL of 50% at x5 leverage for copper (no fee)... price = close vrsi = rsi(price, length) if (not na(vrsi)) if (crossover(vrsi, overSold)) strategy.entry("RsiLE", strategy.long, comment="RsiLE", when = window()) if (crossunder(vrsi, overBought)) strategy.entry("RsiSE", strategy.short, comment="RsiSE", when = window()) strategy.exit("exit SE", "RsiSE", loss=etoroStopTicks, when = window()) strategy.exit("exit LE", "RsiLE", loss=etoroStopTicks, when = window()) //plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)