Adaptive gleitende Durchschnittsstrategie


Erstellungsdatum: 2023-12-07 11:08:18 zuletzt geändert: 2023-12-07 11:08:18
Kopie: 2 Klicks: 753
1
konzentrieren Sie sich auf
1619
Anhänger

Adaptive gleitende Durchschnittsstrategie

Überblick

Die Mala Adaptive Moving Average Strategy ist eine quantitative Handelsstrategie, die auf John Ehlers MESA Adaptive Moving Average-Indikator basiert. Die Strategie nutzt Sinuswellen für Handelsentscheidungen, bei niedrigen Punkten kauft und bei hohen Punkten verkauft, indem sie die Sinuswellen an die verschiedenen Sorten und Marktumgebungen anpasst.

Strategieprinzip

Die Adaptive Moving-Average-Strategie verwendet einen Positivwellen-Generator, um ein Handelssignal zu erzeugen. Die Positivwellen werden durch den Schatten eines drehenden Vektors (das heißt der Faktor) auf die Achse des Rings bestimmt. Der Vektor dreht sich um 360 Grad und beendet einen Zyklus.

Die Strategie berechnet zunächst die Preise mit einer Smooth- und De-Trend-Behandlung und berechnet dann die zwei Anteile der Positivwellen: die Gleichphasenanteile I und die Positivschnittanteile Q. Diese beiden Anteile werden durch Phasenverlagerung überlagert und überschaltet, um die endgültigen Re und Im zu erhalten. Re und Im spiegeln die Frequenzinformationen der Positivwellen wider und können durch atanIm/Re eine Periodenzeit abgeleitet werden.

Analyse der Stärken

Die Adaptive Moving Average Strategie hat folgende Vorteile:

  1. Die Verwendung von Sinuswellen und Phasen als Handelssignale macht die Strategie robuster und unbeeinflusst von Zeitzonenwellenformen.

  2. Zyklen und Parameter können sich dynamisch an Marktveränderungen anpassen und haben eine starke Anpassungsfähigkeit.

  3. Die MAMA- und FAMA-Kurven sind nur auf die Eigenschaften des Preises selbst angewiesen, ohne Verzögerung, um die Trendwende rechtzeitig zu erfassen.

  4. Die Sensitivität der Strategie kann durch die Einstellung von Parametern angepasst werden, um sie für Händler mit unterschiedlichen Stilen zu verwenden.

  5. Die Strategie ist klar und einfach zu verstehen und zu modifizieren und eignet sich sowohl für die Forschung als auch für die Lehre.

Risikoanalyse

Eine adaptive Moving Average-Strategie birgt auch folgende Risiken:

  1. Aufgrund der Abhängigkeit von der Phasen- und Zyklusphase der Synchronschleife erzeugen sich falsche Signale bei außergewöhnlichen Preisverzerrungen.

  2. Bei der Beurteilung des Zyklus wurde eine Härtegrenze gesetzt, die die Veränderung des Zyklus nicht glatt genug macht.

  3. Positions- und Phaseneffekte lassen die Kurve in der Nähe von Schlüsselpunkten schwanken und können die besten Eingänge und Ausgänge verpassen.

  4. Die Anpassungsfähigkeit von Parametern und Kurven nimmt ab, wenn die Marktfluktuation zunimmt.

  5. Als Technikindikator ist die Strategie anfällig für falsche Durchbrüche und Fehlsignale in wichtigen Technikpositionen.

Diese Risiken können durch die Einstellung von glatteren Parametern, Filterung in Verbindung mit anderen Indikatoren und Anpassung der Haltungsgröße gemildert werden.

Optimierungsrichtung

Die Adaptive Moving Average-Strategie kann in folgenden Bereichen optimiert werden:

  1. Verbesserung der Berechnungsmethoden für die Zyklen und Parameter, um ihre Veränderungen natürlicher zu gestalten. Zum Beispiel können statistische Methoden eingeführt werden, um die Preise besser zu modellieren.

  2. Die Filterung der Signale mit Indikatoren wie Schwankungsrate und Verkehrsmenge erhöht die Genauigkeit. Sie können auch die Reliabilität der Signale mit einem grundlegenden Verständnis kombiniert werden.

  3. Optimierung der Parameter-Einstellungen und Gleitpunkt-Kontrolle, Senkung der Transaktionskosten und Steigerung der Systemstabilität.

  4. Die Einführung von Methoden wie maschinellem Lernen und genetischen Algorithmen zur dynamischen Optimierung der Parameter, so dass die Parameter des Systems ständig weiterentwickelt und aktualisiert werden.

  5. Setzen Sie verschiedene Entries und Exits, kombinieren Sie Trends und Umkehrsysteme, erstellen Sie Portfolios und verbessern Sie die nachhaltige Profitabilität.

