
Esta estrategia se basa en el indicador de rango real promedio (ATR) y el indicador de tendencia (DMI) para determinar el momento de comprar y vender. La estrategia es una estrategia de seguimiento de tendencias para determinar el punto de inflexión de la tendencia a través de la cruz de DI + y DI - .
Cálculo del ATR ((14): el uso de los máximos, mínimos y precios de cierre de los últimos 14 días para calcular el rango de fluctuación real promedio
Calcular el DI+ y el DI-:
DI+ = 100 * RMA(MAX(UP,0),N) / ATNR
DI- = 100 * RMA(MAX(DOWN,0),N) / ATNR
Donde UP es la diferencia entre el precio más alto del día y el precio de cierre de ayer, DOWN es la diferencia entre el precio más bajo del día y el precio de cierre de ayer, N es la longitud de los parámetros, 14 por defecto, ATNR es el ATR obtenido por el paso anterior
En la actualidad, la mayoría de las personas que compran y venden son mujeres.
Cuando se usa DI+ sobre DI-, se genera una señal de compra
Cuando el DI+ atraviesa el DI-, genera una señal de venta
Para hacer un Stop Loss:
El precio de entrada menos el ATR multiplicado por el múltiplo de la parada de pérdidas
El precio de la parada múltiple es el precio de entrada más el ATR por el multiplicador de la parada
El precio de parada de un billete vacío es el precio de entrada más el ATR multiplicado por el factor de parada
El precio de la parada en blanco es el precio de entrada menos el ATR multiplicado por el multiplicador de la parada
Utilizando DI+ y DI-cruzadas para juzgar los puntos de cambio de tendencia, se puede capturar la nueva dirección de la tendencia a tiempo
El ATR es un indicador de stop loss dinámico que permite establecer un stop loss razonable en función de la volatilidad del mercado.
Menos parámetros de estrategia, más fácil de entender y ejecutar
Los datos de retrospectiva muestran que la estrategia tiene un factor de ganancias positivo y es mejor que la estrategia de compra y tenencia.
El cruce de DI conlleva el riesgo de transacciones erróneas
El punto de detención está demasiado cerca.
No puede manejar eficazmente los mercados de tendencias.
Riesgo de la retirada
Indicadores como las medias móviles se combinan para filtrar las señales cruzadas de DI y evitar el error de negociación en situaciones de crisis
Aumentar los mecanismos de gestión de posiciones, como las cuotas fijas y los Martingales, para controlar los retrocesos y mejorar la rentabilidad
Optimización de los parámetros ATR para que el Stop Loss Stopper se ajuste mejor a los rangos de fluctuación de las diferentes variedades de operaciones
Optimización de parámetros para encontrar la combinación óptima de parámetros, como el ciclo DI, el ciclo ATR y el multiplicador ATR
Aumentar la lógica de decisión de las operaciones en el mercado nocturno y el mercado matutino para que la estrategia funcione todo el día
La estrategia es sencilla y práctica en general, determina el momento de comprar o vender a través de la cruz de DI y establece el stop loss con ATR. La estrategia tiene pocos parámetros, es fácil de probar y verificar en el campo, y también es conveniente para realizar ajustes optimizados.
/*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)