Este artigo explica em detalhes uma estratégia quantitativa de negociação de breakout baseada em altas e baixas de oscilação de preços.
I. Lógica da estratégia
A principal lógica de negociação é:
Calcular o máximo máximo e o mínimo mínimo dos 3 bares recentes para o balanço de curto prazo atual.
Calcular o máximo máximo e o mínimo mínimo dos últimos 50 bares para o intervalo de curto prazo.
Um sinal de compra é gerado quando o preço se rompe abaixo da baixa de curto prazo e abaixo da baixa de curto prazo.
Um sinal de venda é gerado quando o preço ultrapassa a alta de curto prazo e a alta de curto prazo.
Stop loss e take profit são definidos para controlar os riscos.
Ao identificar as rupturas dos níveis-chave, pode-se detectar de forma eficaz novas tendências emergentes.
II. Vantagens da Estratégia
As principais vantagens são:
Em primeiro lugar, as regras de fuga são simples e fáceis de aplicar.
Em segundo lugar, as configurações de stop loss e take profit controlam diretamente os riscos comerciais.
Por último, podem ser definidos intervalos de tempo de backtest para testes de diferentes períodos.
III. Deficiências potenciais
No entanto, existem alguns problemas potenciais:
Em primeiro lugar, as rupturas por si só podem gerar sinais falsos, não conseguindo determinar as tendências com precisão.
Em segundo lugar, a falta de regulação dos parâmetros leva a uma estabilidade limitada.
Por último, os níveis de stop loss e take profit exigem otimização para o risco-recompensa.
IV. Resumo
Em resumo, este artigo explicou uma estratégia quantitativa de negociação de breakout baseada em altas e baixas de oscilação de preços. O objetivo é descobrir oportunidades através de quebras de níveis-chave.
/*backtest start: 2023-08-15 00:00:00 end: 2023-09-14 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("JetzGiantz Strategy", overlay=true) // Getting inputs StopTgt = input(10, minval=1, title="Stop Loss $") ProfTgt = input(100, minval=1, title="Profit Target $") //Filter backtest month and year startMonth = input(1, minval=1, maxval=12, title="Month") startYear = input(2021, minval=2000, maxval=2100, title="Year") //Filter funtion inputs //Calculations Low3 = lowest(low,3) Low50 = lowest(low,50) High3 = highest(high,3) High50 = highest(high,50) if (month>=startMonth and year>=startYear) if(close[1] < open[1] and close > open and close > open[1] and (Low3 < Low50[1] or Low3 < Low50[2] or Low3 < Low50[3])) strategy.order("BuyEntry", strategy.long, when=strategy.position_size == 0, comment="BuyEntry") if (month>=startMonth and year>=startYear) if(close[1] > open[1] and close < open and close > open[1] and (High3 > High50[1] or High3 > High50[2] or High3 > High50[3])) strategy.order("SellEntry", strategy.short, when=strategy.position_size == 0, comment="SellEntry") strategy.exit("bracket", loss=StopTgt, profit=ProfTgt, when=strategy.position_size > 0) strategy.exit("bracket", loss=StopTgt, profit=ProfTgt, when=strategy.position_size < 0)