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.
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
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
En general, esta estrategia tiene bajos tirones y una rentabilidad estable.
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.
La estrategia se puede optimizar en las siguientes direcciones:
Ajustar los parámetros de media móvil y optimizar los parámetros del ciclo para encontrar la combinación óptima de parámetros
Añadir indicadores de volumen para evitar señales falsas en tiempos de violentas fluctuaciones de precios
Aumentar los módulos de stop loss y establecer reglas de salida para controlar la pérdida por operación
Combinar las selecciones de sectores de mercado calientes para hacer que las estrategias sean más específicas
Optimizar las proporciones de posición de apertura, optimizar diferentes escalas para diferentes parámetros
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")