Стратегия торговли Laguerre RSI

Автор:Чао Чжан, Дата: 2023-12-19 14:04:46
Тэги:

img

Обзор

Торговая стратегия Laguerre RSI основана на фильтре John EHLERS Laguerre, применяемом к индикатору RSI.

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

Основным показателем этой стратегии является Laguerre RSI. Его формула расчета следующая:

L0 = (1-γ)Src + γL0[1] L1 = -γL0 + L0[1] + γL1[1] L2 = -γL1 + L1[1] + γL2[1] L3 = -γL2 + L2[1] + γL3[1]

Здесь γ=1-α, α - регулируемый коэффициент, Src представляет собой цену. L0 до L3 - это 4 показателя, содержащие рекурсивные отношения. На этой основе можно рассчитать текущий интеграл cu вверх и интеграл cd вниз:

cu = (L0>L1? L0-L1 : 0) + (L1>L2? L1-L2 : 0) + (L2>L3? L2-L3 : 0) cd = (L0

Тогда Laguerre RSI можно рассчитать с помощью cu и cd:

LaRSI = cu / (cu + cd)

Благодаря рекурсивной структуре фильтра Laguerre RSI сохраняет способность идентификации трендов RSI, фильтруя при этом много случайного шума, генерируя более четкие и плавные торговые сигналы.

Специфическими правилами торговли являются: Продолжайте, когда RSI Laguerre пересекает 20 и переходите в короткие позиции, когда RSI Laguerre пересекает 80.

Анализ преимуществ

Основными преимуществами стратегии Laguerre RSI являются:

  1. Эффективно фильтрует шум RSI через структуру фильтра Laguerre, делая торговые сигналы более ясными и надежными

  2. Регулируемый коэффициент α делает параметры стратегии гибкими для оптимизации для адаптации к более рыночным условиям

  3. Сохраняет долгосрочную валидность РСИ, позволяя одновременно определять импульс путем фильтрации, интеграции тренда и перекупленности/перепродажи.

  4. Простые и интуитивно понятные правила стратегии, которые легко внедряются и хорошо работают в различных рыночных условиях

Анализ рисков

Основными рисками этой стратегии являются:

  1. Неправильное настройка α может привести к чрезмерному отставанию или перефильтрованию, что приводит к отсутствию изменений цен

  2. Частые торговые потери могут возникать на волатильных рынках

  3. Некоторые возможности для роста могут быть упущены на долгосрочных устойчивых бычьих рынках

Руководство по оптимизации

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

  1. Использование алгоритмов машинного обучения для оптимизации настройки коэффициента α

  2. Добавление механизмов остановки потери для снижения риска потери

  3. Комбинировать другие индикаторы для фильтрации ложных сигналов

  4. Увеличить модель количественного смягчения для обеспечения прибыли на определенных этапах

Заключение

Стратегия Laguerre RSI эффективно идентифицирует ситуации с перекупленностью и перепроданностью с помощью фильтрующих механизмов, избегая помех от шума при выдаче торговых сигналов.


/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mertriver1
// Developer: John EHLERS
//@version=3
// Author:Kıvanç Özbilgiç
strategy("Laguerre RSI", shorttitle="LaRSI", overlay=false)
src = input(title="Source", defval=close)
alpha = input(title="Alpha", type=float, minval=0, maxval=1, step=0.1, defval=0.2)
colorchange = input(title="Change Color ?", type=bool, defval=false)

Date1      = input(true, title = "=== Date Backtesting ===")
FromDay1   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth1 = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear1  = input(defval = 2020, title = "From Year", minval = 2017)

ToDay1     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth1   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear1    = input(defval = 9999, title = "To Year", minval = 2017)

start1     = timestamp(FromYear1, FromMonth1, FromDay1, 00, 00) 
finish1    = timestamp(ToYear1, ToMonth1, ToDay1, 23, 59)        
window1()  => time >= start1 and time <= finish1 ? true : false

gamma=1-alpha
L0 = 0.0
L0 := (1-gamma) * src + gamma * nz(L0[1])
L1 = 0.0
L1 := -gamma * L0 + nz(L0[1]) + gamma * nz(L1[1])

L2 = 0.0
L2 := -gamma * L1 + nz(L1[1]) + gamma * nz(L2[1])

L3 = 0.0
L3 := -gamma * L2 + nz(L2[1]) + gamma * nz(L3[1])

cu= (L0>L1 ? L0-L1 : 0) + (L1>L2 ? L1-L2 : 0) + (L2>L3 ? L2-L3 : 0)

cd= (L0<L1 ? L1-L0 : 0) + (L1<L2 ? L2-L1 : 0) + (L2<L3 ? L3-L2 : 0)

temp= cu+cd==0 ? -1 : cu+cd
LaRSI=temp==-1 ? 0 : cu/temp

Color = colorchange ? (LaRSI > LaRSI[1] ? green : red) : blue
plot(100*LaRSI, title="LaRSI", linewidth=2, color=Color, transp=0)
plot(20,linewidth=1, color=maroon, transp=0)
plot(80,linewidth=1, color=maroon, transp=0)

strategy.entry("Long",   true, when = window1() and crossover(cu, cd))
strategy.entry("Short", false, when = window1() and crossunder(cu, cd))

Больше