
A estratégia de quantificação DPD-RSI-BB é uma estratégia de negociação de ações que combina três indicadores simultaneamente: DPD, RSI e Brinks. A estratégia usa a tendência de DPD para julgar a tendência, o RSI para julgar a sobrevenda e o Brinks para julgar o nível de pressão de suporte.
A estratégia é composta por:
Construir a média DEMA usando a média dupla da EMA e calcular a relação entre o preço e a diferença de preço da DEMA como um indicador para determinar a tendência, como um sinal de otimismo quando a diferença de preço é menor do que o limite estabelecido.
Calcule o valor do RSI em um determinado período. O RSI é maior do que o limite superior definido como uma zona de compra excessiva e o RSI é menor do que o limite inferior definido como uma zona de venda excessiva.
Calcule o meio, o topo e o fundo de um determinado ciclo, com o preço próximo ao topo como sinal de baixa e o preço próximo ao fundo como sinal de alta.
Quando o rácio de diferença de preço de DPD está abaixo da depressão, o RSI está abaixo do limite inferior da zona de superalimento e o preço está abaixo do traçado da faixa de Bolin, gera um sinal de baixa; Quando o RSI está acima do limite superior da zona de superalimento, o rácio de diferença de preço de DPD está acima da depressão e o preço está acima do traçado da faixa de Bolin, gera um sinal de baixa.
A estratégia tem as seguintes vantagens:
A análise de múltiplos indicadores permite evitar o erro de um único indicador.
O indicador RSI é usado para avaliar sobrecompra e sobrevenda e para definir um ponto de parada antecipado.
O indicador DPD é um bom indicador de tendências de preços, enquanto o Brinco é um bom indicador de pressões de suporte.
A configuração flexível de diferentes parâmetros pode ser otimizada para diferentes ações.
A estratégia também apresenta alguns riscos:
A combinação de múltiplos indicadores pode complicar a estratégia e dificultar a definição de parâmetros.
Indicadores como DPD, RSI e outros estão atrasados, podendo perder o melhor momento de entrada.
Os parâmetros precisam ser otimizados para se adaptar a diferentes ciclos e características de ações.
Otimizar a partir do seguinte:
Ajustar os parâmetros do indicador para otimizar a entrada e saída.
Aumentar os mecanismos de suspensão de perdas e controlar rigorosamente as perdas individuais.
Teste diferentes ações e parâmetros de ciclo para avaliar a eficácia da estratégia.
A estratégia DPD-RSI-BB integra vários indicadores de julgamento, evitando o falso sinal gerado por um único indicador. Através de otimização de parâmetros, pode ser uma estratégia de negociação de ações mais forte.
/*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")