Ausbruch nach Trendstrategie


Erstellungsdatum: 2023-12-08 17:16:34 zuletzt geändert: 2023-12-08 17:16:34
Kopie: 1 Klicks: 573
1
konzentrieren Sie sich auf
1621
Anhänger

Ausbruch nach Trendstrategie

Überblick

Die Strategie ermöglicht die Verfolgung der Kryptowährungspreistrends durch die Festlegung von Höhen und Tiefen, an denen die Preise durchbrechen. Wenn der Preis die Höchststände überschreitet, wird ein Plus getätigt, und wenn der Preis die Tiefststände überschreitet, wird ein Minus getätigt, um den Trend zu erfassen.

Strategieprinzip

Die Strategie entscheidet überwiegend über eine deutliche Aufwärts- oder Abwärtsentwicklung der Preise mittels einer schlanken, gewichteten Moving Average. Konkret wird der Höchst- und Tiefstpreis innerhalb eines bestimmten Zeitraums berechnet. Wenn der tatsächliche Handelspreis den statistischen Höchstpreis übersteigt, wird ein Aufwärtstrend ermittelt, und wenn der tatsächliche Handelspreis unter dem statistischen Tiefstpreis liegt, wird ein Abwärtstrend ermittelt.

Der Aufnahmepreis für die Übernahme wird durch die Eingabe des Parameterfelds ENTRY eingestellt, der Ausgabepreis durch den Parameterfeld EXIT eingestellt. Die Rückmesszeit kann auch durch die Parameter eingestellt werden. So kann die optimale Kombination der Kombos durch Anpassung der Parameter gefunden werden.

Die wichtigste Logik der Strategie lautet:

  1. Höchste und niedrigste Preise innerhalb eines statistisch festgelegten Zeitraums (setzbar)
  2. Beurteilen, ob der tatsächliche Preis höher ist als der Höchstpreis
    1. Wenn der Wert höher ist als, gibt es mehrere Möglichkeiten, um mehr Positionen zu eröffnen, je nach dem Preisniveau, das durch den Parameter des ZINDENENTRY ZINDEN festgelegt wurde
    2. Wenn der tatsächliche Handelspreis unter dem Mindestpreis liegt, besteht die Möglichkeit, eine Leerstellung zu tätigen, die auf dem Preisniveau basiert, das von den Parametern des EXIT-Rangs festgelegt wurde
  3. Nach der Aufnahme von Mehrpositionen, wenn der Preis unter dem Preis liegt, der für die Parameter der EXIT-Reihe festgelegt wurde
  4. Nach der Eröffnung eines leeren Lagers, wenn der Preis höher ist als der Preis, der durch den Parameter “ENTRY” des Lagers festgelegt wurde

Durch diese logische Kreislauf kann die Auf- und Abwärtstrend der Preise erfasst werden, um Trend-Tracking zu ermöglichen.

Strategische Vorteile

Der größte Vorteil dieser Strategie besteht darin, dass die Preisentwicklung automatisch über die Parameter-Anpassung erfasst werden kann, ohne die Richtung der Tendenz manuell zu beurteilen. Wenn die Parameter richtig eingestellt sind, kann die Preisbewegung der Kryptowährung automatisch verfolgt werden.

Die Strategie eignet sich außerdem hervorragend für quantitative Transaktionen und ermöglicht die einfache Automatisierung von Bestellungen. Sie erfordert keine manuelle Handhabung, verringert das Risiko von emotionalen Transaktionen und kann die Effizienz erheblich steigern.

Schließlich kann die Strategie auch durch Parameter-Anpassungen den Gewinn maximieren. Durch das Testen verschiedener ENTRY- und EXIT-Parameter kann die optimale Parameter gefunden werden, um den Gewinn zu maximieren.

Strategisches Risiko

Die größte Gefahr dieser Strategie besteht darin, dass die falsche Einstellung der Parameter zu häufigen Transaktionen führen kann, was zu erhöhten Transaktionsgebühren und Verlusten an Slip-Points führt. Wenn die ENTRY-Einstellung zu niedrig und die EXIT-Einstellung zu hoch ist, kann leicht ein falsches Handelssignal erzeugt werden.

Wenn die Parameter nicht richtig angepasst werden, kann es auch dazu führen, dass die Preisentwicklung nicht rechtzeitig erfasst wird und die Handelschancen verpasst werden. Dies erfordert eine große Anzahl von Rückprüfungen, um die optimalen Parameter zu finden.

