Trendfolgestrategie basierend auf der Volumenstandardabweichung


Erstellungsdatum: 2023-11-21 11:11:51 zuletzt geändert: 2023-11-21 11:11:51
Kopie: 0 Klicks: 706
1
konzentrieren Sie sich auf
1617
Anhänger

Trendfolgestrategie basierend auf der Volumenstandardabweichung

Überblick

Die Strategie nutzt den Moving Average und die Standard Differenz des Handelsvolumens, um ein Handelsvolumenmodell zu erstellen, das in Kombination mit dem Moving Average der Preise die Richtung der Tendenz bestimmt und bei normalem Handelsvolumen ein Handelssignal auslöst. Die Strategie setzt auch eine Höhen- und Tiefgrenze für den Handelsvolumen, um ein falsches Signal bei außergewöhnlichem Handelsvolumen zu vermeiden.

Strategieprinzip

Die zentrale Logik ist die Erstellung von Modellen für die Transaktionsmenge und die Beurteilung von Preistrends.

  1. Aufbau eines Modells für die Transaktionsmenge
    • Berechnen Sie den Umfang der Transaktionen mit einem Moving Average von 40 Perioden
    • Berechnen Sie die Standarddifferenz für die Länge des Handelsvolumens von 40 Zyklen vsd als normalen Schwankungsbereich des Handelsvolumens
    • Berechnen Sie den Umfang der Transaktionen mit einem Moving Average von 5 Zyklen als neueste Umsatzstufe
    • Setzen Sie den Mindestbetrag für die Lowlimit-Transaktion auf vvg minus 1x vsd
    • Setzen Sie die maximale Transaktionsgröße auf vvg plus 2x vsd
  2. Beurteilung der Preisentwicklung
    • Der Moving Average mavg mit einer Länge von 20 Zyklen wird als Preistrendindikator verwendet
  3. Handelssignale ausgegeben
    • Wenn mavg auf den Tag vor dem Durchschreiten mehr macht, wennvavgn über dem Lowlimit ist
    • Wenn mavg unter seinem vorherigen Tag durchschreitet, ist es frei, wennvavgn über dem Lowlimit liegt
    • Der Trend wird sich umkehren, wenn die mavg-Trends sich umkehren.

Die Strategie kombiniert die Modellierung des Handelsvolumens mit der Preisentwicklung, um die Preisentwicklung bei abnormaler Handelsmenge zu vermeiden und falsche Signale zu filtern.

Strategische Stärkenanalyse

  1. In Kombination mit der Veränderung des Handelsvolumens kann man die Preisentwicklung bestimmen, um falsche Signale zu filtern und die Signale zuverlässiger zu machen
  2. Modellierung des Transaktionsvolumens mit Hilfe der Differenz zwischen den Transaktionsstandards, um die Auswirkungen von extremen Veränderungen des Transaktionsvolumens zu vermeiden
  3. Die Moving Average-Parameter sind anpassungsfähig, um sich an Preisänderungen in verschiedenen Perioden anzupassen

Strategische Risikoanalyse

  1. Kurzfristige Abweichungen in Bezug auf Volumen und Preise, die zu verpassten Preistrends führen können
  2. Die falsche Einstellung der Parameter für die Transaktionsmenge kann zu einem Modellfehler führen
  3. Die Strategie selbst hat keine Stop-Loss-Einstellung und kann zu größeren Verlusten führen.

Die Risiken können auf folgende Weise gelöst werden:

  1. Anpassung der Moving Average-Parameter und Optimierung der Modelle
  2. Ein Stop-Loss-Logik, um die Einzelschäden zu kontrollieren

Richtung der Strategieoptimierung

  1. Mehr Indikatoren für Preistrends, um die Signale genauer und zuverlässiger zu machen
  2. Hinzufügen von Machine Learning-Modulen, die die Parameter für Transaktionsvolumen- und Preismodelle basierend auf Daten trainieren
  3. Erhöhung der Stop-Loss-Logik, um zu verhindern, dass einzelne Verluste zu groß werden
  4. Optimierung der Einstiegslogik, um eine höhere Wahrscheinlichkeit für die Erfassung von Trends zu gewährleisten
  5. Automatische Anpassung der Stoppdistanz in Kombination mit ähnlichen ATR-Indikatoren

Zusammenfassen

Die Strategie hat eine klare Gesamtkonzeption und nutzt die Handelsmenge, um falsche Trends zu vermeiden, und die Einstiegssignale sind zuverlässig. Die Strategie selbst ist jedoch einfach und kann erweitert werden. Optimierung durch Hinzufügen von mehr Indikatoren, Machine Learning, Stop Loss und anderen Modulen kann die Stabilität und die Fähigkeit, Trends zu erfassen, weiter verbessern.

Strategiequellcode
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © dongyun

//@version=4
strategy("交易量底部标准差系统", overlay=true)

options = input(1,'')
length = input(40,'')
nlow = input(5,'')
factor = input(1.0,'')

vavg = 0.0
vavgn = 0.0
vsd = 0.0
lowlimit = 0.0
uplimit = 0.0
mavg = 0.0
aror = 0.0
adjvol = 0.0
savevol = 0.0


//Find average volume, replacing bad values
adjvol := volume

if (volume != 0)
	savevol := volume
else
	savevol := savevol[1]
	adjvol := savevol


// Replace high volume days because they distort standard deviation
if (adjvol > 2 * factor * nz(vsd[1]))
	adjvol := savevol
else
	adjvol := adjvol[1]

vavg := sma(adjvol,length)
vsd := stdev(adjvol,length)
vavgn := sma(adjvol,nlow)

// Extreme volume limits
lowlimit := vavg - factor * vsd
uplimit := vavg + 2 * factor * vsd

// System rules based on moving average trend
mavg := sma(close,length/2)

// Only enter on new trend signals
if (options == 2)
	if (mavg > mavg[1] and mavg[1] <= mavg[2])
		strategy.entry("Long", strategy.long)
	if (mavg<mavg[1] and mavg[1]>=mavg[2])
		strategy.entry("Short", strategy.short)
else
	if (mavg > mavg[1] and vavgn > lowlimit)
		strategy.entry("Long", strategy.long)
	if (mavg < mavg[1] and vavgn > lowlimit)
		strategy.entry("Short", strategy.short)

// Exit on low volume
if (options != 1)
	if (mavg<mavg[1] or (strategy.position_size > 0 and vavgn<= lowlimit))
		strategy.close("Long")
	if (mavg>mavg[1] or (strategy.position_size > 0 and vavgn<= lowlimit))
		strategy.close("Short")
else
	if (mavg < mavg[1])
		strategy.close("Long")
	if (mavg > mavg[1])
		strategy.close("Short")