Die Strategie ist eine einfache und effiziente Handelsstrategie, die den Schwingungsindikator MACD mit dem Moving Average EMA kombiniert. Die Strategie ist derzeit auf 4 Stunden K-Linie eingestellt und kann an andere Zeiträume angepasst werden, wenn erforderlich.
Die Strategie besteht hauptsächlich aus folgenden Komponenten:
Der MACD-Indikator: Beurteilung der Preisdynamik.
Die EMA-Gehaltlinie: Die Richtung der Kursentwicklung.
Zeitbedingte: Begrenzung der Laufzeit der Strategie.
Mehr Platz: Wählen Sie mehr oder weniger Platz.
Die Regeln für den Handel sind wie folgt:
Obergrenze/Grenze: Obergrenze/Grenze, wenn der Schlusskurs höher als die EMA ist, die MACD-Säulenlinie positiv ist und die aktuelle K-Linie höher ist als am Vortag.
Off/Broad: Wenn der Schlusskurs unter der EMA liegt, die MACD-Säulenlinie negativ ist und die aktuelle K-Linie unter der Vortagslinie liegt, wird auf/off gehandelt.
Die Strategie ist klar und präzise, die beiden großen Geschäftsideen von Trend und Short-Term kombiniert, um ein effizientes System für quantitative Entscheidungen zu bilden.
Im Vergleich zu einzelnen Indikatoren hat diese Strategie folgende Vorteile:
Der MACD beurteilt die kurzfristige Dynamik, die EMA die Richtung des Trends und der Indikator ist eng verbunden.
Die Regeln sind einfach, klar, leicht zu verstehen, leicht umzusetzen und nicht schwer umzusetzen.
Die Parameter können flexibel für verschiedene Sorten und Zeiträume angepasst werden.
Die Option besteht aus einem unidirectionalen Plus- oder Bilanzhandel sowie einem bi-idirectionalen Handel.
Es ist möglich, die Strategie für einen bestimmten Zeitraum einzustellen, um unnötige Transaktionen zu vermeiden.
Das Unternehmen ist seit vielen Jahren profitabel und zeichnet sich durch eine stabile Leistung aus.
Das Geld wird kontrolliert, um zu verhindern, dass ein einzelner Verlust zu groß wird.
Die Technik des maschinellen Lernens kann zur Optimierung und Verbesserung eingesetzt werden.
Obwohl die Strategie viele Vorteile hat, gibt es folgende Risiken:
Die Optimierung der Parameter ist sehr umfangreich und es besteht die Gefahr einer Überoptimierung.
Es besteht die Gefahr, dass die Verluste steigen, wenn keine Stop-Loss-Stop-Stufe eingerichtet ist.
Es ist nicht der Umsatz berücksichtigt, es kann ein falscher Durchbruch geben.
Es ist nicht möglich, Verluste vollständig zu vermeiden, wenn die Trendwende zu spät identifiziert wird.
Die Wirkung kann durch veränderte Marktbedingungen abgeschwächt werden.
Es ist wichtig, dass die Modelle nur auf der Grundlage historischer Daten stabil sind.
Es ist möglich, dass die Transaktionsfrequenz und die Transaktionskosten höher sind.
Die Kurve sollte nicht zu schräg sein.
Nach der oben erwähnten Analyse kann diese Strategie optimiert werden:
Um einen falschen Durchbruch zu vermeiden, werden die Transaktionszahlen aufgenommen.
Erhöhung der Stop-Loss-Stopp-Einstellungen und Kontrolle der Einmalverluste.
Beurteilung der Effekte von Parametern für verschiedene Zeiträume.
Einführung von Machine Learning-Technologien zur dynamischen Optimierung.
Mehrfach-Markt-Verifizierung und bessere Robustheit.
Die Größe der Positionen wurde angepasst, um die Häufigkeit der Transaktionen zu verringern.
Optimierung der Finanzmanagementstrategie.
Testpreis-Differenz-Verträge, erhöhen Sie die Häufigkeit.
Es werden immer wieder Rückprüfungen durchgeführt, um eine Überpassung zu vermeiden.
Die Strategie als Ganzes bildet zusammen mit den MACD- und EMA-Indikatoren eine einfache und effiziente Quantifizierungsstrategie. Jede Strategie muss jedoch ständig optimiert und verifiziert werden, um an die Veränderungen der Marktumgebung angepasst und stabil zu bleiben. Die Handelsstrategie muss ständig weiterentwickelt und aktualisiert werden.
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SoftKill21
//@version=4
strategy("My Script", overlay=true)
//heiking ashi calculation
UseHAcandles = input(false, title="Use Heikin Ashi Candles in Algo Calculations")
//
// === /INPUTS ===
// === BASE FUNCTIONS ===
haClose = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, close) : close
haOpen = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, open) : open
haHigh = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, high) : high
haLow = UseHAcandles ? security(heikinashi(syminfo.tickerid), timeframe.period, low) : low
//timecondition
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2020, title = "From Year", minval = 1970)
//monday and session
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true
//ema data -- moving average
len = input(9, minval=1, title="Length")
src = input(hl2, title="Source")
out = ema(src, len)
//plot(out, title="EMA", color=color.blue)
//histogram
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA (Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA (Signal Line)", type=input.bool, defval=false)
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
//main variables to apply conditions are going to be out(moving avg) and hist(macd)
long = haClose > out and haClose > haClose[1] and out > out[1] and hist> 0 and hist[1] < 0 and time_cond
short = haClose < out and haClose < haClose[1] and out < out[1] and hist < 0 and hist[1] > 0 and time_cond
//limit to 1 entry
var longOpeneda = false
var shortOpeneda = false
var int timeOfBuya = na
longCondition= long and not longOpeneda
if longCondition
longOpeneda := true
timeOfBuya := time
longExitSignala = short
exitLongCondition = longOpeneda[1] and longExitSignala
if exitLongCondition
longOpeneda := false
timeOfBuya := na
plotshape(longCondition, style=shape.labelup, location=location.belowbar, color=color.green, size=size.tiny, title="BUY", text="BUY", textcolor=color.white)
plotshape(exitLongCondition, style=shape.labeldown, location=location.abovebar, color=color.red, size=size.tiny, title="SELL", text="SELL", textcolor=color.white)
//automatization
longEntry= input(true)
shortEntry=input(false)
if(longEntry)
strategy.entry("long",strategy.long,when=longCondition)
strategy.close("long",when=exitLongCondition)
if(shortEntry)
strategy.entry("short",strategy.short,when=exitLongCondition)
strategy.close("short",when=longCondition)