
A estratégia foi testada em um período de 3 minutos de negociação do par BTC/USDT e deu resultados muito bons. A estratégia foi combinada com o uso de médias móveis e um indicador de força relativamente aleatório Stochastic RSI para identificar sinais de negociação.
A estratégia usa duas médias móveis simples de períodos diferentes, 20 e 50 períodos. Estas médias são usadas para determinar a tendência dos preços.
A fórmula de cálculo do RSI estocástico é: ((RSI - RSI mínimo) / ((RSI máximo - RSI mínimo) * 100 . O indicador reflete os níveis atuais do RSI em relação à posição do RSI máximo e mínimo no período mais recente . Quando o RSI estocástico passa por 20 é um sinal de venda e quando passa por 80 é um sinal de compra.
A estratégia combina o uso de médias móveis para determinar a direção da tendência e o uso do RSI estocástico para localizar potenciais pontos de reversão como um momento de entrada.
Comparado com o uso de médias móveis ou RSI estocástico, esta estratégia combina as vantagens de ambos, permitindo melhor identificação de tendências e localização de potenciais reviravoltas, o que aumenta a probabilidade de lucro.
Em comparação com um único indicador, a estratégia integra vários indicadores e estabelece regras rigorosas de entrada, o que permite filtrar de forma eficaz os falsos sinais e evitar transações sem sentido.
A estratégia também controla bem o risco, com apenas 2% de capital em cada transação de garantia, o que pode efetivamente limitar o impacto de perdas individuais.
A estratégia depende principalmente de indicadores técnicos para determinar os sinais de negociação. Se os indicadores falharem, poderá haver sinais errados que resultem em perdas. Além disso, a configuração inadequada dos parâmetros do indicador também afeta o desempenho da estratégia.
Em situações de forte volatilidade, a configuração de stop-loss pode ser ultrapassada, o que leva a um risco de aumento dos prejuízos.
Pode-se testar mais combinações e parâmetros de médias móveis para encontrar a melhor combinação de parâmetros. Também pode-se tentar combinar outros indicadores de força, como KD, RSI e outros com médias móveis.
Pode-se escolher o melhor modo de stop-loss de acordo com as características de diferentes criptomoedas, controlando ainda mais o risco.
Algoritmos de aprendizagem de máquina podem ser introduzidos para otimizar automaticamente as configurações de parâmetros e as regras de julgamento de sinais, tornando as estratégias mais robustas e adaptáveis.
A estratégia é bem sucedida em combinar a média móvel e o indicador Stochastic RSI para determinar o sinal de negociação. Em comparação com o indicador técnico isolado, a estratégia pode fornecer um sinal de negociação mais confiável. Com rigorosos controles de risco e otimização de parâmetros, a estratégia é esperada para obter lucros estáveis.
/*backtest
start: 2023-01-25 00:00:00
end: 2024-01-31 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)