A Estratégia de Tendência Quantitativa JBravo é uma estratégia de tendência baseada em médias móveis.
O nome da estratégia é inspirado no personagem de desenho animado Johnny Bravo, representando uma decisão de negociação confiante e decisiva.
Um sinal de compra é gerado quando o preço de fechamento cruza acima da média móvel simples de 9 dias; Um sinal de venda é gerado quando o preço de fechamento cruza abaixo da média móvel exponencial de 20 dias.
Se as médias móveis de 9 dias, 20 dias e 180 dias estiverem todas em ascensão, e a média móvel de 9 dias estiver acima da média móvel de 20 dias, a média móvel de 20 dias estiver acima da média móvel de 180 dias, é gerado um forte sinal de compra.
Se as médias móveis de 9 dias, 20 dias e 180 dias estiverem todas em baixa e a média móvel de 9 dias estiver abaixo da média móvel de 20 dias, a média móvel de 20 dias estiver abaixo da média móvel de 180 dias, é gerado um forte sinal de venda.
Quando a linha de preço médio ponderado por volume cruza a média móvel exponencial de 20 dias para cima, um sinal
Esta estratégia combina as idéias de tendência seguindo e estratégias de ruptura. médias móveis podem determinar claramente a direção da tendência do mercado e reduzir a probabilidade de negócios errados. Ao mesmo tempo, ele usa flexivelmente o indicador VWAP para determinar o tempo de entrada, controlando os riscos enquanto favorece avanços no mercado.
Em comparação com o uso de médias móveis sozinhas, esta estratégia adiciona o mecanismo de entrada agressivo do
Em geral, esta estratégia apresenta baixos tiros e uma rendibilidade estável.
Apesar da estratégia aumentar a força das entradas, os pontos de stop loss podem ser frequentemente acionados em mercados laterais.
Isto significa que a estratégia pode gerar um certo número de transações virtuais que não refletem realmente os movimentos dos preços de mercado.
Para reduzir os riscos, podemos ajustar o ciclo das médias móveis conforme apropriado; ou adicionar um módulo de stop loss para parar a perda quando as perdas atingem um certo nível.
A estratégia pode ser otimizada nas seguintes direcções:
Ajustar os parâmetros da média móvel e otimizar os parâmetros do ciclo para encontrar a combinação de parâmetros ideal
Adicionar indicadores de volume para evitar sinais falsos em tempos de violentas flutuações de preços
Aumentar os módulos de stop loss e definir regras de saída para controlar por perda de negociação
Combinar selecções de setores de mercado acelerados para tornar as estratégias mais direcionadas
Otimizar as proporções da posição de abertura, otimizar diferentes escalas para diferentes parâmetros
A JBravo Quantitative Trend Strategy integra análise média móvel e julgamento de tendência VWAP. Ela busca lucros estáveis a longo prazo, tendo um certo grau de mecanismos de negociação agressivos. A estratégia é adequada para participações de médio e longo prazo, com riscos médios e altos e altos retornos. Pode se tornar uma parte das estratégias de negociação de carteira com muito boa adaptabilidade ao mercado.
[/trans]
/*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")