Tendance de l'ADX du pétrole brut à la suite de la stratégie

Auteur:ChaoZhang est là., Date: 2024-01-25 15:18:15 La date est fixée à
Les étiquettes:

img

Résumé

Cette stratégie est adaptée de la stratégie de trading de futures de pétrole brut gratuite de Kevin Davey. Elle utilise l'indicateur ADX pour déterminer la tendance du marché du pétrole brut et, combinée au principe de rupture des prix, met en œuvre une stratégie de trading automatisée simple et pratique pour le pétrole brut.

Principe de stratégie

  1. Calcul de l'indicateur ADX à 14 périodes
  2. Lorsque l'ADX>10, le marché est considéré comme ayant une tendance
  3. Si le prix de clôture est supérieur au prix de clôture il y a 65 barres, cela indique une rupture de prix et un signal long.
  4. Si le prix de clôture est inférieur au prix de clôture il y a 65 barres, cela indique une rupture de prix et un signal court.
  5. Définir un stop loss et un profit après avoir entré dans la position

La stratégie s'appuie principalement sur l'indicateur ADX pour déterminer la tendance et génère des signaux de trading basés sur des écarts de prix à cycle fixe dans des conditions de tendance.

Analyse des avantages

  • Utilisez l'ADX pour déterminer les tendances et éviter de manquer les opportunités de tendance
  • Les écarts de prix de cycle fixe génèrent des signaux avec de bons résultats de backtest
  • Code intuitif et simple, facile à comprendre et à modifier
  • Kevin Davey's vérification de négociation en direct de plusieurs années, non-correction de courbe

Analyse des risques

  • En tant qu'indicateur principal, l'ADX est sensible à la sélection des paramètres et à la sélection des cycles de rupture.
  • Les ruptures de cycle fixe peuvent manquer certaines opportunités
  • Les paramètres d'arrêt des pertes et de prise de profit inappropriés peuvent augmenter les pertes
  • Il peut y avoir des différences entre les résultats de négociation en direct et de backtest

Directions d'optimisation

  • Optimiser les paramètres ADX et les cycles de rupture
  • Augmenter le réglage dynamique de la taille de la position
  • Modifier et améliorer en permanence la stratégie sur la base des résultats des backtests et de la vérification des transactions en direct
  • Introduire des techniques d'apprentissage automatique et d'apprentissage profond pour l'optimisation de la stratégie

Résumé

Dans l'ensemble, il s'agit d'une stratégie de trading de pétrole brut très pratique. Il utilise l'indicateur ADX pour déterminer la tendance de manière très raisonnable. Le principe de rupture de prix est simple et efficace avec de bons résultats de backtest. En même temps, comme la stratégie publique gratuite de Kevin Davey, elle a une très forte fiabilité dans le combat réel. Bien qu'il y ait encore place à l'amélioration de la stratégie, c'est un choix très approprié pour les débutants et les petits traders de capital pour commencer et pratiquer.


/*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()))

Plus de