Estratégia de rompimento do momentum estocástico


Data de criação: 2023-10-24 16:35:24 última modificação: 2023-10-24 16:35:24
cópia: 0 Cliques: 488
1
focar em
1166
Seguidores

Estratégia de rompimento do momentum estocástico

Visão geral

A estratégia de ruptura de dinâmica utiliza principalmente o indicador do oscilador estocástico para determinar a direção da tendência do mercado, combinado com o indicador ADX para determinar a tendência forte e fraca, formando um sinal de negociação. A estratégia é principalmente aplicável à negociação de tendências de linha média e longa.

Princípio da estratégia

A estratégia baseia-se em dois indicadores técnicos:

  1. Indicador de oscilador estocástico: usado para determinar a direção da tendência do mercado. O valor do oscilador estocástico é de 0 a 100, quando o período é de 14, o valor entre 45 e 55 significa que não há uma tendência clara. O estocástico acima de 55 é um sinal de otimismo, abaixo de 45 é um sinal de baixa.

  2. Indicador ADX: usado para determinar a tendência forte. ADX abaixo de 20 indica tendência fraca.

A estratégia começa com o valor do oscilador estocástico para determinar se há uma clara tendência de alta ou baixa no mercado. Quando o estocástico está acima de 55, há uma tendência de baixa; Quando o estocástico está abaixo de 45, há uma tendência de baixa.

A estratégia então detecta se o ADX está acima de 20, e se o ADX está acima de 20, a tendência é forte e pode ser negociada. Se o ADX está abaixo de 20, a tendência não é clara o suficiente, então a estratégia não produzirá um sinal de negociação.

A avaliação do oscilador estocástico e do ADX combinados indica que uma estratégia produz um sinal de compra/venda quando as duas seguintes condições são simultaneamente satisfeitas:

  1. Stochastic acima de 55, indicando uma tendência otimista
  2. ADX acima de 20, indicando uma forte tendência de baixa

A estratégia produz um sinal de venda quando as seguintes duas condições são simultaneamente satisfeitas:

  1. Stochastic abaixo de 45, indicando uma tendência de baixa
  2. ADX acima de 20, indicando forte tendência de baixa

Com essas regras de julgamento, a estratégia forma uma estratégia de negociação de linha média e longa orientada por tendências.

Vantagens estratégicas

A estratégia tem as seguintes vantagens:

  1. Capturar tendências de linha longa e média: em combinação com o Stochastic e o ADX, é possível determinar com eficácia a direção e a intensidade das tendências de linha longa do mercado, capturando as principais tendências.

  2. Controle de reversão: apenas quando a tendência é visível, é possível controlar efetivamente a reversão causada por transações irreversíveis.

  3. Espaço de otimização de parâmetros: Os ciclos estocásticos e os ciclos ADX podem ser otimizados e os parâmetros podem ser ajustados para diferentes mercados.

  4. Simples e intuitivo: a lógica geral da estratégia é simples e clara, com dois indicadores técnicos comuns e intuitivos.

  5. universality:The strategy can be applied to different markets with parameter tuning.

Risco estratégico

A estratégia também apresenta alguns riscos:

  1. Perder pontos de ruptura: Stochastic e ADX são indicadores de tendência, que podem perder potenciais pontos de ruptura de tendência e oportunidades de ruptura de negociação precoce.

  2. Risco de reversão de tendência: no final da tendência, o Stochastic e o ADX podem julgar erroneamente que a tendência continua e perder a oportunidade de sair em tempo hábil, aumentando os prejuízos.

  3. Dificuldade de otimização de parâmetros: Os parâmetros estocásticos e ADX precisam ser otimizados para diferentes mercados, existindo uma certa dificuldade.

  4. Whipsaws: Em mercados sem uma clara tendência, a estratégia pode gerar vários sinais de negociação inválidos.

  5. Divergence:When the price trend conflicts with the Stochastic oscillator trend, divergence emerges, which may lead to losing trades.

O risco pode ser reduzido através das seguintes medidas:

  1. Em combinação com outros indicadores para avaliar tendências locais, descobriu pontos de ruptura potenciais.

  2. Aumentar os sinais de reversão de tendência e sair em tempo hábil quando a tendência é visível.

  3. Parâmetros de otimização automática por meio de métodos como aprendizado de máquina.

  4. Increase the ADX threshold to filter out weak trend signals in ranging markets.

  5. Apply additional indicators to confirm the Stochastic signals and avoid divergence trades.

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

