Эта стратегия использует Динамический индекс трейдеров (TDI) в качестве основного технического индикатора, в сочетании с скользящими средними за разные временные рамки для генерации торговых сигналов.
Стратегия сначала рассчитывает RSI закрытия с периодом 13. Затем она рассчитывает 34-периодную простую скользящую среднюю величину RSI и использует 1,6185 раз 34-периодное стандартное отклонение RSI в качестве верхней и нижней полос. Верхняя полоса - скользящая средняя плюс смещение, а нижняя полоса - скользящая средняя минус смещение.
После этого он вычисляет быстрый MA RSI с периодом 2 и медленный MA RSI с периодом 7. Затем он извлекает исторические значения этих индикаторов из более высокого временного интервала. Когда быстрый MA пересекает ниже медленного MA, генерируется сигнал покупки. Когда быстрый MA пересекает выше медленного MA, генерируется сигнал продажи.
Эта стратегия использует среднюю характеристику реверсии RSI и сочетает в себе индикаторы импульса для реализации реверсивной торговли. Верхняя и нижняя полосы RSI отражают условия перекупки и перепродажи, в то время как средняя полоса отражает средний уровень цены.
В частности, диапазоны RSI устанавливают разумные пороги перекупленности и перепроданности для быстрого обнаружения аномалий. Средняя полоса улавливает уровень равновесной цены. Быстрый MA фильтрует краткосрочный шум, а медленный MA определяет среднесрочную тенденцию. Работая вместе, они могут эффективно идентифицировать возможности для отмены. Кроме того, сочетание индикаторов в разные временные рамки позволяет стратегии подтверждаться в нескольких временных горизонтах, снижая риск ложных сигналов.
Эта стратегия основана в основном на среднем обратном движении, который имеет неотъемлемые риски временного отсчета. Последующие потери могут произойти, если рынок претерпевает длительное иррациональное расширение, такое как короткое сжатие. Кроме того, неудача в правильном настройке быстрых и медленных МА может привести к упущенным возможностям обращения или ложным сигналам. Необходима некоторая степень оптимизации параметров.
Для контроля над вышеуказанными рисками целесообразно разумно скорректировать периоды MA или добавить механизмы остановки потерь. Когда рынок вступает в иррациональный режим, размер позиций должен быть уменьшен или торговля вообще прекращена. В целом ключевым является адаптация стратегии к конкретным рыночным условиям.
Стратегия может быть оптимизирована в следующих аспектах:
Испытывайте периоды RSI различной длины, чтобы найти более подходящие для текущих рыночных условий настройки.
Оптимизируйте длины быстрых и медленных МА, чтобы сбалансировать сцепление обратных движений и фильтрацию шума.
Добавить стоп-лосс, основанный на волатильности, чтобы контролировать максимальное снижение.
Попробуйте добавить другие факторы, такие как изменение объема в логике входа, чтобы улучшить точность.
Проверить эффект повторного использования одного и того же набора торговых сигналов в нескольких временных рамках.
Разработка механизмов адаптивной оптимизации для регулирования динамических параметров.
Общая структура этой стратегии реверсии RSI разумна с четкой и интерпретируемой логикой. Она имеет настраиваемое пространство и потенциал оптимизации. При надлежащей настройке параметров и контроле рисков ее способность улавливать реверсии многообещающая. Следующим шагом является дальнейшая оптимизация стратегии посредством большего обратного тестирования и корректировки параметров, чтобы повысить ее надежность и рентабельность.
/*backtest start: 2022-11-06 00:00:00 end: 2023-11-12 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("TDI - Traders Dynamic Index [Mehdi]", shorttitle="TDIMEHDI") rsiPeriod = input(13, minval = 1, title = "RSI Period") bandLength = input(34, minval = 1, title = "Band Length") lengthrsipl = input(7, minval = 0, title = "Fast MA on RSI") lengthtradesl = input(2, minval = 1, title = "Slow MA on RSI") p1 = input("15", title = "Signal Timeframe") src = close // Source of Calculations (Close of Bar) r = rsi(src, rsiPeriod) // RSI of Close ma = sma(r, bandLength) // Moving Average of RSI [current] offs = (1.6185 * stdev(r, bandLength)) // Offset up = ma + offs // Upper Bands dn = ma - offs // Lower Bands mid = (up + dn) / 2 // Average of Upper and Lower Bands fastMA = sma(r, lengthrsipl) // Moving Average of RSI 2 bars back slowMA = sma(r, lengthtradesl) // Moving Average of RSI 7 bars back hline(20) // ExtremelyOversold hline(30) // Oversold hline(50) // Midline hline(70) // Overbought hline(80) // ExtremelyOverbought up1 = request.security(syminfo.tickerid, p1, up) dn1 = request.security(syminfo.tickerid, p1, dn) mid1 = request.security(syminfo.tickerid, p1, mid) slowMA1 = request.security(syminfo.tickerid, p1, slowMA) fastMA1 = request.security(syminfo.tickerid, p1, fastMA) plot(up1, "Upper Band", color = #3286c3, linewidth = 2) // Upper Band plot(dn1, "Lower Band", color = #3286c3, linewidth = 2) // Lower Band plot(mid1, "Middle of Bands", color = yellow, linewidth = 2) // Middle of Bands plot(slowMA1, "Slow MA", color=green, linewidth=2) // Plot Slow MA plot(fastMA1, "Fast MA", color=red, linewidth=1) // Plot Fast MA if (crossover(slowMA1, fastMA1)) strategy.entry("Buy", strategy.long, comment="Buy") if (crossunder(slowMA1, fastMA1)) strategy.entry("Sell", strategy.short, comment="Sell")