Trendverfolgungs-Umkehrstrategie

Schriftsteller:ChaoZhang, Datum: 2024-01-16 14:44:35
Tags:

img

Übersicht

Die Trend Tracking Reversal-Strategie ist eine kurzfristige Trendhandelsstrategie, die auf 15-minütigen NQ-Futures basiert. Sie identifiziert Handelsmöglichkeiten durch Trendfilterung und Umkehrmustererkennung.

Strategie Logik

Die Strategie orientiert sich hauptsächlich an folgenden Grundsätzen:

  1. Verwenden Sie als Haupttrendfilter einen 8-Perioden-EMA mit langen Signalen über dem EMA und kurzen Signalen unter dem EMA.

  2. Identifizieren Sie spezifische Kerzenumkehrmuster als Einstiegssignale, einschließlich langer grüner Kerzen, gefolgt von kurzen roten Kerzen für lange Signale, und langer roter Kerzen, gefolgt von kurzen grünen Kerzen für kurze Signale.

  3. Die Eintrittspunkte werden in der Nähe des Höchst-/Tiefpunkts der Umkehrkerze eingestellt, wobei die Stop-Loss-Level am Höchst-/Tiefpunkt der Umkehrkerze selbst liegen, wodurch ein effizientes Risiko-/Renditeverhältnis ermöglicht wird.

  4. Validieren Sie Umkehrsignale unter Verwendung von Regeln für die Beziehung zwischen Kerzen, z. B. der offene Preis der roten Kerze liegt über dem Körper der letzten grünen Kerze, der Körper verschlingt sich vollständig usw. um Lärm zu filtern.

  5. Die Strategie wird nur während bestimmter Handelszeiten angewendet, wobei volatile Perioden rund um große Vertragsrollen usw. vermieden werden, um unnötige Verluste durch abnormale Kursbewegung zu vermeiden.

Analyse der Vorteile

Zu den Hauptvorteilen dieser Strategie gehören:

  1. Einfache und effektive Signallogik, die leicht zu verstehen und umzusetzen ist.

  2. Trend- und Umkehrungsbasiert, um Schlagzeilen durch tobende Bullen- und Bärenmärkte zu vermeiden.

  3. Gute Risikokontrolle mit angemessener Stop-Loss-Platzierung zur Kapitalsicherung.

  4. Der Datenbedarf ist gering und passt zu verschiedenen Plattformen und Tools.

  5. Eine hohe Handelsfrequenz eignet sich für den aktiven kurzfristigen Handelsstil.

Risiken und Lösungen

Es gibt einige Risiken, die zu beachten sind:

  1. Unzureichende Umkehrmöglichkeiten und begrenzte Signale.

  2. Hinzufügen Sie mehr Filter für Kombinationslogik.

  3. Volatilität in Übernacht- und Nicht-Hauptgeschäften.

  4. Eine begrenzte Optimierungsflexibilität. Überlegen Sie maschinelles Lernen für bessere Parameter-Tuning.

Möglichkeiten zur Verbesserung

Es gibt Raum für Optimierungen:

  1. Test längere EMA-Perioden zur Verbesserung der Trenddefinition.

  2. Hinzufügen von Aktienindexfiltern als zusätzliche Trendfilter.

  3. Verwenden Sie maschinelle Lerntechniken, um den Eingang automatisch einzustellen und die Verlustmengen zu stoppen.

  4. Einführung von volatilitätsbereinigten Positionsgrößen und dynamischen Stopps.

  5. Erforschung von Cross-Asset-Arbitrage zur Diversifizierung von Systemrisiken für einzelne Vermögenswerte.

Schlussfolgerung

Die Trend Tracking Reversal Strategy bietet einen sehr praktischen kurzfristigen Strategierahmen, der mit begrenzten Parametern und einer guten persönlichen Risikokontrolle einfach zu implementieren ist. Sie eignet sich für aktive kurzfristige Händler auf Daytrading-Foren.


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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © bdrex95

//@version=5

// Rob Reversal Strategy - Official
// Using Rob Reversal Indicator: Original
// Description
// This indicator is based on the strategy created by Trader Rob on the NQ 15m chart.
// 
// Timeframe for trading is 8:30am-1:15pm Central.
// 
// Above the EMA line, look for a long position. You will have a short candle, then a long candle that opens below the short candle. It will have a lower high and a lower low. Once the long candle closes, your entry will be 1 tick above the wick (green line) and stop loss will be at the bottom of the bottom wick (red line).
// 
// Below the EMA line, look for a short position. You will have a long candle, then a short candle that opens above the long candle. It will have a higher high and a higher low. Once the short candle closes, your entry will be 1 tick below the wick (green line) and stop loss will be at the top of the top wick (red line).
//

