Estrategia de alineación perfecta de EMA, SMA, CCI, ATR y promedio móvil y sistema de comercio automático con indicadores Trend Magic

EMA SMA CCI ATR
Fecha de creación: 2024-09-26 15:52:31 Última modificación: 2024-09-26 15:52:31
Copiar: 0 Número de Visitas: 675
1
Seguir
1617
Seguidores

Estrategia de alineación perfecta de EMA, SMA, CCI, ATR y promedio móvil y sistema de comercio automático con indicadores Trend Magic

Descripción general

Esta estrategia combina el equilibrio perfecto y el indicador mágico de la tendencia para capturar las tendencias del mercado. Utiliza tres promedios móviles (EMA45, SMA90 y SMA180) y un indicador mágico de la tendencia basado en cálculos del CCI y ATR. El núcleo de la estrategia consiste en identificar el equilibrio perfecto y, al mismo tiempo, combinar el cambio de color del indicador mágico de la tendencia para confirmar la reversión de la tendencia y así generar una señal de negociación.

Principio de estrategia

El funcionamiento de la estrategia se basa en los siguientes elementos clave:

  1. La línea media perfecta: se utilizan tres líneas medias EMA45, SMA90 y SMA180, que cuando se ordenan en un orden específico (multicabeza: EMA45 > SMA90 > SMA180; cabecera: EMA45 < SMA90 < SMA180), se consideran una fuerte señal de establecimiento de tendencias.

  2. Indicador mágico de tendencias: es un indicador personalizado basado en el CCI (índice de canales de mercancías) y el ATR (amplitud de onda real). Indica un potencial cambio de tendencia mediante un cambio de color.

  3. Condiciones de entrada: La señal de negociación se genera solo cuando se cumple la perfecta alineación de la línea media y el cambio de color del indicador mágico de la tendencia. Esto asegura que se negocie solo cuando se forma una tendencia fuerte.

  4. Gestión de riesgos: la estrategia utiliza objetivos de pérdidas y ganancias basados en la relación de retorno al riesgo. El objetivo de pérdidas y ganancias se establece en el nivel SMA90 al entrar, y el objetivo de ganancias se establece en 1,5 veces el riesgo.

Ventajas estratégicas

  1. Seguimiento de tendencias: La combinación de varios indicadores permite a las estrategias capturar de manera efectiva tendencias a medio y largo plazo y reducir las falsas señales.

  2. Control de riesgos: El mecanismo de gestión de riesgos incorporado, que incluye un stop loss fijo y un objetivo de ganancias basado en la relación de retorno al riesgo, ayuda a controlar el riesgo de cada operación.

  3. Flexibilidad: La estrategia permite a los usuarios ajustar los parámetros, como el ciclo CCI, el multiplicador ATR y el ciclo de la media móvil, para adaptarse a diferentes condiciones de mercado y preferencias personales.

  4. Visualización: La estrategia traza indicadores mágicos de tendencias y promedios móviles en gráficos para que los operadores analicen las tendencias del mercado de manera intuitiva.

Riesgo estratégico

  1. Retraso: debido al uso de medias móviles y otros indicadores retrasados, la estrategia puede perder algunas oportunidades al comienzo de la tendencia.

  2. Mercado en turbulencia: En mercados en tránsito o en turbulencia, las estrategias pueden generar frecuentes falsas señales, lo que lleva a una sobrecambio.

  3. Detención fija: el uso de un SMA90 fijo como parada puede ser demasiado flexible en algunos casos, aumentando la pérdida potencial.

  4. Sensibilidad de parámetros: el rendimiento de la estrategia puede ser sensible a la configuración de parámetros y necesita una optimización y retroalimentación cuidadosas.

Dirección de optimización de la estrategia

  1. Detención dinámica: Considere la posibilidad de realizar un seguimiento de la detención y ajustar el nivel de detención a medida que el precio se mueve para proteger mejor los beneficios.

  2. Filtrado de estado de mercado: Introducción de filtros de volatilidad o intensidad de tendencia para ajustar el comportamiento estratégico en diferentes condiciones de mercado.

  3. Análisis de marcos de tiempo: integración de análisis de marcos de tiempo múltiples para mejorar la fiabilidad de la señal y reducir las falsas.

  4. Indicadores cuantitativos: añadir análisis de volumen de transacciones u otros indicadores cuantitativos para mejorar la confirmación de tendencias y la identificación de reversión.

  5. Optimización de aprendizaje automático: ajuste dinámico de parámetros de algoritmos de aprendizaje automático para adaptarse a las condiciones cambiantes del mercado.

Resumir

