Esta estratégia combina níveis dinâmicos de suporte/resistência e o indicador de índice de força relativa (RSI). Estabelece limiares de sobrecompra/supervenda para o RSI e gera sinais de compra/venda quando o preço quebra os níveis dinâmicos de suporte/resistência enquanto o RSI não está na área de sobrecompra/supervenda.
1. Apoio/Resistência Dinâmico
Use a função de segurança para obter o preço de fechamento como níveis dinâmicos de suporte / resistência.
2. Indicador RSI
Calcular o ganho médio e a perda média durante um determinado período para gerar valores do RSI e determinar se o RSI atinge a área de sobrecompra/supervenda.
3. Sinais comerciais
Quando o preço quebra os níveis dinâmicos, se o RSI não estiver na área de sobrecompra/supervenda, são gerados sinais de compra/venda. Caso contrário, os sinais de quebra são ignorados.
4. Sinais de saída
Fechar posições quando o preço voltar ao nível dinâmico, ou quando o RSI retornar ao intervalo normal.
Usar suporte/resistência dinâmico para determinar a direção da tendência para uma taxa de ganho mais elevada.
O RSI filtra falhas e evita entradas falsas.
A combinação de tendência e indicador torna a estratégia adaptável às diferentes condições de mercado.
Regras simples e claras tornam-na fácil de aplicar.
Testes múltiplos de níveis dinâmicos podem gerar sinais falsos.
O RSI solo pode causar um erro de julgamento. Adicione outros indicadores para filtragem combinada.
A frequência de negociação no mercado de intervalo leva a custos mais elevados.
Otimizar os parâmetros com base em diferentes ativos.
Use aprendizagem de máquina para otimizar automaticamente os parâmetros do RSI.
Adicione uma estratégia stop loss/profit taking para garantir lucros e reduzir perdas.
Incorporar mais indicadores para filtragem combinada para melhorar a estabilidade.
Adicionar um indicador de volatilidade ao tamanho da posição mais baixo quando a volatilidade for baixa.
Otimizar o algoritmo de dimensionamento de posições para ajustar dinamicamente as posições para diferentes ambientes de mercado.
Esta estratégia combina o julgamento da tendência e a filtragem de indicadores para identificar efetivamente a reversão da tendência em torno de níveis-chave, controlando os riscos.
/*backtest start: 2022-10-26 00:00:00 end: 2023-11-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's Levels+RSI Strategy v1.0", shorttitle = "Levels+RSI str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %") tf = input('W', title = "timeframe 1") src = input(ohlc4, "Source") ap = input(true, defval = true, title = "antipila") cf = input(true, defval = true, title = "color filter") rsiperiod = input(7, defval = 7, minval = 2, maxval = 100, title = "RSI Period") rsilimit = input(30, defval = 30, minval = 1, maxval = 50, title = "RSI Limit") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Level level = request.security(syminfo.tickerid, tf, src[1]) plot(level, linewidth = 3, color = silver) //RSI uprsi = rma(max(change(close), 0), rsiperiod) dnrsi = rma(-min(change(close), 0), rsiperiod) rsi = dnrsi == 0 ? 100 : uprsi == 0 ? 0 : 100 - (100 / (1 + uprsi / dnrsi)) //Level Signals ls = close > level and ap == false ? true : low > level ? true : false up1 = strategy.position_size == 0 and ls and (close < open or cf == false) exit1 = close < level and ap == false ? true : high < level ? true : false //RSI Signal up2 = rsi < rsilimit and (close < open or cf == false) exit2 = rsi > rsilimit and ls == false //Trading lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1] if up1 or up2 strategy.entry("Long", strategy.long, needlong == false ? 0 : lot) if (exit1 and rsi > rsilimit) or exit2 strategy.close_all()