Estrategia comercial cuantitativa inteligente de cruce de medias móviles dobles TRAMA

SMA TRAMA
Fecha de creación: 2024-11-29 15:25:13 Última modificación: 2024-11-29 15:25:13
Copiar: 0 Número de Visitas: 663
1
Seguir
1617
Seguidores

Estrategia comercial cuantitativa inteligente de cruce de medias móviles dobles TRAMA

Descripción general

Se trata de una estrategia de negociación de energía inteligente basada en TRAMA (Triangular Moving Average) y SMA (Simple Moving Average). La estrategia combina la generación de señales de negociación de dos sistemas equiláteros y establece un mecanismo de stop-loss para controlar el riesgo. La estrategia utiliza cruces SMA de 4 y 28 ciclos y el indicador TRAMA para confirmar las señales de negociación, aumentando la precisión de las operaciones mediante la confirmación de múltiples señales.

Principio de estrategia

La estrategia utiliza dos componentes centrales para generar señales de negociación. El primero es un sistema de cruce basado en 4 y 28 ciclos SMA, que produce señales de multiplicación cuando la media corta cruza hacia arriba la media larga y produce señales de parálisis cuando cruza hacia abajo. La segunda es la introducción del indicador TRAMA como sistema de confirmación auxiliar.

Ventajas estratégicas

  1. El mecanismo de confirmación de doble señal mejora significativamente la fiabilidad de las transacciones
  2. El indicador TRAMA capta más rápidamente los cambios en las tendencias del mercado
  3. Dispone de un mecanismo claro de control de riesgos para proteger sus fondos mediante el Stop Loss
  4. La lógica de la estrategia es clara, fácil de entender y mantener.
  5. Se pueden realizar múltiples operaciones bidireccionales al mismo tiempo, lo que aumenta las oportunidades de ganar dinero

Riesgo estratégico

  1. Las señales de trading excesivas en mercados convulsionados
  2. El Stop Loss Ratio fijo puede no ser adecuado para todos los entornos de mercado
  3. La media a corto plazo puede ser más sensible al ruido de precios
  4. El riesgo de un deslizamiento en un mercado muy volátil
  5. Necesidad de considerar el impacto de los costos de transacción en el rendimiento de la estrategia

Dirección de optimización de la estrategia

  1. Introducción de un mecanismo de detención de pérdidas que se adapta a la volatilidad
  2. Añadir filtros de entornos de mercado para ajustar los parámetros de la estrategia en diferentes condiciones de mercado
  3. Método de selección para optimizar el parámetro TRAMA, que puede considerarse el uso de ciclos de adaptación
  4. Adición de indicadores de confirmación de transacciones para mejorar la fiabilidad de la señal
  5. Considere la posibilidad de agregar filtros de intensidad de tendencia y evitar el comercio en tendencias débiles

Resumir

Esta es una estrategia que combina el análisis técnico tradicional y la filosofía moderna de la negociación cuantitativa. La estrategia muestra una buena utilidad a través de la confirmación de múltiples señales y el control riguroso del riesgo. Aunque hay algunos lugares que necesitan optimización, el diseño general del marco es razonable y tiene buenas perspectivas de aplicación.

Código Fuente de la Estrategia
/*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)