Esta estrategia de comercio automático, que combina una línea uniforme perfecta y un indicador mágico de tendencias, muestra un método de seguimiento de tendencias con potencial. La estrategia apunta a capturar tendencias fuertes en el mercado mediante el uso integrado de varios indicadores técnicos, mientras que controla el riesgo a través de un mecanismo de gestión de riesgos incorporado. A pesar de algunas limitaciones inherentes, como el atraso y la sensibilidad a los parámetros, la estrategia tiene potencial para ser una herramienta de comercio eficaz mediante la optimización continua y el ajuste adaptativo.

Código Fuente de la Estrategia
/*backtest
start: 2024-08-26 00:00:00
end: 2024-09-24 08:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PakunFX

//@version=5
strategy("Trend Magic with EMA, SMA, and Auto-Trading", shorttitle="TM_Trading", overlay=true, format=format.price, precision=2)

// Inputs
period = input.int(21, "CCI period")
coeff = input.float(1.0, "ATR Multiplier")
AP = input.int(7, "ATR Period")
riskRewardRatio = input.float(1.5, "Risk/Reward Ratio")  // Risk/Reward Ratio for take profit

// Calculations
ATR = ta.sma(ta.tr, AP)
src = input(close)
upT = low - ATR * coeff
downT = high + ATR * coeff
var MagicTrend = 0.0
MagicTrend := ta.cci(src, period) >= 0 ? (upT < nz(MagicTrend[1]) ? nz(MagicTrend[1]) : upT) : (downT > nz(MagicTrend[1]) ? nz(MagicTrend[1]) : downT)

// Define colors for Trend Magic
color1 = ta.cci(src, period) >= 0 ? color.rgb(0, 34, 252) : color.rgb(252, 4, 0)
isBlue = ta.cci(src, period) >= 0
isRed = ta.cci(src, period) < 0

// Convert bool to float (1 for true, 0 for false)
isBlueFloat = isBlue ? 1 : 0
isRedFloat = isRed ? 1 : 0

// Moving Averages
ema45 = ta.ema(close, 45)
sma90 = ta.sma(close, 90)
sma180 = ta.sma(close, 180)

// Plot Trend Magic
plot(MagicTrend, color=color1, linewidth=3)

// Alerts
alertcondition(ta.cross(close, MagicTrend), title="Cross Alert", message="Price - MagicTrend Crossing!")
alertcondition(ta.crossover(low, MagicTrend), title="CrossOver Alarm", message="BUY SIGNAL!")
alertcondition(ta.crossunder(high, MagicTrend), title="CrossUnder Alarm", message="SELL SIGNAL!")

// Perfect Order conditions
bullishPerfectOrder = ema45 > sma90 and sma90 > sma180  // Bullish Perfect Order
bearishPerfectOrder = ema45 < sma90 and sma90 < sma180  // Bearish Perfect Order

// Trend Magic color change detection
trendMagicTurnedBlue = ta.crossover(isBlueFloat, isRedFloat)  // Red to Blue crossover (For long entry)
trendMagicTurnedRed = ta.crossunder(isBlueFloat, isRedFloat)  // Blue to Red crossover (For short entry)

// Variables to store SMA90 at the entry
var float longSma90 = na
var float shortSma90 = na

// Trading logic based on Perfect Order and color change
longCondition = bullishPerfectOrder and trendMagicTurnedBlue  // Buy when Perfect Order is bullish and Trend Magic turns red to blue
shortCondition = bearishPerfectOrder and trendMagicTurnedRed  // Sell when Perfect Order is bearish and Trend Magic turns blue to red

// Strategy Entry
if (longCondition)
    strategy.entry("Buy", strategy.long)
    longSma90 := sma90  // Store SMA90 at entry for long position

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    shortSma90 := sma90  // Store SMA90 at entry for short position

// Stop-Loss and Take-Profit calculations
// For Long Positions: stop at SMA90 (fixed at entry), take profit at 1.5x risk
if (longCondition and not na(longSma90))
    longStopLoss = longSma90  // Use SMA90 at the time of entry
    longRisk = close - longSma90  // Calculate risk
    longTakeProfit = close + longRisk * riskRewardRatio  // Calculate take profit
    strategy.exit("Take Profit/Stop Loss", "Buy", stop=longStopLoss, limit=longTakeProfit)

// For Short Positions: stop at SMA90 (fixed at entry), take profit at 1.5x risk
if (shortCondition and not na(shortSma90))
    shortStopLoss = shortSma90  // Use SMA90 at the time of entry
    shortRisk = shortSma90 - close  // Calculate risk
    shortTakeProfit = close - shortRisk * riskRewardRatio  // Calculate take profit
    strategy.exit("Take Profit/Stop Loss", "Sell", stop=shortStopLoss, limit=shortTakeProfit)

// Plot Moving Averages
plot(ema45, color=color.green, title="EMA 45")
plot(sma90, color=color.blue, title="SMA 90")
plot(sma180, color=color.red, title="SMA 180")