라게르 RSI 트레이딩 전략


생성 날짜: 2023-12-19 14:04:46 마지막으로 수정됨: 2023-12-19 14:04:46
복사: 0 클릭수: 1317
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

라게르 RSI 트레이딩 전략

개요

라게일 RSI 거래 전략은 존 EHLERS의 라게일 필터를 기반으로 한 RSI 지표이다. 이 전략은 RSI 지표의 지연성과 미끄러움을 증가시키거나 감소시키기 위해 α 계수를 조정하여 RSI 지표의 잡음을 필터링하여 더 명확한 구매 신호를 제공합니다.

전략 원칙

이 전략의 핵심 지표는 라게르 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

다음으로 cu와 cd를 사용하여 라게일 RSI를 계산할 수 있습니다.

LaRSI = cu / (cu + cd)

여기서 회귀 필터의 구조를 통해, 라게일 RSI 지표는 RSI 지표의 트렌드 식별 능력을 유지하면서도, 더 많은 무작위적 잡음을 필터링하여 더 명확하고 부드러운 거래 신호를 생성할 수 있습니다.

특정 거래 규칙: 라게일 RSI가 20을 넘으면 더하고, 라게일 RSI가 80을 넘으면 더하고, 라게일 RSI가 80을 넘으면 더하지 않는다.

우위 분석

라겔의 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))