Strategie für den Handel mit Oszillatoren der GMO

Schriftsteller:ChaoZhang, Datum: 2023-09-19 21:16:26
Tags:

Übersicht

Diese Strategie verwendet den Chande Momentum Oscillator (CMO), um Überkauf- und Überverkaufswerte für Handelssignale zu bestimmen. Die absoluten CMO-Werte über 3 Perioden werden durchschnittlich berechnet, um den Oszillator für die Identifizierung von Extremen zu glätten. Eine typische Mittelumkehr-Oszillator-Handelsstrategie.

Strategie Logik

Die wichtigste Logik umfaßt:

  1. Berechnung der absoluten Werte der GMO über drei verschiedene Zeiträume
  2. Durchschnitt der absoluten Werte für die gemeinsamen Marktwirtschaft für drei Zeiträume
  3. Kurzlauf, wenn der durchschnittliche Wert die obere Schwelle überschreitet
  4. Langlauf, wenn der Durchschnittswert unter die untere Schwelle fällt
  5. Schließung von Positionen, wenn die GMO wieder in den Normalbereich zurückkehrt

Die CMO spiegelt die Dynamik der Preisänderungen wider. Hohe absolute Werte repräsentieren die Preisdivergenz, die in Überkauf-/Überverkaufszonen eintritt. Die Strategie nutzt diese Eigenschaft der CMO, indem sie einen mehrjährigen Durchschnitt verwendet, um die Kurve für die Identifizierung von Extremen zu glätten.

Vorteile

  • Verwendet die GMO zur Ermittlung überkaufter/überverkaufter Regionen
  • Mehrperiodische Durchschnittswerte glätten die Kurve und vermeiden falsche Signale
  • Gute theoretische Grundlage für die Erkennung von Überkauf/Überverkauf
  • Anpassbare Parameterschwellen
  • Einfache Implementierung der mittleren Reversion

Risiken und Minderungsmaßnahmen

  • Potenzial für falsche GMO-Signale
  • Erfordert eine ständige Optimierung der Schwellenwerte
  • Nachhaltige Extreme während Trends können zu Verlusten führen

Abmilderung:

  1. Hinzufügen eines Trendfilters zur Vermeidung von Gegentrends
  2. Optimierung der Parameter für eine bessere Empfindlichkeit der GMO
  3. Verwendung von Stops zur Begrenzung von Verlusten

Möglichkeiten zur Verbesserung

Die Strategie kann durch folgende Maßnahmen verbessert werden:

  1. Volumenbestätigung zur Vermeidung falscher Ausbrüche
  2. Einbeziehung von Trailing Stops für ein besseres Risikomanagement
  3. Automatische Optimierung von Parametern durch maschinelles Lernen
  4. Volatilitätsbasierte Positionsgrößerung
  5. Kombination mit anderen Strategien zur Diversifizierung und Verbesserung der Rendite

Schlussfolgerung

Diese Strategie verwendet CMO, um Überkauf/Überverkauf für den durchschnittlichen Umkehrhandel zu identifizieren. Mehrperioden-Durchschnittswerte helfen, falsche Signale zu vermeiden. CMO selbst hat eine solide theoretische Grundlage für die Messung von Divergenzen. Verbesserungen durch bessere Parameter, Stops und Filter können es zu einer stabilen Oszillator-Handelsstrategie machen.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-14 07:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////7////////////
//  Copyright by HPotter v1.0 21/02/2017
//    This indicator plots the absolute value of CMO averaged over three 
//    different lengths. This indicator plots a classical-looking oscillator, 
//    which is really an averaged value based on three different periods.
//
// 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="CMOabsav", shorttitle="CMOabsav")
Length1 = input(5, minval=1)
Length2 = input(10, minval=1)
Length3 = input(20, minval=1)
TopBand = input(58, minval=1)
LowBand = input(5, minval=0)
reverse = input(false, title="Trade reverse")
hline(0, color=green, linestyle=hline.style_dashed)
hline(TopBand, color=purple, linestyle=hline.style_solid)
hline(LowBand, color=red, linestyle=hline.style_solid)
xMom = close - close[1]
xMomabs = abs(close - close[1])
nSum1 = sum(xMom, Length1)
nSumAbs1 = sum(xMomabs, Length1)
nSum2 = sum(xMom, Length2)
nSumAbs2 = sum(xMomabs, Length2)
nSum3 = sum(xMom, Length3)
nSumAbs3 = sum(xMomabs, Length3)
nRes = abs(100 * (nSum1 / nSumAbs1 + nSum2 / nSumAbs2 + nSum3 / nSumAbs3 ) / 3)
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="CMOabsav")

Mehr