RSI 채널 가격 차이 추적 전략

저자:차오장, 날짜: 2023-12-18 17:48:24
태그:

img

전반적인 설명

RSI 채널 가격 차이 추적 전략은 임계 채널 내에서 RSI 지표의 변동을 가격 브레이크와 결합하여 트레이딩 신호를 생성합니다. 이 전략은 암호화 시장에서 빠른 구매 및 판매 폭발을 포착하는 것을 목표로합니다.

전략 논리

  1. Hull Moving Average를 사용하여 RSI를 부드럽게하고 폐쇄 가격, 최고 가격, 최저 가격 및 중간 가격의 RSI를 포함하여 부드러운 RSI 지표를 생성합니다.

  2. RSI 채널 범위를 55-45로 설정합니다. RSI가 55-45 채널에 들어가면 충격 구역에 들어가는 것을 나타냅니다.

  3. 폐쇄 가격 RSI가 채널의 상위 경계에서 뒤로 떨어지고 폐쇄 가격이 중간 가격보다 낮으면 가격이 압력을 받고 있음을 나타냅니다. 그러나 이 시점에서 중간 가격 RSI는 여전히 채널의 상위 경계보다 높으며, 중간 가격이 여전히 중간 가격 브레이크오프를 추적하는 논리를 충족하는 구매력을 가지고 있음을 나타냅니다. 따라서 구매 신호가 생성됩니다.

  4. 폐쇄 가격 RSI는 채널의 하위 한계에서 반등하고, 폐쇄 가격은 중위 가격보다 높습니다. 그것은 가격이 지원을 가지고 있음을 나타냅니다. 그러나 이 시점에서, 중위 가격 RSI는 채널의 하위 한계 아래에 떨어집니다. 이는 중위 가격이 더 큰 압력을 가지고 있음을 나타냅니다. 이는 중위 가격 브레이크를 추적하는 논리를 충족시킵니다. 따라서 판매 신호가 생성됩니다.

  5. 가장 높은 가격 RSI와 가장 낮은 가격 RSI 지표는 유효하지 않은 거래 신호를 신속하게 식별하고 빠른 스톱 손실을 실현하기 위해 사용됩니다.

전략 의 장점

  1. 중위 가격의 강한 방향을 추적하기 위해 중위 가격 브레이크오프를 사용하는 것은 트렌드 추적의 아이디어를 충족시킵니다.

  2. RSI가 임계 채널 내에서 변동할 때, 그것은 쇼크 구역으로 들어가는 것을 나타냅니다. 이 시점에서, 중위 가격의 강한 방향을 추적하기 위해 중위 가격을 사용하는 것은 범위 제한 쇼크에 갇히지 않도록합니다.

  3. 가장 높은 가격 RSI와 가장 낮은 가격 RSI 지표는 유효하지 않은 거래 신호를 신속하게 식별하고 손실을 효과적으로 제어 할 수있는 빠른 스톱 손실을 실현하는 데 사용됩니다.

전략 의 위험

  1. 부적절한 RSI 매개 변수 설정은 너무 민감하거나 느린 반응을 일으킬 수 있습니다.

  2. 중위 가격 파업의 중요성은 항상 신뢰할 수 없으며, 중위 가격 자체도 변동할 수 있습니다.

  3. 암호화폐 시장의 높은 변동성, 너무 느슨한 스톱 로스 설정은 손실을 확대시킬 수 있습니다.

해결책:

  • 가격 변화에 적절한 반응을 하기 위해 RSI 매개 변수를 최적화
  • 중간 가격 파업의 신뢰성을 판단하기 위해 더 많은 지표를 결합하십시오.
  • 큰 손실을 방지하기 위해 적절한 중지 손실 설정을 강화

전략 최적화의 방향

  1. 더 많은 지표를 결합하여 중위 가격의 파업 방향을 판단하십시오.

볼링거 밴드 같은 지표를 도입하여 중간 가격이 상위 또는 하위 밴드에 가깝는지 판단하여 중간 가격의 파업 방향을 판단하는 정확도를 향상시킵니다.

  1. 판단에 도움이 되는 머신러닝 모델을 도입

LSTM 및 다른 딥 러닝 모델을 사용하여 중위 가격의 미래 트렌드를 예측하고 중위 가격이 특정 방향으로 성공적으로 돌출 할 수 있는지 결정하는 데 도움을줍니다.

  1. 적응 스톱 손실을 사용

시장 변동성에 따라 동적으로 스톱 로스 포지션을 조정합니다. 예를 들어 변동성이 증가할 때 적절한 스톱 로스 포지션을 강화하고 변동성이 감소할 때 적절한 스톱 로스 포지션을 느슨하게하십시오.

요약

RSI 채널 가격 차이 추적 전략은 암호화 시장에서 빠른 구매/판매 폭발을 포착하는 것을 목표로 채널 내에서 RSI 변동을 추적하여 거래 신호를 생성합니다. 전략은 트렌드 추적 및 범위 식별 방법을 효과적으로 결합하고 가격 차이가 좁아지면 여전히 좋은 거래 신호를 얻을 수 있습니다. 한편, 빠른 스톱 손실 메커니즘은 또한 전략의 위험을 제어 할 수 있습니다. 다음 단계는 더 많은 지표 판단과 기계 학습 예측을 결합하여 전략의 신뢰성과 수익성을 더욱 향상시키는 것입니다.


