
Beschreibung: Eine Trendverfolgungsstrategie, bei der Wave Indicator eingesetzt wird. Sie erzeugt eine Waveline, indem sie den Index-Moving Average des Durchschnittspreises und den Moving Average der absoluten Preisdifferenz berechnet. Die Strategie erzeugt ein Handelssignal, indem sie die Kreuzung der Wellenlinie mit dem überkauften und überverkauften Bereich überwacht.
Die Strategie:
Berechnen Sie den Durchschnittspreis ap = ((höchster Preis + niedrigerer Preis + Abschlusskurs) / 3
Berechnen Sie den EMA von ap für n1 Perioden und erhalten Sie es
Berechnen Sie den n1-Zyklus-EMA der absoluten Differenz zwischen ap und esa und erhalten Sie d
Berechnung der Wellenlinie: ci = ((ap-esa) / ((0.015*d)
Berechnen Sie den EMA für die n2-Periode ci und erhalten Sie die endgültige Wellenlinie tci, d.h. wt1
Berechnen Sie die 4-Perioden-SMA von wt1 und erhalten Sie wt2.
Horizontale Linien für Überkauf- und Überverkaufszonen obLevel 1⁄2 und osLevel 1⁄2
Ein Kaufsignal wird erzeugt, wenn die obLevel2-Leitung auf wt1 durchläuft; ein Verkaufsignal wird erzeugt, wenn die osLevel2-Leitung unterwt1 durchläuft
Hinzufügen von einer MittellinieemaFilter und einer TransaktionsvolumeFilter als Filterbedingungen, um falsche Signale zu vermeiden
Nach dem Eintritt ein Stop-Loss-Verhältnis einstellen und aus der Position aussteigen
Die Analyse der Stärken:
Die Wellenlinie handhabt die Multifunktionsumwandlung besser und kann Trends effektiv erfassen.
Hohe Zuverlässigkeit in Kombination mit einer Doppelfilterung von Gleichgewicht und Volumen
Die Berechnung mit mehreren Parametern vermeidet die Einschränkungen eines einzelnen Indikators
Ein Stop-Loss-System, mit dem Sie einen Teil des Gewinns sperren können, um Ihr Risiko zu kontrollieren
Risiken und Nachteile:
Die Auswahl der Parameter kann in einigen Fällen zu schlechter Leistung oder Überpassung führen
Es gibt keine klaren Anweisungen zur Auswahl der optimalen Parameter, es ist nur Versuch und Irrtum notwendig
Nicht Einbeziehung der breiteren Marktbedingungen in die Signale
Gefahr eines Feuerwerkseffekts bei Einsatz in eingeschränkten oder schwankenden Märkten
Es gibt keine Ausstiegsregeln außer Gewinn/Verlust
Optimierung:
Tests von Parameter-Sätzen auf verschiedenen Zeitrahmen und Assets, um optimale Werte zu finden
In Kombination mit einem Volatilitätsindikator, um Signale in Zeiten niedriger Volatilität zu vermeiden
Hinzufügen von zusätzlichen Indikatoren wie RSI, um die Signalgenauigkeit zu verbessern
Erstellung eines maschinellen Lernmodells zur Suche nach optimalen Parametern für bestimmte Assets
Verstärkte Ausstiege durch Hinzufügen von Tracking-Stopps oder Ausstiegs basierend auf plötzlichen volatilen Expansionsereignissen
Zusammenfassung:
Es handelt sich um eine Strategie, die Waveline und Hilfsindikatoren kombiniert. Sie nutzt die Waveline, um Trends zu erkennen, um falsche Signale zu vermeiden und den größten Teil der mittleren Longline-Trends zu nutzen. Die Strategie kann durch die Anpassung der Parameterkombinationen, die Kombination von mehr Indikatoren und die kontinuierliche Verbesserung von Methoden wie Maschinelles Lernen verbessert werden.
/*backtest
start: 2023-12-31 00:00:00
end: 2024-01-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bush Strategy test", shorttitle="Nique Audi", overlay=false)
// Paramètres
n1 = input(10, title="Channel Length")
n2 = input(21, title="Average Length")
obLevel1 = input(60, title="Over Bought Level 1")
obLevel2 = input(53, title="Over Bought Level 2")
osLevel1 = input(-65, title="Over Sold Level 1")
osLevel2 = input(-60, title="Over Sold Level 2")
takeProfitPercentage = input(1, title="Take Profit (%)")
stopLossPercentage = input(0.50, title="Stop Loss (%)")
// Calculs
ap = hlc3
esa = ta.ema(ap, n1)
d = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ta.ema(ci, n2)
wt1 = tci
wt2 = ta.sma(wt1, 4)
// Tracé des lignes
plot(0, color=color.gray)
plot(obLevel1, color=color.red)
plot(osLevel1, color=color.green)
plot(obLevel2, color=color.red, style=plot.style_line)
plot(osLevel2, color=color.green, style=plot.style_line)
plot(wt1, color=color.green)
plot(wt2, color=color.red, style=plot.style_line)
// Tracé de la différence entre wt1 et wt2 en bleu
hline(0, "Zero Line", color=color.gray)
// Conditions d'entrée long et court
longCondition = ta.crossover(wt1, obLevel2)
shortCondition = ta.crossunder(wt1, osLevel2)
// Tracé des signaux d'achat et de vente
plotshape(series=longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(series=shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")
// Conditions d'entrée et de sortie
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
// Niveaux de prise de profit pour les positions longues et courtes
longTakeProfitLevel = strategy.position_avg_price * (1 + takeProfitPercentage / 100)
shortTakeProfitLevel = strategy.position_avg_price * (1 - takeProfitPercentage / 100)
// Vérification si les niveaux de prise de profit sont atteints
longTakeProfitReached = strategy.position_size > 0 and high >= longTakeProfitLevel
shortTakeProfitReached = strategy.position_size < 0 and low <= shortTakeProfitLevel
// Tracé des formes de prise de profit
plotshape(series=longTakeProfitReached, style=shape.xcross, location=location.belowbar, color=color.blue, size=size.small, title="Take Profit Long")
plotshape(series=shortTakeProfitReached, style=shape.xcross, location=location.abovebar, color=color.blue, size=size.small, title="Take Profit Short")
// Niveaux de stop loss pour les positions longues et courtes
longStopLossLevel = strategy.position_avg_price * (1 - stopLossPercentage / 100)
shortStopLossLevel = strategy.position_avg_price * (1 + stopLossPercentage / 100)
// Vérification si les niveaux de stop loss sont atteints
longStopLossReached = strategy.position_size > 0 and low <= longStopLossLevel
shortStopLossReached = strategy.position_size < 0 and high >= shortStopLossLevel
// Tracé des formes de stop loss
plotshape(series=longStopLossReached, style=shape.xcross, location=location.belowbar, color=color.red, size=size.small, title="Stop Loss Long")
plotshape(series=shortStopLossReached, style=shape.xcross, location=location.abovebar, color=color.red, size=size.small, title="Stop Loss Short")
// Fermeture des positions en cas de prise de profit ou de stop loss
strategy.close("Long", when=longTakeProfitReached or longStopLossReached)
strategy.close("Short", when=shortTakeProfitReached or shortStopLossReached)