
A estratégia é uma estratégia de negociação quantitativa baseada em múltiplos sinais de cruzamento de médias móveis e indicadores de oscilação aleatória. A estratégia utiliza uma combinação de médias móveis de curto, médio e longo prazo, combinando as características de supercompra e supervenda dos indicadores de oscilação aleatória, para capturar os pontos de reversão da tendência do mercado e as oportunidades de negociação por meio de confirmação de múltiplos sinais. O núcleo da estratégia é aumentar a confiabilidade dos sinais de negociação por meio da confirmação cruzada de vários indicadores técnicos.
A estratégia usa cinco médias móveis de 3, 5, 6, 10 e 80 dias, bem como um indicador de oscilação aleatório (Stochastic Oscillator). A ação do sinal de negociação é baseada nas seguintes condições:
A estratégia cria um sistema de negociação relativamente perfeito através da combinação de múltiplos indicadores de médias móveis e oscilações aleatórias. A vantagem da estratégia reside na confiabilidade do sinal e na estabilidade do sistema, mas também na necessidade de controlar os custos de negociação e a adequação ao ambiente de mercado.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Moving Average and Stochastic Crossover Strategy", overlay=true)
// Calculate the moving averages
ma3 = ta.sma(close, 3)
ma5 = ta.sma(close, 5)
ma6 = ta.sma(close, 6)
ma10 = ta.sma(close, 10)
ma80 = ta.sma(close, 80)
// Stochastic Oscillator with settings %K(15), %D(9), and slowing 9
k = ta.stoch(close, high, low, 15)
d = ta.sma(k, 9)
slow_d = ta.sma(d, 9)
// Buy signal confirmation: MA10 crosses above MA5, MA6, and K line crosses above D line
buySignalConfirmation = ta.crossover(ma10, ma5) and ta.crossover(ma10, ma6) and ta.crossover(k, d)
// Sell signal confirmation: MA5 crosses above MA10, MA6, and D line crosses above K line
sellSignalConfirmation = ta.crossunder(ma5, ma10) and ta.crossunder(ma5, ma6) and ta.crossunder(d, k)
// Strategy logic
if (buySignalConfirmation)
strategy.entry("Buy", strategy.long)
if (sellSignalConfirmation)
strategy.entry("Sell", strategy.short)
// Plot the moving averages and Stochastic Oscillator for visualization
plot(ma3, color=color.orange, title="MA3", linewidth=2)
plot(ma5, color=color.blue, title="MA5", linewidth=2)
plot(ma6, color=color.purple, title="MA6", linewidth=2)
plot(ma10, color=color.green, title="MA10", linewidth=2)
plot(ma80, color=color.red, title="MA80", linewidth=2)
plot(k, color=color.blue, title="%K", linewidth=2)
plot(d, color=color.red, title="%D", linewidth=2)
plot(slow_d, color=color.purple, title="Slow %D", linewidth=2)