DPD-RSI-BB 양적 전략

저자:차오장, 날짜: 2023-11-22 16:17:52
태그:

img

전반적인 설명

DPD-RSI-BB 양적 전략은 주식 거래에 필요한 DPD, RSI 및 볼링거 밴드 (Bollinger Bands) 라는 세 가지 지표를 결합합니다. 트렌드를 결정하기 위해 DPD, 과잉 구매 및 과잉 판매 수준을 판단하기 위해 RSI, 시장 진출을위한 지원 및 저항 수준을 식별하기 위해 볼링거 밴드를 사용합니다.

전략 논리

이 전략은 다음과 같은 주요 구성 요소로 구성됩니다.

  1. 동향을 결정하는 DPD 지표

    그것은 이중 EMA 평균을 사용하여 DEMA 라인을 구축하고 트렌드 결정 지표로 DEMA에 대한 가격 차이 비율을 계산합니다. 낮은 차이 비율은 상승 신호로 사용됩니다.

  2. 과잉 구매 및 과잉 판매 조건을 판단하는 RSI 지표

    특정 기간 동안의 RSI 값을 계산합니다. 상위 한도를 초과한 RSI는 과잉 구매 구역으로 판단되며 하위 한도를 초과한 RSI는 과잉 판매 구역으로 판단됩니다.

  3. 지원 및 저항을 식별하는 볼링거 밴드

    이 값은 일정 기간 동안 중위권, 상위권 및 하위권을 계산합니다. 상위권에 접근하는 가격은 하위권에 접근하는 가격은 상승 전망을 신호합니다.

  4. 종합적 판단

    DPD 가격 차이 비율이 문턱보다 낮을 때, RSI는 과판된 영역의 하단 한계보다 낮고 가격이 볼링거 상단역보다 낮으면 상승 신호가 생성됩니다. RSI가 과반된 영역의 상단역보다 높을 때, DPD 차이 비율이 문턱보다 높고 가격이 볼링거 상단역보다 높으면 하향 신호가 생성됩니다.

이점 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 여러 가지 지표를 이용한 종합적인 판단은 하나의 지표에서 잘못된 신호를 피합니다.

  2. RSI 인디케이터를 사용하여 과반 구매 및 과반 판매 조건을 판단하면 미리 스톱 로스를 설정하고 수익 포인트를 얻을 수 있습니다.

  3. DPD 지표는 가격 동향을 더 잘 결정할 수 있으며, 볼링거 밴드는 지원 및 저항 수준을 식별 할 수 있습니다.

  4. 유연한 매개 변수 설정은 다양한 주식에 대한 최적화를 허용합니다.

위험 과 최적화

이 전략은 또한 몇 가지 위험을 안고 있습니다.

  1. 여러 지표의 조합은 매개 변수 조정에 어려움을 가지고 전략을 상당히 복잡하게 만듭니다.

  2. DPD와 RSI와 같은 지표는 특정 지연을 가지고 있으며, 가장 좋은 입시 시기를 놓칠 수 있습니다.

  3. 매개 변수들은 다양한 주기와 재고 특성에 맞게 최적화되어야 합니다.

다음 측면을 최적화 할 수 있습니다:

  1. 입구와 출구 지점을 최적화하기 위해 지표 매개 변수를 조정합니다.

  2. 거래 손실에 대한 엄격한 통제에 스톱 로스 메커니즘을 추가합니다.

  3. 전략 성과를 평가하기 위해 다양한 주식 및 주기 매개 변수 테스트.

결론

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")
    
    
    

더 많은