Торговая стратегия Laguerre RSI


Дата создания: 2023-12-19 14:04:46 Последнее изменение: 2023-12-19 14:04:46
Копировать: 0 Количество просмотров: 1317
1
Подписаться
1621
Подписчики

Торговая стратегия Laguerre RSI

Обзор

Торговая стратегия RSI, основанная на фильтре RSI, разработанном Джоном Элерсом. Стратегия RSI, основанная на фильтре John EHLERS, основанном на фильтре RSI, основанном на фильтре EHLERS, основанном на фильтре EHLERS, основанном на фильтре EHLERS.

Стратегический принцип

Центральным показателем стратегии является 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

Затем можно вычислить RSI Рагеля с помощью cu и cd:

LaRSI = cu / (cu + cd)

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

Конкретные правила: Дополнительно, когда Рагаэль наносит 20 на RSI; пустота, когда Рагаэль наносит 80 на RSI.

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

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

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

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

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

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

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

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

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

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

  3. Продолжающийся бычий рынок может пропустить некоторые шансы на прибыль

Направление оптимизации

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

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

  2. Увеличение механизма сдерживания убытков и снижение риска потерь

  3. Фильтрация в сочетании с другими показателями

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

Подвести итог

Стратегия 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))