Breakout Fractal Strategie


Erstellungsdatum: 2023-12-19 15:32:57 zuletzt geändert: 2023-12-19 15:32:57
Kopie: 2 Klicks: 885
1
konzentrieren Sie sich auf
1621
Anhänger

Breakout Fractal Strategie

Überblick

Die Strategie ist eine langfristige Trend-Tracking-Strategie, bei der die Preisentwicklung ermittelt wird. Sie entscheidet über die Position, indem sie die Bruchpunkte der historischen Preise berechnet, um den Bruch des letzten Bruchpunktes zu ermitteln. Gleichzeitig ermittelt sie die Richtung des Trends, indem sie den Durchschnittspreis der letzten N Bruchpunkte berechnet, um die Position zu platzieren, wenn sich der Trend in Richtung dreht.

Strategieprinzip

  1. Die Spaltpunkte werden als Höchstpreise des Tages definiert, die höher sind als die Höchstpreise der beiden vorangegangenen und der beiden folgenden Tage.
  2. Der Preis des letzten Bruchpunktes wird als Widerstand aufgezeichnet.
  3. Wenn der Schlusskurs den letzten Bruchpunkt überschreitet, wird der Widerstand als durchbrochen angesehen und eine Positionsüberschreitung erstellt.
  4. Der Trend wird durch die Berechnung des Durchschnittspreises der letzten N-Teilpunkte ermittelt. Wenn der Durchschnittspreis steigt, ist dies ein bullisher Trend, wenn er sinkt, ist dies ein bearisher Trend.
  5. Wenn der durchschnittliche Bruchpunktpreis bei einer Mehrposition in einen Abwärtstrend umgewandelt wird, ist die Position plat.

Analyse der Stärken

Der größte Vorteil dieser Strategie, die auf Trends basiert, ist die Fähigkeit, Marktgeräusche zu filtern und die Richtung von Trends mit längeren Linien zu bestimmen. Im Vergleich zu Indikatoren wie einfachen Moving Averages ist sie resistenter gegen abrupte, abnormale Schwankungen.

Darüber hinaus ist die Strategie sehr eindeutig in Bezug auf die Grundsätze für den Aufbau und die Bewahrung von Positionen, so dass es keine Probleme mit häufigen Transaktionen gibt.

Risikoanalyse

Die größte Gefahr dieser Strategie besteht in der Wahrscheinlichkeit, dass die Verteilungspunkte selbst entscheiden. Die Verteilungspunkte können nicht 100% voraussagen, dass der Preis sich umkehren muss, d.h. die Wahrscheinlichkeit, dass die falsche Entscheidung getroffen wird, bleibt bestehen.

Darüber hinaus ist die Zeitspanne, in der die Spaltpunkte beurteilt werden, nicht für den Hochfrequenzhandel geeignet. Diese Strategie ist auch nicht sehr geeignet, wenn man den Kurzstreckenhandel verfolgt.

Optimierungsrichtung

Da die Fehlerwahrscheinlichkeit bei der Splitterpunkt-Beschätzung berücksichtigt wird, können wir diese Optimierung auf folgende Weise vornehmen:

  1. In Kombination mit anderen Indikatoren, wie z. B. der Brinline-Kanal, der Moving Average usw., wird ein einziger Bruchpunktfehler vermieden.

  2. Anpassung der Parameter des Spaltpunktes, wie z. B. der Anzahl der vor- und nachfolgenden Zyklen des Beurteilens, um das Beurteil des Spaltpunktes zu optimieren.

  3. Erhöhen Sie Ihre Stop-Loss-Strategie, indem Sie Ihre Verluste bis zu einem gewissen Grad stoppen.

Zusammenfassen

Diese bahnbrechende Split-Strategie ist insgesamt sehr gut geeignet, um Long-Line-Trends zu beurteilen, und auch für Long-Line-Investoren. Wir müssen nur die Parameter entsprechend anpassen und andere Filterindikatoren hinzufügen, um die Strategie erheblich zu optimieren und sie zu einem wichtigen Bestandteil der quantitativen Entscheidung zu machen.

Strategiequellcode
/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Fractal Breakout Strategy (by ChartArt)", shorttitle="CA_-_Fractal_Breakout_Strat", overlay=true)

// ChartArt's Fractal Breakout Strategy
//
// Version 1.0
// Idea by ChartArt on April 24, 2016.
//
// This long only strategy determines the last fractal top
// and enters a trade when the price breaks above the last
// fractal top. The strategy also calculates the average
// price of the last 2 (or 3) fractal tops to get the trend.
//
// The strategy exits the long trade when the average of the
// fractal tops is falling (when the trend is lower highs).
// And the user can manually set a delay of this exit.
//
// In addition the fractals tops can be colored in blue
// and a line can be drawn based on the fractal tops.
// This fractal top line is colored by the fractal trend.
//
// List of my work: 
// https://www.tradingview.com/u/ChartArt/
// 
//  __             __  ___       __  ___ 
// /  ` |__|  /\  |__)  |   /\  |__)  |  
// \__, |  | /~~\ |  \  |  /~~\ |  \  |  
// 
// 


// input

n_time = input(title='Always exit each trade after this amount of bars later (Most important strategy setting)', defval=3)
price = input(hl2,title='Price type to determine the last fractal top and the fractal breakout, the default is (high+low)/2')


// fractal calculation

fractal_top = high[2] > high[3] and high[2] > high[4] and high[2] > high[1] and high[2] > high[0]
fractal_price = valuewhen(fractal_top, price, 1)
use_longer_average = input(true,title='Use Fractal price average of the last 3 fractals instead of the last 2 fractals?')
fractal_average = use_longer_average?(fractal_price[1] + fractal_price[2] + fractal_price[3] ) / 3 : (fractal_price[1] + fractal_price[2]) / 2
fractal_trend = fractal_average[0] > fractal_average[1]
no_repainting = input(true,title='Use the price of the last bar to prevent repainting?')
fractal_breakout = no_repainting?price[1] > fractal_price[0]:price[0] > fractal_price[0]


// highlight fractal tops

show_highlight = input(true,title='Highlight fractal tops in blue and color all other bars in gray?')
highlight = fractal_top?blue:silver
barcolor(show_highlight?highlight:na,offset=-2)
show_fractal_top_line = input(true,title='Draw a colored line based on the fractal tops?')
fractal_top_line = change(fractal_top) != 0 ? price : na
fractal_top_line_color = change(fractal_price) > 0 and fractal_breakout == true ? green : change(fractal_price) < 0 and fractal_breakout == false ? red : blue
plot(show_fractal_top_line?fractal_top_line:na,offset=-2,color=fractal_top_line_color,linewidth=4)


// strategy

trade_entry = fractal_trend and fractal_breakout
trade_exit = fractal_trend[n_time] and fractal_trend == false 
 
if (trade_entry)
    strategy.entry('Long', strategy.long)
 
if (trade_exit)
    strategy.close('Long')