Strategie zur Verfolgung von Krypto-Bullruns

Schriftsteller:ChaoZhang, Datum: 23.08.2023
Tags:

img

Übersicht

Diese Strategie verfolgt den Trend, indem sie zwei dynamische gleitende Durchschnitte, DEMA und TEMA, berechnet und Long- oder Short-Positionen festlegt, wenn sie Goldkreuze oder Todkreuze erzeugen.

Strategie Logik

Die Kernlogik dieser Strategie besteht darin, die Trendrichtung auf der Grundlage der Überschneidung zwischen zwei dynamischen gleitenden Durchschnitten, DEMA und TEMA, zu bestimmen.

DEMA steht für Double Exponential Moving Average. Es kombiniert die gewichtete Glättungsfunktion von EMA und optimiert das Verzögerungsproblem von EMA. Seine Formel lautet:

DEMA = 2*EMA (Schließen, N) - EMA (Schließen, N), N)

Hier ist N die Demalength.

TEMA steht für Triple Exponential Moving Average. Es verwendet eine dreifache exponentielle Glättung, um die Verzögerung von gleitenden Durchschnitten zu reduzieren.

EMA1 = EMA ((KLEINE, Temalength) EMA2 = EMA ((EMA1, Temalength) EMA3 = EMA ((EMA2, Temalength) TEMA = 3EMA1 - 3EMA2 + EMA3

Wenn TEMA über DEMA überschreitet, gilt es als ein goldenes Kreuzsignal, um lang zu gehen.

Darüber hinaus setzt die Strategie die DelayBars, um die Gültigkeit der Signale zu gewährleisten und falsche Signale zu vermeiden.

Schließlich wird in der Strategie eine Dual-Checking-Logik angewandt, die prüft, ob die gegenüberliegende Position vor der Eröffnung neuer Trades geschlossen werden muss, um das Risiko von Doppelrichtungspositionen zu vermeiden.

Analyse der Vorteile

  1. Eine genauere Beurteilung des Trends unter Verwendung zweier dynamischer Marktindikatoren

Im Vergleich zu traditionellen EMA und SMA sind DEMA und TEMA empfindlichere dynamische MAs, die Trendveränderungen schnell erfassen können und so die Genauigkeit der Markttrendbeurteilungen verbessern.

  1. Filterung falscher Signale durch Festlegung einer Verzögerungsfrist

Der delayBars-Parameter zwingt die Strategie, nach dem Auftauchen des Signals eine gewisse Zeit zu warten, bevor sie Positionen eintritt.

  1. Risikominderung durch doppelte Kontrollen

Durch die Überprüfung, ob die gegenüberliegende Position vor der Eröffnung neuer Trades geschlossen werden muss, vermeidet die Strategie, Doppelrichtungspositionen zu halten, und minimiert Verluste aus Hedging-Trades.

  1. Starke Universalität

Diese Strategie stützt sich hauptsächlich auf die Überschneidung von Marktindikatoren, einem gemeinsamen technischen Indikator, um Trends und Signale zu ermitteln.

Risikoanalyse

  1. Anfällig für die Gefahr, in den Märkten mit Schraubsagen gefangen zu werden

In einem Markt mit enormen seitlichen Schwankungen können sich MAs häufig kreuzen und falsche Signale erzeugen, die Verluste verursachen.

Die Lösungen bestehen darin, die Strategie bei Erkennung seitlicher Trends zu pausieren oder die MA-Parameter und Verzögerungszeiten angemessen anzupassen.

  1. Nicht identifiziert Fallen oder Schwarzschwanenereignisse

Die Strategie verfolgt lediglich die Preisentwicklung und kann keine kurzfristigen Fallen oder Trendumkehrungen aufgrund großer Ereignisse vorhersagen.

Die Lösungen bestehen darin, andere Indikatoren zur Risikobewertung einzubeziehen oder die Positionsgrößen angemessen zu reduzieren.

Optimierungsrichtlinien

  1. Testen Sie mehr Arten von MAs

Abgesehen von DEMA und TEMA werden Kombinationen von SMA, EMA und anderen verbesserten MA getestet, um die am besten geeigneten für diesen Markt zu finden.

  1. Optimierung von MA-Parametern und Verzögerungszeiten

Ausführen von Optimierungen, um die optimalen MA-Längen und Signalverzögerungszeiten für genauere Handelssignale zu finden.

  1. Anpassung von Parametern für verschiedene Produkte

Angesichts der unterschiedlichen Produktmerkmale sind geeignete Kombinationen von MA-Längen, Verzögerungszeiten für die Preisschwankungen und Trends zu finden.

  1. Einbeziehung anderer Indikatoren für die Risikobewertung

Verwenden Sie Bollinger-Bänder, um Volatilität und Preisniveau zu beurteilen, um Whipsaw-Märkte zu vermeiden. Verwenden Sie Momentum-Indikatoren, um Trendstärken zu bewerten.

Schlussfolgerung

Dies ist ein grundlegender Trend nach der Strategie, die auf dynamischen MA-Kreuzungen zwischen DEMA und TEMA basiert. Seine Vorteile sind hohe Stabilität, Zuverlässigkeit und Universalität. Aber es hat auch eine gewisse Nachlässigkeit und schwache Umkehrerkennungskapazität. Dieser Artikel bietet eine umfassende Analyse seiner Vor- und Nachteile und Optimierungsrichtungen, die als wertvolle Referenzen für die Verwendung dieser Strategie dienen. Insgesamt bietet es ein typisches Beispiel für quantitative Handelsstrategie-Design, das einer weiteren Untersuchung würdig ist.


/*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"}]
*/

//@version=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © jacobdickson255

strategy("Crypto Bull Run Tracker", overlay=true, pyramiding=0)

//Dema Scripting
Demalength = input.int(230, minval=1)
src = close
e1 = ta.ema(src, Demalength)
e2 = ta.ema(e1, Demalength)
dema = 2 * e1 - e2
plot(dema, "DEMA", color=#43A047)

//Tema Scripting
Temalength = input.int(210, minval=1)
ema1 = ta.ema(close, Temalength)
ema2 = ta.ema(ema1, Temalength)
ema3 = ta.ema(ema2, Temalength)
tema = 3 * (ema1 - ema2) + ema3
plot(tema, "TEMA", color=#2962FF)

delayBars = input(5, title="Bar Delay")
var int lastTradeBar = na

longCondition = ta.crossover(tema, dema) 
longExit = ta.crossunder(tema, dema)
shortCondition = ta.crossunder(tema, dema)
shortExit = ta.crossover(tema, dema)

// Exit conditions should be checked before entry conditions
// Close short position if a long condition is present
if ((shortExit and strategy.position_size < 0)) // If conditions for exiting the short are met, and there is a balance in the short direction, exit the short
    strategy.close("Short")
   

// Close long position if a short condition is present
if ((longExit and strategy.position_size > 0))
    strategy.close("Long")
   
// Now check for entry conditions
if (longCondition)
    strategy.entry("Long", strategy.long)
    lastTradeBar := bar_index

if (shortCondition)
    strategy.entry("Short", strategy.short)
    lastTradeBar := bar_index


Mehr