Estrategia de seguimiento de tendencias basada en desviaciones

El autor:¿ Qué pasa?, Fecha: 2024-01-22 11:51:28
Las etiquetas:

img

Resumen general

Esta estrategia identifica y rastrea las tendencias basadas en indicadores de desviación de precios combinados con áreas de retroceso de Fibonacci.

Estrategia lógica

La estrategia utiliza VWAP como la línea del punto medio del precio. Luego se calculan las bandas superior e inferior de 1.618 y 2.618 desviación estándar de las fluctuaciones de precios. Se genera una señal larga cuando el precio rompe la banda inferior hacia arriba. Se genera una señal corta cuando el precio rompe la banda superior hacia abajo.

Las señales de stop loss EXIT después de abrir posiciones largas o cortas son: la línea de stop loss para posiciones largas es la banda inferior, y para posiciones cortas es la banda superior.

En concreto, se trata de las siguientes medidas:

  1. Calcular el VWAP como la línea del punto medio del precio

  2. Calcular la desviación estándar sd del precio como indicador de la volatilidad de los precios

  3. Calcular las bandas superior e inferior basado en sd. Las bandas superiores son VWAP + 1.618sd y VWAP + 2.618sd. Las bandas inferiores son VWAP - 1.618sd y VWAP - 2.618Sd.

  4. Una señal larga se genera cuando el precio rompe la banda inferior de 1.618 hacia arriba. Una señal corta se genera cuando el precio rompe la banda superior de 1.618 hacia abajo.

  5. EXIT de pérdida de parada larga: el precio se rompe a través de la banda inferior de 2,618; EXIT de pérdida de parada corta: el precio se rompe a través de la banda superior de 2,618.

Análisis de ventajas

La estrategia tiene las siguientes ventajas:

  1. Los indicadores de desviación de precios pueden determinar eficazmente las tendencias de los precios y seguirlas

  2. Las áreas de retracement de Fibonacci hacen que las salidas de entrada y stop loss sean más claras

  3. VWAP como línea del punto medio del precio también mejora el valor de referencia del indicador

  4. Los parámetros se pueden ajustar para adaptarse a diferentes productos y plazos

Análisis de riesgos

La estrategia también tiene algunos riesgos:

  1. Puede incurrir en mayores pérdidas durante las inversiones de tendencia

  2. La configuración incorrecta de los parámetros también puede afectar el rendimiento de la estrategia

  3. Hay un mayor riesgo de stop loss durante las violentas fluctuaciones de precios

Contramedidas:

  1. Acortar adecuadamente el período de retención y detener las pérdidas a tiempo

  2. Optimiza los parámetros para encontrar la mejor combinación de parámetros

  3. Aumentar la gestión del tamaño de las posiciones para controlar las pérdidas individuales

Direcciones de optimización

La estrategia también puede optimizarse en los siguientes ámbitos:

  1. Incorporar indicadores de tendencia para evitar operaciones contra tendencia

  2. Añadir mecanismos de gestión de dimensionamiento de posición

  3. Optimiza las configuraciones de parámetros

  4. Prueba de retroceso y optimización en múltiples marcos de tiempo

Resumen de las actividades

Esta estrategia identifica y rastrea las tendencias basadas en el concepto de desviación de precios combinado con VWAP y bandas de desviación estándar de Fibonacci. En comparación con el uso de indicadores individuales como promedios móviles, esta estrategia tiene juicios y control de riesgos más claros. A través del ajuste y optimización de parámetros, la estrategia se puede adaptar a diferentes productos y marcos de tiempo para lograr un mejor rendimiento.


/*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Mysteriown

//@version=4
strategy(title="VWAP + Fibo Dev Extensions Strategy", overlay=true, pyramiding=5, commission_value=0.08)

// -------------------------------------
// ------- Inputs Fibos Values ---------
// -------------------------------------

fib1 = input(title="Fibo extension 1", type=input.float, defval=1.618)
fib2 = input(title="Fibo extension 2", type=input.float, defval=2.618)
reso = input(title="Resolution VWAP", type=input.resolution, defval="W")
dev = input(title="Deviation value min.", type=input.integer, defval=150)


// -------------------------------------
// -------- VWAP Calculations ----------
// -------------------------------------

t = time(reso)
debut = na(t[1]) or t > t[1]

addsource = hlc3 * volume
addvol = volume
addsource := debut ? addsource : addsource + addsource[1]
addvol := debut ? addvol : addvol + addvol[1]
VWAP = addsource / addvol

sn = 0.0
sn := debut ? sn : sn[1] + volume * (hlc3 - VWAP[1]) * (hlc3 - VWAP)
sd = sqrt(sn / addvol)

Fibp2 = VWAP + fib2 * sd
Fibp1 = VWAP + fib1 * sd
Fibm1 = VWAP - fib1 * sd
Fibm2 = VWAP - fib2 * sd


// -------------------------------------
// -------------- Plots ----------------
// -------------------------------------

plot(VWAP, title="VWAP", color=color.orange)
pFibp2 = plot(Fibp2, color=color.red)
pFibp1 = plot(Fibp1, color=color.red)
pFibm1 = plot(Fibm1, color=color.lime)
pFibm2 = plot(Fibm2, color=color.lime)

fill(pFibp2,pFibp1, color.red)
fill(pFibm2,pFibm1, color.lime)


// -------------------------------------
// ------------ Positions --------------
// -------------------------------------

bull = crossunder(low[1],Fibm1[1]) and low[1]>=Fibm2[1] and low>Fibm2 and low<Fibm1 and sd>dev
bear = crossover(high[1],Fibp1[1]) and high[1]<=Fibp2[1] and high<Fibp2 and high>Fibp1 and sd>dev

//plotshape(bear, title='Bear', style=shape.triangledown, location=location.abovebar, color=color.red, offset=0)
//plotshape(bull, title='Bull', style=shape.triangleup, location=location.belowbar, color=color.green, offset=0)


// -------------------------------------
// --------- Strategy Orders -----------
// -------------------------------------

strategy.entry("Long", true, when = bull)
strategy.close("Long", when = crossover(high,VWAP) or crossunder(low,Fibm2))

strategy.entry("Short", false, when = bear)
strategy.close("Short", when = crossunder(low,VWAP) or crossover(high,Fibp2))

Más.