Tendencia del ADX del petróleo crudo siguiendo la estrategia

El autor:¿ Qué pasa?, Fecha: 2024-01-25 15:18:15
Las etiquetas:

img

Resumen general

Esta estrategia es adaptada de la estrategia de trading de futuros de petróleo crudo libre de Kevin Davey. Utiliza el indicador ADX para determinar la tendencia en el mercado del petróleo crudo y, combinado con el principio de ruptura de precios, implementa una estrategia de trading automática simple y práctica para el petróleo crudo.

Principio de la estrategia

  1. Calcular el indicador ADX de 14 períodos
  2. Cuando el ADX>10, se considera que el mercado tiene una tendencia
  3. Si el precio de cierre es mayor que el precio de cierre hace 65 barras, indica una ruptura de precio y una señal larga.
  4. Si el precio de cierre es inferior al precio de cierre hace 65 bares, indica una ruptura de precio y una señal corta.
  5. Establecer el stop loss y tomar ganancias después de entrar en la posición

La estrategia se basa principalmente en el indicador ADX para determinar la tendencia, y genera señales de negociación basadas en las rupturas de precios de ciclo fijo en condiciones de tendencia.

Análisis de ventajas

  • Utilice el ADX para determinar tendencias y evitar oportunidades perdidas
  • Las rupturas de precios de ciclo fijo generan señales con buenos resultados de backtest
  • Código intuitivo y sencillo, fácil de entender y modificar
  • Kevin Davey's verificación de comercio en vivo de varios años, no curva ajuste

Análisis de riesgos

  • Como indicador principal, el ADX es sensible a la selección de parámetros y a la selección de ciclos de ruptura.
  • Las rupturas de ciclo fijo pueden perder algunas oportunidades
  • Las opciones incorrectas de stop loss y take profit pueden aumentar las pérdidas.
  • Puede haber diferencias entre los resultados de las operaciones en vivo y las pruebas de retroceso

Direcciones de optimización

  • Optimizar los parámetros de ADX y los ciclos de ruptura
  • Aumentar el ajuste dinámico del tamaño de la posición
  • Modificar y mejorar continuamente la estrategia basada en los resultados de las pruebas de retroceso y la verificación de operaciones en vivo
  • Introducir técnicas de aprendizaje automático y aprendizaje profundo para la optimización de la estrategia

Resumen de las actividades

En general, esta es una estrategia de comercio de petróleo crudo muy práctica. Utiliza el indicador ADX para determinar la tendencia de manera muy razonable. El principio de ruptura de precios es simple y efectivo con buenos resultados de pruebas de retroceso. Al mismo tiempo, como la estrategia pública gratuita de Kevin Davey, tiene una fiabilidad muy fuerte en el combate real. Aunque todavía hay margen de mejora en la estrategia, es una opción muy adecuada para los principiantes y los operadores de capital pequeño para comenzar y practicar.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// Strategy idea coded from EasyLanguage to Pinescript
//@version=5
strategy("Kevin Davey Crude free crude oil strategy", shorttitle="CO Fut", format=format.price, precision=2, overlay = true, calc_on_every_tick = true)
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
	up = ta.change(high)
	down = -ta.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 = ta.rma(ta.tr, len)
	plus = fixnan(100 * ta.rma(plusDM, len) / truerange)
	minus = fixnan(100 * ta.rma(minusDM, len) / truerange)
	[plus, minus]
adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
plot(sig, color=color.red, title="ADX")

buy = sig > 10 and (close - close[65]) > 0 and (close - close[65])[1] < 0
sell = sig > 10 and (close - close[65]) < 0 and (close - close[65])[1] > 0

plotshape(buy, style = shape.arrowup, location = location.belowbar,size = size.huge)
plotshape(sell, style = shape.arrowdown, location = location.abovebar,size = size.huge)

if buy
	strategy.entry("long", strategy.long)
if sell
	strategy.entry("short", strategy.short)

if strategy.position_size != 0
	strategy.exit("long", profit = 450, loss = 300)
	strategy.exit("short", profit = 450, loss = 300)


// GetTickValue() returns the currency value of the instrument's
// smallest possible price movement.
GetTickValue() =>
    syminfo.mintick * syminfo.pointvalue

// On the last historical bar, make a label to display the
// instrument's tick value
if barstate.islastconfirmedhistory
    label.new(x=bar_index + 1, y=close, style=label.style_label_left,
         color=color.black, textcolor=color.white, size=size.large, 
         text=syminfo.ticker + " has a tick value of:\n" + 
             syminfo.currency + " " + str.tostring(GetTickValue()))

Más.