Dual-Signal-Trendfolgestrategie


Erstellungsdatum: 2023-11-02 17:02:06 zuletzt geändert: 2023-11-02 17:02:06
Kopie: 0 Klicks: 588
1
konzentrieren Sie sich auf
1617
Anhänger

Dual-Signal-Trendfolgestrategie

Überblick

Die Strategie ermöglicht die Identifizierung und Verfolgung von Trends durch die Kombination von Doppel-EMA und Awesome Oscillator. Die EMA beurteilt schnell die Richtung der jüngsten Trends und der Awesome Oscillator filtert die falschen Durchbrüche und bietet eine Einstiegsmoment.

Strategieprinzip

Die Strategie basiert auf einer Signalfilterung mit zwei technischen Indikatoren, dem Dual EMA und dem Awesome Oscillator. Die Logik ist wie folgt:

  1. Berechnen Sie den 2-Zyklus- und 20-Zyklus-EMA, wenn der 2-Zyklus-EMA von unten nach oben den 20-Zyklus-EMA überschreitet, als Aufwärtstrend beurteilt; wenn der 2-Zyklus-EMA von oben nach unten den 20-Zyklus-EMA überschreitet, als Abwärtstrend beurteilt.

  2. Berechnen Sie den Awesome Oscillator, der sich aus dem schnellen Moving Average minus dem langsamen Moving Average ergibt, und nehmen Sie den MACD-Pillar ab, um den Pillar zu erhalten. Der AO-Pillar wird als Kaufsignal betrachtet, wenn er von rot zu blau und von blau zu rot zu verkaufen ist.

  3. Ein letztes Kaufsignal wird nur erzeugt, wenn die EMA einen Aufwärtstrend zeigt und die AO gleichzeitig ein Kaufsignal zeigt. Ein letztes Verkaufsignal wird nur erzeugt, wenn die EMA einen Abwärtstrend zeigt und die AO gleichzeitig ein Verkaufsignal zeigt.

  4. Durch diese Doppelsignalfiltermechanismen können falsche Durchbruchoperationen wirksam reduziert und die mittlere Richtung des Trends verfolgt werden.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Die Kombination von Doppel- und AO-Filtern reduziert die Fehler, die durch Geräusche verursacht werden. Die EMA entscheidet über die Richtung der großen Trends und die AO-Filter über die Zeit des Einstiegs. Die Kombination der beiden Filter erhöht die Signalsicherheit.

  2. Reaktion Sensitivität Schnell, um kurzfristige Trendwende rechtzeitig zu erfassen. Die 2-Zyklus-EMA ist sehr empfindlich auf Durchbrüche und kann schnell beurteilen, ob sich der Trend in der nahen Zukunft geändert hat.

  3. Der Awesome Oscillator filtert die MACD erneut, um falsche Trendbrechungen zu erkennen und unnötige Umkehroperationen zu vermeiden.

  4. Die EMA ermittelt die Basistrendrichtung, die AO filtert weiter, um sicherzustellen, dass der Handel in der Richtung der großen Tendenz entspricht, um die Entwicklung der mittleren Tendenz kontinuierlich zu erfassen.

  5. Die Wahl der Strategieparameter ist vernünftig. Die 2- und 20-Zyklen-EMA erfassen die unterschiedlichen Preisänderungen in den Zyklen. Die 5- und 34-Zyklen-AO-Parameter sind optimiert, um die kurzfristigen Verhaltensweisen besser zu erkennen.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. In einem wackligen Umfeld können die EMA und AO mehr Fehlsignale auslösen, was zu unnötigen unnötigen Geschäften führt. Das Risiko von Fehlentscheidungen kann durch Anpassung der EMA-Zyklusparameter verringert werden.

  2. AO kann in einigen Fällen hinter EMA zurückbleiben, was zu einer Zeitverschiebung des Signals führt. Die AO-Parameter können entsprechend optimiert werden, um schneller auf den Durchbruch zu reagieren.

  3. Die EMA- und AO-Parameter sind für kurz- und mittelfristige Merkmale festgelegt. Die Anforderungen an die Datenqualität und die Rechenleistung sind höher und müssen an die Eigenschaften der verschiedenen Sorten angepasst werden.

  4. Häufiger Handel führt zu höheren Gebühren und Slip-Point-Kosten. Die Exit-Kriterien können entsprechend gelockert werden, um die Haltedauer zu verlängern.

  5. Die Strategie berücksichtigt nicht den Trend der Grosszyklus und die wichtigen Unterstützungswiderstände und sollte mehr Faktoren kombinieren, um sicherzustellen, dass die Handelsrichtung richtig ist.

