Trend des SMA-Systems nach der Strategie

Schriftsteller:ChaoZhang, Datum: 2024-02-23 12:29:51
Tags:

img

Übersicht

Die Strategie trägt den Namen SMA System Trend Following Strategy. Die Hauptidee besteht darin, Handelssignale auf Basis der SMA-Linien mit unterschiedlichen Parameterlängen zu konstruieren und am Breakpoint mit einem Stop-Loss-Mechanismus zum Risikokontrolle in den Markt zu gelangen.

Strategieprinzip

Die Strategie verwendet zwei SMA-Linien, SMA1 und SMA2. Die Länge von SMA1 ist 1 und die Länge von SMA2 ist 3. Durch die Berechnung dieser beiden SMA-Linien wird, wenn SMA1 über SMA2 überschreitet, ein Kaufsignal generiert. Wenn SMA1 unter SMA2 überschreitet, wird ein Verkaufssignal generiert. Dies zielt darauf ab, den Kurstrend zu erfassen.

Insbesondere beurteilt die Strategie die Crossover-Beziehung zwischen den SMA-Linien durch die Funktionen ta.crossover und ta.crossunder und erzeugt die longCondition- und shortCondition-Boole-Variablen. Wenn longCondition wahr ist, wird ein Kaufsignal generiert. Wenn shortCondition wahr ist, wird ein Verkaufssignal generiert. Die Strategie tritt am Signalpunkt in den Markt ein und aktualisiert die Variablen profitAccumulated und lastTradeProfit, um die angesammelten Gewinne zu verfolgen.

Für die Risikokontrolle setzt die Strategie auch einen auf festen Punkten basierenden Stop-Loss-Mechanismus fest.

Analyse der Vorteile

Der größte Vorteil dieser Strategie besteht darin, dass sie die Trendverfolgungsfähigkeit von SMA-Linien nutzt, um Veränderungen der Preisentwicklung effektiv zu erfassen. Im Vergleich zu Einzellinienstrategien können Doppellinienstrategien die Überschreitungsbeziehung zwischen den Linien verwenden, um die Trendrichtung zu bestimmen und somit Handelssignale zu generieren. Darüber hinaus kann der Stop-Loss-Mechanismus einen einzelnen Verlust effektiv kontrollieren.

Risikoanalyse

Das Hauptrisiko dieser Strategie besteht darin, dass die gleitende Durchschnittsstrategie dazu neigt, falsche Signale zu erzeugen. Wenn der Preis oszilliert, kann die SMA-Linie häufig überquert werden, was zu unnötigen Handelssignalen führt. Zu diesem Zeitpunkt können große Verluste ohne effektiven Stop-Loss auftreten.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Anpassen der SMA-Parameter, um die beste Kombination von gleitenden Durchschnittslängen durch Backtesting zu finden.

  2. Erhöhen Sie die Filterbedingungen und setzen Sie die Preisdurchbruchbedingungen in der Nähe des gleitenden Durchschnitts, um falsche Signale zu vermeiden.

  3. Es können verschiedene Arten von Stop-Loss-Methoden getestet werden, z. B. mobile Stop-Loss, pending order Stop-Loss usw.

  4. Zusätzliche Positionsgrößenkontrolle zur Optimierung der Kapitalnutzungseffizienz

Schlussfolgerung

Insgesamt handelt es sich um eine typische Trend-Folge-Strategie. Sie verwendet die Durchbruch-Beziehung zwischen SMA-Linien, um die Richtung des Kurstrends zu bestimmen und an einem Wendepunkt des Trends einzutreten. Gleichzeitig hat die Strategie eine feste Stop-Loss-Funktion zur Risikokontrolle. Die Strategie ist einfach, leicht zu verstehen, benötigt aber noch eingehende Tests und Optimierungen, bevor sie im realen Handel stabile Gewinne erzielt.


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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © cesarpieres72

//@version=5
strategy("Estrategia SMA y Ganancias Acumuladas con Stop Loss", shorttitle="SMA_Ganancias", overlay=true)

// Definir las variables de las medias móviles
sma1_length = input(1, title="SMA 1 Longitud")
sma2_length = input(3, title="SMA 2 Longitud")

// Calcular las medias móviles
sma1 = ta.sma(close, sma1_length)
sma2 = ta.sma(close, sma2_length)

// Condiciones para las señales de compra y venta
longCondition = ta.crossover(sma1, sma2)
shortCondition = ta.crossunder(sma1, sma2)

// Acumular las ganancias
var float profitAccumulated = 0.0
var float lastTradeProfit = na

if (longCondition)
    strategy.entry("Buy", strategy.long)
    lastTradeProfit := strategy.netprofit - (profitAccumulated + lastTradeProfit)
    profitAccumulated := strategy.netprofit

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    lastTradeProfit := strategy.netprofit - (profitAccumulated + lastTradeProfit)
    profitAccumulated := strategy.netprofit

// Mostrar las señales en el gráfico
plot(sma1, color=color.blue, title="SMA 1")
plot(sma2, color=color.red, title="SMA 2")

// Añadir stop loss
stopLossPips = input(5000, title="Stop Loss (en pips)")
stopLossPrice = strategy.position_avg_price * (1 - stopLossPips * syminfo.mintick)
strategy.exit("SL", "Buy", stop=stopLossPrice)


Mehr