Strategie zur Kombination von doppeltem gleitendem Durchschnitt und Bull Bear Power Balance

Schriftsteller:ChaoZhang, Datum: 2024-01-08 17:09:48
Tags:

img

Übersicht

Diese Strategie verwendet zunächst die doppelten gleitenden Durchschnittslinien der 2-Perioden- und 20-Perioden-EMA, um festzustellen, ob der Preis die gleitenden Durchschnittswerte durchbricht, als grundlegendes Kriterium für den Markteintritt. Gleichzeitig identifiziert der Hilfsindikator Bull Bear Power Balance Indicator die relative Macht zwischen Bullen und Bären, um Fehloperationen zu vermeiden. Die beiden Arten von Indikatoren erzeugen gemeinsam das endgültige Handelssignal.

Strategieprinzip

  1. Doppel gleitender Durchschnittsindikator

    • Berechnung des exponentiellen gleitenden Durchschnitts (EMA) für zwei und 20 Perioden
    • Erzeugen von Handelssignalen, wenn der Schlusskurs von einer Seite des gleitenden Durchschnitts zur anderen durchbricht
    • Durchbrechen der 20-EMA bestimmt die Trendrichtung
    • Durchbrechen der 2-EMA bestimmt den spezifischen Einstiegspunkt
  2. Indikator für die Leistungsbilanz von Bullenbären

    • Berechnen Sie den Wert der Bullenkraft und den Wert der Bärenkraft separat
    • Vergleichen Sie die beiden Werte, um die relative Stärke zwischen Bullen und Bären zu bestimmen
    • Die stärkere Richtung dient als Hilfsurteil für die Einreise
  3. Kombination der beiden Indikatoren

    • Der Indikator für den Doppel gleitenden Durchschnitt beurteilt die Haupttrendrichtung
    • Der Bullen-Bären-Kraftbilanzindikator macht ein lokales regionales Urteil
    • Ausgabe von Handelssignalen, wenn beide Indikatoren ein einheitliches Urteil geben

Analyse der Vorteile

Der größte Vorteil dieser Kombinationsstrategie besteht darin, Indikatoren verschiedener Arten zu integrieren, um ein zuverlässigeres Handelsurteil zu erzielen.

  1. Verwenden Sie den doppelten gleitenden Durchschnitt, um die Hauptrichtung zu bestimmen, und lassen Sie sich nicht von lokalen Schwankungen täuschen
  2. Verwenden Sie den Bullen-Bären-Kraftbilanzindikator für lokale regionale Urteile, um einen bestimmten Einstiegspunkt genau zu erfassen
  3. Zwei Arten von Indikatoren überprüfen sich gegenseitig und können einige Fehlfunktionen ausfiltern, um Handelsrisiken zu reduzieren
  4. Flexible Parameter-Einstellungen, die für verschiedene Marktvarianten optimiert werden können
  5. Die Strategieidee ist einfach und klar, leicht zu verstehen und später leicht zu optimieren

Risikoanalyse

Einige Risiken dieser Strategie sind zu beachten:

  1. Die Verzögerung der Indikatorsignale kann zu einer Überschreitung der Stop-Loss-Punkte führen.
  2. Der zweigliedrige gleitende Durchschnittsindikator ist an die Parameter Einstellungen angepasst.
  3. Der Bullen-Bären-Balance-Indikator ist bei der Beurteilung von kurzfristigen Trends etwas schlechter.
  4. Für beide Indikatoren kann unter besonderen Marktbedingungen eine Beurteilungsabweichung auftreten (allgemeine falsche Breakout-Signale).

Gegenmaßnahmen:

  1. Aufbewahrungszeiten entsprechend verkürzen oder entsprechende Bewegungsstop-Loss festlegen
  2. Verschiedene Parameterkombinationen testen, um optimale Parameter zu finden
  3. Hinweis auf andere Indikatoren zur Bestätigung
  4. Optimierung der Parameter auf der Grundlage der Merkmale der verschiedenen Sorten

Optimierungsrichtlinien

Die Strategie kann in folgenden Bereichen weiter optimiert werden:

  1. Testen Sie mehr Kombinationen von gleitenden Durchschnittsindikatoren
  2. Steigerung der Stop-Loss-Strategien zur Kontrolle von Einzeltraumausfällen
  3. Einbeziehung von Volatilitätsindikatoren zur Verbesserung der Anpassungsfähigkeit der Parameter
  4. Hinzufügen von Modellen für maschinelles Lernen zur Dynamikoptimierung von Parametern
  5. Versuchen Sie, andere Trendindikatoren zu verwenden, um die Machtbilanz von Bullen und Bären zu ersetzen.
  6. Entwicklung visueller Schnittstellen zur einfachen Benutzerprüfung verschiedener Parameter

Schlussfolgerung

Diese Strategie beurteilt den Haupttrend durch den doppelten gleitenden Durchschnittsindikator und verwendet den Bull Bear Power Balance-Indikator, um den Einstiegszeitpunkt zu bestimmen. Die beiden Indikatoren überprüfen sich gegenseitig und können die Wahrscheinlichkeit von Fehloperationen effektiv reduzieren. Die Strategieparameter sind flexibel und können für verschiedene Sorten optimiert werden. Insgesamt ist die Strategie einfach und praktisch, lohnt sich zu lernen und von den meisten Anlegern zu verwenden. Nachfolgende Optimierungen können die Strategieleistung weiter verbessern.


/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/05/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 new indicator analyzes the balance between bullish and
//    bearish sentiment.
//    One can cay that it is an improved analogue of Elder Ray indicator.
//    To get more information please see "Bull And Bear Balance Indicator" 
//    by Vadim Gimelfarb. 
//
// 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


BBB(SellLevel,BuyLevel) =>
    pos = 0.0
    value = close < open ? 
              close[1] > open ?  math.max(close - open, high - low) : high - low : 
                 close > open ? 
                  close[1] > open ? math.max(close[1] - low, high - close) : math.max(open - low, high - close) :
                   high - close > close - low ? 
                     close[1] > open ? math.max(close[1] - open, high - low) :high - low : 
                      high - close < close - low ? 
                         close > open ? math.max(close - low, high - close) : open - low : 
                           close > open ? math.max(close[1] - open , high - close) :
                             close[1] < open ? math.max(open - low, high - close) : high - low
    
    value2 =close < open ? 
              close[1] < open ?  math.max(high - close[1], close - low) : math.max(high - open, close - low) : 
               close > open ? 
                 close[1] > open ?  high - low : math.max(open - close[1], high - low) : 
                  high - close > close - low ? 
                   close[1] < open ? math.max(high - close[1], close - low) : high - open : 
                     high - close < close - low ? 
                      close[1] > open ?  high - low : math.max(open - close, high - low) : 
                       close[1] > open ? math.max(high - open, close - low) :
                         close[1] < open? math.max(open - close, high - low): high - low
    nBBB = value2 - value
    pos :=  nBBB < SellLevel ? -1 :
    	     nBBB >= BuyLevel ? 1 : nz(pos[1], 0) 
    pos

strategy(title='Combo 2/20 EMA & Bull And Bear Balance', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════  Bull And Bear Balance ═════●'
SellLevel = input.float(-15, step=0.01, group=I2)
BuyLevel = input.float(15, step=0.01, 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)
prePosBBB = BBB(SellLevel,BuyLevel)
iff_1 = posEMA20 == -1 and prePosBBB == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosBBB == 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)

Mehr