Die Ressourcen sind geladen. Beförderung...

Handelsstrategie mit mehreren gleitenden Durchschnitten

Schriftsteller:ChaoZhang, Datum: 2024-05-11 17:32:49
Tags:SMA- Nein.

img

Übersicht

Dieser Artikel stellt eine Trendhandelsstrategie vor, die auf mehreren gleitenden Durchschnitten basiert, die als Multi-Moving Average Trend Trading Strategy bezeichnet wird. Die Strategie wird hauptsächlich auf dem Nasdaq-Futures-Markt angewendet und erfasst Aufwärtstrends des Marktes, indem sie die Preisposition im Verhältnis zu langen, mittleren und kurzfristigen gleitenden Durchschnitten analysiert. Sie schließt auch alle Positionen zu einer bestimmten Zeit jeden Tag.

Die Strategie verwendet drei einfache gleitende Durchschnitte (SMAs): langfristige (Default 200 Perioden), mittelfristige (Default 21 Perioden) und kurzfristige (Default 9 Perioden). Ein Kaufsignal wird ausgelöst, wenn der Preis über den langfristigen und mittelfristigen gleitenden Durchschnitten liegt und den kurzfristigen gleitenden Durchschnitt überschreitet, vorausgesetzt, es gibt keine offenen Positionen. Die Strategie legt auch festgelegte Stop-Gain- und Stop-Loss-Niveaus fest, um das Risiko zu managen. Zusätzlich werden alle Positionen jeden Handelstag um 17:00 Uhr geschlossen.

Strategieprinzip

  1. Berechnen Sie die einfachen gleitenden Durchschnitte für die langfristigen (Standard 200-Perioden), mittelfristigen (Standard 21-Perioden) und kurzfristigen (Standard 9-Perioden).

  2. Bestimmen Sie, ob der aktuelle Preis über den langfristigen und mittelfristigen gleitenden Durchschnitten liegt.

  3. Überprüfen Sie, ob der aktuelle Kurs über dem kurzfristigen gleitenden Durchschnitt liegt.

  4. Wenn die Bedingungen 2 und 3 erfüllt sind und keine offenen Positionen vorliegen, wird ein Kaufsignal ausgelöst.

  5. Nach dem Kauf legen Sie festgelegte Stop-Gain- und Stop-Loss-Levels fest und schließen die Position, wenn der Preis eine der beiden Ebenen erreicht.

  6. Alle Positionen werden jeden Handelstag um 17:00 Uhr geschlossen.

Strategische Vorteile

  1. Einfach und leicht verständlich: Die Strategie basiert auf gleitenden Durchschnitten, sodass sie leicht zu verstehen und umzusetzen ist.

  2. Trendverfolgung: Durch die Analyse der Preisposition im Verhältnis zu gleitenden Durchschnitten verschiedener Zeiträume erfasst die Strategie effektiv aufsteigende Markttrends.

  3. Risikokontrolle: Die Strategie beinhaltet festgelegte Stop-Gain- und Stop-Loss-Level, die dazu beitragen, das Risiko für einzelne Trades zu steuern.

  4. Automatisches Positionsschließen: Die Strategie schließt automatisch alle Positionen zu einer bestimmten Zeit an jedem Handelstag und vermeidet somit Übernachtungsrisiken.

Strategische Risiken

  1. Parameteroptimierung: Die Performance der Strategie kann auf die Periodenparameter des gleitenden Durchschnitts anfällig sein und erfordert eine Optimierung für verschiedene Märkte und Instrumente.

  2. Unruhige Märkte: In unruhigen Marktbedingungen können häufige Crossover-Signale zu einer suboptimalen Strategieleistung führen.

  3. Slipper-Risiko: Bei hoher Marktvolatilität können festgelegte Stop-Gain- und Stop-Loss-Level möglicherweise nicht wie beabsichtigt ausgeführt werden, was zu einem Slipper-Risiko führt.

Strategieoptimierungsrichtlinien

  1. Dynamische Stop-Gain und Stop-Loss: Die Stop-Gain- und Stop-Loss-Level werden dynamisch anhand der Marktvolatilität oder der Preisentwicklung angepasst, um das Risiko-Rendite-Verhältnis zu optimieren.

  2. Trendfilter: Zusätzliche technische Indikatoren, wie z. B. den ADX, werden eingesetzt, um die Trendstärke zu bestätigen und falsche Signale in unruhigen Märkten zu filtern.

  3. Anpassung an verschiedene Instrumente: Strategie zur Anpassung an verschiedene Futures-Instrumente und Marktmerkmale verfeinern.

  4. Geldverwaltung: Um die Robustheit der Strategie zu erhöhen, müssen anspruchsvollere Geldverwaltungsregeln wie Positionsgröße und Risikokontrolle eingeführt werden.

