
Esta estratégia utiliza o RSI para determinar o momento de compra e o mecanismo de stop loss ATR, que é uma estratégia de acompanhamento de tendências. Determina o ponto de reversão da tendência do mercado através do cruzamento de diferentes indicadores RSI de períodos, combinados com o preço de liquidação para determinar o filtro de fazer mais tempo de folga. O mecanismo de stop loss controla eficazmente o risco e bloqueia o lucro.
A estratégia usa a técnica de suavização do SMA para calcular a média móvel de 26 ciclos do índice como uma linha de referência para o julgamento de múltiplos mercados. Em seguida, calcula-se o valor de 4 ciclos do indicador RSI, quando ele atravessa a zona de supera venda 30 para baixo, e acredita-se que a tendência pode voltar para cima. Nesse momento, a nova alta do parâmetro shortdays pode romper a última alta do parâmetro longdays, indicando uma tendência de curto prazo.
Após a entrada, use o múltiplo do indicador ATR como um limite de queda, com um determinado percentual de parada no ponto de alta do preço de fechamento.
A estratégia tem as seguintes vantagens:
O indicador RSI é usado para determinar o ponto de reversão e tem uma melhor capacidade de agarrar o tempo.
Aplicação de novos mecanismos de alta e baixa para evitar sinais errados.
O ATR usa o Stop Loss para rastrear automaticamente os melhores pontos de saída.
A configuração dos parâmetros é flexível e pode ser ajustada para o nível ideal.
A estratégia é clara e compreensível, com uma forte estabilidade.
A estratégia também apresenta os seguintes riscos:
O indicador RSI pode emitir sinais errados, causando o tempo de entrada inadequado. Você pode ajustar os parâmetros do RSI adequadamente ou adicionar filtros em outros indicadores.
A amplitude de suspensão ATR pode ser muito grande ou muito pequena para bloquear o lucro máximo. Uma combinação de parâmetros mais eficiente pode ser testada.
O ponto de parada está muito próximo e pode ser atingido. A distância de parada pode ser liberada de forma apropriada.
Os dados de retrospectiva são insuficientes, podendo ser uma estimativa exagerada da taxa de retorno da estratégia. Deve-se aumentar o período de retrospectiva e o teste do ambiente de mercado.
A estratégia pode ser otimizada em:
Teste para otimizar os parâmetros do RSI e o parâmetro do parâmetro do parâmetro do parâmetro para encontrar a melhor combinação de parâmetros.
Adicionar outros indicadores de julgamento para aumentar a precisão da estratégia, como MACD, KD, etc.
Optimizar o mecanismo de parada de perdas, ajustando-se dinamicamente à variação do ATR.
Teste o desempenho em diferentes variedades de negociação. Escolha variedades com boa liquidez e alta volatilidade.
Comparar o desempenho de diferentes tipos de stop loss, como stop loss proporcional, stop loss móvel, etc.
A estratégia opera de forma clara e fluida, a seleção de indicadores e a configuração de parâmetros são razoáveis e têm uma forte praticidade. Ainda há espaço para melhorias adicionais através da otimização de parâmetros e melhorias no mecanismo.
/*backtest
start: 2023-02-05 00:00:00
end: 2024-01-18 05:20:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//A translation from info found at http://backtestwizard.com/swing-trading-system-for-stocks/
strategy("Swing Trading System RSI", overlay=true)
source = close[1]
longperiod = input(26,"long week",minval=2,maxval=500,step=1)
s = request.security(syminfo.tickerid, "W", sma(close[1], longperiod)) // 1 Day
plot(s)
shortdays = input(21,"short days high period",minval=2,maxval=500,step=1)
longdays = input(50,"long days high period",minval=2,maxval=500,step=1)
rsiperiod = input(4,"rsi period",minval=2,maxval=500,step=1)
rsithresh = input(30,"rsi thresh",minval=2,maxval=500,step=1)
highcheck = highest(source,shortdays) == highest(source,longdays)
rsicheck = crossunder(rsi(source,rsiperiod),rsithresh)
longCondition = (highcheck) and (rsicheck) and source > s
if (longCondition)
strategy.entry("My Long Entry Id", strategy.long)
profittarget = input(3,"profit target",minval=2,maxval=500,step=1)
stoploss = input(2,"stop target",minval=2,maxval=500,step=1)
exitCondition1 = source > strategy.position_avg_price + (atr(50) * profittarget)
exitCondition2 = source < strategy.position_avg_price - (atr(50) * stoploss)
if (exitCondition1)
strategy.close_all()
if (exitCondition2)
strategy.close_all()