Momentumstrategie zwischen eingeschränkten Zyklen

Schriftsteller:ChaoZhang, Datum: 2023-09-20 14:59:37
Tags:

Übersicht

Die Kernidee dieser Strategie besteht darin, die Trendrichtung anhand des zwischen Zyklen enthaltenen Kerzenmusters zu bestimmen und es als Einstiegssignal zu verwenden. Wenn ein zwischen Zyklen enthaltenes Muster erscheint, das den vorherigen Kerzenmuster enthält, können wir schließen, dass dies ein Punkt ist, an dem sich der Trend umkehrt, an dem Punkt können wir bei einem Ausbruch über dem vorherigen Höchststand lang oder bei einem Ausbruch unter dem vorherigen Tiefstand kurz gehen, mit einem richtigen Stop-Loss- und Take-Profit-Setup.

Strategie Logik

  1. Überprüfen Sie, ob das zwischen den Zyklen enthaltene Muster auftritt. Die spezifische Logik lautet: Das aktuelle Kerzenhoch ist niedriger als das vorherige Kerzenhoch und das aktuelle Kerzentief ist höher als das vorherige Kerzentief.

  2. Bestimmen Sie, ob die vorherige Kerze bullisch oder bärisch war. Wenn der Abschluss höher war als der offene, war er bullisch. Wenn der Schluß niedriger war als der offene, war er bärisch.

  3. Wenn die vorherige Kerze bullisch war und das eingeschlossene Muster auftritt, platzieren Sie einen Buy-Stop-Auftrag am Höchststand der vorherigen Kerze plus 10% seines Bereichs.

  4. Wenn die vorherige Kerze bärisch war und das eingeschlossene Muster auftritt, platzieren Sie eine Verkaufs-Stop-Order am Tiefpunkt der vorherigen Kerze minus 10% seines Bereichs.

  5. Sobald die Stop-Order ausgelöst und die Position geöffnet ist, setzen Sie den Stop-Loss und nehmen Sie Profit.

  6. Wenn sich ein neues Innenbalkenmuster bildet, schließen Sie zuerst bestehende Positionen und platzieren dann neue ausstehende Aufträge.

Analyse der Vorteile

Zu den Vorteilen dieser Strategie gehören:

  1. Es nutzt die inhärente Logik der Kerzen und bietet einen genauen Eintrittszeitplan.

  2. Die Regeln sind einfach und leicht zu befolgen für den tatsächlichen Handel.

  3. Der Stop-Loss und der Take-Profit basierend auf dem vorherigen Candle-Bereich helfen, das Risiko zu kontrollieren.

  4. Jedes Mal, wenn ein qualifiziertes Muster erscheint, werden neue ausstehende Aufträge platziert, so dass wir dem neuen Trend folgen können.

Risikoanalyse

Es gibt auch einige Risiken:

  1. Das enthaltene Muster führt nicht immer zu einer Trendumkehr oder Beschleunigung.

  2. Die Stop-Loss-Distanz kann zu klein sein, um großen Schwankungen des Marktes standzuhalten.

  3. Das Gewinnziel kann zu groß sein und rechtzeitige Gewinne verhindern.

  4. Die Strategie stützt sich stärker auf Trends auf den Märkten, wobei das Gewinnpotential während der Konsolidierung begrenzt ist.

  5. Die hohe Handelsfrequenz führt zu hohen Transaktionskosten.

Lösungen:

  1. Hinzufügen anderer Indikatoren zur Bestätigung der Signale und Verringerung falscher Signale.

  2. Der Stop-Loss wird leicht, jedoch nicht mehr als 50% des vorherigen Candle-Bereichs erweitert.

  3. Das Gewinnziel auf rund 50% des vorherigen Candle-Bereichs verkürzen.

  4. Optimierung des Kapitalmanagements, Verringerung der individuellen Positionsgröße für verschiedene Märkte.

  5. Die Eintrittskriterien sollen gelockert werden, um die Handelsfrequenz zu reduzieren.

Optimierungsrichtlinien

Einige Möglichkeiten zur Optimierung der Strategie:

  1. Fügen Sie einen Trendindikator wie MACD hinzu, um die Trendrichtung zu bestimmen, um Whipsaws während der Konsolidierung zu vermeiden.

  2. Verwenden Sie fortschrittlichere Stop-Loss-Techniken wie Trailing Stop oder Profit Protection Stop-Loss.

  3. Testen Sie verschiedene Stop-Loss- und Take-Profit-Verhältnisse, um die optimalen Parameter zu finden.

  4. Hinzufügen von Re-Entry-Logik, um den Trend nach dem Stop-Loss erneut zu erfassen.

  5. Optimierung der Positionsgröße basierend auf der Marktvolatilität.

  6. Optimierung des Kapitalmanagements, wie z. B. Festfractional Position Sizing.

  7. Testen Sie die Strategie für verschiedene Produkte und Zeitrahmen.

Schlussfolgerung

