Umfassende Strategie für mehrere gleitende Durchschnitte

Schriftsteller:ChaoZhang, Datum: 22.12.2023 11:56:42
Tags:

img

Übersicht

Die Multiple Moving Average Comprehensive Strategy ist eine sehr vielseitige und leistungsstarke technische Analyse-Strategie. Sie kombiniert mehrere gleitende Durchschnitte über verschiedene Zeitrahmen hinweg, um umfassende Einblicke in die Markttrends zu geben. Die Strategie erzeugt klare Kauf- und Verkaufssignale, um potenzielle Einstiegs- und Ausstiegspunkte zu identifizieren. Sie bietet auch eine große Anpassungsfähigkeit, damit Benutzer gleitende Durchschnittslängen anhand ihrer Handelspräferenzen und -ziele anpassen können.

Grundsätze

Der Kern dieser Strategie besteht darin, mehrere gleitende Durchschnitte über verschiedene Perioden hinweg zu berechnen und zu verfolgen, insbesondere die 10-tägigen, 20-tägigen, 30-tägigen bis zu 100-tägigen gleitenden Durchschnitte. Diese gleitenden Durchschnitte sind der durchschnittliche Schlusskurs der letzten 10, 20, 30 Tage usw.

Wenn der heutige Schlusskurs über all diesen gleitenden Durchschnitten liegt, wird ein Kaufsignal generiert. Wenn der heutige Schlusskurs unter allen gleitenden Durchschnitten liegt, wird ein Verkaufssignal generiert. Somit werden Signale nur ausgelöst, wenn alle gleitenden Durchschnitte in verschiedenen Zeitrahmen in die gleiche Richtung zeigen. Dies filtert viel Lärm aus und macht die Signale zuverlässiger.

Vorteile

  1. Bietet Einblicke über mehrere Zeitskellen hinweg, die sich an verschiedene Marktumgebungen anpassen lassen

  2. Filtert durch mehrere Bestätigungen Geräusche aus, wodurch Signale zuverlässiger werden

  3. Klare Handelsregeln, leicht verständlich und umsetzbar

  4. Hochgradig anpassbar, um individuellen Anforderungen gerecht zu werden

  5. Anleitung für Eintritte, Stop-Losses und Take-Profits zur Erleichterung des Risikomanagements

Risiken und Lösungen

  1. Mehrere gleitende Durchschnitte können sich während der Ranging-Märkte kreuzen, was zu unklaren Signalen führt.

  2. Die Wahrscheinlichkeit, dass künftige Preise mehrere gleitende Durchschnitte durchbrechen, ist gering, und einige Trades können möglicherweise fehlen.

  3. Die Einbeziehung führender Indikatoren wie der MACD kann das Urteilsvermögen über den Wendepunkt verbessern.

  4. Die Anzahl der generierten Trades kann niedrig sein, um ein konsistentes Einkommen zu erzielen.

Optimierungsrichtlinien

  1. Parameter-Tuning: Anzahl und Länge der gleitenden Durchschnitte anpassen, um eine optimale Parametermischung zu finden.

  2. Kombination anderer Indikatoren: Durch das Hinzufügen von Indikatoren wie MACD und RSI kann die Widerstandsfähigkeit der Strategie verbessert werden.

  3. Strategie zusammen: Zusammen mit anderen Strategien wie Breakout-Systemen und Trendverfolgung kann die Robustheit verbessert werden.

  4. Automatisierte Optimierung: Algorithmisch verschiedene Parametermengen testen, um objektive Funktionen zu maximieren und optimale Parameter zu finden.

Schlussfolgerung

Die Multiple Moving Average Comprehensive Strategy ist ein sehr vielseitiges und leistungsfähiges analytisches Werkzeug. Es bietet Einblicke in mehrere Zeitskala, zuverlässige Signale, Benutzerfreundlichkeit und Verständlichkeit und eine hohe Anpassbarkeit. Gleichzeitig hat es einige Einschränkungen, die durch Parameter-Tuning, Modellkombinationen usw. für die Anpassung an komplexere Marktregime behoben werden können. Die Strategie kann sowohl als Lernwerkzeug dienen, um die Entwicklung technischer Analysefähigkeiten zu unterstützen, als auch die praktische Handelsumsetzung nach Anpassungen, die auf individuelle Bedürfnisse zugeschnitten sind.


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