Zusammenfassung

Die Multi-Moving Average Trend Trading Strategy ist eine einfache und leicht verständliche Trend-Folgende Strategie, die aufsteigende Markttrends erfasst, indem sie die Preisposition im Verhältnis zu gleitenden Durchschnitten verschiedener Perioden analysiert. Die Strategie enthält feststehende Stop-Gain- und Stop-Loss-Levels und schließt alle Positionen jeden Tag automatisch zu einer bestimmten Zeit ab, um das Risiko zu managen. Die Strategie kann jedoch in unruhigen Märkten unterdurchschnittlich abschneiden und sich Herausforderungen wie Parameteroptimierung und Schlupfrisiko stellen. Zukünftige Optimierungen können sich auf dynamische Stop-Gain- und Stop-Loss-Level, Trendfilter, Multi-Instrumentation und Geldmanagement konzentrieren, um die Robustheit und Anpassungsfähigkeit der Strategie weiter zu verbessern.


/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Médias Móveis de MarcosJR", overlay=true)

// Inputs para data inicial e final
start_year = input.int(2020, title="Ano Inicial")
start_month = input.int(1, title="Mês Inicial")
start_day = input.int(1, title="Dia Inicial")

end_year = input.int(2020, title="Ano Final")
end_month = input.int(12, title="Mês Final")
end_day = input.int(31, title="Dia Final")

// Convertendo dia, mês e ano para timestamp
start_date = timestamp(start_year, start_month, start_day, 00, 00)
end_date = timestamp(end_year, end_month, end_day, 23, 59)

// Condição para verificar se a data está dentro do intervalo especificado
date_within_range = true

// Parâmetros para os períodos das médias móveis
ma_short_period = input.int(9, title="MA Curta")
ma_medium_period = input.int(21, title="MA Média")
ma_long_period = input.int(200, title="MA Longa")

// Definindo médias móveis
ma_short = ta.sma(close, ma_short_period)
ma_medium = ta.sma(close, ma_medium_period)
ma_long = ta.sma(close, ma_long_period)

// Plotando as médias móveis no gráfico com espessura aumentada
plot(ma_short, color=color.blue, title="MA Curta", linewidth=2)
plot(ma_medium, color=color.orange, title="MA Média", linewidth=2)
plot(ma_long, color=color.red, title="MA Longa", linewidth=2)

// Verificando se o preço está acima das médias móveis
above_ma_long = close > ma_long
above_ma_medium = close > ma_medium

// Verificando se o preço tocou na média móvel curta
touch_ma_short = ta.crossover(close, ma_short)

// Condições de compra
buy_condition = date_within_range and above_ma_long and above_ma_medium and touch_ma_short

// Sinais de entrada e saída de compra
var float entry_price = na
if (buy_condition and strategy.opentrades == 0) // Verifica se não há operações em andamento
    entry_price := close // Define o preço de entrada ao comprar

// Parâmetros para o tamanho do stop gain e stop loss em pontos
stop_gain_points = input.int(100, title="Stop Gain (pontos)", minval=1)
stop_loss_points = input.int(100, title="Stop Loss (pontos)", minval=1)

// Calcular o preço de saída alvo (Stop Gain) e de stop loss
target_price = entry_price + stop_gain_points * syminfo.mintick
stop_loss_price = entry_price - stop_loss_points * syminfo.mintick

// Sair da operação de compra quando o preço atingir o stop gain ou stop loss
if (strategy.position_size > 0)
    strategy.exit("Venda", "Compra", limit=target_price, stop=stop_loss_price)

// Sinais de entrada de compra
if (buy_condition and strategy.opentrades == 0) // Verifica se não há operações em andamento
    strategy.entry("Compra", strategy.long)

// Plotando setas de compra
plotshape(series=buy_condition, title="Sinal de Compra", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)

// Função para verificar se é 17:00 do mesmo dia
is_17_oclock_same_day = hour == 17 and minute == 0 and hour[1] < 17

// Sair de todas as operações às 17:00 do mesmo dia
if (is_17_oclock_same_day)
    strategy.close_all()


Verwandt

Mehr