
이 전략은 Stochastic RSI 기반의 디지털 화폐 거래 전략이라고 불린다. 이 전략은 상대적으로 강한 지수 ((RSI) 와 무작위 지수 평평한 이동 평균 ((Stochastic RSI) 을 결합하여 디지털 화폐의 구매 및 판매 신호를 식별한다.
전략의 주요 아이디어는: 먼저 RSI 값을 계산하고, RSI를 기반으로 K 값과 D 값이라는 스토카스틱 RSI 지표를 구축한다. K 값이 D 값을 통과하면 구매 신호가 발생하고, K 값이 D 값을 통과하면 판매 신호가 발생한다. 가짜 신호를 필터링하기 위해, 전략은 변화 비율 지수 ((RVI) 와 평평한 이동 평균을 확인하기 위해 도입했다.
길이가 14인 RSI 값이다.
RSI를 기반으로 14개의 길이로 구성된 스토카스틱 RSI 지표는 K값과 D값 ((D는 K의 3기 이동 평균) 을 얻는다).
계산 길이는 5의 RVI와 그것의 신호 라인 ((즉, RVI의 평평한 이동 평균) 이다.
K 위 D를 통과하면 RVI > 신호선과 상반기 RVI < 신호선이라면 구매 신호가 발생한다. K 아래 D를 통과하면 RVI < 신호선과 상반기 RVI > 신호선이라면 판매 신호가 발생한다.
생성된 신호에 따라, 구매 또는 판매 상장 개시 작업을 수행한다.
스토카스틱 RSI와 RVI 이중 확인과 함께, 가짜 신호를 효과적으로 필터링 할 수 있습니다.
RVI 지표는 단기간에 과매매되는 상황을 반영하여 극한 지점에서 포지션을 개시하는 것을 피할 수 있습니다.
Stochastic RSI 지표는 KDJ 지표의 금叉死叉 형태를 이용하여 매매 지점을 판단할 수 있다.
재검토 결과, 이 전략은 일부 디지털 통화 거래 쌍 (FCT/BTC와 같은) 에서 좋은 효과를 거두었다.
이 전략은 트래킹 스톱로즈와 비슷하며, 스톱로즈가 잘못 설정되어 있으면 감옥에 수감될 수 있습니다.
신호 생성 주파수가 너무 높을 수 있으며 거래 비용이 고려해야 할 요소입니다.
KDJ 지표와 RVI 지표는 모두 가짜 신호를 생성할 수 있으며, 이로 인해 불필요한 손실이 발생할 수 있다.
전략 파라미터는 다양한 거래 쌍에 대해 최적화되어야 하며, 보편성을 고려해야 한다.
이윤을 고정하기 위해 이동 상쇄를 추가하고, ATR을 참조하여 상쇄 지점을 설정할 수 있다.
RVI 변수와 Stochastic RSI 변수를 최적화하여 더 명확한 신호를 제공합니다.
거래량 통제를 강화하고, 단일 주문이 너무 커지는 것을 방지한다.
필터링 메커니즘을 추가하여 높은 상위 포지션을 피하십시오. 현재 흔들림 상태에 있는지 판단하기 위해 변동률 지표를 도입 할 수 있습니다.
다양한 디지털 통화 쌍을 테스트하여 가장 적합한 종류를 찾아보세요.
이 전략은 먼저 RSI 지표를 사용하여 Stochastic RSI를 구성하고, 그 다음 RVI 지표와 결합하여 신호를 확인하여 단기간에 과매매 과매매 현상을 발견하여 역점 부위에서 포지션을 열 수 있습니다. 이점은 두 번 확인하면 가짜 신호를 필터링 할 수 있으며, 단점은 매개 변수가 지나치게 잘 어울리는 위험이있을 수 있습니다.
/*backtest
start: 2022-12-08 00:00:00
end: 2023-12-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="Stochastic RSI", shorttitle="Stoch RSI", overlay = true)
Per = input(5, title="Length", minval=1)
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)
rvi = sum(swma(close-open), Per)/sum(swma(high-low),Per)
sig = swma(rvi)
//plot(rvi, color=green, title="RVI")
//plot(sig, color=red, title="Signal")
//plot(K, title="K")
//plot(D, title="D")
Dn = K <= D and K > 70 and rvi <= sig and rvi[1] >= sig[1]
Up= K >= D and K < 30 and rvi >= sig and rvi[1] <= sig[1]
ARROW = Up - Dn
plotarrow(ARROW, title="Down Arrow", colordown=red, transp=0, maxheight=10, minheight=10)
plotarrow(ARROW, title="Up Arrow", colorup=lime, transp=0, maxheight=10, minheight=10)
long = crossover(Up, Dn)
short = crossunder(Up, Dn)
last_long = long ? time : nz(last_long[1])
last_short = short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)
//plot(long_signal, "BUY", color=green)
//plot(short_signal, "SELL", color=red)
strategy.entry("BUY", strategy.long, when=long_signal)
strategy.entry("SELL", strategy.short, when=short_signal)