Doppel gleitender Durchschnitt Goldene Kreuz-Quantitative Strategie

Schriftsteller:ChaoZhang, Datum: 2023-12-26
Tags:

img

Übersicht

Diese Strategie beurteilt Preistrends und Handelschancen durch Berechnung von doppelten gleitenden Durchschnitts-Crossovers. Wenn der schnelle MA über den langsamen MA überschreitet, gilt es als ein goldenes Kreuz, um lang zu gehen. Wenn der schnelle MA unter dem langsamen MA überschreitet, gilt es als ein Todeskreuz, um kurz zu gehen. Gleichzeitig kombinieren Sie den Volumenindikator, um die Zuverlässigkeit von Crossovers zu beurteilen, um falsche Signale zu vermeiden.

Strategieprinzip

Die Grundprinzipien dieser Strategie sind:

  1. Berechnen Sie zwei Gruppen von gleitenden Durchschnitten mit unterschiedlichen Parametern, eine Gruppe reagiert schnell auf Preisänderungen und die andere reagiert relativ langsam. Wenn der schnelle MA über den langsamen MA überschreitet, signalisiert dies einen Aufwärtstrend. Wenn der schnelle MA unter den langsamen MA überschreitet, signalisiert er einen Abwärtstrend.

  2. Wenn die MAs sich kreuzen, überprüfen Sie die Änderung des Volumenindikators. Wenn der Volumenindikator auch signifikant durchbricht, ist das Crossover-Signal zuverlässig. Wenn es keinen entsprechenden Ausbruch im Volumen gibt, kann es sich um ein falsches Signal handeln.

  3. Eintritt in Long- oder Short-Positionen, basierend auf dem Crossover-Richtungs- und Volumen-Urteil.

Insbesondere beurteilt die Strategie Preistrends anhand eines 7-Perioden-Dual-MA-Crossovers. Sie verwendet Volumenindikatoren, um die Signalzuverlässigkeit zu überprüfen.

Analyse der Vorteile

Die wichtigsten Vorteile dieser Strategie sind:

  1. Kombination von doppelten MAs zur Bestimmung der Trendrichtung und Volumenfilter, um falsche Signale zu vermeiden und gefangen zu werden.

  2. Nur Positionen einnehmen, wenn sich das Volumen bestätigt, erhöht die Erfolgsrate.

  3. Ein Profit-taking-Mechanismus, um rechtzeitig Profit zu machen und Profit nicht zurückzugeben.

Risikoanalyse

Die wichtigsten Risiken dieser Strategie sind:

  1. Eine Verzögerung des MA-Crossovers kann die beste Gelegenheit verpassen.

  2. Es ist schwer zu beurteilen, wenn Volumen abweicht, kann mehr Indikatoren zur Bestätigung hinzufügen.

  3. Eine unsachgemäße Einstellung des Stop-Profits kann dazu führen, dass der Gewinner zu lange gehalten oder übertrieben wird.

Optimierungsrichtlinien

Die Strategie kann aus folgenden Gesichtspunkten optimiert werden:

  1. Optimierung der MA-Perioden, um sie reagierender auf zeitliche Preisänderungen zu machen.

  2. Zusätzliche Indikatoren wie MACD, KD zur Signalbestätigung hinzufügen, um falsche Volumensignale zu vermeiden.

  3. Einbeziehen Sie mehr Gewinnnahme Mechaniken wie Trail Stop, Prozentsatz Stop, Volatilität Stop für dynamische Gewinnnahme.

  4. Hinzufügen eines Stop-Loss-Mechanismus zur Kontrolle des Betrags eines einzelnen Handelsverlusts.

  5. Optimierung der Positionsgröße, die sich an unterschiedliche Marktumgebungen anpassen lässt.

Schlussfolgerung

Der Kerngedanke dieser Strategie ist die Verwendung eines doppelten MA-Crossover für den Trend und eines Volumenfilters für die Signalzuverlässigkeit.


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

//@version=2
strategy("ZendicatoR", overlay=true, calc_on_order_fills= true, calc_on_every_tick=true, default_qty_type=strategy.percent_of_equity, default_qty_value=15, pyramiding=0)
dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001)
keh=input(title="Double HullMA Cross",defval=7, minval=1)
che1=input(title="MA 1",defval=34,minval=1)
che2=input(title="MA 2",defval=144,minval=1)
che3=input(title="MA 3",defval=377,minval=1)
amnt=input(title="TP ($)",defval=4200,minval=1)
wma1=wma(close,che1)
wma2=wma(close,che2)
wma3=wma(close,che3)
sma1=sma(close,11)
tms=10000000000000
A=request.security(syminfo.tickerid, 'D', close)*tms
B=request.security(syminfo.tickerid, 'D', close[1])*tms
C=A>B?green:red
D=wma2>wma3?green:red
plot(wma1,style=line,color=C,linewidth=4)
p1=plot(wma2,style=line,color=D)
p2=plot(wma3,style=line,color=D)
fill(p1, p2, color=D, transp=75)
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma,sqn=round(sqrt(keh))
n2ma1=2*wma(close[2],round(keh/2))
nma1=wma(close[2],keh)
diff1=n2ma1-nma1,sqn1=round(sqrt(keh))
n1=wma(diff,sqn)*tms
n2=wma(diff1,sqn)*tms
Q=n1>n2?blue:yellow
plot(sma1,style=line,color=Q,linewidth=4)
closelong = A*tms<B*tms and n2*tms>n1*tms and strategy.openprofit>amnt
if (closelong)
    strategy.close("Long")
closeshort = A*tms>B*tms and n1*tms>n2*tms and strategy.openprofit>amnt
if (closeshort)
    strategy.close("Short") 
longCondition = A*tms>B*tms and n1*tms>n2*tms
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = A*tms<B*tms and n1*tms<n2*tms
if (shortCondition)
    strategy.entry("Short",strategy.short)

Mehr