
A estratégia de duplo seguimento de equilíbrio é uma estratégia de negociação quantitativa baseada em indicadores de equilíbrio. A estratégia utiliza principalmente o cruzamento dourado e o cruzamento morto de médias móveis para emitir sinais de compra e venda.
A estratégia baseia-se em três indicadores técnicos:
Supertrend: é usado para determinar a direção da tendência principal do preço. Quando o indicador Supertrend muda de direção, é considerado um ponto de mudança na tendência do preço e emite um sinal de negociação.
Índice de Força Relativa (RSI): um indicador de convulsão usado para determinar se há sobrevenda ou sobrevenda. Esta estratégia emite um sinal de negociação quando o indicador de RSI mostra que o preço está sobrevendido ou sobrevendido em um curto prazo.
Indicador ADX (Average Directional Indicator): é usado para avaliar a força da tendência. Esta estratégia combina a força da tendência com o indicador ADX, que seleciona a entrada quando a tendência é mais forte.
Quando o indicador de Supertrend muda de direção, indica que a tendência de preços está sendo reversada; ao mesmo tempo, o indicador RSI mostra o fenômeno de sobrecompra e sobrevenda, indicando que a relação de oferta e demanda de curto prazo está mudando e o preço pode ser revertido; além disso, o indicador ADX mostra a força da tendência, o que oferece uma oportunidade para a entrada desta estratégia.
Usando um sistema de dupla equação, é possível monitorar de forma eficiente as mudanças na tendência dos preços, e o Profit pode lucrar com a tendência.
Combinado com o RSI, o indicador determina o fenômeno de sobrecompra e sobrevenda, evitando a perseguição de alta e baixa nos pontos de mudança de preço.
O indicador ADX avalia a força da tendência, permitindo que esta estratégia seja usada principalmente quando a tendência é mais forte, lucrando com a tendência maior.
Os parâmetros da estratégia foram selecionados de forma otimizada e tiveram um bom desempenho nos testes de comparação.
A estratégia de dupla linha média é, por si só, mais sensível às mudanças de preço e pode gerar mais sinais de negociação. A solução é ajustar adequadamente os parâmetros da linha média e reduzir a frequência de negociação.
O indicador RSI e o indicador ADX podem falhar. A solução é otimizar os parâmetros e ajustar o ciclo de cálculo do indicador.
Esta estratégia requer a escolha de uma estratégia de stop loss apropriada. A solução é definir um stop loss móvel ou um stop loss pendente razoável.
Optimizar a frequência de negociação. Pode-se tentar otimizar os parâmetros do sistema linear e ajustar a frequência de negociação.
Pode-se introduzir outros indicadores auxiliares. Por exemplo, introduzir o indicador de volume de transação, escolher a entrada no grande mercado único.
Pode ser combinado com algoritmos de aprendizagem de máquina para otimização de parâmetros. Usar algoritmos para prever o melhor conjunto de parâmetros.
Introdução de um mecanismo de parada de prejuízos. Configurar um stop loss móvel ou um stop loss pendente para controlar os prejuízos individuais.
Esta estratégia é uma estratégia de acompanhamento de dupla linha de equilíbrio, a ideia central é seguir o indicador de linha de equilíbrio para determinar a tendência do preço, e combinar o indicador RSI e o indicador ADX para escolher o momento de entrada. Sua vantagem é que pode operar de acordo com a tendência, entrar rapidamente no mercado quando o fenômeno de sobrecompra ocorre, e lucrar com a grande tendência. O risco da estratégia vem principalmente da grande sensibilidade às mudanças de preço, que pode surgir de negociações frequentes.
/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supertrend Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=120,
initial_capital=1000, margin_long=0.1)
atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step=0.01)
[_, direction] = ta.supertrend(factor, atrPeriod)
adxlen = input(7, title="ADX Smoothing")
dilen = input(7, title="DI Length")
dirmov(len) =>
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
truerange = ta.rma(ta.tr, len)
plus = fixnan(100 * ta.rma(plusDM, len) / truerange)
minus = fixnan(100 * ta.rma(minusDM, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
if ta.change(direction) < 0 and ta.rsi(close, 21) < 66 and ta.rsi(close, 3) > 80 and ta.rsi(close, 28) > 49 and sig > 20
strategy.entry("My Long Entry Id", strategy.long)
if ta.change(direction) > 0
strategy.close("My Long Entry Id") // Close long position
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)