Kurzfristige trendfolgende Umkehrstrategie


Erstellungsdatum: 2024-01-16 14:44:35 zuletzt geändert: 2024-01-16 14:44:35
Kopie: 0 Klicks: 698
1
konzentrieren Sie sich auf
1617
Anhänger

Kurzfristige trendfolgende Umkehrstrategie

Überblick

Die Trend-Tracking-Umkehr-Strategie ist eine kurzfristige Trend-Trading-Strategie, die auf 15-Minuten-NQ-Futures basiert. Sie sucht nach Handelsmöglichkeiten durch die Identifizierung von Trendwellen und Umkehrformen. Die Strategie ist einfach und effektiv und eignet sich für aktive Händler mit kurzer Linie.

Strategieprinzip

Die Strategie basiert auf folgenden Prinzipien:

  1. Die EMA mit 8 Perioden wird als Haupttrendfilter verwendet. Die EMA ist oberflächlich und die EMA ist unterflächlich.

  2. Identifizierung bestimmter K-Linien-Umkehr-Formen als Einstiegssignale, einschließlich Lang-Linien-Short-Linien-Multi-Signale und Lang-Linien-Short-Linien-Hoch-Signale, die darauf hindeuten, dass ein Trendwechsel möglicherweise begonnen hat.

  3. Eintrittspunkte werden als Höhen- oder Tiefpunkte in der Nähe der invertierten K-Linie und Stop-Loss-Punkte als Höhen- und Tiefpunkte der invertierten K-Linie selbst eingestellt, um ein effizientes Risiko-Rendite-Verhältnis zu erreichen.

  4. Die Wirksamkeit des Umkehrsignals wird anhand der K-Linien-Einheit-Beziehung beurteilt. Zum Beispiel ist der Startpreis der negativen Linie höher als der der vorherigen K-Linien-Einheit. Die Einheit enthält vollständig Regeln zum Filtern von Geräuschen.

  5. Strategie, die nur in bestimmten Handelszeiten funktioniert, um spezielle Zeiten wie den Monat der Hauptrechnung zu vermeiden, um unnötige Verluste durch außergewöhnliche Verhaltensweisen zu verhindern.

Analyse der Stärken

Die Strategie hat folgende Vorteile:

  1. Strategie-Signale sind einfach, effektiv und leicht umzusetzen.

  2. Es ist wichtig, sich auf Trends und Umkehrungen zu konzentrieren, um die Doppelmorde zwischen dem Bullen- und dem Bärenmarkt zu vermeiden.

  3. Risikokontrollen sind vorhanden, die Stop-Loss-Einstellungen sind vernünftig und fördern die Vermögensverwaltung.

  4. Die Datenmenge ist klein und für verschiedene Software und Plattformen geeignet.

  5. Die Handelsfrequenz ist hoch und eignet sich für Investoren, die sich für kurzfristige, aktive Geschäfte interessieren.

Risiken und Gegenmaßnahmen

Die Strategie birgt auch einige Risiken, und die Hauptprobleme sind:

  1. Die Umkehrform-Gelegenheiten sind unzureichend, die Signale sind gering. Die Umkehrurteilungsregeln können entsprechend gelockert werden.

  2. Es gibt mehrere Filterindikatoren, die zur gemeinsamen Beurteilung hinzugefügt werden.

  3. Es gibt eine gewisse Unsicherheit in Bezug auf die Nacht- und Nicht-Mainstream-Zeit. Es kann eingestellt werden, dass es nur während der US-Handelszeiten funktioniert.

  4. Der Raum für Parameteroptimierung ist begrenzt. Man kann Techniken wie maschinelles Lernen ausprobieren, um bessere Parameter zu finden.

Optimierungsrichtung

Die Strategie bietet auch Optimierungsmöglichkeiten, die sich in folgenden Bereichen auswirken:

  1. Tests mit EMA-Parametern für längere Zeiträume zur Verbesserung von Trendbeurteilungen.

  2. Der Aktienindex wird als zusätzlicher Trendfilter verwendet.

  3. Automatische Optimierung der Einstiegs- und Stopppunkte durch Technologien wie Machine Learning.

  4. Erhöhung der dynamischen Anpassungsmechanismen für Positionen und Stop-Losses auf Basis von Volatilität.

  5. Versuchen Sie, mehrere Sorten zu arbitragieren, um das systematische Risiko einer einzigen Sorte weiter zu verteilen.

Zusammenfassen

Die Trend-Tracking-Umkehr-Strategie ist insgesamt eine sehr praktische Short-Line-Strategie, mit wenigen einfachen Parametern und leicht zu handhaben. Die Strategie hat einen gewissen Optimierungsraum und kann mit einer gewissen R&D-Kräfte programmatisch betrieben werden, was sogar für mittlere und langfristige Fonds geeignet ist.

Strategiequellcode
/*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