
Die Strategie nutzt eine Methode des maschinellen Lernens, um eine off-the-box automatisierte Handelsstrategie zu realisieren. Sie integriert mehrere Indikatoren und Modelle, die automatisch Handelssignale erzeugen und auf Basis der Signale Kauf- und Verkaufsoperationen durchführen können.
Diese Strategie basiert auf folgenden Punkten:
Die Strategie zeichnet eine Hull-Mittellinie, ein 13-Zyklus-EMA und ein 21-Zyklus-EMA aus. Durch die hohe Leerheit der EMA wird die Richtung der kurz- und mittelfristigen Trends ermittelt. In Kombination mit der Hull-Mittellinie wird die Richtung der längerfristigen Trends ermittelt.
Vor der Anpassung der Position bezieht sich die Strategie auf die entsprechenden Unterstützungs- und Widerstandsplätze für die höchsten und niedrigsten Preise innerhalb des physikalischen Kanals. Dies verhindert, dass ein Handelssignal in einem kritischen Preisbereich erzeugt wird.
Die Strategie ruft schließlich den 60-Zyklus-Eröffnungs- und Schlusskurs auf, um ein Kaufsignal zu erzeugen, wenn der Schlusskurs den Eröffnungs- und den Verkaufskurs überschreitet. Damit ist die gesamte Handelslogik abgeschlossen.
Der größte Vorteil dieser Strategie liegt in der Kombination von Machine Learning und technischen Analyse-Indikatoren, um eine automatisierte Handelsstrategie zu schaffen, die logisch klar, parametergesteuert und einfach zu bedienen ist.
Die Strategie beruht nicht nur auf einem oder zwei Indikatoren, sondern berücksichtigt mehrere Faktoren wie Trends, Unterstützungsresistenzen und Preisdurchbrüche, was die Zuverlässigkeit und Genauigkeit der Signale erheblich verbessert.
Die Hull-Line-Länge, die Anzahl der EMA-Zyklen und die Anzahl der OTC-Cross-Zyklen können durch Parameter angepasst werden, so dass die Strategie flexibel an unterschiedliche Marktbedingungen angepasst werden kann.
Das Signal basiert auf einem Index und einem Preiskreuz, der automatisch zu Kauf und Verkauf führt, ohne dass ein menschliches Urteilsvermögen erforderlich ist.
Die Diagramme in der Strategie können die Struktur des Marktes, die Trends und die wichtigsten Preise klar darstellen und die Grundlage für die strategische Entscheidung visuell darstellen.
Obwohl die Strategie auf mehreren Ebenen optimiert wurde, gibt es einige mögliche Risiken:
In Situationen mit starken Preisschwankungen können Indikatoren ausfallen oder verzögert werden, was dazu führt, dass die Strategie die Preisänderungen nicht rechtzeitig verfolgt. Die Parameter müssen optimiert werden, um sich dieser Situation anzupassen.
Auf Basis von Indikatoren und Modellen für Handelssignale gibt es mehr oder weniger Falschmeldungen oder Missmeldungen. Dies erfordert eine Verbesserung der Signalqualität durch die Kombination von mehr Hilfssignalen.
Die Strategie besteht darin, gleichzeitig zu viel zu verlieren, was das Risiko eines beidseitigen Verlusts darstellt, wenn man falsch urteilt. Dies erfordert eine strenge Verringerung der Verluste oder der Verringerung der Positionen, um diese zu kontrollieren.
Die Einstellung von Parametern ist zu kompliziert und besteht die Gefahr einer Überoptimierung. Dies erfordert eine Vereinfachung des Systems und die Kontrolle der Anzahl der Parameterkombinationen.
Diese Strategie kann optimiert werden, und zwar in folgenden Bereichen:
Zusätzlich zu den bestehenden Kennzahlen können weitere Hilfsindikatoren eingeführt werden, wie BOLL-Kanal, KD-Kennzahlen usw., um die Grundlage für die Systementscheidung zu bereichern.
Einfach Indicatoren als Merkmale zu verwenden und Deep Learning-Modelle wie LSTM zu trainieren, um die Signalqualität zu verbessern.
Das Projekt soll die Integration von makroökonomischen Daten, politischer Informationen und anderen grundlegenden Faktoren in die Gesamtzyklusentscheidung optimieren.
Einführung einer Stop-Loss-Strategie, dynamische Anpassung der Positionsgröße an die Ertragsvolatilität der Strategie und strikte Kontrolle des Risikos.
Diese Strategie integriert mehrere Indikatoren wie Trends, Support Resistance, Breakouts, um ein automatisiertes, out-of-the-box-Quantitative-Trading-System mit Hilfe von Machine-Learning-Methoden zu realisieren. Es hat die Vorteile der Vielfalt der Indikatorenpalette, der Parameter-Anpassbarkeit und der Signal-Automatisierung, aber auch bestimmte Probleme wie Tracking-Verabschnitte, Signalfehler und Multi-Space-MIX.
/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title='Ali Jitu Abus', shorttitle='Ali_Jitu_Abis_Strategy', overlay=true, pyramiding=0, initial_capital=1000, currency=currency.USD)
//Candle body resistance Channel-----------------------------//
len = 34
src = input(close, title="Candle body resistance channel")
out = sma(src, len)
last8h = highest(close, 13)
lastl8 = lowest(close, 13)
bearish = cross(close,out) == 1 and falling(close, 1)
bullish = cross(close,out) == 1 and rising(close, 1)
channel2=input(false, title="Bar Channel On/Off")
ul2=plot(channel2?last8h:last8h==nz(last8h[1])?last8h:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level top", offset=0)
ll2=plot(channel2?lastl8:lastl8==nz(lastl8[1])?lastl8:na, color=black, linewidth=1, style=linebr, title="Candle body resistance level bottom", offset=0)
//fill(ul2, ll2, color=black, transp=95, title="Candle body resistance Channel")
//-----------------Support and Resistance
RST = input(title='Support / Resistance length:', defval=10)
RSTT = valuewhen(high >= highest(high, RST), high, 0)
RSTB = valuewhen(low <= lowest(low, RST), low, 0)
RT2 = plot(RSTT, color=RSTT != RSTT[1] ? na : red, linewidth=1, offset=+0)
RB2 = plot(RSTB, color=RSTB != RSTB[1] ? na : green, linewidth=1, offset=0)
//--------------------Trend colour ema------------------------------------------------//
src0 = close, len0 = input(13, minval=1, title="EMA 1")
ema0 = ema(src0, len0)
direction = rising(ema0, 2) ? +1 : falling(ema0, 2) ? -1 : 0
plot_color = direction > 0 ? lime: direction < 0 ? red : na
plot(ema0, title="EMA", style=line, linewidth=1, color = plot_color)
//-------------------- ema 2------------------------------------------------//
src02 = close, len02 = input(21, minval=1, title="EMA 2")
ema02 = ema(src02, len02)
direction2 = rising(ema02, 2) ? +1 : falling(ema02, 2) ? -1 : 0
plot_color2 = direction2 > 0 ? lime: direction2 < 0 ? red : na
plot(ema02, title="EMA Signal 2", style=line, linewidth=1, color = plot_color2)
//=============Hull MA//
show_hma = input(false, title="Display Hull MA Set:")
hma_src = input(close, title="Hull MA's Source:")
hma_base_length = input(8, minval=1, title="Hull MA's Base Length:")
hma_length_scalar = input(5, minval=0, title="Hull MA's Length Scalar:")
hullma(src, length)=>wma(2*wma(src, length/2)-wma(src, length), round(sqrt(length)))
plot(not show_hma ? na : hullma(hma_src, hma_base_length+hma_length_scalar*6), color=black, linewidth=2, title="Hull MA")
//============ signal Generator ==================================//
Period=input('60')
ch1 = request.security(syminfo.tickerid, Period, open)
ch2 = request.security(syminfo.tickerid, Period, close)
longCondition = crossover(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
if (longCondition)
strategy.entry("BUY", strategy.long)
shortCondition = crossunder(request.security(syminfo.tickerid, Period, close),request.security(syminfo.tickerid, Period, open))
if (shortCondition)
strategy.entry("SELL", strategy.short)
plot(request.security(syminfo.tickerid, Period, close), color=red, title="Period request.security Close")
plot(request.security(syminfo.tickerid, Period, open), color=green, title="Period request.security Open")
///////////////////////////////////////////////////////////////////////////////////////////