
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.
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.
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.
/*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)