Zusammenfassend ist dies eine Strategie, die das zwischen den Zyklen enthaltene Muster verwendet, um Trendwendepunkte zu bestimmen und ausstehende Aufträge zu platzieren, um Trendumkehrungen zu erfassen. Sie hat die Vorteile klarer Einstiegssignale, einfacher Regeln und kontrollierbarer Risiken, hat aber auch einige falsche Signalrisiken und Optimierungsmöglichkeiten. Wir können ihre Stabilität und Rentabilität weiter verbessern, indem wir Trendfilter kombinieren, Stopps optimieren, Positionsgrößen anpassen usw. Sie eignet sich besser für Trendmärkte und muss vor dem tatsächlichen Einsatz für verschiedene Marktbedingungen optimiert und getestet werden, um ihre Wirksamkeit zu maximieren.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

// Inside Bar Momentum Strategy
// As defined on Babypips.com
// https://www.babypips.com/trading/forex-inside-bar-20170113

// strategy("Babypips: Inside Bar Momentum Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=5)

From_Year  = input(defval = 2018, title = "From Year")
From_Month = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
From_Day   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
To_Year    = input(defval = 9999, title = "To Year")
To_Month   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
To_Day     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
Start  = timestamp(From_Year, From_Month, From_Day, 00, 00)  // backtest start window
Finish = timestamp(To_Year, To_Month, To_Day, 23, 59)        // backtest finish window
Window = true

Stop_Buy_Perc  = input(10, "Stop Buy Order Percentage From Previous Candle's Range")/100
Stop_Loss_Perc = input(20, "Stop Loss Distance from High/Low of Previous Candle")/100
Take_Prof_Perc = input(80, "Take Profit Distance from High/Low of Previous Candle")/100

Risk = input(2, "Percentage Of EQUITY to risk per trade", step=0.1, minval=0, maxval=100)/100

Inside_Bar = high[1] > high[0] and low[1] < low[0]
Prev_Range = high[1] - low[1]
Bullish = open[1] < close[1]
Bearish = open[1] > close[1]

// Get Key Levels 
Long_Stop_Buy_Level   = high[1] + (Prev_Range * Stop_Buy_Perc)
Short_Stop_Buy_Level  = low[1]  - (Prev_Range * Stop_Buy_Perc)
Long_Stop_Loss_Level  = high[1] - (Prev_Range * Stop_Loss_Perc)
Short_Stop_Loss_Level = low[1]  + (Prev_Range * Stop_Loss_Perc)
Long_Take_Prof_Level  = high[1] + (Prev_Range * Take_Prof_Perc)
Short_Take_Prof_Level = low[1]  - (Prev_Range * Take_Prof_Perc)

// Position Sizing
long_qty = floor((strategy.equity * Risk) / (Long_Stop_Buy_Level - Long_Stop_Loss_Level))
short_qty = floor((strategy.equity * Risk) / (Short_Stop_Loss_Level - Short_Stop_Buy_Level))

// -------------------------- LONG CONDITIONS --------------------------------//
// The first candlestick must be bullish (green or white) and if the second 
// candlestick is completely contained by the first, set a buy stop order at 
// the first candle’s high plus 10% of its range (high minus low).

// Place the stop loss at the first candle’s high minus 20% of its range 
// and set the target at the first candle’s high plus 80% of its range

// If another inside bar pattern forms, the current position should be closed 
// or the pending buy/sell order must be canceled and entry orders must be 
// updated to the latest candles.

Long_Condition = Window and Inside_Bar and Bullish
if (Long_Condition)
    // Incase we still have a buy stop order in the market
    strategy.cancel_all()
    // Close any existing positions according to the rules
    strategy.close_all()
    strategy.entry("Bullish IB", strategy.long, stop=Long_Stop_Buy_Level)
    strategy.exit("Bullish Exit","Bullish IB", stop=Long_Stop_Loss_Level, limit=Long_Take_Prof_Level)
    
// -------------------------- SHORT CONDITIONS -------------------------------//
// The first candlestick must be bearish (red or black) and if the second 
// candlestick is completely contained by the first, set a sell stop order at 
// the first candle’s low minus 10% of its range (high minus low).

// Place the stop loss at the first candle’s low plus 20% of its range and 
// set the target at the first candle’s low minus 80% of its range.

// If another inside bar pattern forms, the current position should be closed 
// or the pending buy/sell order must be canceled and entry orders must be 
// updated to the latest candles.

Short_Condition = Window and Inside_Bar and Bearish
if (Short_Condition)
    // Incase we still have a buy stop order in the market
    strategy.cancel_all()
    // Close any existing positions according to the rules
    strategy.close_all()
    strategy.entry("Bearish IB", strategy.short, stop=Short_Stop_Buy_Level)
    strategy.exit("Bearish Exit","Bearish IB", stop=Short_Stop_Loss_Level, limit=Short_Take_Prof_Level)
    
// ----------------------------- PLOTTING ------------------------------------//
plotshape(Inside_Bar, style=shape.arrowdown, location=location.abovebar, color=purple)


Mehr