Esta estratégia é uma estratégia de tendência baseada em indicadores OBV e CCI. Ele usa o indicador OBV para julgar a tendência do mercado e o fluxo de capital, e depois usa o indicador CCI para filtragem para gerar sinais de negociação. Quando ambos os indicadores OBV e CCI confirmam a tendência de alta atual, vá longo; quando ambos os indicadores confirmam a tendência de queda atual, vá curto.
A estratégia baseia-se principalmente em dois indicadores: OBV e CCI. O indicador OBV pode refletir o fluxo de capital no mercado. Quando o OBV é verde, significa que a tendência atual é a entrada de capital; quando o OBV é vermelho, significa que a tendência atual é a saída de capital. O indicador CCI é usado como um filtro. Ao definir um limiar, quando o CCI está acima do limiar, é considerado um mercado alcista; quando o CCI está abaixo do limiar, é considerado um mercado de baixa.
Para os sinais de entrada, se o valor OBV do último período for verde (entrada de capital) e o CCI estiver acima do limiar (em um mercado de alta), enquanto a linha OBV cruza acima da sua linha EMA, é gerado um sinal de compra.
Para os sinais de saída, se o valor OBV do último período for vermelho (saída de capital) e o CCI estiver abaixo do limiar (em um mercado de baixa), enquanto a linha OBV cruza abaixo da sua linha EMA, é gerado um sinal de venda.
Assim, julgando a tendência principal usando OBV, filtrando com o indicador CCI e combinando-os usando crossovers EMA para gerar sinais comerciais concretos, a estratégia realiza a tendência seguinte.
As principais vantagens desta estratégia são:
Utilizando o OBV para determinar o fluxo de capital do mercado e a direção da tendência, evitando interferências de ruído do mercado a curto prazo;
Aproveitamento do indicador CCI para filtragem, tornando os sinais de negociação mais fiáveis;
Utilização de crossovers da EMA para gerar pontos de negociação de concreto de alta qualidade;
As regras são claras e simples, fáceis de compreender e de aplicar.
Há também alguns riscos potenciais para esta estratégia:
Possibilidade de os indicadores OBV e CCI gerarem sinais errados;
Sinais de negociação frequentes, fáceis de exagerar;
Podem ficar presos durante as retrações;
Mal ajuste dos parâmetros leva a mau desempenho estratégico.
Para controlar esses riscos, podem ser aplicados métodos como otimização de parâmetros, ajuste da frequência de negociação, definição de stop loss e uso de filtros.
A estratégia pode ser otimizada a partir dos seguintes aspectos:
Avaliar o impacto de diferentes parâmetros e encontrar a combinação ideal de parâmetros;
Definir um limite de frequência de negociação para evitar o excesso de negociação;
Adicionar um mecanismo de stop loss para controlar as perdas de transações individuais;
Adicionar outros indicadores como filtros para melhorar a qualidade do sinal;
Otimizar a lógica de entrada e saída para tornar os sinais de negociação mais confiáveis.
Em resumo, esta é uma estratégia básica de tendência que pode rastrear efetivamente as tendências de preços e evitar interferências de ruído. Mas ainda há alguns riscos, exigindo melhorias como otimização de parâmetros, stop loss, controle de frequência de negociação, etc. Se os parâmetros forem definidos cientificamente, uma melhoria significativa do desempenho do backtest pode ser alcançada.
/*backtest start: 2023-02-14 00:00:00 end: 2024-02-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //author: SudeepBisht //@version=3 strategy("SB_CCI coded OBV Strategy", overlay=true) src = close length = input(20, minval=1, title="CCI Length") threshold=input(0, title="CCI threshold for OBV coding") lengthema=input(13, title="EMA length") obv(src) => cum(change(src) > 0 ? volume : change(src) < 0 ? -volume : 0*volume) o=obv(src) c=cci(src, length) col=c>=threshold?green:red chk=col==green?1:0 ema_line=ema(o,lengthema) //plot(o, color=c>=threshold?green:red, title="OBV_CCI coded", linewidth=2) //plot(ema(o,lengthema), color=orange, linewidth=2) if (not na(ema_line)) if (crossover(o, ema_line) and chk[1]==1) strategy.entry("RsiLE", strategy.long, comment="RsiLE") if (crossunder(o, ema_line) and chk[1]==0) strategy.entry("RsiSE", strategy.short, comment="RsiSE")