Zusammenfassen

Die Adaptive Moving Average Strategie nutzt die Synchronwellenanalyse, um Handelssignale zu erzeugen. Durch die dynamische Anpassung der Parameter kann das System sich selbständig an die Veränderungen der Marktumgebung anpassen. Es ist robuster und anwendbarer. Im Vergleich zu anderen Adaptive Moving Average Strategien hat es eine höhere Realisierbarkeit und Stabilität.

Strategiequellcode
/*backtest
start: 2022-11-30 00:00:00
end: 2023-12-06 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("自适应移动平均的MESA系统", overlay=true)

fastlimit = input(0.5,'')
slowlimit = input(0.05,'')

smooth = 0.0
detrender = 0.0
I1 = 0.0
Q1 = 0.0
JI = 0.0
JQ = 0.0
I2 = 0.0
Q2 = 0.0
Re = 0.0
Im = 0.0
period = 0.0
smoothperiod = 0.0
phase = 0.0
deltaphase = 0.0
alpha = 0.0
MAMA = 0.0
FAMA = 0.0
price = 0.0

price := (high + low)/2
PI = 2 * asin(1)

if (bar_index > 5)
	smooth := (4*price + 3*price[1] + 2*price[2] + price[3])/10
	detrender := (.0962*smooth + .5769*nz(smooth[2]) - .5769*nz(smooth[4]) - .0962*nz(smooth[6]))*(.075*nz(period[1]) + .54)

	// compute InPhase and Quadrature components
	Q1 := (.0962*detrender + .5769*nz(detrender[2]) - .5769*nz(detrender[4]) - .0962*nz(detrender[6]))*(.075*nz(period[1]) + .54)

	I1 := nz(detrender[3])

	// advance the pulse of i1 and q1 by 90 degrees
	JI := (.0962*I1 + .5769*nz(I1[2]) - .5769*nz(I1[4]) - .0962*nz(I1[6]))*(.075*nz(period[1]) + .54)
	JQ := (.0962*Q1 + .5769*nz(Q1[2]) - .5769*nz(Q1[4]) - .0962*nz(Q1[6]))*(.075*nz(period[1]) + .54)

	//phase addition for 3-bar averaging 
	I2 := I1 - JQ
	Q2 := Q1 + JI

	//smooth the i and q components before applying
	I2 := .2*I2 + .8*nz(I2[1])
	Q2 := .2*Q2 + .8*nz(Q2[1])

	// hymodyne discriminator
	Re := I2*I2[1] + Q2*nz(Q2[1])
	Im := I2*Q2[1] + Q2*nz(I2[1])
	Re := .2*Re + .8*nz(Re[1])
	Im := .2*Im + .8*nz(Im[1])

	if (Im != 0 and Re != 0)
		period := 2 * PI/atan(Im/Re)

	if (period > 1.5 * nz(period[1]))
		period := 1.5*nz(period[1])

	if (period < .67*nz(period[1]))
		period := .67*nz(period[1])

	if (period < 6)
		period := 6

	if (period > 50)
		period := 50

	period := .2*period + .8*nz(period[1])
	smoothperiod := .33*period + .67*nz(smoothperiod[1])

	if (I1 != 0)
		phase := (180/PI) * atan(Q1/I1)

	deltaphase := nz(phase[1]) - phase

	if (deltaphase < 1)
		deltaphase := 1

	alpha := fastlimit/deltaphase
	if(alpha < slowlimit)
		alpha := slowlimit

	MAMA := alpha*price + (1 - alpha)*nz(MAMA[1])
	FAMA := .5*alpha*MAMA + (1 - .5*alpha)*nz(FAMA[1])

	if (FAMA < MAMA)
		strategy.entry("Long", strategy.long)
	else
		if (FAMA > MAMA)
			strategy.entry("Short", strategy.short)