Bandpassfilter-Trend-Extraktionsstrategie

Schriftsteller:ChaoZhang, Datum: 2024-01-03 15:22:49
Tags:

img

Übersicht

Die Bandpass Filtering Trend Extraction Strategy ist eine Aktientrend-Tracking-Strategie, die auf Bandpass-Filtern basiert. Sie verwendet einen exponentiell gewichteten gleitenden Durchschnitt und Bandpass-Filterung, um die Preisreihen zu verarbeiten und die Trendkomponente in den Preisen als Signal für Ein- und Ausgänge zu extrahieren.

Grundsätze

Die Strategie konstruiert zunächst einen doppelten exponentiellen gleitenden Durchschnitt, indem sie die Parameter Länge und Delta anpasst, um die Länge des gleitenden Durchschnitts und die Glätte zu steuern. Dann verwendet sie eine Reihe mathematischer Transformationen, um die Trendkomponente aus der Preisreihe zu extrahieren und in der Variablen xBandpassFilter zu speichern. Schließlich berechnet sie den einfachen gleitenden Durchschnitt von xBandpassFilter, xMean, als Indikator für Ein- und Ausgänge.

Die Empfindlichkeit von Eingängen und Ausgängen kann durch Abstimmung der Trigger-Ebene gesteuert werden.

Vorteile

  1. Die doppelte EMA filtert effektiv etwas Lärm in den Preisen für stabilere Strategien aus.
  2. Die Bandpass-Filterung extrahiert nur die Trendkomponente in den Preisen und vermeidet Whipsaws.
  3. Weniger Parameter erleichtern die Optimierung und Risikokontrolle.

Risiken

  1. Zeitverzögerungen verursachen verpasste Chancen durch schnelle Umkehrungen.
  2. Die doppelte EMA und die Bandpassfilterung haben niedrige Pass-Effekte und reduzieren die Empfindlichkeit.
  3. Überfilterung kann dazu führen, dass starke Trends fehlen, wenn die Parameter schlecht abgestimmt sind.

Die Verkürzung der Länge kann Verzögerungsprobleme verbessern.

Verbesserungen

  1. Hinzufügen von Stop Loss zur Kontrolle von Einzelverlusten.
  2. Das System der zwei gleitenden Durchschnitte kann die Stabilität verbessern.
  3. Kombinieren Sie mit Lautstärke oder anderen Umkehrsignalen, um Whipsaws zu vermeiden.
  4. Verwenden Sie maschinelles Lernen oder genetische Algorithmen, um Parameter zu optimieren.

Schlussfolgerung

Die Strategie ist relativ stabil mit guter Performance in starken Trendmärkten. Weitere Optimierungen in mehreren Marktumgebungen können sie zuverlässiger profitabel machen.


/*backtest
start: 2022-12-27 00:00:00
end: 2024-01-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version = 2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/12/2016
// The related article is copyrighted material from Stocks & Commodities Mar 2010
//
// You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
// 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="Extracting The Trend Strategy Backtest")
Length = input(20, minval=1)
Delta = input(0.5)
Trigger = input(0)
reverse = input(false, title="Trade reverse")
hline(Trigger, color=blue, linestyle=line)
xPrice = hl2
beta = cos(3.1415 * (360 / Length) / 180)
gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180)
alpha = gamma - sqrt(gamma * gamma - 1)
xBandpassFilter = 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2])
xMean = sma(xBandpassFilter, 2 * Length)
pos = iff(xMean > Trigger, 1,
	   iff(xMean < Trigger, -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(xMean, color=red, title="ExTrend")

Mehr