MACD-Strategie zur Umrechnung des gleitenden Durchschnitts der Bullen-Bären-Werte

Schriftsteller:ChaoZhang, Datum: 2023-12-08 15:29:41
Tags:

img

Übersicht

Die MACD Moving Average Bull Bear Conversion Strategy berechnet die DIFF- und DEA-Linien des MACD-Indikators, um festzustellen, ob sich der Markttrend umgekehrt hat, wodurch Handelssignale generiert werden.

Strategie Logik

Die Strategie basiert hauptsächlich auf den DIFF- und DEA-Linien des MACD-Indikators. MACD steht für Moving Average Convergence Divergence, bestehend aus den DIFF-, DEA- und MACD-Linien. Unter ihnen repräsentiert DIFF die Differenz zwischen kurzfristigen EMA und langfristigen EMA, DEA ist die EMA von DIFF, die zur Überprüfung von DIFF-Signalen verwendet wird, und MACD repräsentiert die Differenz zwischen DIFF und DEA, die zur Identifizierung von Abweichungen verwendet wird.

Wenn der DIFF über die DEA bricht, bedeutet dies, dass der kurzfristige gleitende Durchschnitt zu stärken beginnt und der Markt bullisch wird. Wenn der DIFF unter die DEA bricht, deutet dies darauf hin, dass der kurzfristige gleitende Durchschnitt schwach wird und der Markt bärisch wird. Daher geht diese Strategie lang, wenn der DIFF über die DEA überschreitet und kurz, wenn er darunter überschreitet.

Darüber hinaus beinhaltet die Strategie Preis-EMA-Filter, um falsche Ausbrüche zu vermeiden. Sie geht nur lang, wenn DIFF über DEA bricht und der Preis unter dem vorherigen Long-Preis liegt, und geht nur kurz, wenn DIFF unter DEA bricht und der Preis über dem vorherigen Short-Preis liegt.

Analyse der Vorteile

Die MACD Moving Average Bull Bear Conversion Strategie kombiniert den MACD-Indikator und die Preis-EMA-Filter, um falsche Signale zu vermeiden, die ausschließlich durch den MACD generiert werden, wodurch die Handelsleistung verbessert wird.

Zu den wichtigsten Vorteilen gehören:

  1. Verwendung des MACD zur Ermittlung von Trendumkehrpunkten und zur Erfassung von Wendepunkten
  2. Einbeziehung von EMA-Preisfiltern zur Verringerung falscher Ausbruchchancen
  3. Schnelle Signalgenerierung für den kurzfristigen Handel
  4. Durchführungsentwicklung nach Erfassung der mittelfristigen Trendgewinne
  5. Entspricht den meisten Händlern Denkmuster des Handels an Umrechnungsstellen

Risikoanalyse

Die MACD Moving Average Bull Bear Conversion Strategie birgt ebenfalls einige Risiken:

  1. MACD ist anfällig für falsche Signale, die Preis-EMA-Filter erfordern, aber auch einige Bewegungen verpassen
  2. Notwendigkeit, DIFF- und DEA-Linien genau zu überwachen, falsche Signale werden durch eine unsachgemäße Einstellung der Parameter erhöht.
  3. Breakout-Signale berücksichtigen nur 1 Bar, mit der Gefahr, geschlagen zu werden
  4. Strategie stützt sich hauptsächlich auf die DIFF/DEA-Crossover für Signale, kann die Handelsfrequenz erhöhen, wenn die Signale zu häufig sind

Die wichtigsten Möglichkeiten zur Optimierung der Risiken sind:

  1. Anpassung der MACD-Parameter zur Verringerung falscher Signale
  2. Steigerung der Filterfestigkeit zur Verringerung des Auftretens von Whipsaws
  3. Hinzufügen von Filtern für die Positionshaltung zur Begrenzung der Handelshäufigkeit

Optimierungsrichtlinien

Die MACD-Strategie zur Umrechnung des gleitenden Durchschnitts "Bull Bear" kann in folgenden Dimensionen weiter optimiert werden:

  1. Optimierung der MACD-Parameter der DIFF/DEA-Perioden
  2. Hinzufügen von Zeitfiltern zur niedrigeren Handelsfrequenz
  3. Einbeziehung von Stop-Loss/Profit-Take-Strategien zur Kontrolle von Gewinnzielen
  4. Hinzufügen anderer Indikatorfilter wie BOLL-Bänder und KD
  5. Einbeziehung von Trendverzerrungen zur Vermeidung von Gegentrendhandel
  6. Entwicklung von Exit-Strategien oder Profit-Taking-Vorlagen auf der Grundlage dieses Strategierahmens

Schlussfolgerung

Die MACD Moving Average Bull Bear Conversion Strategy identifiziert bullish/bearish Markteintritt durch DIFF und DEA Crossover Signale und verwendet Preis-EMA-Filter, um falsche Signale zu entfernen, um effektiv Markttrendumkehrpunkte zu bestimmen. Mit einfacher und klarer Logik identifiziert sie schnell Konversionspunkte, die für den kurz- und mittelfristigen Handel geeignet sind. Die nächsten Schritte zur Optimierung umfassen die Anpassung von Parametern, die Verbesserung von Filtern und die Kontrolle der Handelsfrequenz, um die Strategie robuster zu machen.


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

//@version=3
strategy("macd_strategy", 
          shorttitle="macd", 
          overlay=true, 
          pyramiding=1, 
          max_bars_back=5000, 
          calc_on_order_fills = false, 
          calc_on_every_tick=true, 
          default_qty_type=strategy.percent_of_equity, 
          default_qty_value=100, 
          commission_type =strategy.commission.percent, 
          commission_value=0.00075)
[diff, dea, _] = macd(close, 12, 26, 7)
dea_close = ema(diff, 3)
price = ema(close, 9)
plot(price)
cross_over_price = na
cross_over_signal = na
cross_over_price := cross_over_price[1]
cross_over_signal := cross_over_signal[1]

cross_under_price = na
cross_under_signal = na
cross_under_price := cross_under_price[1]
cross_under_signal := cross_under_signal[1]
if (crossover(diff,dea))
    cross_over_price := price[1]
    cross_over_signal := diff
if (crossunder(diff,dea))
    cross_under_price := price[1]
    cross_under_signal := diff
if dea > 0
    cross_over_price = na
    cross_over_signal = na
else
    cross_under_price = na
    cross_under_signal = na
if diff > 0
    if cross_under_price > cross_under_price[1]*1 and cross_under_signal < cross_under_signal[1]*0.95
        strategy.entry("S", strategy.short,  comment="S")
else
    if cross_over_price < cross_over_price[1]*1 and cross_over_signal > cross_over_signal[1]*0.95
        strategy.entry("B", strategy.long,  comment="B")
// strategy.exit("exit_s", "S", stop = strategy.position_avg_price*1.05, when=strategy.position_size < 0)
// strategy.exit("exit_b", "B", stop = strategy.position_avg_price*0.95, when=strategy.position_size > 0)
strategy.close_all(when=(strategy.position_size < 0 and (dea < 0 or diff > cross_under_signal*1 or crossover(diff, dea)) or (strategy.position_size > 0 and (dea > 0 or diff < cross_over_signal*1 or crossunder(diff, dea)))))

Mehr