A estratégia de EMA de múltiplos indicadores é uma estratégia de acompanhamento de tendências que utiliza uma combinação de vários indicadores, como EMA, MACD, Oscillator, RSI, Stochastic e Bollinger Bands. A estratégia calcula o sinal de combinação de vários indicadores para determinar se a tendência atual está em alta ou em baixa, gerando sinais de compra e venda.
A estratégia começa por calcular os seguintes indicadores:
EMA: calcula a média móvel indexada de um determinado período.
MACD: Calcule a linha DIF e a linha DEA do indicador MACD.
Oscilador: calcula a diferença entre o preço de fechamento e o preço de abertura de um determinado período.
RSI: Índice de força e fraqueza relativa de um determinado período.
Stochastic: calcula os valores dos indicadores aleatórios K e D de determinados parâmetros.
Bandas de Bollinger: Bollinger Bands de um determinado período de tempo, com trajectórias ascendentes, intermediárias e descendentes.
Em seguida, atribui-lhes valores diferentes de acordo com o estado atual desses indicadores. Por exemplo, quando o Stochastic é menor que 20, o valor é 2; quando o RSI é maior que 80, o valor é -2.
Depois de somar os valores de todos os indicadores, calcula-se um trigger de sinal composto. Se o trigger for maior do que 7, produz um sinal de compra; se o trigger for menor do que 7, produz um sinal de venda.
Ao calcular sinais combinados de vários indicadores, é possível determinar com maior precisão a direção da tendência atual, resultando em sinais de negociação mais confiáveis.
A maior vantagem dessa estratégia de múltiplos indicadores é a capacidade de integrar vários indicadores para um julgamento mais abrangente e preciso, evitando os sinais errados causados por um único indicador.
A estratégia é baseada em um conjunto de estratégias que, em termos específicos, se traduzem em:
O uso integrado de vários indicadores é mais confiável para avaliar as tendências. Um único indicador pode gerar sinais enganosos, enquanto vários indicadores podem se verificar mutuamente, reduzindo os erros.
O MACD pode identificar o início de uma tendência, o RSI pode determinar se a tendência está exagerada, etc.
Indicadores com diferentes configurações de parâmetros podem capturar características de diferentes períodos. Por exemplo, EMA de período rápido e EMA de período lento.
Pode-se personalizar o peso de cada indicador. Para indicadores mais importantes, pode-se atribuir maior peso.
Otimizar a combinação de indicadores e a distribuição de pesos com base nos resultados do backtest para obter melhores resultados estratégicos.
Apesar de a estratégia usar vários indicadores para avaliar as tendências, existem os seguintes riscos:
A combinação de vários indicadores é inadequada, não permite o aproveitamento das vantagens de cada indicador ou gera conflitos de julgamento. É necessário entender o contexto de aplicação de cada indicador.
A distribuição de pesos não é razoável, não é possível expressar com precisão a importância de cada indicador. É necessário otimizar os pesos por meio de testes repetidos.
A configuração de parâmetros de um único ciclo pode não ser adequada.
Os pesos e parâmetros fixos dos indicadores não podem se adaptar às mudanças do mercado, sendo necessário introduzir mecanismos de ajuste dinâmico.
O tempo de parada de perda deve ser avaliado em combinação com outros métodos técnicos, caso haja um atraso no sinal indicador.
A combinação de múltiplos indicadores aumenta a complexidade da estratégia, requer suporte suficiente de dados históricos e dificuldade de otimização de parâmetros.
A estratégia pode ser otimizada de várias maneiras:
Teste mais tipos de indicadores para encontrar indicadores mais sensíveis ao cenário atual do mercado.
Optimizar os parâmetros de ciclo de cada indicador para que ele possa capturar diferentes níveis de características de tendência.
Optimizar a distribuição de peso entre os indicadores para que possa expressar com mais precisão a importância relativa de cada indicador.
Aumentar o mecanismo de ajuste dinâmico, otimizar parâmetros e pesos em tempo real, adaptar-se às mudanças do mercado.
Combinado com uma estratégia de stop loss, configure um ponto de stop loss razoável para reduzir o risco de perda.
Aumentar a verificação de múltiplos ciclos de tempo para evitar otimização excessiva de um único ciclo.
Otimizar por etapas e otimizar por combinações para encontrar a combinação ideal de parâmetros.
A adição de métodos avançados, como o aprendizado de máquina, para um ajuste de peso de indicadores mais inteligente.
Otimizar a lógica de compra e venda da estratégia, evitando transações muito frequentes, enquanto mantém o controle da situação.
A estratégia de EMA de indicadores múltiplos utiliza a combinação de vários indicadores, como EMA, MACD e RSI, para determinar a direção da tendência atual do mercado e produzir sinais de negociação. Em comparação com a estratégia de indicadores únicos, a estratégia pode analisar o mercado de forma mais abrangente e reduzir a produção de sinais errados.
/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ally17
//@version=4
// strategy("ELIA MULTI STRATEGY",overlay=true,initial_capital=1000, default_qty_type=strategy.percent_of_equity, commission_type=strategy.commission.percent, commission_value=0.00, default_qty_value=25)
//INPUT
start = timestamp(input(2021, "start year"), 1, 1, 00, 00)
end = timestamp(input(9999, "end year"), 1, 1, 00, 00)
emalen=input(80, title="Ema Len")
macdfast=input(12, title="Macd Fast Len")
macdslow=input(26, title="Macd Fast Len")
macdsig=input(12, title="Macd Signal Len")
occlen=input(15, title="Occ Len")
rsilen=input(2, title="Rsi Len")
stochklen=input(11, title="Stk K Len")
stochdlen=input(3, title="Stk D Len")
stochlen=input(3, title="Stk Smooth Len")
bblength = input(10, minval=1, title="BB Len")
mult = input(2.0, minval=0.001, maxval=50, title="BB Std Dev")
momlen=input(10, title="Mom Len")
//CALCOLI
var trigger = 0.0
var emavar = 0.0
var macdvar = 0.0
var occvar = 0.0
var rsivar = 0.0
var stochvar = 0.0
var bbvar = 0.0
var donvar =0.0
ema = ema(close,emalen)
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9) // MACD
occ = ema(close,occlen) - ema(open,occlen)
rsi = rsi(close, rsilen) // RSI
stoch = sma(stoch(close, high, low, stochklen), stochlen) // Stoch
basis = sma(close, bblength)
dev = mult * stdev(close, bblength)
upper = basis + dev
lower = basis - dev
moment = mom(close, momlen) // Momentum
Obv = obv // OBV
//PLOT
//STRATEGIA
emavar := (close>ema)? 3 : -3
macdvar := (macdLine>signalLine)? 3 : -3
occvar := (occ>0)? 3 : -3
rsivar := (rsi<20)? 2 : (rsi>50 and rsi<80)? 1 : (rsi>80)? -2 : (rsi<50 and rsi>20)? -1 : 0
stochvar := (stoch<20)? 2 : (stoch>80)? -2 : 0
bbvar := (close<lower)? 2 : (close>upper)? -2 : 0
trigger := emavar+macdvar+occvar+rsivar+stochvar+bbvar
longcondition = trigger>=7
closelong = trigger<3
shortcondition = trigger<=-7
closeshort = trigger >-3
trendcolor = longcondition ? color.green : shortcondition? color.red : (trigger>3 and trigger<7)? #A2E1BF : (trigger<-3 and trigger>-7)? #E19997 : na
bgcolor(trendcolor, transp=80)
if time > start and time < end
if longcondition
strategy.entry("LONG", long=strategy.long)
if closelong
strategy.close("LONG", comment="CLOSE LONG")
if time > start and time < end
if shortcondition
strategy.entry("SHORT", long=strategy.short)
if closeshort
strategy.close("SHORT", comment="CLOSE SHORT")
//plotshape(longcondition, color=color.green, text="L", size=size.small, style=shape.triangledown)
//plotshape(shortcondition, color=color.red, "S"(trigger), size=size.small, style=shape.triangledown)
//plotshape(closelong, color=color.purple, text="LC", size=size.small, style=shape.triangledown)
//plotshape(closeshort, color=color.purple, text="SC", size=size.small, style=shape.triangledown)