Esta estratégia combina o uso de médias móveis e índice de força relativa estocástica (RSI estocástico) para encontrar oportunidades de negociação. Especificamente, ele analisa a média móvel de médio prazo em uma tendência de alta e o indicador de RSI estocástico sobrecomprado/supervendido para tomar decisões de negociação quando ambos os sinais surgem. Este uso combinado pode filtrar alguns falsos sinais e melhorar a estabilidade da estratégia.
Os principais componentes desta estratégia são:
Calcular duas médias móveis, MA1 e MA2, com períodos diferentes.
Calcule o índice de força relativa estocástica (RSI estocástico).
Um sinal de compra é gerado quando o RSI estocástico ultrapassa o limiar de sobrevenda, enquanto um sinal de venda é gerado quando ultrapassa o limiar de sobrecompra.
Entre longo quando os sinais estocásticos do RSI se alinham com a média móvel mais rápida acima da mais lenta.
Calcular o montante do risco e o tamanho da posição.
Configure o preço de stop loss e take profit, traça o stop profit para maximizar o lucro.
A estratégia de combinar a média móvel e o RSI estocástico tem as seguintes vantagens:
A combinação de médias móveis de médio e longo prazo pode determinar a direcção geral da tendência do mercado.
O RSI estocástico é útil para identificar situações de sobrecompra e sobrevenda para capturar oportunidades de reversão.
O uso combinado filtra sinais falsos e melhora a estabilidade.
O método do percentual de risco fixo gere o risco limitando a perda única abaixo do nível de tolerância.
Parar perdas e tomar lucros bloquear os lucros e limitar o risco de queda.
Esta estratégia apresenta também alguns riscos:
Em mercados variáveis, as médias móveis combinadas podem dar sinais falsos.
O RSI estocástico é sensível à ação de preços voláteis e também pode fornecer sinais falsos ocasionalmente.
A alocação de risco fixo não pode evitar completamente grandes perdas.
Em cenários de volatilidade extrema, não estão disponíveis preços razoáveis de stop loss/lucro, sendo necessária uma intervenção manual.
A estratégia pode ser ainda melhorada nos seguintes aspectos:
Teste mais combinações de parâmetros para encontrar períodos ideais.
Tente combinar médias móveis com outros indicadores como KDJ, MACD etc. Identifique a melhor correspondência.
Teste e otimize em diferentes instrumentos de negociação.
Empregar modelos de aprendizagem de máquina para otimizar dinamicamente os parâmetros ao longo do tempo em relação aos mercados em mudança.
A estratégia de combinação de média móvel e RSI estocástico identifica tendência com médias móveis e níveis de reversão com RSI estocástico para formar sinais comerciais, juntamente com stop loss / lucro e controle de risco para formar uma lógica de estratégia robusta.
/*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)