
설명: 이 전략은 암호화폐에 적용되는 빠른 RSI 점프 트레이딩 전략이다. 이는 동시에 빠른 RSI 지표와 점프하는 K선 전략을 사용하여 거래 기회를 찾는다.
전략적 원칙: 이 전략은 두 가지 주요 지표를 동시에 사용합니다: 빠른 RSI와 K 선의 점프.
먼저, 7개의 K선으로만 빠른 RSI 지표를 계산한다. 이 RSI 지표는 더 민감하며, 초과 판매 현상을 빠르게 포착할 수 있다. RSI 상한을 70으로 설정하고, 하한을 30으로 설정한다. RSI가 70보다 크면 초과 판매, 30보다 작으면 초과 판매한다.
두 번째로, K선에서 폭파를 감지한다. 폭파는 거래소 개시 가격과 전날의 거래소 개시 가격 사이에 큰 간격이 있음을 나타냅니다. 폭파는 높은 변동의 신호이며, 가능한 트렌드 반전을 예고합니다.
아래로 뛰어내리는 K선과 빠른 RSI가 과매매하는 것을 감지하면 더 많이 한다. 위로 뛰어내리는 K선과 빠른 RSI가 과매매하는 것을 감지하면 더 많이 한다.
또한, 이 전략은 SMA 평균선과 최소 최대 지표를 필터로 설정하여 잘못된 거래를 방지합니다. 필터를 통과한 경우에만 진정한 거래 신호가 발송됩니다.
우위 분석: 이 전략의 가장 큰 장점은 빠른 과매매 과매매 현상을 포착하고 폭파 역전 기회를 잡는 것입니다. 특히 변동성이 큰 암호화폐 시장에 적용되어 빠른 시세 전환점을 잡을 수 있습니다. 일반 RSI에 비해 빠른 RSI는 더 민감하며 암호화폐의 고주파 거래에 적응 할 수 있습니다. 최소 최대 지표와 SMA 평행선을 추가하면 몇 가지 잘못된 기회를 제거하고 전략의 안정성을 높일 수 있습니다.
위험 분석: 이 전략은 크게 네 가지의 위험에 직면해 있습니다.
빠른 RSI 지표가 너무 민감하게 설정되어 있기 때문에 많은 잘못된 신호가 발생할 위험이 있습니다.
이 전략은 실제 반전보다는 정상적인 가격 변동이 될 수 있고, 그 전략은 상쇄 손실의 위험을 감수할 수 있다.
“그때는 평온한 상태였는데, 평평한 위치에 더 오래 앉아 있을 수 있었습니다.
최소 최대 지표 길이와 같은 정책 변수가 잘못 설정되면 신호 희석과 효율성이 떨어진다.
따라서, 다음의 방법들이 위와 같은 위험을 줄일 수 있습니다.
빠른 RSI의 변수를 조정하여 RSI 주기를 적절하게 증가시킵니다.
이동식 스톱을 사용하여 수익을 고정하고, 점프 추적을 통해 손실을 방지합니다.
전략의 참여를 최적화하고, 낮은 변동성에서 전략의 참여를 제어합니다.
반복적으로 테스트하고 최적화하여 최적의 변수를 찾아서 전략의 효과를 보장한다.
최적화 방향: 이 전략의 최적화 방향은 다음과 같습니다.
MACD, KDJ와 같은 다른 가격 지표들을 탐색하여, 점프와 결합하여 신호의 정확도를 높여라.
시장의 변동에 따라 자동으로 스톱포트를 조정하는 적응형 스톱포드 설정을 추가합니다.
결합량수 지표는 OBV와 같이 공중이 뛰는 것을 확인하는 신호를 확인하고 역동성을 확인합니다.
필터 길이와 매개 변수를 최적화하여 잘못된 보고를 줄이기 위해 최적의 매개 변수 조합을 찾습니다.
다양한 암호화폐의 전략적 매개 변수들에 대한 적응성을 연구하여 보다 정확한 매개 변수를 설정한다.
이러한 최적화를 통해 전략의 안정성, 적응성 및 신뢰성을 향상시킬 수 있습니다.
결론: 빠른 RSI 폭파 전략은 암호화폐의 변동적인 상황에 대해 특별히 설계된 효율적인 거래 전략이다. 그것은 빠른 RSI 지표의 감수성과 폭파 K 라인의 예측 능력을 결합한다. 지속적인 테스트와 최적화를 통해 전략이 시장의 빠른 반전을 포착하는 능력을 더욱 향상시킬 수 있으며, 변동성 암호화폐 시장에서 장기적으로 안정적인 수익을 얻을 수 있다.
/*backtest
start: 2023-10-27 00:00:00
end: 2023-11-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=3
strategy(title = "Noro's Fast RSI Strategy v1.5", shorttitle = "Fast RSI str 1.5", overlay = true)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usersi = input(true, defval = true, title = "Use Fast RSI Strategy")
usemm = input(true, defval = true, title = "Use Min/Max Strategy")
usesma = input(false, defval = false, title = "Use SMA Filter")
smaperiod = input(20, defval = 20, minval = 2, maxval = 1000, title = "SMA Filter Period")
fast = input(7, defval = 7, minval = 2, maxval = 50, title = "Fast RSI Period")
limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit")
rsisrc = input(close, defval = close, title = "RSI Price")
rsibars = input(1, defval = 1, minval = 1, maxval = 20, title = "RSI Bars")
mmbars = input(1, defval = 1, minval = 1, maxval = 5, title = "Min/Max Bars")
showsma = input(false, defval = false, title = "Show SMA Filter")
showarr = input(false, defval = false, title = "Show Arrows")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, 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), fast)
fastdown = rma(-min(change(rsisrc), 0), fast)
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
upsignal = fastrsi > uplimit ? 1 : 0
dnsignal = fastrsi < dnlimit ? 1 : 0
uprsi = sma(upsignal, rsibars) == 1
dnrsi = sma(dnsignal, rsibars) == 1
//Body
body = abs(close - open)
abody = sma(body, 10)
//MinMax Bars
min = min(close, open)
max = max(close, open)
minsignal = min < min[1] and bar == -1 and bar[1] == -1 ? 1 : 0
maxsignal = max > max[1] and bar == 1 and bar[1] == 1 ? 1 : 0
mins = sma(minsignal, mmbars) == 1
maxs = sma(maxsignal, mmbars) == 1
//SMA Filter
sma = sma(close, smaperiod)
colorsma = showsma ? blue : na
plot(sma, color = colorsma, linewidth = 3)
//Signals
up1 = bar == -1 and (strategy.position_size == 0 or close < strategy.position_avg_price) and dnrsi and body > abody / 5 and usersi
dn1 = bar == 1 and (strategy.position_size == 0 or close > strategy.position_avg_price) and uprsi and body > abody / 5 and usersi
up2 = mins and (close > sma or usesma == false) and fastrsi < 70 and usemm
dn2 = maxs and (close < sma or usesma == false) and fastrsi > 30 and usemm
exit = ((strategy.position_size > 0 and fastrsi > dnlimit and bar == 1) or (strategy.position_size < 0 and fastrsi < uplimit and bar == -1)) and body > abody / 2
//Arrows
col = exit ? black : up1 or dn1 ? blue : up2 or dn2 ? red : na
needup = up1 or up2
needdn = dn1 or dn2
needexitup = exit and strategy.position_size < 0
needexitdn = exit and strategy.position_size > 0
plotarrow(showarr and needup ? 1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(showarr and needdn ? -1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(showarr and needexitup ? 1 : na, colorup = black, colordown = black, transp = 0)
plotarrow(showarr and needexitdn ? -1 : na, colorup = black, colordown = black, transp = 0)
//Trading
if up1 or up2
strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if dn1 or dn2
strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
strategy.close_all()