Breakout-Trend nach Strategie

Schriftsteller:ChaoZhang, Datum: 2023-12-08 17:16:34
Tags:

img

Übersicht

Diese Strategie verfolgt den Preistrend von Kryptowährungen, indem sie Breakout-Hoch- und Tiefpreise festlegt.

Strategieprinzip

Diese Strategie verwendet hauptsächlich die gewichtete gleitende Durchschnittsmethode, um festzustellen, ob es einen offensichtlichen Aufwärtstrend oder Abwärtstrend gibt. Insbesondere werden die höchsten und niedrigsten Preise in einem bestimmten Zeitraum aufgezeichnet. Wenn der tatsächliche Handelspreis den registrierten höchsten Preis übersteigt, wird ein Aufwärtstrend beurteilt, und er wird lang gehen. Wenn der tatsächliche Handelspreis niedriger als der registrierte niedrigste Preis ist, wird ein Abwärtstrend beurteilt, und er wird kurz gehen.

Die Öffnungs- und Kurzkurse werden über den Eingabeparameter ENTRY und die Schlusskurs durch den Parameter EXIT festgelegt.

Insbesondere ist die Hauptlogik der Strategie folgende:

  1. Aufzeichnung der höchsten und niedrigsten Preise über einen bestimmten Zeitraum (anpassbar)
  2. Beurteilen, ob der tatsächliche Handelspreis höher als der höchste Preis ist
    1. Wenn höher, gibt es eine Long-Opportunity, öffne eine Long-Position basierend auf dem Preisniveau, das durch den Parameter ENTRY festgelegt wurde.
    2. Wenn der tatsächliche Handelspreis unter dem niedrigsten Preis liegt, besteht eine Kurzzeitmöglichkeit, eine kurze Position auf der Grundlage des Preisniveaus, der durch den Parameter EXIT festgelegt wird, zu eröffnen.
  3. Nach Eröffnung einer Long-Position schließt man sie, wenn der Preis unter das durch den Parameter EXIT festgelegte Niveau fällt
  4. Nach Eröffnung einer Leerposition schließt man sie, wenn der Preis über das durch den Parameter ENTRY festgelegte Niveau steigt

Durch diese Logikschleife kann er die Auf- und Abwärtstrends des Preises erfassen und dem Trend folgen.

Vorteile

Der größte Vorteil dieser Strategie besteht darin, dass sie durch Anpassung der Parameter automatisch Preistrends erfassen kann, ohne manuelle Beurteilung der Trendrichtung zu benötigen. Solange die Parameter angemessen eingestellt sind, kann sie automatisch die Kursschwankungen von Kryptowährungen verfolgen.

Darüber hinaus eignet sich diese Strategie sehr gut für den quantitativen Handel und kann leicht eine automatisierte Auftragserteilung erreichen. Ohne manuelle Bedienung reduziert sie das Risiko eines emotionalen Handels und verbessert die Handelseffizienz erheblich.

Schließlich kann diese Strategie auch die Rendite maximieren, indem Parameter angepasst werden.

Risiken

Das größte Risiko dieser Strategie besteht darin, dass eine unsachgemäße Einstellung der Parameter zu einem übermäßig häufigen Handel, zu erhöhten Handelsgebühren und zu Schlupfverlusten führen kann.

Darüber hinaus kann eine unsachgemäße Einstellung der Parameter auch dazu führen, dass Preistrends nicht rechtzeitig erfasst und Handelsmöglichkeiten verpasst werden.

Schließlich ist diese Strategie zu empfindlich gegenüber kurzfristigem Marktlärm, der falsche Handelssignale erzeugen kann.

Optimierungsrichtlinien

Die folgenden Aspekte können für diese Strategie weiter optimiert werden:

  1. Dies ermöglicht das Stoppen von Verlusten, wenn die Verluste einen bestimmten Prozentsatz übersteigen, um größere Verluste zu vermeiden.

  2. Fügen Sie technische Indikatorenfilter wie gleitenden Durchschnitt, KDJ hinzu, um den allgemeinen Trend zu beurteilen, um zu viel Handel aufgrund von Kurzzeitlärm zu vermeiden.

  3. Optimieren Sie die Parameter-Einstellungslogik. Der adaptive Änderungsmechanismus kann für ENTRY- und EXIT-Parameter statt für statische Einstellungen eingestellt werden, damit sie sich anhand der Marktbedingungen anpassen können.

  4. Verwenden Sie maschinelles Lernen, um optimale Parameter zu trainieren.

Schlussfolgerung

Der größte Vorteil dieser Strategie besteht darin, dass durch die Erfassung von Preistrends automatisierter Handel erreicht wird, der die Auswirkungen menschlicher Emotionen auf den Handel reduzieren, Risiken senken und die Effizienz verbessern kann.

Die wichtigsten Risiken der Strategie bestehen in einer unsachgemäßen Einstellung der Parameter und einer Überempfindlichkeit gegenüber Marktlärm, die durch Stop-Loss, Indikatorfilter, adaptive Parameteroptimierung und mehr verbessert werden müssen.

Insgesamt handelt es sich um einen einfachen und effektiven Trend nach einer für den quantitativen und automatisierten Handel geeigneten Strategie.


/*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())



Mehr