JBravo Estrategia de tendencia cuantitativa

El autor:¿ Qué pasa?, Fecha: 2023-12-27 14:53:07
Las etiquetas:

Resumen de la estrategia

La Estrategia de Tendencia Cuantitativa JBravo es una estrategia de seguimiento de tendencias basada en promedios móviles.

El nombre de la estrategia está inspirado en el personaje de dibujos animados Johnny Bravo, que representa una decisión comercial segura y decisiva.

Principio de la estrategia

Una señal de compra se genera cuando el precio de cierre cruza por encima del promedio móvil simple de 9 días; Una señal de venta se genera cuando el precio de cierre cruza por debajo del promedio móvil exponencial de 20 días.

Si los promedios móviles de 9 días, 20 días y 180 días se mueven hacia arriba, y el promedio móvil de 9 días está por encima del promedio móvil de 20 días, el promedio móvil de 20 días está por encima del promedio móvil de 180 días, se genera una fuerte señal de compra.

Si los promedios móviles de 9 días, 20 días y 180 días se mueven todos hacia abajo, y el promedio móvil de 9 días está por debajo del promedio móvil de 20 días, el promedio móvil de 20 días está por debajo del promedio móvil de 180 días, se genera una fuerte señal de venta.

Cuando la línea de precio promedio ponderado por volumen cruza la media móvil exponencial de 20 días hacia arriba, se genera una señal GoGo Long; Cuando la línea de precio promedio ponderado por volumen cruza la media móvil exponencial de 20 días hacia abajo, se genera una señal GoGo Short.

Análisis de ventajas

Esta estrategia combina las ideas de seguimiento de tendencias y estrategias de ruptura. Las medias móviles pueden determinar claramente la dirección de la tendencia del mercado y reducir la probabilidad de operaciones incorrectas. Al mismo tiempo, utiliza el indicador VWAP de manera flexible para determinar el tiempo de entrada, controlando los riesgos al tiempo que favorece los avances en el mercado.

En comparación con el uso de promedios móviles solos, esta estrategia agrega el mecanismo de entrada agresivo de GoGo Juice, que puede obtener mayores rendimientos en tendencias fuertes.

En general, esta estrategia tiene bajos tirones y una rentabilidad estable.

Análisis de riesgos

Aunque la estrategia aumenta la fuerza de las entradas, los puntos de stop loss pueden activarse con frecuencia en los mercados laterales.

Esto significa que la estrategia puede generar un cierto número de operaciones virtuales que en realidad no reflejan los movimientos de los precios del mercado.

Para reducir los riesgos, podemos ajustar el ciclo de medias móviles según corresponda; o añadir un módulo de stop loss para detener la pérdida cuando las pérdidas alcanzan un cierto nivel.

Direcciones de optimización

La estrategia se puede optimizar en las siguientes direcciones:

  1. Ajustar los parámetros de media móvil y optimizar los parámetros del ciclo para encontrar la combinación óptima de parámetros

  2. Añadir indicadores de volumen para evitar señales falsas en tiempos de violentas fluctuaciones de precios

  3. Aumentar los módulos de stop loss y establecer reglas de salida para controlar la pérdida por operación

  4. Combinar las selecciones de sectores de mercado calientes para hacer que las estrategias sean más específicas

  5. Optimizar las proporciones de posición de apertura, optimizar diferentes escalas para diferentes parámetros

Conclusión

La estrategia de tendencia cuantitativa JBravo integra el análisis de promedios móviles y el juicio de tendencia VWAP. persigue ganancias estables a largo plazo mientras tiene un cierto grado de mecanismos de negociación agresivos. La estrategia es adecuada para tenencias a mediano y largo plazo, con riesgos medianos y altos y altos rendimientos. Puede convertirse en una parte de las estrategias de negociación de cartera con una muy buena adaptabilidad del mercado.

[/trans] ¿Qué quieres decir?


/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
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/
// © bradvaughn

//@version=4
strategy("JBravo Swing", overlay = false)

