
Esta estratégia é um sistema de negociação de acompanhamento de tendências integrado que combina um gráfico de equilíbrio em primeira vista (Ichimoku Cloud), um indicador de força relativa (RSI) e um indicador de dispersão de convergência de médias móveis (MACD). A estratégia usa o gráfico da nuvem para determinar a direção da tendência geral, usa o RSI para confirmar a quantidade de movimento de preços e, em combinação com o cruzamento das linhas de sinais MACD, para determinar o momento de negociação específico, permitindo uma análise de mercado e decisões de negociação em vários níveis.
A lógica central da estratégia baseia-se na sinergia de três indicadores técnicos:
As regras de negociação da estratégia são as seguintes: São várias as condições:
Condições de vaga:
Risco de reversão de tendência: Stop Loss contínuos podem ocorrer em pontos de virada de tendência. Recomendação: pode ser adicionado um requisito de período de tempo para a confirmação de tendências.
Risco de mercado oscilante: pode haver negociações frequentes em mercados com oscilações intercalares. Recomendação: Aumentar as condições de filtragem do sinal, como a exigência de uma amplitude de oscilação mínima.
Risco de atraso: todos os indicadores apresentam atraso e podem perder o melhor ponto de entrada. Recomendação: pode ser combinado com indicadores mais rápidos ou análise de comportamento de preços.
Sensibilidade de parâmetros: configurações erradas de parâmetros podem causar um mau desempenho da estratégia. Recomendação: Optimização de feedback é necessária para determinar a combinação de parâmetros apropriada.
A estratégia combina o gráfico de equilíbrio, o RSI e o MACD, três indicadores técnicos clássicos, para construir um sistema de negociação completo de acompanhamento de tendências. A principal vantagem da estratégia é o mecanismo de confirmação múltipla e as regras de negociação claras, mas também é necessário prestar atenção aos riscos trazidos pelos pontos de tendência e oscilação do mercado. A estabilidade e a lucratividade da estratégia devem ser ainda mais aumentadas através do ajuste de parâmetros dinâmicos, filtragem do ambiente de mercado e otimização da gestão de risco.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Ichimoku + RSI + MACD Strategy", overlay=true)
// Ichimoku Cloud parameters
tenkanPeriod = 9
kijunPeriod = 26
senkouSpanBPeriod = 52
displacement = 26
// RSI parameters
rsiLength = 14
rsiOverbought = 70
rsiOversold = 30
// MACD parameters
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
// Ichimoku calculations
tenkanSen = (ta.highest(high, tenkanPeriod) + ta.lowest(low, tenkanPeriod)) / 2
kijunSen = (ta.highest(high, kijunPeriod) + ta.lowest(low, kijunPeriod)) / 2
senkouSpanA = (tenkanSen + kijunSen) / 2
senkouSpanB = (ta.highest(high, senkouSpanBPeriod) + ta.lowest(low, senkouSpanBPeriod)) / 2
chikouSpan = close[displacement]
// Plotting Ichimoku Cloud
plot(tenkanSen, color=color.red, title="Tenkan-sen")
plot(kijunSen, color=color.blue, title="Kijun-sen")
plot(senkouSpanA[displacement], color=color.green, title="Senkou Span A")
plot(senkouSpanB[displacement], color=color.red, title="Senkou Span B")
fill(plot(senkouSpanA[displacement]), plot(senkouSpanB[displacement]), color=color.new(color.green, 90), title="Cloud")
// RSI calculation
rsi = ta.rsi(close, rsiLength)
// Long entry condition
longCondition = (close > senkouSpanA) and (close > senkouSpanB) and (rsi > rsiOversold) and (ta.crossover(macdLine, signalLine))
if (longCondition)
strategy.entry("Long", strategy.long)
// Short entry condition
shortCondition = (close < senkouSpanA) and (close < senkouSpanB) and (rsi < rsiOverbought) and (ta.crossunder(macdLine, signalLine))
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit conditions
if (ta.crossunder(macdLine, signalLine) and strategy.position_size > 0)
strategy.close("Long")
if (ta.crossover(macdLine, signalLine) and strategy.position_size < 0)
strategy.close("Short")
// Plot RSI
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsi, color=color.blue, title="RSI")