A estratégia baseia-se em dois indicadores técnicos, o Bollinger Band e o RSI, e é usada para negociar oscilações de várias cabeças em uma tendência ascendente. A lógica estratégica é simples, mas eficaz: abrir mais quando o preço desce o Bollinger Band e o RSI está abaixo de 35 e abrir mais quando o RSI está acima de 69; e, ao mesmo tempo, configurar um stop-loss.
Computação do RSI: O RMA (Relative Moving Average) é usado para calcular o tamanho médio da alta e da queda dos preços, separadamente, e o RSI é obtido dividindo o tamanho da queda pelo tamanho total.
Cálculo da faixa de Bryn: usa o SMA (Simple Moving Average) para calcular a linha média do preço, além de subtrair o desvio padrão. A faixa de Bryn pode refletir dinamicamente os intervalos de flutuação do preço.
Quando o preço cai fora do trajeto do Brain e o RSI está abaixo de 35, julgue-o como sobrevendido, quando o preço está acima.
Pingo: Quando o RSI passa de 69, julga-se que é um overbought, quando estabiliza a posição de mais uma posição, bloqueando o lucro.
Stop-Loss: após a abertura de um negócio, o preço de stop-loss e stop-loss é calculado com base na percentagem definida pelo usuário.
A faixa de brinquedos reflete objetivamente os intervalos de funcionamento dos preços, ajustando-se em sincronia com o movimento dos preços, sem ser limitada por um limiar fixo.
O RSI pode refletir de forma mais intuitiva o contraste de forças mais vazias, mas também é relativamente objetivo e é frequentemente usado para determinar o supercomprador.
Usado em tendências ascendentes, é mais adequado para oscilação de negociação. Captura de rebote de preços através de trajetória de brains e RSI baixo, e paragem oportuna através de RSI alto, capaz de captar eficazmente o mercado de faixa de onda.
A configuração de stop-loss permite que o risco estratégico seja controlado e que os investidores possam ajustar os parâmetros com flexibilidade de acordo com suas preferências de risco.
A lógica estratégica e o código são relativamente simples, fáceis de entender e implementar, e os efeitos de retrospecção são mais estáveis.
Para os mercados turbulentos, o bracket e o RSI podem emitir mais sinais de negociação, levando a uma frequência de negociação excessiva e a um aumento dos custos de manutenção.
Indicadores individuais, como o RSI, são suscetíveis a variações de preços de curto prazo e produzem sinais enganosos. Portanto, os sinais do RSI são melhor combinados com movimentos de preços, etc. para análise.
A escolha dos parâmetros da faixa de brinquedos e do RSI tem um grande impacto no desempenho da estratégia, e diferentes mercados e variedades podem exigir parâmetros diferentes. Os usuários precisam fazer ajustes apropriados de acordo com a situação específica.
Em situações excepcionais, como eventos de emergência, o cinto de proteção e o RSI podem falhar. Se não houver outros meios de controle do vento, esse momento pode levar a um recuo maior da estratégia.
A introdução de outros indicadores técnicos, como a média móvel, pode ser considerada como um filtro, por exemplo, para abrir apenas quando o MA é multi-headed, aumentando a confiabilidade do sinal.
Os parâmetros do RSI podem ser otimizados para encontrar a combinação de parâmetros que melhor funcionam em cada variedade, em cada ciclo.
Pode-se fazer testes prospectivos com base em retrospectiva e fazer negociações simuladas, verificando adequadamente a eficácia e a estabilidade da estratégia antes do mercado real.
Pode-se controlar ainda mais o recuo estratégico através de métodos como gestão de posições, stop-loss e stop-loss dinâmicos, aumentando o lucro após o ajuste de risco.
A estratégia pode ser incorporada em um portfólio e usada em conjunto com outras estratégias para hedge, em vez de em isolamento, para aumentar a estabilidade do portfólio.
Este artigo apresenta uma estratégia de negociação de oscilação múltipla baseada em dois indicadores técnicos, o bracket e o RSI. A estratégia é usada para capturar os movimentos dos segmentos em tendências ascendentes. A lógica e a implementação são relativamente simples. A estratégia é usada para capturar os segmentos em tendências ascendentes.
/*backtest start: 2023-03-05 00:00:00 end: 2024-03-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Bollinger Band with RSI", shorttitle="BB&RSI") len = input(14, minval=1, title="Length") src = input(close, "Source", type = input.source) up = rma(max(change(src), 0), len) down = rma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) plot(rsi, "RSI", color=#8E1599) band1 = hline(69, "Upper Band", color=#C0C0C0) band0 = hline(31, "Lower Band", color=#C0C0C0) fill(band1, band0, color=#9915FF, transp=90, title="Background") length_bb = input(20,title="BB Length", minval=1) mult = input(2.0, minval=0.001, maxval=50, title="BB StdDev") basis = sma(src, length_bb) dev = mult * stdev(src, length_bb) upper = basis + dev lower = basis - dev offset = input(0, "BB Offset", type = input.integer, minval = -500, maxval = 500) Plot_PnL = input(title="Plot Cummulative PnL", type=input.bool, defval=false) Plot_Pos = input(title="Plot Current Position Size", type=input.bool, defval=false) long_tp_inp = input(10, title='Long Take Profit %', step=0.1)/100 long_sl_inp = input(25, title='Long Stop Loss %', step=0.1)/100 // Take profit/stop loss long_take_level = strategy.position_avg_price * (1 + long_tp_inp) long_stop_level = strategy.position_avg_price * (1 - long_sl_inp) entry_long = rsi < 35.58 and src < lower exit_long = rsi > 69 plotshape(entry_long, style=shape.labelup, color=color.green, location=location.bottom, text="L", textcolor=color.white, title="LONG_ORDER") plotshape(exit_long, style=shape.labeldown, color=color.red, location=location.top, text="S", textcolor=color.white, title="SHORT_ORDER") strategy.entry("Long",true,when=entry_long) strategy.exit("TP/SL","Long", limit=long_take_level, stop=long_stop_level) strategy.close("Long", when=exit_long, comment="Exit") plot(Plot_PnL ? strategy.equity-strategy.initial_capital : na, title="PnL", color=color.red) plot(Plot_Pos ? strategy.position_size : na, title="open_position", color=color.fuchsia)