
La estrategia es una estrategia de comercio cuantitativa basada en múltiples promedios móviles y señales cruzadas de indicadores de oscilación aleatoria. La estrategia utiliza en conjunto promedios móviles a corto, medio y largo plazo, combinando las características de sobrecompra y sobreventa de los indicadores de oscilación aleatoria, para capturar los cambios de tendencia del mercado y las oportunidades de negociación a través de la confirmación de múltiples señales. El núcleo de la estrategia consiste en mejorar la fiabilidad de las señales de negociación mediante la confirmación cruzada de múltiples indicadores técnicos.
La estrategia utiliza cinco promedios móviles de 3, 5, 6, 10 y 80 días, así como un indicador de oscilación aleatoria (estocástico). La activación de la señal de negociación se basa en las siguientes condiciones:
La estrategia utiliza una combinación de múltiples medias móviles y indicadores de oscilación aleatoria para establecer un sistema de negociación relativamente completo. La ventaja de la estrategia radica en la fiabilidad de la señal y la estabilidad del sistema, pero también se debe tener en cuenta el control de los costos de negociación y la adaptabilidad al entorno del 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)