/*backtest
start: 2023-11-17 00:00:00
end: 2023-12-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Hull MA of RSI Strategy",overlay=false)
//+++++++++++++++++++++++++++++++
//++++++++++++ Setup ++++++++++++
//+++++++++++++++++++++++++++++++
// RSI 
rsi1_tt="=== RSI ==="
rsi1_len=input(13,title="Period",inline="set",group=rsi1_tt)
//Mid
mid_tt="=== Mid Channel ==="
upper=input(55.0,title="Upper",inline="set",group=mid_tt)
lower=input(45.0,title="Lower",inline="set",group=mid_tt)
//Over
over_tt="=== Over ==="
ovb=input(70.0,title="Overbought",inline="set",group=over_tt)
ovs=input(30.0,title="Oversold",inline="set",group=over_tt)
//++++++++++++++++++++++++++++++++++++++++
//++++++++++++ Hull MA of RSI ++++++++++++
//++++++++++++++++++++++++++++++++++++++++
hma_tt="=== Hull MA ==="
hma_len=input(3,title="Period",inline="set",group=hma_tt)
rsi_c=hma(rsi(close,rsi1_len),hma_len)
rsi_h=hma(rsi(high,rsi1_len),hma_len)
rsi_l=hma(rsi(low,rsi1_len),hma_len)
rsi_hl2=hma(rsi(hl2,rsi1_len),hma_len)
//++++++++++++++++++++++++++++++++
//++++++++++++ Signal ++++++++++++
//++++++++++++++++++++++++++++++++
var order_status="None"
BuySignal=
       crossunder(rsi_c,ovb)
       and
       close<hl2
       and
       rsi_hl2>ovb
       and
       order_status=="None"
CloseBuy=
       order_status[1]=="Long"
       and
       (crossover(rsi_c,ovb)
       or
       crossunder(rsi_l,upper))
SellSignal=
       crossover(rsi_c,ovs)
       and
       close>hl2
       and
       rsi_hl2<ovs
       and
       order_status=="None"
CloseSell=
       order_status[1]=="Short"
       and
       (crossunder(rsi_c,ovs)
       or
       crossover(rsi_h,lower))
ExitSignal=
       CloseBuy
       or
       CloseSell
if BuySignal
    order_status:="Long"
if SellSignal
    order_status:="Short"
if ExitSignal
    order_status:="None"

//+++++++++++++++++++++++++++++++++++
//++++++++++++ Plot Line ++++++++++++
//+++++++++++++++++++++++++++++++++++
rsi_c_col=
       rsi_c>upper?color.new(color.blue,0):
       rsi_c<lower?color.new(color.blue,0):
       color.new(color.orange,0)
rsi_h_col=
       rsi_h>upper?color.new(color.green,0):
       rsi_h<lower?color.new(color.green,0):
       color.new(color.orange,0)
rsi_l_col=
       rsi_l>upper?color.new(color.yellow,0):
       rsi_l<lower?color.new(color.yellow,0):
       color.new(color.orange,0)
rsi_hl2_col=
       rsi_hl2>upper?color.new(color.olive,0):
       rsi_hl2<lower?color.new(color.olive,0):
       color.new(color.orange,0)
plot(rsi_c,title="RSI Close",color=rsi_c_col,linewidth=2)
plot(rsi_h,title="RSI High",color=rsi_h_col,linewidth=1)
plot(rsi_l,title="RSI Low",color=rsi_l_col,linewidth=1)
plot(rsi_hl2,title="RSI HL2",color=rsi_hl2_col,linewidth=1)
upper_line=hline(upper,title="Upper",color=color.new(color.black,100))
lower_line=hline(lower,title="Lower",color=color.new(color.black,100))
fill(upper_line,lower_line,title="Mid Channel",color=color.silver)
ovb_line=hline(ovb,title="Overbought",color=color.new(color.silver,0),linestyle=hline.style_solid,linewidth=2)
ovs_line=hline(ovs,title="Oversold",color=color.new(color.silver,0),linestyle=hline.style_solid,linewidth=2)

//++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++ Plot Analyzing Signals ++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++
//Color
buy_col=
       BuySignal?color.new(color.blue,70):na
sell_col=
       SellSignal?color.new(color.red,70):na
close_buy_col=
       CloseBuy and order_status[1]=="Long"?color.new(color.yellow,70):na
close_sell_col=
       CloseSell and order_status[1]=="Short"?color.new(color.yellow,70):na
//Background
bgcolor(close_buy_col, title='Close Buy', offset=0)
bgcolor(close_sell_col, title='Close Sell', offset=0)
bgcolor(sell_col, title='Sell', offset=0)
bgcolor(buy_col, title='Buy', offset=0)
//++++++++++++++++++++++++++++++++++
//++++++++++++ Backtest ++++++++++++
//++++++++++++++++++++++++++++++++++
strategy.entry("Long",strategy.long,when=BuySignal)
strategy.close("Long",when=CloseBuy)
strategy.entry("Short",strategy.short,when=SellSignal)
strategy.close("Short",when=CloseSell)
//EOF

더 많은