Momentum Breakout Backtest Unterstützungs- und Widerstandsstrategie


Erstellungsdatum: 2024-02-22 16:07:14 zuletzt geändert: 2024-02-22 16:07:14
Kopie: 0 Klicks: 619
1
konzentrieren Sie sich auf
1617
Anhänger

Momentum Breakout Backtest Unterstützungs- und Widerstandsstrategie

Überblick

Die Strategie nutzt die Höchst-, Tiefst- und Schlusskurs der letzten Handelstage als Unterstützung und Widerstand für den Tag. Bei einem Durchbruch der Widerstandslage wird ein Plus gemacht und bei einem Rücktest der Unterstützung wird ein Minus gemacht.

Strategieprinzip

Der Code definiert zunächst eine Funktion zur Berechnung der Unterstützungswiderstandsstufe, die CalculateSupportResistance, die den Höchst- und Tiefstpreis sowie den Schlusskurs des vorangegangenen Handelstages als Unterstützungswiderstand des jeweiligen Tages verwendet.

Diese Funktion wird dann in der Hauptlogik aufgerufen, um die drei Preise zu erhalten und die Karte anzuzeigen.

In der Retracement-Logik wird ein Plus getätigt, wenn der Schlusskurs unter dem Vortagsmindestpreis liegt und der aktuelle Preis über diesem Mindestpreis liegt, was einen Bruch darstellt; ein Minus wird getätigt, wenn der Schlusskurs über dem Vortagsmostpreis liegt und der aktuelle Preis unter diesem Höchstpreis ist.

Durch diese bahnbrechenden Modelle können Trends beurteilt und Handelssignale erzeugt werden.

Strategische Vorteile

  1. Die Verwendung von Daten des vorangegangenen Handelstages zur Konstruktion des heutigen Unterstützungswiderstands vermeidet die Optimierung der Parameter
  2. Die Resistenzstütze stammt aus realen Markttransaktionen und hat einen bestimmten Bezugsrahmen.
  3. Reaktionsmodelle sind einfach, unkompliziert und verständlich
  4. Visualisierung der Unterstützung und des Widerstands, um die Wahrnehmung des Preises zu bilden
  5. Inhaltsangabe zu den wichtigsten Themen, die in der aktuellen Situation zu behandeln sind:

Strategisches Risiko

  1. Die Widerstandslage ändert sich im Laufe der Zeit und ihre Wirksamkeit ist nicht festzustellen
  2. Es ist unmöglich, die Richtung des Trends vorherzusagen, und es besteht die Gefahr, eine Umkehr zu verpassen.
  3. Das Risiko einer vorzeitigen Eintragung
  4. Es ist unklar, ob der Durchbruch dauerhaft sein wird, und es besteht die Möglichkeit einer vorzeitigen Verringerung.
  5. Wenn die Börse stark schwankt, ist es wahrscheinlicher, dass die Resistenz der Stütze ausfällt.

Gegenmaßnahmen:

  1. Die Wirksamkeit von Durchbrüchen wird durch weitere Faktoren beurteilt.
  2. Stärkung der Stop-Loss-Werte, um sicherzustellen, dass Trends erfasst werden
  3. Positionen in Gruppen aufbauen, um die Auswirkungen von Aktienfluktuationen zu reduzieren

Strategieoptimierung

  1. Hinzufügen von mehr historischen Daten, um die Resistenzpositionen zu bestimmen, wie z. B. die 5- und 10-Tage-Linie
  2. Die Wirksamkeit des Durchbruchs wird anhand von Kennzahlen wie Handelsvolumen beurteilt.
  3. Ein Stop-Loss-Satz basierend auf der tatsächlichen Schwankung
  4. Optimierung der Vermögensverwaltung und Kontrolle von Einzelschäden

Zusammenfassen

Die Strategie insgesamt gehört zu den typischen Breakout-Strategie, einfach und intuitiv, durch die Daten des vorherigen Handelstages zu bauen, die Unterstützung des Tages Widerstand, Rückverfolgung der Breakout-Bereich zu machen. Der Vorteil ist leicht zu verstehen, um zu sehen, direkt die Unterstützung Widerstand; der Nachteil ist die Existenz von False-Breakout-Risiko, nicht zu bestimmen, die Trend-Kontinuität. Der nächste Schritt kann von der Bestimmung der Durchbruch-Effektivität, Risikokontrolle, Optimierung der Kapitalverwaltung und so weiter optimiert werden.

Strategiequellcode
/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Support and Resistance with Backtesting", overlay=true)

// Function to calculate support and resistance levels
calculateSupportResistance() =>
    highPrevDay = request.security(syminfo.tickerid, "D", high[1], lookahead=barmerge.lookahead_on)
    lowPrevDay = request.security(syminfo.tickerid, "D", low[1], lookahead=barmerge.lookahead_on)
    closePrevDay = request.security(syminfo.tickerid, "D", close[1], lookahead=barmerge.lookahead_on)
    [highPrevDay, lowPrevDay, closePrevDay]

// Call the function to get support and resistance levels
[supResHigh, supResLow, supResClose] = calculateSupportResistance()

// Plotting support and resistance levels
plot(supResHigh, color=color.red, linewidth=2, title="Previous Day High")
plot(supResLow, color=color.green, linewidth=2, title="Previous Day Low")
plot(supResClose, color=color.blue, linewidth=2, title="Previous Day Close")

// Backtesting logic
backtestCondition = close[1] < supResLow and close > supResLow
strategy.entry("Long", strategy.long, when=backtestCondition)

// Plotting buy/sell arrows for backtesting
plotarrow(backtestCondition ? 1 : na, colorup=color.green, offset=-1, transp=0)