//@version=5
strategy("Multiple Moving Average Strategy", overlay=true)

// Function to calculate moving average
get_ma(src, length) =>
    ta.sma(src, length)

// Initialize moving average lengths
ma_length_10 = 10
ma_length_20 = 20
ma_length_30 = 30
ma_length_40 = 40
ma_length_50 = 50
ma_length_60 = 60
ma_length_70 = 70
ma_length_80 = 80
ma_length_90 = 90
ma_length_100 = 100

// Calculate 10-day, 20-day, 30-day, 40-day, 50-day, 60-day, 70-day, 80-day, 90-day, and 100-day moving averages
ma_10 = get_ma(close, ma_length_10)
ma_20 = get_ma(close, ma_length_20)
ma_30 = get_ma(close, ma_length_30)
ma_40 = get_ma(close, ma_length_40)
ma_50 = get_ma(close, ma_length_50)
ma_60 = get_ma(close, ma_length_60)
ma_70 = get_ma(close, ma_length_70)
ma_80 = get_ma(close, ma_length_80)
ma_90 = get_ma(close, ma_length_90)
ma_100 = get_ma(close, ma_length_100)

// Generate Buy/Sell signals for the 10 moving averages
buy_signal = close > ma_10
sell_signal = close < ma_10

// Add conditions for each additional moving average length
buy_signal := buy_signal and (close > get_ma(close, ma_length_20))
sell_signal := sell_signal and (close < get_ma(close, ma_length_20))

buy_signal := buy_signal and (close > get_ma(close, ma_length_30))
sell_signal := sell_signal and (close < get_ma(close, ma_length_30))

buy_signal := buy_signal and (close > get_ma(close, ma_length_40))
sell_signal := sell_signal and (close < get_ma(close, ma_length_40))

buy_signal := buy_signal and (close > get_ma(close, ma_length_50))
sell_signal := sell_signal and (close < get_ma(close, ma_length_50))

buy_signal := buy_signal and (close > get_ma(close, ma_length_60))
sell_signal := sell_signal and (close < get_ma(close, ma_length_60))

buy_signal := buy_signal and (close > get_ma(close, ma_length_70))
sell_signal := sell_signal and (close < get_ma(close, ma_length_70))

buy_signal := buy_signal and (close > get_ma(close, ma_length_80))
sell_signal := sell_signal and (close < get_ma(close, ma_length_80))

buy_signal := buy_signal and (close > get_ma(close, ma_length_90))
sell_signal := sell_signal and (close < get_ma(close, ma_length_90))

buy_signal := buy_signal and (close > get_ma(close, ma_length_100))
sell_signal := sell_signal and (close < get_ma(close, ma_length_100))

// Plot Buy/Sell signals on the chart
plotshape(buy_signal, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(sell_signal, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar)

// Execute long buy order when all ten moving averages give a Buy signal
if (buy_signal)
    strategy.entry("Buy", strategy.long)

// Execute sell order when all ten moving averages give a Sell signal
if (sell_signal)
    strategy.close("Buy")

// Execute short sell order when all ten moving averages give a Sell signal
if (sell_signal)
    strategy.entry("Sell", strategy.short)

// Execute buy order when all ten moving averages give a Buy signal
if (buy_signal)
    strategy.close("Sell")

// Plot closing price and moving averages on the chart
plot(close, title="Close", color=color.blue)
plot(ma_10, title="MA 10", color=color.orange)
plot(ma_20, title="MA 20", color=color.purple)
plot(ma_30, title="MA 30", color=color.blue)
plot(ma_40, title="MA 40", color=color.red)
plot(ma_50, title="MA 50", color=color.green)
plot(ma_60, title="MA 60", color=color.yellow)
plot(ma_70, title="MA 70", color=color.fuchsia)
plot(ma_80, title="MA 80", color=color.gray)
plot(ma_90, title="MA 90", color=color.teal)
plot(ma_100, title="MA 100", color=color.maroon)


Mehr