Momentum-gefilterte gleitende Durchschnittsstrategie


Erstellungsdatum: 2023-12-12 12:35:05 zuletzt geändert: 2023-12-12 12:35:05
Kopie: 0 Klicks: 411
1
konzentrieren Sie sich auf
1212
Anhänger

Momentum-gefilterte gleitende Durchschnittsstrategie

Überblick

Dies ist eine Moving-Average-Trading-Strategie, die auf dynamische Filtertechniken basiert. Sie filtert kleine Preisschwankungen durch die Einstellung von Preisänderungshemmnissen, wobei nur große Preisänderungen berücksichtigt werden, wodurch die Stabilität der Strategie erhöht wird.

Strategieprinzip

Der CHANDE-Dynamik-Schwankungs-Indikator ist ein dynamischer Indikator, der durch die Berechnung der absoluten Summe der freien Tage und der Summe der Differenz zwischen den Preisanstiegen und den Preisrückgängen beurteilt wird. Die Strategie wurde verbessert, indem ein Mindestpreis-Parameter-Filter eingerichtet wurde, der nur dann in die Berechnung des CMO einbezogen wird, wenn die Preisentwicklung über diesen Threshold hinausgeht. Dies filtert eine große Menge kleiner Schwankungen im Markt aus, was den Indikator stabiler und zuverlässiger macht.

Auf der Grundlage der berechneten Kennziffern setzt es die Up-line TopBand und die Down-line LowBand ein, die ein Handelssignal erzeugen, wenn die Kennziffern diese beiden Linien überschreiten. Schließlich kann der umgekehrte Eingabeparameter reverse das ursprüngliche Signal umkehren und die Umkehrung vornehmen.

Analyse der Stärken

Dies ist eine sehr stabile und zuverlässige Trend-Tracking-Strategie, die dank der Impuls-Filtertechnologie effektiv Marktlärm filtert und gegen die Absicherung verhindert. Die Optimierung der Strategieparameter ist groß, die Strategieindikatoren können durch Anpassung von Parametern wie Filter, TopBand und LowBand optimiert werden.

Risikoanalyse

Diese Strategie basiert hauptsächlich auf Trendverfolgung und ist daher anfällig für Fehlsignale und Verluste in der Berücksichtigung von Märkten. Darüber hinaus kann eine unsachgemäße Optimierung der Parameter zu einer zu hohen Handelsfrequenz oder instabilen Signal führen. Schließlich kann die unsachgemäße Verwendung von Reverse-Trading-Parametern zu unnötigen Verlusten führen.

Um diese Risiken zu verringern, sollten die Parameter vernünftigerweise optimiert werden, um ein Signal stabiler und zuverlässiger zu machen. Vermeiden Sie den Einsatz dieser Strategie bei der Marktabschließung und wählen Sie ein geeigneteres Instrument für die Strategie. Verwenden Sie die Rückwärtshandelsfunktion mit Vorsicht und vermeiden Sie es, wenn die Parameter nicht gut optimiert sind.

Optimierungsrichtung

Die Strategie kann in folgenden Richtungen optimiert werden:

  1. Optimierung der Filter-Parameter, um sicherzustellen, dass die Handelsfrequenz nicht zu niedrig ist, während die Marktlärme gefiltert werden.

  2. Optimierung der Parameterbereiche für TopBand und LowBand, damit sie mit der Marktschwankungsbreite übereinstimmen und falsche Signale verhindern.

  3. Die Parameter werden dynamisch optimiert, um die Strategieparameter an die Veränderungen des Marktes anzupassen.

  4. Erhöhung der Stop-Loss-Stop-Logik und Einrichtung eines vernünftigen Stop-Loss-Punktes zur Verringerung der Verluste.

  5. In Kombination mit anderen Indikatoren wie MACD, KD und anderen, um falsche Geschäfte in nicht-trendigen Märkten zu vermeiden.

Zusammenfassen

Dies ist eine sehr praktische Trendverfolgungsstrategie. Es verwendet die Dynamikfiltertechnologie, die effektiv Marktgeräusche dämpft und die Signale klarer und zuverlässiger macht. Durch Parameteroptimierung und Logikoptimierung kann es zu einem zuverlässigen und stabilen quantitativen Handelsinstrument trainiert werden.

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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 02/03/2017
// This indicator plots a CMO which ignores price changes which are less 
// than a threshold value. CMO was developed by Tushar Chande. A scientist, 
// an inventor, and a respected trading system developer, Mr. Chande developed 
// the CMO to capture what he calls "pure momentum". For more definitive 
// information on the CMO and other indicators we recommend the book The New 
// Technical Trader by Tushar Chande and Stanley Kroll.
// The CMO is closely related to, yet unique from, other momentum oriented 
// indicators such as Relative Strength Index, Stochastic, Rate-of-Change, etc. 
// It is most closely related to Welles Wilder`s RSI, yet it differs in several ways:
// - It uses data for both up days and down days in the numerator, thereby directly 
// measuring momentum;
// - The calculations are applied on unsmoothed data. Therefore, short-term extreme 
// movements in price are not hidden. Once calculated, smoothing can be applied to the 
// CMO, if desired;
// - The scale is bounded between +100 and -100, thereby allowing you to clearly see 
// changes in net momentum using the 0 level. The bounded scale also allows you to 
// conveniently compare values across different securities.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
fFilter(xSeriesSum, xSeriesV, Filter) =>
    iff(xSeriesV > Filter, xSeriesSum, 0)

strategy(title="CMOfilt", shorttitle="CMOfilt")
Length = input(9, minval=1)
Filter = input(3, minval=1)
TopBand = input(70, minval=1)
LowBand = input(-70, maxval=-1)
reverse = input(false, title="Trade reverse")
hline(0, color=gray, linestyle=line)
hline(TopBand, color=red, linestyle=line)
hline(LowBand, color=green, linestyle=line)
xMom = close - close[1]
xMomAbs = abs(close - close[1])
xMomFilter = fFilter(xMom, xMomAbs, Filter)
xMomAbsFilter = fFilter(xMomAbs,xMomAbs, Filter)
nSum = sum(xMomFilter, Length)
nAbsSum = sum(xMomAbsFilter, Length)
nRes =   100 * nSum / nAbsSum
pos = iff(nRes > TopBand, 1,
	     iff(nRes < LowBand, -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, title="CMOfilt")