
Esta estratégia é conhecida como estratégia de negociação de moedas digitais baseada no Stochastic RSI. A estratégia combina o índice de força relativa (RSI) e o índice aleatório de média móvel suave (RSI) para identificar os sinais de compra e venda de moedas digitais.
O principal conceito da estratégia é: primeiro, calcular o valor do RSI, em seguida, com base no RSI, construir o indicador Stochastic RSI, ou seja, os valores K e D. Quando o valor de K passa pelo valor de D, gera um sinal de compra, quando o valor de K passa pelo valor de D, gera um sinal de venda. Para filtrar os sinais falsos, a estratégia também introduz o índice de taxa de variação (RVI) e sua média móvel de deslizamento para confirmação.
O RSI de 14 é calculado como a duração.
O RSI é construído com base no indicador Stochastic RSI de comprimento 14, obtendo valores de K e D (D é a média móvel de 3 períodos de K).
RVI com comprimento de cálculo de 5 e sua linha de sinal (ou seja, a média móvel lisa do RVI).
Quando K atravessa D, se RVI > linha de sinalização e um ciclo anterior RVI < linha de sinalização, um sinal de compra é gerado; quando K atravessa D abaixo, se RVI < linha de sinalização e um ciclo anterior RVI > linha de sinalização, um sinal de venda é gerado.
A operação de compra ou venda é realizada de acordo com o sinal gerado.
Combinando a dupla confirmação Stochastic RSI e RVI, é possível filtrar eficazmente os falsos sinais.
O indicador RVI pode refletir sobrecompra e sobrevenda em curto prazo, evitando posições em pontos extremos.
O indicador Stochastic RSI pode identificar áreas de sobrevenda e sobrecompra, usando a forma do KDJ para determinar o ponto de compra e venda.
Os resultados do teste mostraram que a estratégia teve um bom efeito em alguns pares de moedas digitais (como FCT/BTC).
A estratégia de rastreamento de stop-loss é semelhante, e um stop-loss mal configurado pode levar à prisão.
A frequência de geração de sinais pode ser excessiva, e os custos de transação são fatores a serem considerados.
Os indicadores KDJ e RVI podem produzir falsos sinais, resultando em perdas desnecessárias.
Os parâmetros de estratégia precisam ser otimizados para diferentes pares de negociação, sendo necessário considerar a universalidade.
Aumentar o Stop Loss móvel para bloquear o lucro, pode consultar o ATR para definir o Stop Loss.
Optimizar os parâmetros RVI e Stochastic RSI para tornar o sinal mais claro.
Aumentar o controle do volume de transações para evitar pedidos excessivos.
Aumentar o mecanismo de filtragem para evitar a abertura de posições altas. Pode ser introduzido um indicador de taxa de flutuação para avaliar se a posição está em um estado de agitação.
Teste diferentes pares de moedas digitais para encontrar a melhor variedade.
A estratégia utiliza o RSI para construir o RSI estocástico e, em seguida, combina o RVI para confirmar o sinal, para detectar a tendência de sobrecompra e sobrevenda no curto prazo, abrindo uma posição no ponto de reversão. A vantagem é que a dupla confirmação pode filtrar os falsos sinais, a desvantagem é que pode haver um risco de parâmetros de sobre-configuração.
/*backtest
start: 2022-12-08 00:00:00
end: 2023-12-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="Stochastic RSI", shorttitle="Stoch RSI", overlay = true)
Per = input(5, title="Length", minval=1)
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")
rsi1 = rsi(src, lengthRSI)
K = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
D = sma(K, smoothD)
rvi = sum(swma(close-open), Per)/sum(swma(high-low),Per)
sig = swma(rvi)
//plot(rvi, color=green, title="RVI")
//plot(sig, color=red, title="Signal")
//plot(K, title="K")
//plot(D, title="D")
Dn = K <= D and K > 70 and rvi <= sig and rvi[1] >= sig[1]
Up= K >= D and K < 30 and rvi >= sig and rvi[1] <= sig[1]
ARROW = Up - Dn
plotarrow(ARROW, title="Down Arrow", colordown=red, transp=0, maxheight=10, minheight=10)
plotarrow(ARROW, title="Up Arrow", colorup=lime, transp=0, maxheight=10, minheight=10)
long = crossover(Up, Dn)
short = crossunder(Up, Dn)
last_long = long ? time : nz(last_long[1])
last_short = short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)
//plot(long_signal, "BUY", color=green)
//plot(short_signal, "SELL", color=red)
strategy.entry("BUY", strategy.long, when=long_signal)
strategy.entry("SELL", strategy.short, when=short_signal)