Esta estratégia gera sinais de negociação baseados no cruzamento do indicador direcional positivo (DI +) e do indicador direcional negativo (DI-) calculado a partir do intervalo verdadeiro médio (ATR).
Calcular ATR(14): Calcular a faixa média real nos últimos 14 dias utilizando preços altos, baixos e próximos.
Calcular DI+ e DI-:
O número de unidades de produção é o número de unidades de produção.
DI- = 100 * RMA(MAX(DOWN,0),N) / ATNR
Onde UP é a diferença entre o máximo atual e o fechamento anterior, DOWN é a diferença entre o mínimo atual e o fechamento anterior, N é o período do parâmetro, por defeito 14, e ATNR é o ATR calculado a partir da etapa 1.
Determinação da entrada e saída:
Quando o DI+ cruza o DI-, é gerado um sinal de compra.
Quando o DI+ cruza abaixo do DI-, é gerado um sinal de venda.
Configure stop loss e take profit:
O preço de entrada menos ATR multiplicado pelo multiplicador de stop loss
O preço de entrada mais o ATR multiplicado pelo multiplicador do take profit
O preço de entrada mais o ATR multiplicado pelo multiplicador do stop loss
O preço de entrada menos o ATR multiplicado pelo multiplicador do take profit
A utilização do cruzamento DI+/DI- para determinar a inversão da tendência fornece um sinal oportuno para uma nova direção da tendência.
O ATR, enquanto indicador dinâmico stop loss/take profit, pode definir níveis razoáveis com base na volatilidade do mercado.
A estratégia tem poucos parâmetros e é fácil de compreender e implementar.
Os resultados dos testes de retorno mostram que esta estratégia tem um fator de lucro positivo e supera o buy & hold.
Risco de sinal falso decorrente de cruzamento de DI
Stop loss/take profit muito próximos
Ineficaz no mercado de gama
Risco de utilização
Adicione filtros como a média móvel para evitar sinais falsos em períodos de intervalo.
Implementar o dimensionamento de posições como fracionário fixo ou Martingale para controlar o drawdown e aumentar a lucratividade.
Otimizar os parâmetros ATR para corresponder à volatilidade de diferentes instrumentos de negociação.
Optimização de parâmetros no período DI, período ATR, multiplicador ATR, etc., para encontrar a combinação ideal.
Adicione a lógica da sessão da noite e do início para executar a estratégia 24/7.
Esta é uma estratégia simples e prática que gera sinais do crossover DI e define um stop loss/take profit dinâmico com ATR. Com poucos parâmetros, é fácil de testar e otimizar. Mas o crossover DI é menos eficaz durante a consolidação.
/*backtest start: 2022-11-06 00:00:00 end: 2023-11-12 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © TheHulkTrading //@version=4 strategy("DI Crossing Daily Straregy HulkTrading", overlay=true) // ATR Multiplier. Recommended values between 1..4 atr_multiplier = input(1, minval=1, title="ATR Multiplier") //Length of DI. Recommended default value = 14 length = input(14, minval=1, title="Length di") up = change(high) down = -change(low) range = rma(tr, 14) //DI+ and DI- Calculations di_plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, length) / range) di_minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, length) / range) //Long and short conditions longCond = crossover(di_plus,di_minus) shortCond = crossunder(di_plus,di_minus) //Stop levels and take profits stop_level_long = strategy.position_avg_price - atr_multiplier*atr(14) take_level_long = strategy.position_avg_price + 2*atr_multiplier*atr(14) stop_level_short = strategy.position_avg_price + atr_multiplier*atr(14) take_level_short = strategy.position_avg_price - 2*atr_multiplier*atr(14) //Entries and exits strategy.entry("Long", strategy.long, when=longCond) strategy.exit("Close Long","Long", stop=stop_level_long, limit = take_level_long) strategy.entry("Short", strategy.short, when=shortCond) strategy.exit("Close Short","Short", stop=stop_level_short, limit = take_level_short)