N Bars Breakout-Strategie


Erstellungsdatum: 2024-04-12 16:57:15 zuletzt geändert: 2024-04-12 16:57:15
Kopie: 0 Klicks: 572
1
konzentrieren Sie sich auf
1617
Anhänger

N Bars Breakout-Strategie

Überblick

Die N-Bars-Break-Strategie ist eine quantitative Trading-Strategie, die auf Preis-Break-Betrieb basiert. Die Hauptidee der Strategie ist, einen Übertritt zu eröffnen, wenn der Schlusskurs den höchsten Preis der letzten N-Trading-Tage überschreitet, und einen Übertritt zu eröffnen, wenn der Schlusskurs den niedrigsten Preis der letzten N-Trading-Tage überschreitet. Die Strategie erzielt die Wirkung von Trend-Tracking, indem sie den aktuellen Preis mit dem höchsten Preis der letzten N-Trading-Tage vergleicht.

Strategieprinzip

  1. Berechnen Sie die höchsten und niedrigsten Preise der letzten N Handelstage.
  2. Wenn der aktuelle Schlusskurs höher als “highest” ist, wird eine Long-Position eröffnet.
  3. Wenn der aktuelle Schlusskurs unter dem lowest liegt, wird die Position “short” genannt.
  4. Als Signalquelle kann die Wahl zwischen einem Schlusskurs (close) oder einem hohen/niedrigen Kurs (high/low) getroffen werden.
  5. Je nach Signalquelle werden mit ta.highest und ta.lowest Höchst- und Tiefstpreise berechnet.
  6. Verwenden Sie ta.crossover und ta.crossunder, um einen Preisbruch zu ermitteln.

Strategische Vorteile

  1. Die Logik ist einfach, klar, einfach zu implementieren und zu optimieren.
  2. Es ist eine sehr effektive Methode, um starke Trendbrecher zu erfassen und Trends zu verfolgen.
  3. Die Parameter sind flexibel und können je nach Sorte und Periode optimiert werden.
  4. Es ist sehr anwendbar und funktioniert gut für die meisten Sorten und Zyklen.
  5. Die Optionen für die Auswahl von Signalquellen sind flexibel und verbessern die Adaptionsfähigkeit der Strategie.

Strategisches Risiko

  1. Schlechte Reaktion auf Erschütterungen und geringe Volatilität, häufige Offset-Positionen führen zu höheren Handelskosten.
  2. Eine falsche Auswahl der Parameter kann zu einem Risiko einer Überpassung führen.
  3. Der Trend könnte sich umkehren, wenn ein größerer Rückschlag eintritt.
  4. Eine einzelne Signalquelle kann das Risiko einer Fehlmeldung haben.

Richtung der Strategieoptimierung

  1. Erhöhung der Trendfilterbedingungen, wie z. B. Ma-Trendrichtung, Adx, etc. und Reduzierung des Handels in schwankenden Umständen.
  2. Optimierung der Parameterwahl, z. B. N-Werte, Signalquellen usw., zur Steigerung der Strategiestabilität und Profitabilität.
  3. Erhöhung der Stop-Loss- und Mobile-Stop-Loss-Logik, um das Risiko eines einzelnen Handels zu kontrollieren.
  4. Die Kombination mehrerer Signalquellen erhöht die Signalzuverlässigkeit, z. B. durch Berücksichtigung von Schlusspreisen und Hoch-Low-Breakouts gleichzeitig.
  5. Optimierung der Parameter und Logik je nach Sorte und Periode.

Zusammenfassen

Die N-Bars-Breakthrough-Strategie ist eine einfache, praktische, quantitative Handelsstrategie, die durch die Erfassung von Preis-Breakthrough-Bewegungen eine bessere Trendverfolgung erzielt. Die Strategie hat eine klare Logik, einen großen Optimierungsraum und eine breite Anwendung.

Strategiequellcode
/*backtest
start: 2023-04-06 00:00:00
end: 2024-04-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Breakout", overlay=true, precision=6, pyramiding=0, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=25.0, commission_value=0.05)

n = input.int(5, "N Bars", minval=1)
src_input = input.string("Close", "Source", ["Close", "High/Low"])

bull_src = switch src_input
	"Close" => close
	"High/Low" => high
	=>
		runtime.error("Invalid source input")
		na

bear_src = switch src_input
	"Close" => close
	"High/Low" => low
	=>
		runtime.error("Invalid source input")
		na

highest = ta.highest(bull_src[1], n)
lowest = ta.lowest(bear_src[1], n)

//-----------------------------------------------------------------------------------------------------------------------------------------------------------------
// Plots
//-----------------------------------------------------------------------------------------------------------------------------------------------------------------

bool long = ta.crossover(bull_src, highest)
bool short = ta.crossunder(bear_src, lowest)

//Plots
lowest_plot  = plot(lowest,  color=color.red, title="Lowest")
highest_plot  = plot(highest,  color=color.green, title="Highest")
bull_src_plot = plot(bull_src, color=color.blue, title="Bull")
bear_src_plot = plot(bear_src, color=color.orange, title="Bear")

// this message is an alert that can be sent to a webhook, which allows for simple automation if you have a server that listens to alerts and trades programmatically.
enter_long_alert = '{"side": "Long", "order": "Enter", "price": ' + str.tostring(open) + ', "timestamp": ' + str.tostring(timenow) + '}'
exit_long_alert = '{"side": "Long", "order": "Exit", "price": ' + str.tostring(open) + ', "timestamp": ' + str.tostring(timenow) + '}'

if long
    strategy.entry(id="Long", direction=strategy.long, limit=open, alert_message=enter_long_alert)

if short
    strategy.close(id="Long", comment="Close Long", alert_message=exit_long_alert)