A estratégia pode ser melhorada em vários aspectos:

  1. Optimizar os parâmetros do Stochastic: ajustar os parâmetros do ciclo K, ciclo D, etc., otimizar o posicionamento do ponto de compra e venda.

  2. Optimizar os parâmetros do ADX: ajustar o ciclo do ADX para determinar os parâmetros que melhor determinam a tendência forte ou fraca.

  3. Aumentar o sinal de reversão de tendência: aumentar a posição na zona de sobrevenda do Stochastic e definir um stop loss.

  4. Combinação com outros indicadores: Combinação com indicadores como RSI, MACD, para determinar quando comprar ou vender.

  5. Aprendizagem de máquina: Aprenda com a máquina para obter o melhor conjunto de parâmetros.

  6. Aumentar a estratégia de stop loss: definir um stop loss móvel ou uma estratégia de stop loss de transição, para controlar a perda individual.

  7. Trailong stop loss: Add trailing stop loss to lock in profits as the trend extends.

  8. Money management: Optimize the risk management by adjusting position sizing based on ADX strength.

Resumir

Em resumo, a estratégia de quebra de dinâmica é orientada por tendência, usando a direção da tendência do Stochastic e a força da tendência do ADX para formar uma estratégia de negociação de linha média e longa. A vantagem da estratégia é capturar a tendência, controlar o recuo, ser simples e intuitiva. A desvantagem é que é possível perder o ponto de ruptura precoce e o risco de reversão da tendência.

Código-fonte da estratégia
/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Created by Bitcoinduke
//Original Creator is Jake Bernstein 
// Link: https://school.stockcharts.com/doku.php?id=trading_strategies:stochastic_pop_drop
// Tested: XBTUSD 3h | BTCPERP FTX 3h
//@version=4
// strategy(shorttitle="Stochastic Pop and Drop", title="Pop and Drop", overlay=false, 
//      calc_on_every_tick=false, pyramiding=0, default_qty_type=strategy.cash, 
//      default_qty_value=1000, currency=currency.USD, initial_capital=1000,
//      commission_type=strategy.commission.percent, commission_value=0.075)

upper_threshold_buy = input(55, minval=50, title="Buy Entry/Exit Line")
lower_threshold_sell = input(45, maxval=50, title="Sell Entry/Exit Line")

oscillator_length = input(14, minval=1, title="Stochastic Length - Default 14")
sma_length = input(2, minval=1, title="SMA Length - 3-day (3 by default) simple moving average of stoch")

stoch_oscillator = sma(stoch(close, high, low, oscillator_length), sma_length)

//Upper and Lower Entry Lines
upper_line = upper_threshold_buy
lower_line = lower_threshold_sell

stoch_color = stoch_oscillator >= upper_line ? green : stoch_oscillator <= lower_line ? red : purple

//Charts
plot(stoch_oscillator, title="Stochastic", style=histogram, linewidth=4, color=stoch_color)
upper_threshold = plot(upper_line, title="Upper Line", style=line, linewidth=4, color=green)
lower_threshold = plot(lower_line, title="Lower Line", style=line, linewidth=4, color=red)

// Strategy Logic
LongSignal = stoch_oscillator >= upper_line and not (stoch_oscillator > lower_line and stoch_oscillator < upper_line) ? true : false
ShortSignal = stoch_oscillator <= lower_line and not (stoch_oscillator > lower_line and stoch_oscillator < upper_line) ? true : false

strategy.entry("POP_Short", strategy.short, when=ShortSignal)
strategy.entry("POP_Long", strategy.long, when=LongSignal)

// === Backtesting Dates === thanks to Trost

testPeriodSwitch = input(true, "Custom Backtesting Dates")
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, 0)
testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(5, "Backtest Stop Day")
testStopHour = input(0, "Backtest Stop Hour")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, testStopHour, 0)
testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
testPeriod_1 = testPeriod()
isPeriod = testPeriodSwitch == true ? testPeriod_1 : true
// === /END