Тенденция ИРС в соответствии со стратегией

Автор:Чао Чжан, Дата: 2023-11-07 16:33:43
Тэги:

img

Обзор

Эта стратегия разработана на основе индикатора относительной силы (RSI) для выявления ситуаций с перекуплением и перепродажей и отслеживания тенденции.

Логика стратегии

Эта стратегия использует индикатор RSI для выявления условий перекупа и перепродажи на рынке. RSI рассчитывается на основе изменений цен за определенный период времени. RSI ниже 30 считается перепроданным, а RSI выше 70 считается перекупленным.

В частности, эта стратегия сначала определяет параметры RSI length=14, overbought=70, oversold=30. Затем рассчитывает значение RSI vrsi на основе цены закрытия. Когда vrsi пересекает линию перекупленной или ниже линии перепроданной, он соответствующим образом запускает длинную или короткую торговлю. После входа в торговлю устанавливается стоп-лосс кликнов etoroStopTicks. Позиции будут закрыты, когда в торговом окне запускается стоп-лосс.

Таким образом, стратегия может следовать основной тенденции рынка - идти длинным в ситуациях перепродажи и идти коротким в ситуациях перекупки.

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

  • Использование РСИ для выявления условий рынка с перекупленностью/перепроданностью для улавливания тренда
  • Гибкое окно обратного тестирования для тестирования различных периодов времени
  • Разумные параметры стоп-лосса для контроля потерь от одной сделки

Риски

  • Дивергенция индекса может генерировать ложные сигналы
  • Статический стоп-лосс не адаптируется к колебаниям рынка
  • Трудно определить обратный тренд, может привести к обратным сделкам

Решения:

  • Добавить индикаторы фильтра для предотвращения ошибочных записей на основе ложного сигнала RSI
  • Динамическая стоп-лосс для отслеживания движения рынка в реальном времени
  • Добавление инструментов оценки тренда для предотвращения обратных сделок

Улучшение

Стратегия может быть оптимизирована в следующих аспектах:

  1. Оптимизируйте параметры RSI для лучшей производительности

Проверьте различные периоды RSI и уровни перекупленности/перепроданности, чтобы найти оптимальные параметры и уменьшить ложные сигналы.

  1. Добавление инструментов оценки тренда для предотвращения контратендных сделок

Добавьте MA, MACD, чтобы оценить направление тренда и избежать неправильных сигналов в поворотные моменты.

  1. Динамическая остановка потери

Использовать ATR для установки адаптивной стоп-лосс для лучшего отслеживания колебаний рынка.

  1. Улучшение правил въезда

Добавьте другие условия, такие как прорыв, увеличение объема сигнала 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)

Больше