Kombinationsstrategie für doppelten gleitenden Durchschnitt und Williams gleitenden Durchschnitt


Erstellungsdatum: 2024-01-26 16:36:27 zuletzt geändert: 2024-01-26 16:36:27
Kopie: 0 Klicks: 566
1
konzentrieren Sie sich auf
1617
Anhänger

Kombinationsstrategie für doppelten gleitenden Durchschnitt und Williams gleitenden Durchschnitt

Überblick

Die Strategie kombiniert den doppelten Index-Moving Average mit dem dreifachen Williams-Mittelwert und bildet ein integriertes Trend-Tracking- und Trendwende-Signal-Erzeugungssystem. Sie hat eine hervorragende Effizienz bei der Positionshaltung und kann falsche Signale effektiv filtern.

Strategieprinzip

Diese Strategie besteht aus zwei Unterstrategien:

  1. Der Double Exponential Moving Average (DEMA) kombiniert die Trend-Tracking-Leistung des Einzelexponential Moving Averages mit der Nachlässigkeit des DEMA. Er kann schneller mehr machen, wenn der Preis steigt, und schneller schließen, wenn der Preis fällt.

  2. Der Williams-Dreier-Mittelwert. Der Indikator besteht aus einer langen, mittleren und einer kurzen Linie. Er nutzt die Kreuzung verschiedener periodischer Mittelwerte, um Trendänderungen zu beurteilen, um ein Handelssignal zu erzeugen.

Das Handelssignal dieser Strategie besteht darin, das Ergebnis der beiden oben genannten Unterstrategien in einer Watt-zu-Watt-Berechnung zu berechnen. Das heißt, die Strategie gibt nur dann Aufträge aus, wenn beide Unterstrategien gleichzeitig Signale senden. Dies kann die Falschsignale effektiv reduzieren und die Stabilität der Position verbessern.

Analyse der Stärken

Der größte Vorteil dieser Strategie besteht darin, dass sie die falschen Signale effektiv filtern kann, was von ihrer Strategiestruktur bestimmt wird. Obwohl der doppelte Moving Average und der Williams Average ihre Nachteile haben, können die beiden zusammen ihre Vorteile ausgleichen und sich gegenseitig ausgleichen. Dies ermöglicht der Strategie, eine effiziente Haltung bei Trends zu erzielen und Verluste bei einer vollständigen Verschiebung rechtzeitig zu stoppen.

Darüber hinaus bietet die Strategie viel Spielraum für die Optimierung der Parameter, indem sie die Parameter des doppelten Moving Averages und die Parameter des Williams-Drei-Straßen-Means an die Merkmale der verschiedenen Sorten und Perioden anpasst. Die Strategie ist daher sehr anpassungsfähig.

Risikoanalyse

Das Hauptrisiko dieser Strategie besteht darin, dass der Stop-Loss-Punkt bei starker Schwankung der Marktlage überschritten werden kann, was zu größeren Verlusten führt. Dies ist ein allgemeiner Problem der Moving-Average-Strategie. Darüber hinaus kann die Strategie in einem schwankenden Umfeld häufige Leerpositionen aufnehmen und die Kosten für den Handel erhöhen.

Um diese Risiken zu kontrollieren, empfiehlt es sich, die Optimierung der Parameter mit einer Walk Forward Analysis-Methode zu erledigen und einen angemessenen Stop-Loss-Punkt einzurichten. Gleichzeitig können zusätzliche Indikatoren eingeführt werden, um den Zustand der Märkte zu beurteilen und den Handel bei einem Erschütterungsfall auszusetzen.

Optimierungsrichtung

Die Strategie beinhaltet folgende Optimierungsmöglichkeiten:

  1. Anpassung der Parameter für den doppelten gleitenden Durchschnitt an die verschiedenen Sorten und Perioden.

  2. Anpassung der drei-Linien-Periode des Williams-Mittels an die Häufigkeit der Marktbewegungen.

  3. Erhöhung der Aufnahmebedingungen, Filterung von Handelssignalen in bestimmten Phasen des Handels. Zum Beispiel nicht handeln bei starker Volatilität.

  4. Erhöhung der Stop-Loss-Kennzahlen, um die Verluste zu kontrollieren.

  5. Einführung von Parametern zur automatischen Optimierung von Machine Learning-Algorithmen.

Zusammenfassen

Diese Strategie, die die Vorteile des Doppelbewegenden Durchschnitts und des Williams-Durchschnitts kombiniert, ermöglicht eine effektive Filterung von Handelssignalen, die Falschsignale reduzieren und die Effizienz der Position verbessern können. Sie kann durch Parameteroptimierung nach Marktsituationen bessere Performance erzielen und hat großes Anwendungspotenzial. Gleichzeitig muss auf Risikomanagement geachtet werden, um die Verluste durch starke Schwankungen zu kontrollieren.

Strategiequellcode
/*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=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/04/2022
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// This indicator calculates 3 Moving Averages for default values of
// 13, 8 and 5 days, with displacement 8, 5 and 3 days: Median Price (High+Low/2).
// The most popular method of interpreting a moving average is to compare 
// the relationship between a moving average of the security's price with 
// the security's price itself (or between several moving averages).
//
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ta.ema(xPrice, Length)
    nHH = math.max(high, high[1])
    nLL = math.min(low, low[1])
    nXS = nLL > xXA or nHH < xXA ? nLL : nHH
    iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
    pos := nXS > close[1] ? -1 : iff_1
    pos


BWA3Lines(LLength,MLength,SLength,LOffset,MOffset,SOffset) =>
    pos = 0.0
    xLSma = ta.sma(hl2, LLength)[LOffset]
    xMSma = ta.sma(hl2, MLength)[MOffset]
    xSSma = ta.sma(hl2, SLength)[SOffset]
    pos := close < xSSma and xSSma < xMSma and xMSma < xLSma ? -1 :
    	     close > xSSma and xSSma > xMSma and xMSma > xLSma ? 1 : nz(pos[1], 0) 
    pos

strategy(title='Combo 2/20 EMA & Bill Williams Averages. 3Lines', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ 3Lines ═════●'
LLength = input.int(13, minval=1, group=I2)
MLength = input.int(8,minval=1, group=I2)
SLength = input.int(5,minval=1, group=I2)
LOffset = input.int(8,minval=1, group=I2)
MOffset = input.int(5,minval=1, group=I2)
SOffset = input.int(3,minval=1, group=I2)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)
StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosBWA3Lines = BWA3Lines(LLength,MLength,SLength,LOffset,MOffset,SOffset)
iff_1 = posEMA20 == -1 and prePosBWA3Lines == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosBWA3Lines == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
if possig == 1
    strategy.entry('Long', strategy.long)
if possig == -1
    strategy.entry('Short', strategy.short)
if possig == 0
    strategy.close_all()
barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)