Estratégia de negociação Laguerre RSI


Data de criação: 2023-12-19 14:04:46 última modificação: 2023-12-19 14:04:46
cópia: 0 Cliques: 1317
1
focar em
1621
Seguidores

Estratégia de negociação Laguerre RSI

Visão geral

A estratégia de negociação RSI de Rachael é um indicador RSI baseado no filtro Rachael de John EHLERS. A estratégia aumenta ou diminui a latência e a elasticidade do indicador RSI, ajustando o coeficiente α, filtrando o ruído do indicador RSI e emitindo um sinal de compra e venda mais claro.

Princípio da estratégia

O indicador central da estratégia é o RSI de Raguel, cuja fórmula de cálculo é a seguinte:

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

Onde γ = 1-α, α é o coeficiente ajustável, Src representa o preço. L0 a L3 são os 4 indicadores que contêm relações de derivação. Com base nisso, pode-se calcular o ponto de ascensão cu e o ponto de descensão cd:

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

Em seguida, pode-se usar cu e cd para calcular o RSI de Raguel:

LaRSI = cu / (cu + cd)

Aqui, através da estrutura do filtro de regressão, o RSI de Raguel filtra a grande quantidade de ruído aleatório e consegue produzir um sinal de negociação mais claro e suave, enquanto mantém a capacidade de identificar tendências no RSI.

Regras de negociação específicas: Faça mais quando o RSI de Ragel estiver acima de 20 e faça menos quando o RSI de Ragel estiver abaixo de 80.

Análise de vantagens

Os principais benefícios da estratégia RSI de Raguel são:

  1. O ruído do indicador RSI é filtrado efetivamente através da estrutura do filtro Ragel, tornando os sinais de negociação mais claros e confiáveis

  2. O ajuste do coeficiente α permite que os parâmetros da estratégia sejam flexíveis e otimizados para um ambiente de mercado mais amplo

  3. Manter a eficácia do RSI a longo prazo, enquanto o filtro permite a identificação de dinâmicas, integração de tendências e sobrecompra e sobrevenda

  4. Regras de estratégia simples, intuitivas e fáceis de implementar, que funcionam bem em vários ambientes de mercado

Análise de Riscos

A estratégia tem os seguintes riscos:

  1. A configuração inadequada do coeficiente α pode causar atraso excessivo ou filtragem excessiva, perdendo a mudança de preço

  2. Perdas frequentes podem ocorrer em mercados muito agitados

  3. A tendência de alta pode ter perdido algumas oportunidades de alta

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Configuração de um algoritmo de aprendizado de máquina para otimizar o factor α

  2. Aumentar os mecanismos de suspensão de perdas e reduzir o risco de perdas

  3. Combinado com outros indicadores para avaliar sinais de alarme falso

  4. Aumentar o quantitative easing para bloquear lucros em fases específicas

Resumir

A estratégia RSI de Ragel é uma estratégia de negociação recomendada por ser simples, prática, com grande espaço para otimização de parâmetros e capacidade de adaptação a vários cenários de mercado.

Código-fonte da estratégia
/*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))