
La estrategia es un sistema de comercio cuantitativo que combina el canal de Gauss (Gaussian Channel) y un indicador aleatorio relativamente débil (Stochastic RSI). La estrategia capta las oportunidades de reversión de tendencias en el mercado mediante la monitorización de los cruces de los precios con el canal de Gauss y el movimiento del RSI aleatorio. El canal de Gauss está construido con medias móviles y diferenciales estándar y puede reflejar dinámicamente el rango de fluctuación del mercado, mientras que el RSI aleatorio proporciona una señal de confirmación de la dinámica.
La lógica central de la estrategia incluye las siguientes partes clave:
La estrategia, combinando el seguimiento de tendencias y los indicadores dinámicos en el análisis técnico, construye un sistema de comercio cuantitativo que es lógicamente completo y controla el riesgo. Aunque existen algunos riesgos inherentes, la estrategia espera mantener un rendimiento estable en diferentes entornos de mercado a través de la optimización y el perfeccionamiento continuos. El diseño modular de la estrategia también proporciona una buena base para la optimización y la expansión posteriores.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"BNB_USDT"}]
*/
//@version=5
strategy("SAJJAD JAMSHIDI Channel with Stochastic RSI Strategy", overlay=true, commission_type=strategy.commission.percent, commission_value=0.1, slippage=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, process_orders_on_close=true)
// Gaussian Channel Inputs
lengthGC = input.int(20, "Gaussian Channel Length", minval=1)
multiplier = input.float(2.0, "Standard Deviation Multiplier", minval=0.1)
// Calculate Gaussian Channel
basis = ta.ema(close, lengthGC)
deviation = multiplier * ta.stdev(close, lengthGC)
upperChannel = basis + deviation
lowerChannel = basis - deviation
// Plot Gaussian Channel
plot(basis, "Basis", color=color.blue)
plot(upperChannel, "Upper Channel", color=color.green)
plot(lowerChannel, "Lower Channel", color=color.red)
// Stochastic RSI Inputs
rsiLength = input.int(14, "RSI Length", minval=1)
stochLength = input.int(14, "Stochastic Length", minval=1)
smoothK = input.int(3, "Smooth K", minval=1)
smoothD = input.int(3, "Smooth D", minval=1)
// Calculate RSI
rsi = ta.rsi(close, rsiLength)
// Calculate Stochastic RSI
lowestRSI = ta.lowest(rsi, stochLength)
highestRSI = ta.highest(rsi, stochLength)
stochRSI = (rsi - lowestRSI) / (highestRSI - lowestRSI) * 100
k = ta.sma(stochRSI, smoothK)
d = ta.sma(k, smoothD)
// Trading Conditions
stochUp = k > d
priceAboveUpper = ta.crossover(close, upperChannel)
priceBelowUpper = ta.crossunder(close, upperChannel)
strategy.entry("Long", strategy.long, when=priceAboveUpper and stochUp)
strategy.close("Long", when=priceBelowUpper)