
A estratégia busca oportunidades de negociação usando uma combinação de médias móveis e um índice aleatório relativamente forte (Stochastic RSI). Concretamente, ela opera simultaneamente com a média móvel de curto prazo de tendência de bullish, e com o indicador RSI aleatório de overbought e oversold, quando os dois emitem sinais de compra e venda. Essa combinação pode filtrar alguns sinais falsos e melhorar a estabilidade da estratégia.
A estratégia é composta por:
Calcule as médias móveis MA1 e MA2 de dois períodos diferentes.
O Stochastic RSI é um indicador aleatório que combina os princípios do RSI e do indicador aleatório para mostrar se o RSI está sobrecomprado ou sobrevendido.
O indicador RSI aleatório gera um sinal de compra quando atravessa um limiar acima da zona de supera venda; e um sinal de venda quando atravessa a zona de supera compra.
A compra é feita quando o indicador RSI aleatório emite um sinal e a média móvel de curto prazo está acima da média móvel de longo prazo. Isso pode filtrar a maioria dos falsos sinais.
Calcular o montante de risco e a posição. O montante de risco fixo pode controlar eficazmente a perda individual.
Defina preços de stop loss e stop loss.
Esta combinação usa uma estratégia de médias móveis e indicadores RSI aleatórios, com as seguintes vantagens:
A combinação de linha média e linha média pode determinar a direção da tendência principal.
O indicador de RSI aleatório pode ser usado para avaliar os excessos de compra e venda, o que é útil para capturar oportunidades de reversão.
A combinação da possibilidade de filtragem de falsos sinais pode aumentar a estabilidade.
O uso da lei de quantidade de risco para o gerenciamento de fundos permite limitar os perdas individuais e evitar exceder a tolerância.
O sistema de stop loss é usado para bloquear o lucro e evitar riscos.
A estratégia também apresenta alguns riscos, que se concentram nos seguintes aspectos:
Durante a tendência de choque, a linha média média pode emitir um sinal falso. O risco deve ser controlado com a configuração de stop loss.
Os indicadores RSI aleatórios são suscetíveis a mudanças drásticas de preços e podem também emitir sinais errados.
A lei de quantidade de risco não pode evitar totalmente grandes perdas. É necessário estabelecer posições razoavelmente.
Quando as coisas mudam drasticamente, é impossível obter um preço razoável para definir um stop loss.
A estratégia pode ser melhorada em várias direções:
Teste mais combinações de parâmetros para encontrar o melhor ciclo de parâmetros. O ciclo usado agora não é necessariamente o melhor.
Tente combinar outros indicadores com a média móvel. Por exemplo, KDJ, MACD, etc.
Optimizar testes para variedades de negociação. Agora é o momento de testar para o forex, e pode tentar aplicá-lo em outros mercados.
Parâmetros de otimização dinâmica usando métodos como aprendizado de máquina. Atualmente, os parâmetros estão em configurações estáticas, o que pode não ser adequado para mudanças no mercado.
Uma estratégia de combinação de média móvel e RSI aleatório, que determina a tendência principal através da linha de equilíbrio e o RSI aleatório determina o ponto de reversão, combinados para formar um sinal de negociação e definir um stop loss e controle de risco, obtendo assim uma lógica estratégica estável. Esta estrutura de estratégia de combinação é simples e prática, vale a pena testar e otimizar ainda mais, e pode ser estendida para mais variedades e configurações de parâmetros.
/*backtest
start: 2023-01-09 00:00:00
end: 2024-01-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Moving Average and Stochastic RSI Strategy", shorttitle="MA+Stoch RSI", overlay=true)
// Input variables
ma1_length = input.int(20, title="MA1 Length")
ma2_length = input.int(50, title="MA2 Length")
stoch_length = input.int(14, title="Stochastic RSI Length")
overbought = input.int(80, title="Overbought Level")
oversold = input.int(20, title="Oversold Level")
risk_percentage = input.float(2.0, title="Risk Percentage")
// Calculate moving averages
ma1 = ta.sma(close, ma1_length)
ma2 = ta.sma(close, ma2_length)
// Calculate Stochastic RSI
rsi1 = ta.rsi(close, stoch_length)
rsiH = ta.highest(rsi1, stoch_length)
rsiL = ta.lowest(rsi1, stoch_length)
stoch = (rsi1 - rsiL) / (rsiH - rsiL) * 100
// Determine buy and sell signals based on Stochastic RSI
buySignal = ta.crossover(stoch, oversold)
sellSignal = ta.crossunder(stoch, overbought)
// Plot signals on the chart
plotshape(buySignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
// Calculate position size based on equity and risk percentage
equity = strategy.equity
riskAmount = equity * risk_percentage / 100
positionSize = riskAmount / ta.atr(14)
// Entry and exit conditions
var float stopLoss = na
var float takeProfit = na
if buySignal
stopLoss := low
takeProfit := high
strategy.entry("Buy", strategy.long)
else if sellSignal
strategy.exit("Sell", from_entry="Buy", stop=stopLoss, limit=takeProfit)