
Die Strategie, die als “Quantitative Strategie” bezeichnet wird, basiert auf einem Index-Moving Average und einem Transaktionswertgewicht. Die Strategie berücksichtigt sowohl Preistrends als auch Transaktionswert-Informationen und aktuelle Preisinformationen, um Marktchancen zu erfassen.
Der Kernindikator der Strategie ist nRes, der den Index Moving Average xMAVolPrice, den Index Moving Average xMAVol und den neuesten Schlusskursclose kombiniert und durch folgende Formel berechnet wird:
xMAVolPrice = ema(volume * close, length)
xMAVol = ema(volume, length)
nRes = xMAVolPrice / xMAVol
xMAVolPrice ist der Index-Moving-Average des Multiplikators von Schlusskosten und Transaktionsmengen, der die Gesamtinformation über Preise und Transaktionsmengen widerspiegelt. xMAVol ist der Index-Moving-Average nur der Transaktionsmenge. nRes ist der Verhältnis zwischen den beiden Index-Moving-Averagen, der die angepasste Preisinformation widerspiegelt.
Die Strategie entscheidet, wie viel man in die Lücke stellt, indem man die Größe von nRes in Relation zum aktuellen Schlusskurs beurteilt:
if (nRes < close[1])
做多
if (nRes > close[1])
做空
Wenn nRes kleiner als der aktuelle Schließungspreis ist, ist der Preis nach Umsatzmengenanpassung niedriger als der aktuelle Preis und gehört zu einem Kaufsignal. Wenn nRes größer als der aktuelle Schließungspreis ist, ist der Preis nach Umsatzmengenanpassung höher als der aktuelle Preis und gehört zu einem Verkaufssignal.
Insgesamt ist die Strategie durch den Vergleich der volumenbereinigten Preisindikatoren nRes und der neuesten Schlusskurs beschlossen, mehr in die Richtung des Defizits zu gehen, was zu einer typischen Quantitative Trading-Strategie gehört.
Diese Strategie hat folgende Vorteile:
Die Strategie berücksichtigt nicht nur Preis-Informationen, sondern auch Transaktionsvolumen-Informationen, um die multifaktoriellen Eigenschaften der Aktien zu nutzen und die Marktentwicklung genauer zu beurteilen.
Falschsignale reduzieren. Durch die Gewichtung des Transaktionsvolumens können einige falsche Durchbrüche, die durch eine unzureichende Transaktionsmenge verursacht werden, gefiltert werden. Dies kann unnötige Transaktionen wirksam reduzieren und verhindern, dass sie gedeckt werden.
Die Indikatoren des Moving Averages in dieser Strategie sind empfindlicher auf aktuelle Daten und können die jüngsten Marktveränderungen schneller erfassen als Indikatoren wie einfache Moving Averages.
Einfach umzusetzen. Die Strategie ist einfach zu verstehen und zu implementieren und ist für die Anforderungen von quantifizierten Transaktionen geeignet.
Obwohl diese Strategie einige Vorteile hat, gibt es folgende Risiken:
Die Daten über den Umsatz sind unzuverlässig. Der Umsatzindex ist leicht zu manipulieren, ist nicht stabil genug und kann irreführend sein.
Es gibt relativ wenige Chancen für mehrere Bereiche. Diese Strategien sind im Vergleich zu Strategien, bei denen es sich um einfache Trends handelt, relativ wenige Chancen für mehrere Bereiche, die leicht zu mangelnden Geschäften führen können.
Die Auswahl der Parameter ist schwierig. Die Auswahl der Parameter wie die Länge des Moving Average hat einen großen Einfluss auf die Strategie, und die falsche Auswahl kann die Gewinne erheblich reduzieren.
Das Risiko, dass sich die Situation stark verändert. In schnellen Situationen kann die Berechnung der Indikatoren nicht auf den aktuellen Preis reagieren, was zu einem Risiko führt, den besten Handel zu verpassen.
Entsprechende Lösungsmethoden: Optimierung der Parameter-Einstellung, strikte Kontrolle der Positionsgröße, Einstellung der Stop-Loss-Stopp; Prüfung in Verbindung mit anderen Faktorindikatoren; angemessene Anpassung der Positionshäufigkeit.
Die Strategie kann in den folgenden Bereichen optimiert werden:
Flexiblere Positionsöffnungslogik. Es ist möglich, Positionen zu eröffnen, wenn die Differenz zwischen nRes und dem Schlusskostenwert größer ist als ein gewisses Schwund, und nicht nur eine zweite Klassifizierung, um mehr Chancen zu ergreifen.
Positionsmanagement-Mechanismen werden hinzugefügt. Die Positionsgröße kann dynamisch an die Schwankungen des Marktes angepasst werden, um die Risiken zu kontrollieren.
In Kombination mit anderen Faktoren können weitere Faktoren wie emotionale Indikatoren, grundlegende Faktoren usw. hinzugefügt werden, um die strategische Beurteilung umfassender zu machen.
Parameteroptimierung für die Anpassung der Parameter. Es können Parameter wie die automatische Optimierung der Algorithmen für die Länge erstellt werden, so dass sie sich an die Merkmale der verschiedenen Zyklen anpassen können.
Mit Hilfe von maschinellen Lernmodellen. Die Modellierung von mehrdimensionalen Merkmalen mit Hilfe von Deep-Learning-Modellen wie RNN ermöglicht eine nicht-lineare Strategie von Ende zu Ende.
Diese Strategie berücksichtigt die Mehrfaktor-Informationen über Preise, Transaktionsvolumen und andere Faktoren. Sie passt die Preisindizes an den Moving Average des Transaktionsvolumens an und vergleicht sie mit den neuesten Schlusskursen, um die Richtung des Handels zu bestimmen. Im Vergleich zu einem einzelnen Indikator hat sie die Vorteile, dass sie mehr Informationen enthält und weniger Falschsignale verursacht.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 06/03/2017
// The related article is copyrighted material from Stocks & Commodities 2009 Oct
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Combining Exponential And Volume Weighting", overlay=true)
length = input(22, minval=1)
reverse = input(false, title="Trade reverse")
xMAVolPrice = ema(volume * close, length)
xMAVol = ema(volume, length)
nRes = xMAVolPrice / xMAVol
pos = iff(nRes < close[1], 1,
iff(nRes > close[1], -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1 )
strategy.entry("Long", strategy.long)
if (possig == -1 )
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nRes, color=blue)