
DPD-RSI-BB 수량화 전략은 DPD, RSI, 그리고 브린띠의 3가지 지표를 동시에 결합한 주식 거래 전략이다. 이 전략은 DPD 판단 경향, RSI 판단 과매매 과매매, 브린띠 판단 지원 압력 레벨을 이용한다.
이 전략은 다음과 같은 부분들로 구성됩니다.
이중 EMA 평균을 사용하여 DEMA 평균을 구성하고, 가격과 DEMA의 가격차 비율을 추세를 판단하는 지표로 계산하고, 가격차 비율이 하락값을 설정할 때 시선 신호로 사용한다.
특정 주기 동안의 RSI 값을 계산합니다. RSI는 상한을 설정하는 것보다 높은 것으로 판단되며, RSI는 상한을 설정하는 것보다 낮은 것으로 판단됩니다.
일정 주기 동안의 중간, 상위, 하위 궤도를 계산합니다. 상위 궤도에 가까운 가격이 하향 신호로, 하향 궤도에 가까운 가격은 우측 신호로 사용됩니다.
DPD의 차차 비율이 하락보다 낮고 RSI가 초상도 하위선보다 낮고 가격이 부린대에서 벗어나면 호불호 신호가 발생한다. RSI가 초상도 상위선보다 높고 DPD의 차차 비율이 하락보다 높고 가격이 부린대에서 벗어나면 호불호 신호가 발생한다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
다중 지표 통합 판단, 단일 지표에서 발생하는 잘못된 신호를 피한다.
RSI를 이용하여 과매매를 판단하고, 미리 Stop Loss을 설정한다.
DPD 지표는 가격 추세를 더 잘 판단하고, 브린은 지지 압력 수준을 판단한다.
다양한 매개 변수들의 유연한 설정으로, 다양한 주식들에 대해 최적화할 수 있다.
이 전략에는 몇 가지 위험도 있습니다.
다중 지표 조합 판단은 전략을 복잡하게 만들며, 매개 변수를 설정하는 것이 더 어렵다.
DPD, RSI 등 지표는 지연되어 최적의 진입 시점을 놓칠 수 있다.
다른 주기 및 주식 특성에 맞게 최적화해야 합니다.
다음의 관점에서 최적화할 수 있습니다.
지표 파라미터를 조정하여 입점과 퇴출 지점을 최적화하십시오.
손해 방지 제도를 강화하고 단독 손실을 엄격히 통제한다.
다양한 주식과 주기적 변수를 테스트하고 전략의 효과를 평가한다.
DPD-RSI-BB 전략은 여러 지표 판단을 통합하여 단일 지표가 생성하는 잘못된 신호를 피한다. 변수를 최적화하면 더 강력한 주식 거래 전략이 될 수 있다. 그러나 이 전략은 복잡성이 크기 때문에 시장 위험을 완전히 피하기가 어려울 수도 있으며 신중하게 사용해야 한다.
/*backtest
start: 2023-11-14 00:00:00
end: 2023-11-21 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version= 2
strategy("DPD+RSI+BB ",overlay=true)
price=close
//############### DPD #################
buyper =input(-1,step=0.1)
sellper=input(0,step=0.1)
demalen = input(50,title="Dema Length")
e1= ema(close,demalen)
e2=ema(e1,demalen)
demaprice = 2 * e1 - e2
demadifper = ((price-demaprice)/price)*100
//############## DPD #####################
//############# RSI ####################
lengthrsi = input(6)
overSold = input( 20 )
overBought = input( 60 )
vrsi = rsi(price, lengthrsi)
//########## RSI #######################
//############### BB #################
lengthbb = input(50, minval=1)
multlow = input(1.5, minval=0.001, maxval=50,step=0.1)
multup = input(1.5,minval=0.001,maxval=50,step=0.1)
basisup = sma(close, lengthbb)
basislow = sma(close, lengthbb)
devup = multup * stdev(close, lengthbb)
devlow = multlow*stdev(close,lengthbb)
upperbb = basisup + devup
lowerbb = basislow - devlow
p1 = plot(upperbb, color=blue)
p2 = plot(lowerbb, color=blue)
fill(p1, p2)
//########### BB ###################
yearfrom = input(2018)
yearuntil =input(2039)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)
if ( (demadifper<buyper) and crossover(vrsi,overSold) and (price < upperbb) and year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil)
strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY")
else
strategy.cancel(id="BUY")
if ( price>upperbb and vrsi>overBought and demadifper>sellper and year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil )
strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND", comment="SELL")
else
strategy.cancel(id="SELL")