A estratégia utiliza o indicador RSI para avaliar os excessos de compra e venda e, em combinação com o indicador Brin, cria um sinal de negociação. Quando o indicador RSI mostra um excesso de compra ou venda e, ao mesmo tempo, os preços se aproximam ou tocam o Brin para baixo, geram um sinal de compra e venda. A estratégia analisa a tendência integrada e o julgamento de oscilações, buscando oportunidades dinâmicas.
A estratégia é baseada em dois indicadores:
Calcule o RSI, um indicador relativamente forte e fraco em um determinado período, para determinar se ele está em uma zona de sobrecompra ou de sobrevenda com base em parâmetros predefinidos, como um limite superior de 40 para a zona de sobrecompra e um limite inferior de 45 para a zona de sobrevenda.
Calcule a faixa de Brin em um determinado período, formando um canal de preços através de suas trajetórias superiores e inferiores, descrevendo a amplitude das oscilações de preços.
Com base nisso, a estratégia estabelece as seguintes regras de negociação:
Quando o RSI atravessa 45 e entra na zona de oversold, e o preço atravessa a faixa de Brin para baixo, gerando um sinal de compra; Quando o RSI atravessa 40 e entra na zona de oversold, e o preço atravessa a faixa de Brin e entra em rota, gera um sinal de venda.
A estratégia combina o RSI com o indicador de Brinks, com as seguintes vantagens:
O RSI julga a situação de sobrecompra e a de sobrevenda, e o Blinker julga a direção da tendência dos preços, ambos complementando-se mutuamente.
A faixa de Brin pode ser usada como um posicionamento de stop loss para o controle de risco;
A configuração de parâmetros é simples, fácil de implementar e medir;
Pode ser otimizado para os parâmetros do RSI para determinar o melhor intervalo de sobrecompra e sobrevenda;
Pode-se escolher entre diferentes entradas de preço para adaptar-se a vários cenários de mercado.
A estratégia também apresenta alguns riscos:
O alargamento da faixa de Brin causou um atraso na expectativa de parada
Parâmetros de RSI mal definidos, erro de julgamento de intervalo de sobrevenda
Não é possível determinar com precisão o ponto de reversão da tendência e há risco de sinais perdidos.
Incapacidade de controlar efetivamente os prejuízos, com risco de suspensão de prejuízos por choques de mercado significativos
A estratégia pode ser melhorada em vários aspectos:
Optimizar os parâmetros do RSI para determinar os melhores intervalos de sobrecompra e sobrevenda
Optimizar os parâmetros de largura de banda de Brin para controlar o alcance de parada
Adicione outros indicadores para avaliar a reversão da tendência e evitar a perda de sinais
Algoritmos de aprendizagem de máquina para determinar quando comprar e vender
Utilização de diferentes conjuntos de parâmetros de acordo com diferentes cenários de mercado
Aumentar o mecanismo de parada dinâmica
Programa de otimização automática de parâmetros de desenvolvimento
Em resumo, a estratégia, através da combinação do RSI com o indicador de Brin, forma uma base de decisão de negociação mais estável. A lógica da estratégia é simples e clara, favorável ao controle de risco, mas há também um certo espaço para otimização.
/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 2h
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/
// © Mdemoio
//@version=4
strategy("Madri", shorttitle="Madri", overlay=true)
// Version 1.1
///////////// RSI
RSIlength = input(2,title="A")
RSIoverSold = 45
RSIoverBought = 40
price = close
vrsi = rsi(price, RSIlength)
///////////// Bollinger Bands
BBlength = input(150, minval=1,title="B")
BBmult = 2// input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation")
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
buyEntry = crossover(source, BBlower)
sellEntry = crossunder(source, BBupper)
///////////// Colors
//switch1=input(true, title="Enable Bar Color?")
//switch2=input(true, title="Enable Background Color?")
//TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) and BBbasis < BBbasis[1] ? red : RSIoverSold and (price[1] < BBlower and price > BBlower) and BBbasis > BBbasis[1] ? green : na
//barcolor(switch1?TrendColor:na)
//bgcolor(switch2?TrendColor:na,transp=50)
///////////// RSI + Bollinger Bands Strategy
if (not na(vrsi))
if (crossover(vrsi, RSIoverSold) and crossover(source, BBlower))
strategy.entry("RSI_BB_L", strategy.long, stop=BBlower, comment="Buy")
else
strategy.cancel(id="RSI_BB_L")
if (crossunder(vrsi, RSIoverBought) and crossunder(source, BBupper))
strategy.entry("RSI_BB_S", strategy.short, stop=BBupper, comment="Sell")
else
strategy.cancel(id="RSI_BB_S")
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)