Esta estratégia gera sinais de negociação com base no MACD do indicador RSI. Ele combina a capacidade do indicador RSI para julgar os níveis de sobrecompra e sobrevenda no mercado, bem como a vantagem do MACD na determinação da tendência do mercado e mudanças de momento, para projetar uma estratégia que utiliza vários indicadores para fornecer sinais de negociação.
A estratégia calcula primeiro o indicador RSI, em seguida, calcula o MACD com base no indicador RSI. O indicador RSI pode determinar as condições de sobrecompra e sobrevenda no mercado, enquanto o MACD capta mudanças na tendência e impulso do mercado.
Especificamente, a estratégia calcula primeiro o indicador RSI de 14 períodos. Em seguida, com base no RSI, o indicador MACD é calculado, incluindo EMAs de 12 e 26 períodos, bem como uma linha de sinal de 9 períodos. O histograma MACD é então calculado.
Quando o histograma do MACD cruza acima de 0, um sinal de compra é gerado. Quando o histograma do MACD cruza abaixo de 0, um sinal de venda é acionado. Desta forma, a estratégia utiliza o RSI para julgar os níveis de sobrecompra / sobrevenda, além de usar o MACD para determinar as mudanças de tendência e momento, para gerar sinais comerciais.
Esta estratégia combina os pontos fortes dos indicadores RSI e MACD, permitindo um julgamento mais abrangente das condições do mercado, resultando em sinais mais fiáveis.
Usar o RSI para julgar os níveis de sobrecompra/supervenda ajuda na seleção de ações e na prevenção de falsos breakouts.
O julgamento do MACD sobre tendências e mudanças de momento torna os sinais comerciais mais claros.
A combinação de RSI e MACD, com julgamentos baseados em múltiplos fatores, ajuda a filtrar sinais falsos.
As configurações dos parâmetros do RSI e do MACD afetam o desempenho da estratégia e exigem ajuste e otimização.
A combinação de múltiplos indicadores aumenta a complexidade da estratégia e a probabilidade de erros.
Os sinais de negociação do MACD podem estar atrasados e necessitam de ser complementados por outros indicadores.
Otimizar os parâmetros RSI e MACD para encontrar as melhores combinações de parâmetros.
Incorporar outros indicadores como KDJ, Bollinger Bands para formar um grupo de indicadores e melhorar a precisão do sinal.
Incorporar estratégias de stop loss para controlar a perda por transação.
Otimizar a lógica de entrada e saída para evitar sinais conflitantes.
Esta estratégia utiliza os pontos fortes combinados dos indicadores RSI e MACD para formar sinais comerciais, julgando os níveis de sobrecompra / sobrevenda, considerando também os fatores de tendência e impulso, filtrando efetivamente os falsos sinais e fornecendo sinais de qualidade.
/*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=3 strategy(title = "MACD of RSI", overlay = false) //////////////////////// RSI /////////////////////////// src = close, len = input(14, minval=1, title="Length") up = sma(max(change(src), 0), len) down = sma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) //////////////////////// RSI ////////////////////////// //////////////// MACD //////////////////////////// sourcemacd = rsi fastLength = input(12, minval=1), slowLength=input(26,minval=1) signalLength=input(9,minval=1) fastMA = ema(sourcemacd, fastLength) slowMA = ema(sourcemacd, slowLength) macd = fastMA - slowMA signal = ema(macd, signalLength) delta=macd-signal swap1 = delta>0?green:red plot(delta,color=swap1,style=columns,title='Histo',histbase=0,transp=20) p1 = plot(macd,color=blue,title='MACD Line') p2 = plot(signal,color=red,title='Signal') fill(p1, p2, color=blue) hline(0) /////////////////////////MACD ////////////////////////// // Conditions longCond = na sellCond = na longCond := crossover(delta,0) sellCond := crossunder(delta,0) monthfrom =input(6) monthuntil =input(12) dayfrom=input(1) dayuntil=input(31) if ( longCond ) strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY") else strategy.cancel(id="BUY") if ( sellCond ) strategy.close("BUY")