strategy("Trader Rob Reversal Strategy NQ 15min", shorttitle="Official Rob Rev Strat", overlay=true)


//--- Session Input ---
sess = input(defval = "0930-1415", title="Trading Session")
t = time(timeframe.period, sess)
sessionOpen = na(t) ? false : true

flat_time = input(defval = "1515-1558", title="Close All Open Trades")
ft = time(timeframe.period, flat_time)
flatOpen = na(ft) ? false : true


// Calculate start/end date and time condition
startDate = input(timestamp('2018-12-24T00:00:00'),group = "ALL STRATEGY SETTINGS BELOW")
finishDate = input(timestamp('2029-02-26T00:00:00'),group = "ALL STRATEGY SETTINGS BELOW")
time_cond = true


emaColor = input.color(color.orange, title="EMA Color")
emaLength = input.int(8, title="EMA Length")


emaInd = ta.ema(close, emaLength)


rr = input(1.0,"Enter RR",group = "TP/SL CONDITION INPUTS HERE")


sellShapeInput = input.string("Arrow", title="Sell Entry Shape", options=["Arrow", "Triangle"])
buyShapeInput = input.string("Arrow", title="Buy Entry Shape", options=["Arrow", "Triangle"])


sellShapeOption = switch sellShapeInput
    "Arrow" => shape.arrowdown
    "Triangle" => shape.triangledown
   
buyShapeOption = switch buyShapeInput
    "Arrow" => shape.arrowup
    "Triangle" => shape.triangleup


O = open
C = close
H = high
L = low


sellEntry = (C[1] > O[1]) and (C < O) and (H[1] < H) and (C < H[1]) and (C > L[1]) and (L > L[1]) and (C < emaInd) and sessionOpen and time_cond
buyEntry = (C[1] < O[1]) and (C > O) and (H[1] > H) and (L[1] > L) and (C < H[1]) and (C > L[1]) and (C > emaInd) and sessionOpen and time_cond


sellEntry_index = ta.valuewhen(sellEntry,bar_index,0)
sellEntry_hi = ta.valuewhen(sellEntry,high,0)
sellEntry_low = ta.valuewhen(sellEntry,low,0)
buyEntry_index = ta.valuewhen(buyEntry,bar_index,0)
buyEntry_hi = ta.valuewhen(buyEntry,high,0)
buyEntry_lo = ta.valuewhen(buyEntry,low,0)


plotshape(buyEntry, color = color.green, location = location.belowbar, style = buyShapeOption, size = size.small)
plotshape(sellEntry, color = color.red, location = location.abovebar, style = sellShapeOption, size = size.small)
plot(emaInd, color=emaColor)


// Risk Management
entry_price_long = (buyEntry_hi + syminfo.mintick)
entry_price_short = (sellEntry_low - syminfo.mintick)
long_sl_price = (buyEntry_lo-syminfo.mintick)
short_sl_price = (sellEntry_hi + syminfo.mintick)
long_tp_price = ((entry_price_long - long_sl_price)*rr) + entry_price_long
short_tp_price = entry_price_short - ((short_sl_price - entry_price_short)*rr)


long_sl_ticks = (entry_price_long - long_sl_price) / syminfo.mintick
short_sl_ticks = (short_sl_price - entry_price_short) / syminfo.mintick


long_tp_ticks = (long_tp_price - entry_price_long) / syminfo.mintick
short_tp_ticks = (entry_price_short - short_tp_price) / syminfo.mintick


// Positions
if (buyEntry)
    strategy.entry("Long", strategy.long,stop = H + syminfo.mintick)
if strategy.position_size > 0
    strategy.exit("Long Ex","Long", loss = long_sl_ticks, profit = long_tp_ticks, comment_loss = "SL Long", comment_profit = "TP Long")


if (sellEntry)
    strategy.entry("Short", strategy.short,stop = L - syminfo.mintick)
if strategy.position_size < 0
    strategy.exit("Short Ex","Short",loss = short_sl_ticks, profit = short_tp_ticks, comment_loss = "SL Short", comment_profit = "TP Short")


// Cancel order if close beyond ema
if (C < emaInd)
    strategy.cancel("Long")


if (C > emaInd)
    strategy.cancel("Short")


// Go flat at close (for futures funded account)
if strategy.position_size > 0 and flatOpen
    strategy.close_all(comment = "EOD Flat")
if strategy.position_size < 0 and flatOpen
    strategy.close_all(comment = "EOD Flat")
 
//END

Mehr