
Im Bereich Quantitative Trading ist die Trend-Tracking-Strategie seit jeher eine der beliebtesten Handelsmethoden. In diesem Artikel wird eine Trend-Tracking-Strategie vorgestellt, die auf einem doppelten Gleichgewichtssystem basiert und die Effizienz des Handels durch optimierte Risiko-Gewinn-Verhältnisse erhöht.
Die Strategie verwendet 20- und 200-Tage-Index-Moving Averages (EMA) als Hauptindikator, kombiniert mit einem Risiko-Gewinn-Verhältnis von 3:1, um Handelsentscheidungen zu treffen. Wenn der Preis die 20-Tage-Durchschnittslinie überschreitet und die 20-Tage-Durchschnittslinie sich über der 200-Tage-Durchschnittslinie befindet, gibt das System ein Kaufsignal aus.
Die Kernlogik der Strategie umfasst die folgenden Schlüsselelemente:
Es ist eine strukturierte, logisch klare Trend-Tracking-Strategie. Durch die Kombination von einer doppelten Gleichgewichts-System mit einem festen Risiko-Gewinn-Verhältnis, die Strategie ist gut, um das Risiko zu kontrollieren, während die Gewinne zu garantieren. Obwohl es noch einige Optimierungsmöglichkeiten gibt, ist es insgesamt ein Handelssystem, das es wert ist, weiter untersucht und verbessert zu werden.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Estrategia de Compra con Ratio 3:1", overlay=true)
// Parámetros de la temporalidad diaria y las EMAs
ema20 = ta.ema(close, 20)
ema200 = ta.ema(close, 200)
// Condiciones para la entrada en largo
cierre_por_encima_ema20 = close > ema20
ema20_mayor_ema200 = ema20 > ema200
// Variable para registrar si ya se realizó una compra
var bool compra_realizada = false
// Condición para registrar una compra: primera vez que cierra por encima de EMA 20 con EMA 20 > EMA 200
if (cierre_por_encima_ema20 and ema20_mayor_ema200 and not compra_realizada)
// Abrir una operación de compra
strategy.entry("Compra", strategy.long)
compra_realizada := true // Registrar que se realizó una compra
// Definir los niveles de stop loss y take profit basados en el ratio 3:1
stop_loss = strategy.position_avg_price * 0.995 // -0.50% (rendimiento)
take_profit = strategy.position_avg_price * 1.015 // +1.50% (3:1 ratio)
// Establecer el stop loss y take profit
strategy.exit("Take Profit / Stop Loss", from_entry="Compra", stop=stop_loss, limit=take_profit)
// Condición para resetear la compra: cuando el precio cierra por debajo de la EMA de 20
if (close < ema20)
compra_realizada := false // Permitir una nueva operación
// Ploteo de las EMAs
plot(ema20, title="EMA 20", color=color.blue, linewidth=2)
plot(ema200, title="EMA 200", color=color.red, linewidth=2)
// Colorear el fondo cuando el precio está por encima de ambas EMAs
bgcolor(cierre_por_encima_ema20 and ema20_mayor_ema200 ? color.new(color.green, 80) : na)