Estratégias de negociação automatizadas longas e curtas com base no indicador Supertrend


Data de criação: 2024-01-23 15:36:27 última modificação: 2024-01-23 15:36:27
cópia: 0 Cliques: 647
1
focar em
1617
Seguidores

Estratégias de negociação automatizadas longas e curtas com base no indicador Supertrend

Visão geral

Esta estratégia é chamada de estratégia de acompanhamento de tendências de ultrapassagem. A estratégia desenvolveu um sistema de negociação automático multi-espaço baseado em indicadores de ultrapassagem, que identifica automaticamente a direção da tendência e combina o indicador RSI com o indicador ADX para entrar e sair.

Princípio da estratégia

A estratégia baseia-se principalmente no indicador de tendência ultra para determinar a tendência atual dos preços. O indicador de tendência ultra, combinado com a média móvel e o ATR, pode determinar efetivamente a direção da tendência dos preços.

Concretamente, a estratégia primeiro calcula a direção do indicador de tendência mais alta, bem como o indicador RSI e o indicador ADX. Em caso de reversão para baixo na direção do indicador de tendência mais alta, e o indicador RSI mostrar uma diminuição de força múltipla, a entrada em baixa é executada. Quando o indicador de tendência mais alta volta para cima, a posição de baixa é executada.

Análise de vantagens

A maior vantagem da estratégia é que pode identificar automaticamente as tendências de preços e fazer entradas e saídas com base nas tendências, sem julgamento manual. Além disso, a combinação do indicador RSI com o indicador ADX pode filtrar efetivamente as brechas falsas e aumentar a probabilidade de lucro.

Análise de Riscos

O maior risco da estratégia é que o indicador de tendência ultrapassada não é muito preciso para determinar a tendência dos preços, podendo gerar sinais errados. Além disso, sem o mecanismo de parada de perda, os perdas individuais podem ser maiores.

Pode-se otimizar e reduzir o risco através da adaptação dos parâmetros do indicador de ultrapassagem da tendência e da adição de stop loss móvel.

Direção de otimização

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

  1. Optimizar os parâmetros do indicador de ultra-tendência para melhorar a precisão do julgamento

  2. Adesão a um mecanismo móvel de suspensão de perdas para controlar perdas individuais

  3. Filtragem com mais indicadores, como Brinks, KDJ, etc., para aumentar a probabilidade de lucro

  4. Desenvolver estratégias de entrada e saída semelhantes, para que sejam abrangentes

Resumir

Esta estratégia é, em geral, uma estratégia de negociação automatizada baseada em indicadores de tendência para determinar a tendência. A vantagem é o alto grau de automação, que pode determinar automaticamente a tendência entrar em campo. A desvantagem é a própria precisão do indicador de tendência.

Código-fonte da estratégia
/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supertrend Strategy", overlay=true)

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)
    adx

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")

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)