
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.
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.
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.
Da die Fehlerwahrscheinlichkeit bei der Splitterpunkt-Beschätzung berücksichtigt wird, können wir diese Optimierung auf folgende Weise vornehmen:
In Kombination mit anderen Indikatoren, wie z. B. der Brinline-Kanal, der Moving Average usw., wird ein einziger Bruchpunktfehler vermieden.
Anpassung der Parameter des Spaltpunktes, wie z. B. der Anzahl der vor- und nachfolgenden Zyklen des Beurteilens, um das Beurteil des Spaltpunktes zu optimieren.
Erhöhen Sie Ihre Stop-Loss-Strategie, indem Sie Ihre Verluste bis zu einem gewissen Grad stoppen.
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.
/*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')