Estratégia de duplo indicador

Autora:ChaoZhang, Data: 2023-11-02 15:30:54
Tags:

img

Resumo

A Estratégia de Indicador Duplo é uma estratégia quantitativa de negociação que combina os indicadores de Média Móvel (SMA) e Média Móvel (MACD).

Estratégia lógica

O núcleo da Estratégia de Indicadores Duplos baseia-se em dois indicadores: SMA e MACD. A estratégia adota SMAs de 7, 15 e 60 períodos, bem como a configuração padrão do parâmetro MACD 12/26/9.

Quando a SMA de 7 períodos está acima das SMA de 15 e 60 períodos e a SMA de 15 períodos está acima da SMA de 60 períodos, é considerada um sinal de alta do indicador SMA, com uma probabilidade de 0,5.

Ao mesmo tempo, quando a linha MACD cruza acima da linha de sinal, ela é considerada um sinal de alta do indicador MACD, também com uma probabilidade de 0,5.

Quando as probabilidades de sinal de alta dos dois indicadores somarem 1, será aberta uma posição longa.

Por outro lado, quando a SMA de 7 períodos cai abaixo da SMA de 15 e 60 períodos, e a SMA de 15 períodos está abaixo da SMA de 60 períodos, é considerada um sinal de baixa do indicador SMA, com uma probabilidade de 0,5.

Enquanto isso, quando a linha MACD cruza abaixo da linha de sinal, ela é considerada um sinal de baixa do indicador MACD, com uma probabilidade de 0,5.

Quando a soma das probabilidades de sinalização de baixa dos dois indicadores for igual a 1, será aberta uma posição curta.

Além disso, a estratégia adota dois pontos de lucro diferentes: fechar 50% da posição quando o preço sobe ou desce 9%, e fechar a posição restante quando o preço sobe ou desce 21%.

Se ocorrer um sinal oposto à posição atual, a posição atual será fechada primeiro antes de abrir uma nova posição com base no novo sinal.

Análise das vantagens

A maior vantagem da Estratégia de Indicador Duplo é que utiliza os pontos fortes de ambos os indicadores SMA e MACD. O SMA pode efetivamente rastrear mudanças na tendência de preços e filtrar o ruído do mercado, enquanto o MACD pode identificar oportunidades de reversão de tendência de curto prazo. Combinando os dois, pode melhorar a confiabilidade dos sinais de negociação.

Além disso, a adopção de SMAs com diferentes parâmetros ajuda a discernir tendências de longo a médio prazo, enquanto a estratégia de take profit bloqueia lucros parciais e controla os riscos.

Análise de riscos

Alguns riscos potenciais da Estratégia de Indicadores Duplos precisam ser notados. Como depende apenas de indicadores técnicos, podem ocorrer sinais incorretos. Além disso, configurações incorretas de lucro podem levar a uma saída prematura, perdendo as principais tendências.

A estratégia pode ser otimizada ajustando os parâmetros do período SMA ou incorporando indicadores de filtragem adicionais para garantir sinais mais confiáveis.

Orientações de otimização

Alguns aspectos da Estratégia de Indicadores Dual podem ser melhorados:

  1. Teste adicionando outros indicadores técnicos como RSI, Bandas de Bollinger para filtragem de múltiplos indicadores.

  2. Tente algoritmos de aprendizagem de máquina para construir modelos de julgamento de sinais usando múltiplas variáveis.

  3. Realizar ajustes de parâmetros com base em diferentes produtos e prazos.

  4. Incorporar stop loss para controlar estritamente a perda de uma única transação.

  5. Otimizar a estratégia de lucro para suportar tendências sustentadas.

Através de backtesting e otimização sistemáticas, a estabilidade e a rentabilidade da estratégia podem ser continuamente melhoradas.

Conclusão

A Estratégia de Indicador Duplo combina os pontos fortes da SMA e do MACD para melhorar a precisão do sinal enquanto controla efetivamente os riscos. Com forte potencial de otimização e versatilidade, é uma estratégia de negociação quantitativa robusta e adaptativa.


/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SMA & MACD Dual Direction Strategy", shorttitle="SMDDS", overlay=true, initial_capital=1000)

// SMA settings
sma7_length = input.int(7, title="7 Candle SMA Length")
sma15_length = input.int(15, title="15 Candle SMA Length")
sma60_length = input.int(60, title="60 Candle SMA Length")

// MACD settings
fast_length = input.int(12, title="Fast Length")
slow_length = input.int(26, title="Slow Length")
signal_length = input.int(9, title="Signal Length")

// Leverage
leverage = 10

// Calculate the SMAs
sma7 = ta.sma(close, sma7_length)
sma15 = ta.sma(close, sma15_length)
sma60 = ta.sma(close, sma60_length)

// Calculate the MACD line and Signal line
[macdLine, signalLine, _] = ta.macd(close, fast_length, slow_length, signal_length)

// SMA-based Probabilities
smaBullishProb = (sma7 > sma15 and sma7 > sma60 and sma15 > sma60) ? 0.5 : 0.0
smaBearishProb = (sma7 < sma15 and sma7 < sma60 and sma15 < sma60) ? 0.5 : 0.0

// MACD-based Probabilities
macdBullishProb = ta.crossover(macdLine, signalLine) ? 0.5 : 0.0
macdBearishProb = ta.crossunder(macdLine, signalLine) ? 0.5 : 0.0

// Combined Probabilities
combinedBullishProb = smaBullishProb + macdBullishProb
combinedBearishProb = smaBearishProb + macdBearishProb

// Trade logic using `if` conditions
if combinedBullishProb == 1.0
    strategy.close("Short")
    strategy.entry("Long", strategy.long, qty=leverage)

if combinedBearishProb == 1.0
    strategy.close("Long")
    strategy.entry("Short", strategy.short, qty=leverage)

// Exit conditions based on profit points
longTargetProfit1 = close * 1.09
longTargetProfit2 = close * 1.21

shortTargetProfit1 = close * 0.91
shortTargetProfit2 = close * 0.79

strategy.exit("Long TP1", from_entry="Long", limit=longTargetProfit1, qty_percent=0.5)
strategy.exit("Long TP2", from_entry="Long", limit=longTargetProfit2)

strategy.exit("Short TP1", from_entry="Short", limit=shortTargetProfit1, qty_percent=0.5)
strategy.exit("Short TP2", from_entry="Short", limit=shortTargetProfit2)

// Visualization (optional)
plot(sma7, color=color.green, title="7 Candle SMA")
plot(sma15, color=color.blue, title="15 Candle SMA")
plot(sma60, color=color.red, title="60 Candle SMA")
hline(0, "Zero Line", color=color.gray)
plot(macdLine - signalLine, color=color.blue, title="MACD Histogram")


Mais.