Estratégia de tendência quantitativa JBravo


Data de criação: 2023-12-27 14:53:07 última modificação: 2023-12-27 14:53:07
cópia: 0 Cliques: 834
1
focar em
1621
Seguidores

Estratégia de tendência quantitativa JBravo

Visão geral da estratégia

A estratégia de tendência quantitativa do JBravo é uma estratégia de acompanhamento de tendências baseada em médias móveis. Utiliza a média móvel simples de 9 dias, a média móvel de 20 dias e a média móvel simples de 180 dias para julgar a direção da tendência do mercado e os sinais finais de compra e venda.

O nome da estratégia foi inspirado no personagem de animação Johnny Bravo, que representa uma decisão de negociação confiante e decisiva. O termo GoGo juice descreve a entrada em ação quando a linha VWAP atravessa a média móvel de 20 dias.

Princípio da estratégia

Um sinal de compra é gerado quando um K-line cruza a média móvel simples de 9 dias no preço de fechamento; um sinal de venda é gerado quando o preço de fechamento cruza a média móvel indexada de 20 dias abaixo.

Se as médias móveis de 9, 20 e 180 dias estiverem todas para cima, e a média móvel de 9 dias estiver acima da média móvel de 20 dias, e a média móvel de 20 dias estiver acima da média móvel de 180 dias, um forte sinal de compra será gerado.

Se as médias móveis de 9, 20 e 180 dias estiverem todas para baixo 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 estará abaixo da média móvel de 180 dias, gerando um forte sinal de venda.

Quando a linha de preço de média ponderada de transação atravessa a média móvel de 20 dias do índice da direção inferior, gera um sinal de Go Go para cima; quando a linha de preço de média ponderada de transação atravessa a média móvel de 20 dias do índice da direção superior, gera um sinal de Go Go para baixo.

Análise de vantagens estratégicas

A estratégia combina o seguimento de tendências e a estratégia de ruptura. A média móvel permite determinar claramente a direção da tendência do mercado, reduzindo a probabilidade de erros de negociação. Ao mesmo tempo, usa de forma flexível o preço médio ponderado do volume de transação, um indicador para determinar o momento de entrada, controlando o risco ao mesmo tempo em que espera uma ruptura no mercado.

Em comparação com o uso de uma média móvel, a estratégia adiciona o mecanismo de entrada em campo do GoGo, que permite obter uma maior taxa de retorno do mercado em um cenário forte.

Em geral, a estratégia de retração é pequena e tem uma capacidade de lucro estável.

Análise de risco estratégico

Embora a estratégia tenha adicionado um mecanismo de entrada forte, os pontos de parada podem ser acionados com frequência em situações de turbulência. Além disso, a própria média móvel é muito retardada e não consegue capturar as mudanças de preço em tempo hábil.

Isso significa que a estratégia pode gerar um certo número de transações virtuais que não refletem realmente o preço do mercado. Além disso, a entrada forte aumenta o risco de perdas.

Para reduzir o risco, pode-se ajustar adequadamente a periodicidade da média móvel; ou adicionar o módulo de parada de perda, para parar a perda e sair depois que a perda atinge uma certa amplitude.

Direção de otimização da estratégia

A estratégia pode ser otimizada em várias direções:

  1. Ajustar os parâmetros da média móvel, otimizar os parâmetros do ciclo e encontrar a melhor combinação de parâmetros

  2. Aumentar a avaliação dos indicadores de volume de transação para evitar sinais errados em situações de alta volatilidade dos preços

  3. Aumentar o módulo de stop-loss, definir regras de saída e controlar a perda individual

  4. Combinação com a seleção de segmentos de mercado para tornar a estratégia mais direcionada

  5. Optimizar a proporção de posições abertas, diferentes parâmetros para otimizar diferentes posições em escala

Resumir

A estratégia de tendências quantitativas do JBravo integra a análise de médias móveis e o julgamento de tendências de preços médios ponderados por volume de transação. Ela busca um lucro de linha longa estável, além de ter um mecanismo de negociação bastante agressivo. A estratégia é adequada para a posse de linha média longa, risco médio, etc., com alta taxa de retorno.

||

Strategy Overview

The JBravo Quantitative Trend Strategy is a trend-following strategy based on moving averages. It uses the 9-day simple moving average, 20-day exponential moving average, and 180-day simple moving average to determine the market trend direction, as well as the final buy and sell signals.

The strategy name is inspired by the cartoon character Johnny Bravo, representing a confident and decisive trading decision. The term “GoGo Juice” depicts the aggressive entry when the VWAP line crosses the 20-day exponential moving average.

Strategy Principle

A buy signal is generated when the closing price crosses above the 9-day simple moving average; A sell signal is generated when the closing price crosses below the 20-day exponential moving average.

If the 9-day, 20-day and 180-day moving averages are all moving up, and the 9-day moving average is above the 20-day moving average, the 20-day moving average is above the 180-day moving average, a strong buy signal is generated.

If the 9-day, 20-day and 180-day moving averages are all moving down, and the 9-day moving average is below the 20-day moving average, the 20-day moving average is below the 180-day moving average, a strong sell signal is generated.

When the Volume Weighted Average Price line crosses the 20-day exponential moving average upward, a “GoGo Long” signal is generated; When the Volume Weighted Average Price line crosses the 20-day exponential moving average downward, a “GoGo Short” signal is generated.

Advantage Analysis

This strategy combines the ideas of trend following and breakout strategies. Moving averages can clearly determine the direction of the market trend and reduce the probability of wrong trades. At the same time, it flexibly uses the VWAP indicator to determine the entry time, controlling risks while favoring breakthroughs in the market.

Compared to using moving averages alone, this strategy adds the aggressive entry mechanism of “GoGo Juice”, which can obtain higher returns in strong trends.

Overall, this strategy has small drawdowns and stable profitability.

Risk Analysis

Although the strategy increases the strength of entries, stop loss points can be frequently triggered in sideways markets. In addition, moving averages themselves have high inertia and cannot keep up with price changes in time.

This means that the strategy may generate a certain number of virtual trades that do not actually reflect market price movements. In addition, aggressive entries also increase the risk of losses.

To reduce risks, we can adjust the cycle of moving averages as appropriate; or add a stop loss module to stop loss when losses reach a certain level.

Optimization Directions

The strategy can be optimized in the following directions:

  1. Adjust moving average parameters and optimize cycle parameters to find the optimal parameter combination

  2. Add volume indicators to avoid false signals in times of violent price fluctuations

  3. Increase stop loss modules and set exit rules to control per trade loss

  4. Combine selections of market hot sectors to make strategies more targeted

  5. Optimize opening position proportions, optimize different scale for different parameters

Conclusion

The JBravo Quantitative Trend Strategy integrates moving average analysis and VWAP trend judgment. It pursues stable long-term profits while having a certain degree of aggressive trading mechanisms. The strategy is suitable for medium-long term holdings, with medium-high risks and high returns. It can become a part of portfolio trading strategies with very good market adaptability.

[/trans]

Código-fonte da estratégia
/*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")