
Esta estratégia usa os indicadores de dinâmica ADX, RSI e Brinks para determinar a tendência do mercado e a estratégia de negociação automática de compra e venda de baixa e alta, para obter lucro e sair.
De acordo com os indicadores acima, a estratégia de negociação para avaliar o estado do mercado é a seguinte:
Condições de compra:
Condições de venda:
Esta estratégia usa vários indicadores para avaliar o estado do mercado, evitando a probabilidade de erro de avaliação de um único indicador. Ao mesmo tempo, através da tendência, o julgamento do estado de supercompra e supervenda, pode efetivamente bloquear o ponto de viragem do mercado e alcançar o baixo preço de compra e venda.
A estratégia pode capturar oportunidades de curto prazo mais rapidamente do que o uso de indicadores de tendência. A estratégia pode capturar melhor a direção da tendência do que o uso de indicadores de turbulência. Portanto, a estratégia mantém as vantagens de acompanhar a tendência e a flexibilidade de operar de forma contrária, uma estratégia de quantificação potencialmente mais eficiente.
Os principais riscos desta estratégia são:
Correspondentes medidas de gestão de riscos:
A estratégia tem espaço para melhorias nas seguintes áreas:
Parâmetros de indicadores de otimização Algoritmos de otimização inteligentes podem ser introduzidos para otimização independente de diferentes variedades de parâmetros
Engenharia de recursos adicionais. Introdução de mais indicadores técnicos de preços, criação de modelos de suporte para treinamento, como vectores, e melhoria da precisão do sinal.
Combinação de estratégias de ruptura. De acordo com as características de diferentes variedades, aplicar regras de julgamento baseadas em canais, resistência de suporte, etc., para controlar o ponto de ruptura e aumentar a estabilidade da estratégia.
Otimizar o mecanismo de stop loss. Introduzir o rastreamento do stop loss, o stop loss móvel, etc., para realizar o ajuste dinâmico do stop loss, o bloqueio máximo dos lucros e o controle eficaz do risco.
Esta estratégia é uma estratégia de negociação quantitativa de curto e médio prazo, que usa vários indicadores técnicos, como ADX, RSI e Brinbelt, para avaliar o estado do mercado. A lógica da estratégia é claramente interpretável e reduz significativamente a probabilidade de erros de julgamento em um único indicador técnico.
/*backtest
start: 2023-11-10 00:00:00
end: 2023-12-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("DAX Shooter 5M Strategy", overlay=true)
//Creo ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
th = input(title="threshold", type=input.integer, defval=20)
dirmov(len) =>
up = change(high)
down = -change(low)
plusDM = na(up) ? na : up > down and up > 0 ? up : 0
minusDM = na(down) ? na : down > up and down > 0 ? down : 0
truerange = rma(tr, len)
plus = fixnan(100 * rma(plusDM, len) / truerange)
minus = fixnan(100 * rma(minusDM, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
adx
[plus, minus] = dirmov(dilen)
sig = adx(dilen, adxlen)
//Creo RSI
src = close
len = input(7, minval=1, title="Periodo RSI")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
bandainf = input(30, title="Livello Ipervenduto")
bandasup = input(70, title="Livello Ipercomprato")
//Creo Bande di Bollinger
source = close
length = input(50, minval=1, title="Periodo BB")
mult = input(2.0, minval=0.001, maxval=50, title="Dev BB")
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
plot(basis, color=color.white)
p1 = plot(upper, color=color.aqua)
p2 = plot(lower, color=color.aqua)
fill(p1, p2)
//Stabilisco regole di ingresso
if crossover(rsi, bandainf) and adx(dilen, adxlen) > 32 and low < lower
strategy.entry("COMPRA", strategy.long, limit=upper, oca_name="DaxShooter", comment="COMPRA")
else
//strategy.exit("exit", "COMPRA", loss = 90)
strategy.cancel(id="COMPRA")
if crossunder(rsi, bandasup) and adx(dilen, adxlen) > 32 and high > upper
strategy.entry("VENDI", strategy.short, limit=lower, oca_name="DaxShooter",comment="VENDI")
else
//strategy.exit("exit", "VENDI", loss = 90)
strategy.cancel(id="VENDI")
//Imposto gli alert
buy= crossover(rsi, bandainf) and adx(dilen, adxlen) > 32 and low < lower
sell= crossunder(rsi, bandasup) and adx(dilen, adxlen) > 32 and high > upper
alertcondition(buy, title='Segnale Acquisto', message='Compra DAX')
alertcondition(sell, title='Segnale Vendita', message='Vendi DAX')
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)