Schließlich ist die Strategie zu empfindlich für kurzfristigen Marktlärm und kann falsche Handelssignale erzeugen. Dies muss durch die richtige Einstellung der Handelszeitzyklusparameter vermieden werden.

Richtung der Strategieoptimierung

Die Strategie kann weiter optimiert werden in folgenden Richtungen:

  1. Erhöhen Sie die Stop-Loss-Logik. So können Sie den Ausfall stoppen, wenn der Verlust sich um einen bestimmten Prozentsatz erweitert, um größere Verluste zu vermeiden.

  2. Technische Indikatoren wie beispielsweise die Moving Averages werden gefiltert. Indikatoren wie MA, KDJ und andere werden verwendet, um große Trends zu erkennen und zu vermeiden, dass kurzfristige Geräusche zu viele Geschäfte verursachen.

  3. Optimierte Parameter-Setting-Logik. Es kann ein Anpassungsmechanismus für die ENTRY- und EXIT-Parameter eingestellt werden, anstatt eine statische Einstellung, die die Parameter an die Marktumgebung anpasst.

  4. Nutzung der optimalen Parameter für das Maschinelle Lernen. Durch Training mit einer großen Menge an historischen Daten erhalten Sie die optimalen ENTRY- und EXIT-Einstellungen für die aktuelle Marktumgebung.

Zusammenfassen

Die Strategie ermöglicht die Automatisierung des Handels durch die Erfassung von Preistrends. Der größte Vorteil besteht darin, die Auswirkungen menschlicher Emotionen auf den Handel zu reduzieren, Risiken zu verringern und die Effizienz zu verbessern. Gleichzeitig kann durch Parameteranpassung die optimale Rendite gefunden werden.

Die Hauptrisiken der Strategie bestehen in der falschen Parameter-Einstellung und der Überempfindlichkeit gegenüber Marktgeräuschen. Dies erfordert Verbesserungen durch Stoppverluste, Kennzahlenfilterung und Parameter-Adaptionsoptimierung.

Insgesamt ist die Strategie eine einfache und effektive Trend-Tracking-Strategie, geeignet für die Quantifizierung und den automatischen Handel. Durch kontinuierliche Optimierung kann die Strategie-Stabilität weiter verbessert werden.

Strategiequellcode
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © JstMtlQC

//@version=4
strategy("Trend Following Breakout",calc_on_order_fills=true,calc_on_every_tick =false, overlay=true, initial_capital=2000,commission_value=.1,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)


/////////////// INPUT ENTRY EXIT
entry= input(100, "ENTRY H/L")
exit= input(50, "EXIT H/L")

/////////////// Backtest Input
FromYear = input(2015, "Backtest Start Year")
FromMonth = input(1, "Backtest Start Month")
FromDay = input(1, "Backtest Start Day")
ToYear = input(2999, "Backtest End Year")
ToMonth = input(1, "Backtest End Month")
ToDay = input(1, "Backtest End Day")

/////////////// Backtest Setting
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
window()  => time >= start and time <= finish ? true : false 

/////////////// BUY OPEN PLOT
highestpricelong = highest(high,entry)[1]
plot(highestpricelong, color=color.green, linewidth=2)

/////////////// BUY CLOSE PLOT
lowestpricelong = lowest(high,exit)[1]
plot(lowestpricelong, color=color.green, linewidth=2)

/////////////// SHORT OPEN PLOT
lowestpriceshort = lowest(low,entry)[1]
plot(lowestpriceshort, color=color.red, linewidth=2)

/////////////// SHORT CLOSE PLOT
highestpriceshort = highest(low,exit)[1]
plot(highestpriceshort, color=color.red, linewidth=2)

///////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// CONDITION LONG SHORT //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////

/////////////// SHORT 

entryshort= crossunder(close, lowestpriceshort)
exitshort= crossover(close,highestpriceshort)

/////////////// LONG 

exitlong= crossover(close, lowestpricelong)
entrylong= crossover(close,highestpricelong)

///////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////// LONG and SHORT ORDER //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////

/////////////// LONG 

if (entrylong)
    strategy.entry("LongEntry", strategy.long, when = window())
if (exitlong or entryshort)
    strategy.close("LongEntry", when=window())

/////////////// SHORT 

if (entryshort)
    strategy.entry("short", strategy.short, when = window())
if (exitshort or entrylong)
    strategy.close("short", when=window())