
La estrategia se basa en la relación cruzada entre el indicador VWAP (precio medio ponderado por volumen de transacción) y el precio. Se abren posiciones extras cuando el precio atraviesa el VWAP hacia arriba y se abren posiciones exteriores cuando el precio atraviesa el VWAP hacia abajo. Al mismo tiempo, se utilizan los indicadores ATR (amplitud de fluctuación real promedio) para calcular los niveles de stop loss y stop loss dinámicos para controlar el riesgo y bloquear las ganancias.
La estrategia tiene VWAP como núcleo para generar señales de negociación cruzando con el precio, al mismo tiempo que se combina con ATR para implementar paradas de pérdidas dinámicas, controlar el riesgo de reversión mientras se capta la tendencia, y la idea general es simple y fácil de entender. Sin embargo, la estrategia tiene espacio para una optimización adicional, mediante la introducción de indicadores auxiliares, la optimización de la lógica de paradas de pérdidas, la administración de fondos, etc., para adaptarse mejor a un entorno de mercado cambiante, mejorar la estabilidad de la estrategia y la rentabilidad.
/*backtest
start: 2023-03-26 00:00:00
end: 2024-03-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Hannah Strategy Stop Loss and Take Profit", overlay=true)
// Inputs
cumulativePeriod = input(40, "VWAP Period")
atrPeriod = input(14, "ATR Period")
multiplier = input(1.5, "ATR Multiplier for Stop Loss")
targetMultiplier = input(3, "ATR Multiplier for Take Profit")
// Calculations for VWAP
typicalPrice = (high + low + close) / 3
typicalPriceVolume = typicalPrice * volume
cumulativeTypicalPriceVolume = sum(typicalPriceVolume, cumulativePeriod)
cumulativeVolume = sum(volume, cumulativePeriod)
vwapValue = cumulativeTypicalPriceVolume / cumulativeVolume
// Plot VWAP on the chart
plot(vwapValue, color=color.blue, title="VWAP")
// Entry Conditions based on price crossing over/under VWAP
longCondition = crossover(close, vwapValue)
shortCondition = crossunder(close, vwapValue)
// ATR Calculation for setting dynamic stop loss and take profit
atr = atr(atrPeriod)
// Execute Trades with Dynamic Stop Loss and Take Profit based on ATR
if (longCondition)
strategy.entry("Long", strategy.long)
// Setting stop loss and take profit for long positions
strategy.exit("Long Exit", "Long", stop=close - atr * multiplier, limit=close + atr * targetMultiplier)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Setting stop loss and take profit for short positions
strategy.exit("Short Exit", "Short", stop=close + atr * multiplier, limit=close - atr * targetMultiplier)