Quantitative Handelsstrategie basierend auf adaptivem exponentiellem gleitendem Durchschnitt


Erstellungsdatum: 2023-12-18 10:34:55 zuletzt geändert: 2023-12-18 10:34:55
Kopie: 0 Klicks: 713
1
konzentrieren Sie sich auf
1621
Anhänger

Quantitative Handelsstrategie basierend auf adaptivem exponentiellem gleitendem Durchschnitt

Überblick

In diesem Artikel wird eine quantitative Handelsstrategie, die auf einem Adaptive Exponential Moving Average (AEMA) basiert, eingehend analysiert. Die Strategie verwendet die Form der unendlichen Schwankungen des Stochastic Momentum Index (SMI), kombiniert mit dem Index Moving Average-Signal als Linie, um eine benutzerdefinierte Überkauf-Überverkauf-Schwelle festzulegen, um die Wahrscheinlichkeit der Ausführung zu erhöhen.

Strategieprinzip

Die Strategie verwendet zwei unterschiedliche Länge von SMIs, eine kurze Länge und eine lange Länge, die sich voneinander unterscheiden, um ein Handelssignal zu erzeugen. Darüber hinaus verwendet die Strategie einen Index-Moving-Average als Signallinie. Um falsche Signale auszuschalten, wird das Multiple-Entry-Signal nur dann angezeigt, wenn die SMI unter der Überverkaufsline liegt und die Signallinie auch unter der Überverkaufsline liegt.

Strategische Vorteile

Der größte Vorteil der Strategie liegt in ihrer Anpassungsfähigkeit. Die Strategie verwendet benutzerdefinierte Überkauf-Überverkauf-Schwellenwerte, um sich dynamisch auf mehrere Leerlauf-Standards einzustellen. Dieses Mechanismus ermöglicht die Anpassung der Strategieparameter an verschiedene Marktumstände und somit die Optimierung für eine breitere Palette von Geschäftssituationen.

Strategisches Risiko

Das größte Risiko dieser Strategie besteht in der Abhängigkeit von ihren Parameter-Sets. Wenn die Parameter nicht richtig eingestellt sind, werden leicht viele ungültige Handelssignale erzeugt. Darüber hinaus ist der SMI, als ein pulsierender Indikator, nicht ideal für die zufällige Marktschwankung.

Richtung der Strategieoptimierung

Die Strategie hat noch mehrere Optimierungsmöglichkeiten: erstens, man kann verschiedene Kombinationen von SMA-Längen testen, um die besten Parameterpaare zu finden; zweitens, man kann einen Stop-Loss in der Nähe des Einstiegspunktes in Betracht ziehen, um einzelne Verluste zu kontrollieren; drittens, man kann andere Indikatoren wie RSI, Bollinger Bands usw. kombinieren, um eine dynamische Überkauf-Überverkauf-Linie zu setzen; viertens, man kann die Parameter automatisch durch Machine-Learning-Algorithmen optimieren; fünftens, man kann die Strategie in ein Multifaktor-Modell integrieren, um die Stabilität zu verbessern.

Zusammenfassen

Dieser Artikel analysiert die Grundsätze, Vorteile, Risiken und Optimierungsrichtungen einer adaptiven SMI-Endloshandelsstrategie. Die Strategie nutzt die adaptiven Schwellenwerte und den Index-Moving Average zur Signalfilterung, um die Kurzlinien des Marktes effektiv zu nutzen. Trotz der Tatsache, dass es eine gewisse Parameterabhängigkeit gibt, hat die Strategie durch strenge Risikokontrolle und vielseitige Optimierung erheblichen praktischen Wert.

Strategiequellcode
/*backtest
start: 2023-12-10 00:00:00
end: 2023-12-17 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// © DraftVenture

//@version=5
strategy(title="Adaptive SMI Ergodic Strategy", shorttitle="Adaptive SMI Strategy", overlay = false)
longlen = input.int(12, minval=1, title="Long Length")
shortlen = input.int(5, minval=1, title="Short Length")
siglen = input.int(5, minval=1, title="Signal Line Length")
overS = input.float(-0.4, title = "Oversold", step = 0.01)
overB = input.float(0.4, title = "Overbought", step = 0.01)
erg = ta.tsi(close, shortlen, longlen)
sig = ta.ema(erg, siglen)
plot(erg, color = color.yellow, title = "SMI")
plot(sig, color = color.purple, title="Signal")
hline(0, title = "Zero", color = color.gray, linestyle = hline.style_dotted)
h0 = hline(overB, color = color.gray, title = "Overbought Threshold")
h1 = hline(overS, color = color.gray, title = "Oversold Threshold")
fill(h0, h1, color=color.rgb(25, 117, 192, 90), title = "Background")

longEntry = ta.crossover(erg, sig) and erg > overS and sig < overS
shortEntry = ta.crossunder(erg, sig) and erg < overB and sig > overB

if longEntry
    strategy.entry("Long", strategy.long)

if shortEntry
    strategy.entry("Short", strategy.short)

// ______ _________ 
// ___  //_/__  __ \
// __  ,<  __  /_/ /
// _  /| | _  ____/ 
// /_/ |_| /_/