En la carga de los recursos... Cargando...

TRAMA Estrategia de negociación cuantitativa inteligente de media móvil doble cruzada

El autor:¿ Qué pasa?, Fecha: 2024-11-29 15:25:13
Las etiquetas:La SMA- ¿ Qué pasa?

img

Resumen general

Esta es una estrategia de negociación cuantitativa inteligente basada en TRAMA (Triangular Moving Average) y Simple Moving Average (SMA). La estrategia combina dos sistemas de promedio móvil para generar señales de negociación e implementa un mecanismo de stop-loss / take-profit para el control de riesgos. Utiliza cruces SMA de 4 períodos y 28 períodos junto con el indicador TRAMA para confirmar las señales de negociación, mejorando la precisión a través de la confirmación de múltiples señales.

Principios de estrategia

La estrategia emplea dos componentes principales para generar señales comerciales. Primero es el sistema de cruce basado en SMA de 4 períodos y 28 períodos, que genera señales largas cuando el MA a corto plazo cruza por encima del MA a largo plazo y señales cortas cuando cruza por debajo. Segundo, la estrategia incorpora el indicador TRAMA como un sistema de confirmación auxiliar. TRAMA es un promedio móvil mejorado con un tiempo de respuesta más rápido y menos retraso. Se generan señales comerciales adicionales cuando el precio rompe el TRAMA. La estrategia también incluye mecanismos de toma de ganancias y stop-loss basados en porcentajes establecidos en el 2% y el 1% respectivamente.

Ventajas estratégicas

  1. El mecanismo de confirmación de dos señales mejora significativamente la fiabilidad de las operaciones
  2. El indicador TRAMA permite una captura más rápida de los cambios de tendencia del mercado
  3. Mecanismo claro de control de riesgos mediante niveles de stop-loss y take-profit
  4. Lógica estratégica clara y fácil de mantener
  5. Permite el comercio tanto largo como corto, aumentando las oportunidades de ganancia

Riesgos estratégicos

  1. Puede generar señales comerciales excesivas en mercados variados
  2. Los porcentajes fijos de stop-loss y take-profit pueden no adaptarse a todas las condiciones de mercado
  3. La media móvil a corto plazo puede ser sensible al ruido de precios
  4. Riesgos potenciales de deslizamiento en mercados volátiles
  5. Necesidad de considerar el impacto de los costes de negociación en el rendimiento de la estrategia

Direcciones para la optimización de la estrategia

  1. Introducir mecanismos de stop-loss y take-profit adaptados a la volatilidad
  2. Añadir filtros de entorno de mercado para ajustar los parámetros de la estrategia en diferentes condiciones
  3. Optimizar el método de selección de parámetros TRAMA, considerar el uso de períodos adaptativos
  4. Añadir indicadores de confirmación de volumen para mejorar la fiabilidad de la señal
  5. Considere agregar filtros de fuerza de tendencia para evitar el comercio en tendencias débiles

Resumen de las actividades

Esta es una estrategia que combina el análisis técnico tradicional con conceptos de trading cuantitativos modernos. A través de la confirmación de múltiples señales y el estricto control de riesgos, la estrategia demuestra una buena practicidad. Si bien hay áreas para la optimización, el diseño general del marco es razonable con buenas perspectivas de aplicación.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
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/
// © ivanvallejoc

//@version=5
strategy("MANCOS2.0", overlay=true, margin_long=80, margin_short=80)

longCondition = ta.crossover(ta.sma(close, 4), ta.sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = ta.crossunder(ta.sma(close, 4), ta.sma(close, 28))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

// Parámetros de la TRAMA
length = input(1.5, title="TRAMA Length")
src = close
filt = 2 / (length + 1)
trama = 0.0
var tramaPrev = na(trama[1]) ? close : trama[1]
trama := (src - tramaPrev) * filt + tramaPrev

// Plot de la TRAMA
plot(trama, color=color.blue, linewidth=2, title="TRAMA")

// Señales de compra y venta basadas en TRAMA
buySignal = ta.crossover(close, trama)
sellSignal = ta.crossunder(close, trama)

// Configuración de Take Profit y Stop Loss
takeProfitPerc = input(2, title="Take Profit (%)") / 100
stopLossPerc = input(1, title="Stop Loss (%)") / 100

// Precios de TP y SL
takeProfitPrice = strategy.position_avg_price * (1 + takeProfitPerc)
stopLossPrice = strategy.position_avg_price * (1 - stopLossPerc)

// Condiciones de entrada en largo
if (buySignal)
    strategy.entry("Long", strategy.long)

// Condiciones de salida para posición larga (TP/SL)
if (strategy.position_size > 0)
    strategy.exit("TP/SL", "Long", limit=takeProfitPrice, stop=stopLossPrice)

// Entrada en corto basada en TRAMA
if (sellSignal)
    strategy.entry("Short", strategy.short)

// Precios de TP y SL para posiciones cortas
takeProfitPriceShort = strategy.position_avg_price * (1 - takeProfitPerc)
stopLossPriceShort = strategy.position_avg_price * (1 + stopLossPerc)

if (strategy.position_size < 0)
    strategy.exit("TP/SL", "Short", limit=takeProfitPriceShort, stop=stopLossPriceShort)


Relacionados

Más.