Estrategia flexible de stop loss y take profit basada en el cruce de MA/VWAP


Fecha de creación: 2023-12-20 14:06:18 Última modificación: 2023-12-20 14:06:18
Copiar: 0 Número de Visitas: 734
1
Seguir
1621
Seguidores

Estrategia flexible de stop loss y take profit basada en el cruce de MA/VWAP

Descripción general

La estrategia identifica las señales de cruce entre ellas para capturar el movimiento de los precios mediante el cálculo de las medias móviles rápidas, las medias móviles lentas y las medias ponderadas por transacción. Se produce una señal de compra cuando la MA rápida atraviesa VWAP y la MA lenta por debajo; se produce una señal de venta cuando la MA rápida atraviesa VWAP y la MA lenta por encima.

Principio de estrategia

Esta estrategia combina las ventajas de las medias móviles y las medias ponderadas por volumen de transacciones. Las medias móviles filtran eficazmente el ruido del mercado para determinar la dirección de la tendencia. Las medias ponderadas por volumen de transacciones reflejan con mayor precisión la intención de los grandes capitales.

Análisis de las ventajas

  • El uso de filtros MA dobles reduce las señales falsas
  • El VWAP puede determinar con precisión las intenciones de los grandes capitales
  • Ajuste flexible de los parámetros de MA para adaptarse a diferentes ciclos
  • Combinado con un bloqueador de pérdidas y un control efectivo del riesgo

Análisis de riesgos

  • Las señales erróneas pueden aparecer varias veces en un mercado con grandes sacudidas
  • La configuración de los parámetros de VWAP no permite determinar con precisión las intenciones de los fondos
  • El punto de parada es demasiado cerca para seguir la tendencia y demasiado lejos para correr el riesgo.

Dirección de optimización

  • Optimización de los parámetros de MA y VWAP para diferentes situaciones
  • Filtración de señales en combinación con otros indicadores como el RSI
  • Ajuste dinámico de las tasas de stop loss y stop loss

Resumir

La estrategia integra las ventajas de las medias móviles y VWAP para identificar las señales cruzadas a través de un doble filtrado, junto con un mecanismo de parada de pérdidas flexible que permite controlar el riesgo de manera efectiva y es una estrategia de seguimiento de tendencias recomendable.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Flexible MA VWAP Crossover Strategy with SL/TP", shorttitle="MA VWAP Crossover", overlay=true)

// Input parameters
fast_length = input(9, title="Fast MA Length", minval=1)
slow_length = input(21, title="Slow MA Length", minval=1)
vwap_length = input(14, title="VWAP Length", minval=1)

// Stop Loss and Take Profit inputs
stop_loss_percent = input(1.0, title="Stop Loss (%)", minval=0.1, maxval=5.0, step=0.1)
take_profit_percent = input(2.0, title="Take Profit (%)", minval=1.0, maxval=10.0, step=0.1)

// Calculate moving averages
fast_ma = sma(close, fast_length)
slow_ma = sma(close, slow_length)
vwap = sma(close * volume, vwap_length) / sma(volume, vwap_length)

// Buy and sell conditions
buy_condition = crossover(fast_ma, vwap) and crossover(fast_ma, slow_ma)
sell_condition = crossunder(fast_ma, vwap) and crossunder(fast_ma, slow_ma)

// Plot the moving averages
plot(fast_ma, title="Fast MA", color=color.blue)
plot(slow_ma, title="Slow MA", color=color.red)
plot(vwap, title="VWAP", color=color.purple)

// Plot buy and sell signals
plotshape(buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, title="Buy Signal")
plotshape(sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, title="Sell Signal")

// Define stop loss and take profit levels
var float stop_loss_price = na
var float take_profit_price = na

if (buy_condition)
    stop_loss_price := close * (1 - stop_loss_percent / 100)
    take_profit_price := close * (1 + take_profit_percent / 100)

// Strategy entry and exit with flexible SL/TP
strategy.entry("Buy", strategy.long, when = buy_condition)

if (sell_condition)
    strategy.exit("SL/TP", from_entry = "Buy", stop = stop_loss_price, limit = take_profit_price)