var buy_in_progress = false


//Moving Averages
smaInput1 = input(title="Display SMA 9", type=input.bool, defval=true)
smaInput2 = input(title="Display EMA 20", type=input.bool, defval=true)
smaInput4 = input(title="Display SMA 180", type=input.bool, defval=true)
colored_180 = input(false, title="Color-code 180 trend direction")
vwapInput = input(title="Display VWAP", type=input.bool, defval=true)

sma9 = sma(close, 9)
ema20 = ema(close, 20)
sma180 = sma(close, 180)

//Plot Moving Averages
plot(smaInput1 ? sma9 : na, color= color.red, title="SMA 9")
plot(smaInput2 ? ema20 : na, color = color.yellow, title="EMA 20")

// Plot VWAP
vwap1 = vwap(hlc3)
plot(vwapInput ? vwap1 : na, color = color.blue, title="VWAP")
vwaplong = vwap1 > ema20
vwapshort = vwap1 < ema20

//Color SMA 180 trend direction if selected
sma180_uptrend = sma(close, 180) > sma(close[2], 180)
colr = sma180_uptrend == true or colored_180 == false ? color.white : colored_180 == true ? color.gray : na
plot(smaInput4 ? sma180 : na, color = colr, title="SMA 180")

//Get value of lower end of candle
buyLow = iff(lowest(open, 1) < lowest(close, 1), lowest(open, 1), lowest(close, 1))
sellLow = lowest(close, 1)

// Find the lower MA for crossover sell condition
sellma = iff((sma9<ema20), sma9, ema20)


//SMA 9 trend direction
sma9_uptrend = sma(close, 9) > sma(close[2], 9)
//EMA 20 trend direction
ema20_uptrend = ema(close, 20) > sma(close[2], 20)

//Buy or sell if conditions are met
// Buy when the candle low is above the SMA9
// Sell when the candle low is below the lower of SMA9 and EMA20
Buy = iff(buy_in_progress == false and buyLow > sma9 == true, true, false)
Sell = iff(buy_in_progress == true and sellLow < sellma == true, true, false)

// Determine stong buy and strong sell conditions.
// If moving averages are all up, then this will qualify a buy as a strong buy.
// If the moving averages are not up (ie. down) then this will qualify a sell as a strong sell
StrongBuy = iff (Buy and sma9_uptrend and sma180_uptrend and ema20_uptrend and (sma9 > ema20) and (ema20 > sma180), true, false)
StrongSell = iff (Sell and not sma9_uptrend and not sma180_uptrend and not ema20_uptrend and (sma9 < ema20) and (ema20 < sma180), true, false)

//Update Trading status if bought or sold
if Buy
    buy_in_progress := true
if Sell
    buy_in_progress := false
    
// Clear Buy and Sell conditions if StrongBuy or StrongSell conditions exist.  
// This disables plotting Buy and Sell conditions
if StrongBuy
    Buy := false
if StrongSell
    Sell := false
    

//Display BUY/SELL indicators

plotshape(Buy,title="Buy", color=color.green, style=shape.arrowup,location=location.belowbar, text="Buy")
plotshape(StrongBuy,title="Strong Buy", color=color.green, style=shape.arrowup,location=location.belowbar, text="Strong Buy")
plotshape(Sell,title="Sell", color=color.red, style=shape.arrowdown,text="Sell")
plotshape(StrongSell,title="Strong Sell", color=color.red, style=shape.arrowdown,text="Strong Sell")

strategy.entry("GoGo Long", strategy.long, 1, when=vwaplong and vwapInput)
strategy.entry("GoGo Short", strategy.short, 1, when=vwapshort and vwapInput)

strategy.close("GoGo Long", when = vwapshort and vwapInput)
strategy.close("GoGo Short", when = vwaplong and vwapInput)


alertcondition(Buy, title="Buy Signal", message="Buy")
alertcondition(Sell, title="Sell Signal", message="Sell")

Más.