스톡 RSI 기반 트렌드 전략

저자:차오장, 날짜: 2024-02-02 11:23:29
태그:

img

전반적인 설명

이 전략은 트렌드 추적을 위한 스톡 RSI 지표에 기반하여 설계되었습니다. 그것은 스톡 RSI 크로스오버를 통해 거래 신호를 생성하고 동적으로 스톱 로스를 조정하고 최적화 된 돈 관리를 위해 수익 라인을 취하기 위해 트렌드 추적 메커니즘을 채택함으로써 RSI와 스톡 지표의 장점을 결합합니다.

전략 논리

이 전략은 RSI의 스톡 K 및 D 라인을 계산합니다. 스톡 RSI의 K 라인이 최저점으로부터 20을 넘을 때 구매 신호를 생성합니다. 그 다음 이전 여러 K 라인의 최저점에 기반한 스톱 손실이 설정되며 스톱 손실 라인은 상승 가격과 함께 동적으로 상향으로 조정됩니다. 동시에 가장 높은 가격에 기반한 취리 라인이 설정되며 가격이 취리 라인에 도달하면 포지션은 종료됩니다.

이점 분석

이 전략은 시장 트렌드 및 크로스오버를 결정하기 위해 스톡 RSI 지표를 결합하여 신호를 생성하여 RSI 지표를 단독으로 사용하는 한계를 피합니다. 한편, 트렌드 추적 메커니즘은 가격 움직임에 따라 지속적으로 스톱 로스 라인을 상향으로 조정하여 조기 스톱 로스 출구 위험을 피하고 트렌드 움직임 중에 지속적인 수익을 확보 할 수 있습니다. 또한, RSI 지표 자체는 상대적으로 좋은 승률을 가지고 있습니다.

위험 분석

이 전략은 주로 트렌드 및 크로스오버 신호 발생을 위해 스톡 RSI 지표에 의존합니다. 지표 자체에서 잘못된 신호는 몇 가지 위험을 초래합니다. 또한, 범위 제한 시장에서 자주 유발되는 스톱 로스 및 영업 라인은 전략의 수익성에 영향을 줄 수 있습니다. 파라미터 최적화로 위험을 줄일 수 있습니다.

최적화 방향

  • 스톡 RSI의 매개 변수를 최적화, 잘못된 신호 확률을 낮추기 위해 K 및 D 라인의 평평화 속도를 조정
  • 매개 변수 안정성을 향상시키기 위해 스톱 손실 및 수익을 취하는 설정을 최적화하십시오.
  • 다양한 시장에서 을 피하기 위해 필터링 조건을 추가
  • 시장 조건에 기반한 포지션 사이즈 메커니즘을 포함

결론

이 전략은 스톡 RSI 지표의 장점을 통합하고 트렌드 트래킹 메커니즘을 채택하여 트렌드 움직임을 효과적으로 식별하고 수익 캡처 확률을 향상시키기 위해 스톱과 목표를 동적으로 조정합니다. 매개 변수 최적화를 통해 안정성과 추적 능력을 더욱 향상시킬 수 있습니다. 전반적으로 이 전략은 위험을 제어하면서 수익을 허용하며 실시간 테스트를 할 가치가 있습니다.


/*backtest
start: 2023-01-26 00:00:00
end: 2024-02-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

strategy("sdf",calc_on_every_tick=true,precision=8,
     default_qty_type=strategy.fixed,currency="USD")
//entradas y variables de indicadores
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")
rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
overbought=input(80)
oversold=input(20)
//entradas de stop , trail, profit
stop=input(1500)
stop_dentro_de_los_ultimos_lows=input(20)
trail_points=input(500)
trail_offset=input(100)
profit=input(1000)
riesgo_en_dolares=input(15)
marsi=sma(rsi(close,14),14)
//condicion de compra: k>80
buycondition=crossover(k,20) and security(syminfo.ticker,"240",rsi(close,14)>marsi)
bgcolor( security(syminfo.ticker,"240",rsi(close,14)>marsi) ? yellow : na , transp=0)

if year>2014
    strategy.entry("l",strategy.long,qty=1,when=buycondition)
    velasiguente=barssince(buycondition)+1  //cierre en cada vela nueva independientemente si subeObaja.FUNCIONANDO
    strategy.close("l",when=velasiguente>2)       //cierre en cada vela nueva independientemente si subeObaja.FUNCIONANDO
    //paradaMasBajo=lowest(low,stop_dentro_de_los_ultimos_lows)//stop_dentro_de_los_ultimos_lows, NO PROBADA 
    //strategy.exit("l",loss=paradaMasBajo,profit=profit)
plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

더 많은