
이 전략은 RSI 지표를 사용하여 흔들리는 상황을 식별하고 흔들리는 과정에서 트렌드 반전 기회를 포착하는 거래 전략이다. 전략은 빠른 RSI 지표를 통해 가격이 흔들리는 지역에 진입했는지 판단하고 K선 엔티티와 빠른 RSI의 다공간 신호를 결합하여 진입 시기를 판단한다.
이 전략은 주로 다음과 같은 원칙에 기초하여 작동합니다.
구체적으로, 전략은 쌍주기 RSI를 사용하여 가격이 설정된 30-70의 흔들림 영역에 들어간지 판단한다. K선 엔터티가 평균선을 뚫고 1⁄4 또는 1/2의 거래 신호를 생성하기 전에 K선 엔터티를 요구한다. 이같은 쌍 조건 판단을 통해 흔들림 행태의 가짜 신호를 효과적으로 필터링하여 진정한 흔들림이 있을 때만 입장을 보장할 수 있다.
이 전략은 다음과 같은 중요한 장점을 가지고 있습니다.
이 전략에는 몇 가지 위험도 있습니다.
위험을 제어하기 위해, 적절한 변수 조합 조정, 실내 검증, 그리고 손실 제도를 설정하는 것이 좋습니다.
이 전략에는 더 많은 최적화 가능성이 있습니다:
다중 지표 통합, 자율 변수 조정 및 알고리즘 거래와 같은 방법을 통해 전략의 안정성과 수익률을 더욱 향상시킬 수 있습니다.
빠른 RSI 지표로 가격의 흔들림을 포착하고 이중 필터링 메커니즘을 통해 진입 시기를 판단하는 빠른 흔들림 RSI 거래 전략은 깊이 연구하고 적용할 가치가있는 효과적인 전략입니다. 실무에서는 위험을 고려하고 여러 차원에서 최적화 조정하여 전략의 효과를 더욱 향상시킬 필요가 있습니다.
/*backtest
start: 2023-01-07 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "Noro's FRSI Strategy v1.22", shorttitle = "FRSI str 1.22", overlay = true )
//Settings
uprsiperiod = input(2, defval = 2, minval = 2, maxval = 50, title = "RSI UP Period")
dnrsiperiod = input(9, defval = 9, minval = 2, maxval = 50, title = "RSI DN Period")
limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit")
rsisrc = input(close, defval = close, title = "RSI Price")
rb = input(1, defval = 1, minval = 1, maxval = 5, title = "RSI Bars")
sps = 0
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//Fast RSI
fastup = rma(max(change(rsisrc), 0), uprsiperiod)
fastdown = rma(-min(change(rsisrc), 0), dnrsiperiod)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
//Limits
bar = close > open ? 1 : close < open ? -1 : 0
uplimit = 100 - limit
dnlimit = limit
//RSI Bars
ur = fastrsi > uplimit
dr = fastrsi < dnlimit
uprsi = rb == 1 and ur ? 1 : rb == 2 and ur and ur[1] ? 1 : rb == 3 and ur and ur[1] and ur[2] ? 1 : rb == 4 and ur and ur[1] and ur[2] and ur[3] ? 1 : rb == 5 and ur and ur[1] and ur[2] and ur[3] and ur[4] ? 1 : 0
dnrsi = rb == 1 and dr ? 1 : rb == 2 and dr and dr[1] ? 1 : rb == 3 and dr and dr[1] and dr[2] ? 1 : rb == 4 and dr and dr[1] and dr[2] and dr[3] ? 1 : rb == 5 and dr and dr[1] and dr[2] and dr[3] and dr[4] ? 1 : 0
//Body
body = abs(close - open)
emabody = ema(body, 30)
//Signals
up = bar == -1 and sps == 0 and dnrsi and body > emabody / 4
dn = bar == 1 and sps == 0 and uprsi and body > emabody / 4
exit = bar == 1 and fastrsi > dnlimit and body > emabody / 2
//Trading
if up
strategy.entry("Long", strategy.long)
sps := 1
if exit
strategy.close_all()
sps := 0