Optimierungsrichtung

Diese Strategie kann optimiert werden durch folgende Aspekte:

  1. Die Einführung von Trendbeurteilungsindikatoren, die die EMA bei der Bestimmung der Richtung der großen Trends unterstützen, wie beispielsweise die häufig verwendeten Moving Average Ribbons, ATR und andere Indikatoren.

  2. Hinzufügen von Mechanismen zur Identifizierung von Widerstandspunkten für Schlüsselstützen, wie Fibonacci-Rückzugslinien, die nur in der Nähe von Schlüsselpunkten signalisiert werden. Vermeiden Sie das Aufbauen von ungünstigen Positionen.

  3. Optimierung der EMA- und AO-Parameterkombinationen, um die Kombination der beiden zu verbessern. Zum Beispiel die automatische Suche nach den besten Parameterpaaren mit Hilfe von Klassengenetik-Algorithmen.

  4. Erhöhung der Stop-Loss-Exit-Mechanismen. Wenn der Preis die jüngste Swing High/Low durchbricht, wird der Stop-Loss-Exit durchgeführt, um den Einzelschaden zu kontrollieren.

  5. Verifizierung des vorläufigen Datensatzes, Bewertung der Effektivität der Strategie mit historischen Daten. Prüfung, ob ein stabiler Gewinn erzielt werden kann und ob die Ergebnisse der Rückmessung den Erwartungen entsprechen.

  6. Die Parameter der Festplatte werden simuliert und nach und nach angepasst, um die Wirksamkeit der Festplattenindikatoren zu verbessern. Die Parameter werden als robust verifiziert, um eine bessere Kombination von stabilen Parametern zu erhalten.

Zusammenfassen

Die Strategie hat eine klare Gesamtkonzeption, um die EMA zu beurteilen, in welche Richtung der Trend geht. Die Kombination aus AO-Filtersignalen wird mit zwei Indikatoren doppelt verifiziert. Trends können effektiv identifiziert und mittelfristige Verhaltensweisen verfolgt werden.

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

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 27/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 plots the oscillator as a histogram where blue denotes 
//    periods suited for buying and red . for selling. If the current value 
//    of AO (Awesome Oscillator) is above previous, the period is considered 
//    suited for buying and the period is marked blue. If the AO value is not 
//    above previous, the period is considered suited for selling and the 
//    indicator marks it as red.
//
// 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


AC(nLengthSlow,nLengthFast,nLengthMA,nLengthEMA,nLengthWMA,bShowWMA,bShowMA,bShowEMA) =>
    pos = 0.0
    xSMA1_hl2 = ta.sma(hl2, nLengthFast)
    xSMA2_hl2 = ta.sma(hl2, nLengthSlow)
    xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
    xSMA_hl2 = ta.sma(xSMA1_SMA2, nLengthFast)
    nRes =  xSMA1_SMA2 - xSMA_hl2
    xResWMA = ta.wma(nRes, nLengthWMA)
    xResMA = ta.sma(nRes, nLengthMA)
    xResEMA = ta.ema(nRes, nLengthEMA)
    xSignalSeries = bShowWMA ? xResWMA :
                     bShowMA ? xResMA : 
                      bShowEMA ? xResEMA : na
    pos :=  xSignalSeries[2] < 0 and xSignalSeries[1] > 0? 1:
    	     xSignalSeries[2] > 0 and xSignalSeries[1] < 0 ? -1 : nz(pos[1], 0)
    pos

strategy(title='Combo 2/20 EMA & Bill  Awesome Oscillator (AC)', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════  Awesome Oscillator (AC) ═════●'
nLengthSlow = input.int(34, minval=1, title="Length Slow", group=I2)
nLengthFast = input.int(5, minval=1, title="Length Fast", group=I2)
nLengthMA = input.int(15, minval=1, title="MA", group=I2)
nLengthEMA = input.int(15, minval=1, title="EMA", group=I2)
nLengthWMA = input.int(15, minval=1, title="WMA", group=I2)
bShowWMA = input.bool( defval=true, title="trading WMA", group=I2)
bShowMA = input.bool( defval=false, title="trading MA", group=I2)
bShowEMA = input.bool( defval=false, title="trading EMA", 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)
prePosAC = AC(nLengthSlow,nLengthFast,nLengthMA,nLengthEMA,nLengthWMA,bShowWMA,bShowMA,bShowEMA)
iff_1 = posEMA20 == -1 and prePosAC == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosAC == 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)