
La estrategia es una estrategia de comercio de cuantificación de línea corta basada en las medias móviles simples (SMA), las medias móviles indexadas (EMA), el canal de Keltner, el indicador MACD y el indicador aleatorio (estocástico). Se basa en la forma en que el precio supera el SMA y el EMA, combinando las señales múltiples de los canales de Keltner, el indicador MACD y el indicador estocástico, para lograr entradas y salidas de comercio automatizadas.
La estrategia utiliza el SMA de 25 ciclos, el EMA de 200 ciclos para construir el indicador de las medias móviles dobles. Se produce una señal de compra cuando el precio se rompe la media móvil dobles de abajo hacia arriba; Se produce una señal de venta cuando el precio se rompe la media móvil dobles de arriba hacia abajo.
Al mismo tiempo, la estrategia utiliza 10 ciclos para construir el canal de Keltner, y los tramos superiores y inferiores del canal de ruptura de precios también actúan como señales auxiliares. El indicador MACD genera una señal de compra y venta a través de la línea rápida, la línea lenta y la figura de la columna MACD. El indicador estocástico también forma una señal de mercado libre a través de la línea% K y la línea% D.
En concreto, cuando el precio de cierre es superior a las SMA y EMA, y está dentro del canal de Keltner, el gráfico de la columna MACD es negativo, el valor de Stochastic% K es inferior a 50, y genera una señal de compra, hacer más; cuando el precio de cierre es inferior a las SMA y EMA, y está dentro del canal de Keltner, el gráfico de la columna MACD es positivo, el valor de Stochastic% K es superior a 50, y genera una señal de venta, hacer vacío.
La estrategia integra los cuatro indicadores técnicos más comunes: las medias móviles, los canales, el MACD y el indicador estocástico. Para juzgar la volatilidad a través de la ruptura o no de los precios, es una estrategia típica de comercio cuantitativo en línea corta. En comparación con un solo indicador, la aplicación combinada de la determinación de varios indicadores mejora la precisión de la señal y vale la pena realizar más pruebas y optimizaciones.
/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99
//@version=5
strategy(title="Scalping Trading System Crypto and Stocks", overlay=true)
src = input(low, title="Source")
//sma and ema
len = input.int(25, minval=1, title="Length SMA" , group="Moving Averages")
len2 = input.int(200, minval=1, title="Length EMA", group="Moving Averages")
out = ta.sma(src, len)
out2 = ta.ema(src, len2)
//keltner
lengthk = input.int(10, minval=1, title="Length Keltner Channel",group="Keltner")
mult = input(2.0, "Multiplier",group="Keltner")
BandsStyle = input.string("Average True Range", options = ["Average True Range", "True Range", "Range"], title="Bands Style",group="Keltner")
atrlength = input(14, "ATR Length",group="Keltner")
ma = ta.sma(src, lengthk)
rangema = BandsStyle == "True Range" ? ta.tr(true) : BandsStyle == "Average True Range" ? ta.atr(atrlength) : ta.rma(high - low, lengthk)
upper = ma + rangema * mult
lower = ma - rangema * mult
//stoch
periodK = input.int(10, title="%K Length", minval=1,group="Stochastic")
smoothK = input.int(1, title="%K Smoothing", minval=1,group="Stochastic")
periodD = input.int(1, title="%D Smoothing", minval=1,group="Stochastic")
k = ta.sma(ta.stoch(close, high, low, periodK), smoothK)
d = ta.sma(k, periodD)
//macd 1
fast_length = input(title="Fast Length MACD", defval=4,group="MACD Fast")
slow_length = input(title="Slow Length MACD", defval=34,group="MACD Fast")
signal_length = input.int(title="Signal Smoothing MACD", minval = 1, maxval = 50, defval = 5,group="MACD Fast")
sma_source = input.string(title="Oscillator MA Type MACD", defval="EMA", options=["SMA", "EMA"],group="MACD Fast")
sma_signal = input.string(title="Signal Line MA Type MACD", defval="EMA", options=["SMA", "EMA"],group="MACD Fast")
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal
long= close > out and close < upper and close > lower and hist < 0 and k < 50 and close > out2
short= close < out and close < upper and close > lower and hist > 0 and k > 50 and close < out2
strategy.entry("long",strategy.long,when= long)
strategy.entry("short",strategy.short,when=short)