Kurzfristige algorithmische Handelsstrategie mit mehreren Indikatoren

Schriftsteller:ChaoZhang, Datum: 14.9.2023
Tags:

In diesem Artikel wird eine kurzfristige algorithmische Handelsstrategie eingebracht, die mehrere Indikatoren kombiniert. Sie verwendet eine Gruppe leistungsstarker technischer Indikatoren, um Handelssignale in niedrigeren Zeitrahmen wie dem 15-Minuten-Chart zu generieren.

I. Strategische Logik

Der Kern dieser Strategie ist die Verwendung einer Kombination mehrerer Indikatoren, darunter vor allem:

(1) Dual Moving Average System: Berechnet einen schnellen und einen langsamen Hull Moving Average und beurteilt den Trend anhand ihres Crossovers.

(2) Ichimoku-System: Berechnet unter anderem die Konversion und die Basislinien und bestimmt den Trend und die Unterstützungs-/Widerstandsniveaus auf der Grundlage der Ichimoku-Wolke.

(3) Donchian-Kanal: Konstruiert einen Kanal mit den höchsten und niedrigsten Preisen, um Preisschwankungen zu erkennen.

(4) MACD: Berechnet den MACD und die Signallinie und erfolgt der Handel auf der Grundlage ihres Crossovers.

Nur wenn diese Indikatoren einen Konsens über die Trendbeurteilung erzielen, werden zuverlässige Handelssignale erzeugt.

Nehmen Sie Long-Positionen ein, wenn der schnelle Hull-MA über den langsamen Hull-MA und die Ichimoku-Linien über die Wolke kreuzen und der Donchian-Kanal ausbricht und der MACD über die Signallinie kreuzt.

Die täglichen Bar-Schlusskurse werden ebenfalls berücksichtigt, um nicht in Umkehrungen gefangen zu bleiben.

Darüber hinaus enthält die Strategie eine Stop-Loss- und Take-Profit-Logik, um Risiko und Gewinn für jeden Handel zu kontrollieren.

II. Vorteile der Strategie

Der größte Vorteil dieser Strategie besteht in der Komplementarität der Indikatorenkombinationen, die die Signalqualität verbessern.

Zweitens ist auch die Kombination von mehreren Zeitrahmen ein wesentlicher Vorteil: Das Hilfsurteil aus den Tagesbalken kann das Risiko, in kurzfristigen Zyklen gefangen zu bleiben, filtern.

Schließlich gewährleistet der Stop-Loss- und Take-Profit-Mechanismus auch kontrollierbare Risiken pro Handel.

III. Potenzielle Risiken

Trotz der fundierten Strategieplanung sind auch folgende Handelsrisiken zu beachten:

Erstens erhöht die Kombination mehrerer Indikatoren die Schwierigkeit der Optimierung.

Zweitens können bei starken Trendbewegungen Stopp-Losses getroffen werden, was zu unnötigen Verlusten führt.

Schließlich können Urteile über mehrere Zeitrahmen auch verwirrende Situationen mit sich bringen, die schwer zu entschlüsseln sind.

Insgesamt kombiniert die Strategie Indikatoren auf wissenschaftliche Weise und kann durch Parameterprüfung und -optimierung zu einem effektiven kurzfristigen algorithmischen Handelssystem werden.

IV. Zusammenfassung

Zusammenfassend wird in diesem Artikel eine kurzfristige algorithmische Handelsstrategie eingebracht, die mehrere Indikatoren kombiniert. Sie verwendet eine Kombination von doppelten gleitenden Durchschnitten, Ichimoku, Donchian Channel, MACD und mehr, um die Signalqualität zu verbessern. Sie nutzt auch Multi-Timeframe-Analyse und Stop-Loss / Take-Profit-Logik, um Risiken zu kontrollieren. Mit Optimierung kann diese Strategie zu einem effizienten System für kurzfristigen systematischen Handel werden.


/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// Any timeFrame ok but good on 15 minute & 60 minute , Ichimoku + Daily-Candle_cross(DT) + HULL-MA_cross + MacD combination 420 special blend
strategy("Custom 15m strat",overlay=true)
keh=input(title="Double HullMA",defval=14, minval=1)
dt = input(defval=0.0010, title="Decision Threshold (0.001)", step=0.0001)`
SL = input(defval=-500.00, title="Stop Loss in $", step=1)
TP = input(defval=25000.00, title="Target Point in $", step=1)
ot=1
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(close[1],round(keh/2))
nma1=wma(close[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
d=n1>n2?red:green
confidence=(security(syminfo.tickerid, 'D', close)-security(syminfo.tickerid, 'D', close[1]))/security(syminfo.tickerid, 'D', close[1])
conversionPeriods = input(9, minval=1, title="Conversion Line Periods")
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods")
displacement = input(26, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
LS=close, offset = -displacement
MACD_Length = input(9)
MACD_fastLength = input(12)
MACD_slowLength = input(26)
MACD = ema(close, MACD_fastLength) - ema(close, MACD_slowLength) //macd
aMACD = ema(MACD, MACD_Length) //signal
closelong = n1<n2 and close<n2 and confidence<dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closelong)
    strategy.close("Long")
closeshort = n1>n2 and close>n2 and confidence>dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closeshort)
    strategy.close("Short")
longCondition = n1>n2 and strategy.opentrades<ot and confidence>dt and close>n2 and leadLine1>leadLine2 and open<LS and MACD>aMACD
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and strategy.opentrades<ot and confidence<dt and close<n2 and leadLine1<leadLine2 and open>LS and MACD<aMACD
if (shortCondition)
    strategy.entry("Short",strategy.short)

a1=plot(n1,color=c)
a2=plot(n2,color=c)
plot(cross(n1, n2) ? n1 : na, style = circles, color=b, linewidth = 4)
plot(cross(n1, n2) ? n1 : na, style = line, color=d, linewidth = 4)
plot(conversionLine, color=#0496ff, title="Conversion Line")
plot(baseLine, color=#991515, title="Base Line")
//plot(longCondition == true ? 4000:4100,title="long")
plot(close, offset = -displacement, color=#459915, title="Lagging Span")
p1=plot (leadLine1, offset = displacement, color=green,  title="Lead 1")
p2=plot (leadLine2, offset = displacement, color=red,  title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? green : red)
// remove the "//" from before the plot script if want to see the indicators on chart

Mehr