ADX-Trend für Rohöl nach Strategie

Schriftsteller:ChaoZhang, Datum: 2024-01-25 15:18:15
Tags:

img

Übersicht

Diese Strategie wurde von Kevin Davey's kostenloser Rohöl-Futures-Handelsstrategie übernommen. Sie verwendet den ADX-Indikator, um den Trend auf dem Rohölmarkt zu bestimmen, und implementiert in Kombination mit dem Preis-Breakout-Prinzip eine einfache und praktische automatisierte Handelsstrategie für Rohöl.

Strategieprinzip

  1. Berechnung des ADX-Indikators für 14 Perioden
  2. Wenn ADX> 10, gilt der Markt als trendorientiert
  3. Wenn der Schlusskurs höher ist als der Schlusskurs vor 65 Bars, zeigt dies einen Preisbruch und ein langes Signal an.
  4. Wenn der Schlusskurs niedriger ist als der Schlusskurs vor 65 Bars, zeigt dies einen Preisbruch und ein Kurzsignal an.
  5. Setzen Sie Stop Loss und Take Profit nach Eingabe der Position

Die Strategie stützt sich hauptsächlich auf den ADX-Indikator, um den Trend zu bestimmen, und erzeugt Handelssignale, die auf Festzyklus-Preisschwankungen unter Trendbedingungen basieren.

Analyse der Vorteile

  • Verwenden Sie ADX, um Trends zu bestimmen und zu vermeiden, dass Trendchancen verpasst werden
  • Festzykluspreisbrechungen erzeugen Signale mit guten Backtest-Ergebnissen
  • Intuitiver und einfacher Code, leicht zu verstehen und zu ändern
  • Kevin Davey's mehrjährige Live-Handelsverifizierung, Nicht-Kurvenanpassung

Risikoanalyse

  • Als Hauptindikator ist der ADX empfindlich für die Parameterwahl und die Auswahl des Ausbruchzyklus.
  • Festzyklusbrechungen können einige Chancen verpassen
  • Unzulässige Stop-Loss- und Take-Profit-Einstellungen können Verluste erhöhen
  • Es können Unterschiede zwischen Live-Handel und Backtest-Ergebnissen bestehen

Optimierungsrichtlinien

  • Optimierung der ADX-Parameter und Breakout-Zyklen
  • Steigerung der dynamischen Anpassung der Positionsgröße
  • Kontinuierliche Änderung und Verbesserung der Strategie auf der Grundlage von Backtest-Ergebnissen und der Überprüfung des Live-Handels
  • Einführung von Techniken des maschinellen Lernens und des tiefen Lernens zur Strategieoptimierung

Zusammenfassung

Das ist eine sehr praktische Rohöl-Handelsstrategie. Es verwendet den ADX-Indikator, um den Trend sehr vernünftig zu bestimmen. Das Preis-Breakout-Prinzip ist einfach und effektiv mit guten Backtest-Ergebnissen. Gleichzeitig hat es als Kevin Davey's öffentliche freie Strategie eine sehr starke Zuverlässigkeit im tatsächlichen Kampf. Obwohl es noch Raum für Verbesserungen in der Strategie gibt, ist es eine sehr geeignete Wahl für Anfänger und kleine Kapitalhändler, um zu beginnen und zu üben.


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

Mehr