
Este artículo presenta un sistema de estrategias de trading que combina varios indicadores técnicos. El sistema está diseñado para proporcionar a los operadores una solución de negociación completa mediante la integración de varios métodos de análisis técnico como MACD, EMA, promedios móviles simples y MA100, junto con la gestión de riesgos y filtros de tiempo.
La estrategia es una combinación de múltiples estrategias de un sistema de análisis técnico que contiene cuatro subestrategias independientes: la estrategia MACD, la estrategia EMA8, la estrategia simple MA y la estrategia MA100. El sistema permite a los comerciantes la flexibilidad de elegir diferentes tipos de estrategias en función de las condiciones del mercado, cada una de las subestrategias tiene su propia lógica de entrada y salida y está equipada con el correspondiente mecanismo de gestión de riesgos.
Estrategia MACD: captura la tendencia del mercado mediante la identificación de patrones de subida y bajada en el gráfico del MACD. Cuando aparecen tres columnas de gráfico vertical consecutivas de subida, se activa una señal de compra, y dos columnas de gráfico vertical consecutivas de caída, se activa una señal de venta.
Estrategia EMA8: Combinación de la media EMA8 de la circunferencia, los máximos previos y el análisis de la forma de la línea K. El sistema compra cuando el precio rompe la circunferencia EMA8 y el precio de cierre es más alto que el máximo de la circunferencia anterior, al mismo tiempo que aparece una fuerte línea K. La estrategia está equipada con una configuración de stop loss del 2%
Estrategia simple de MA: Construye un sistema de seguimiento de tendencias utilizando múltiples medias móviles de índices (de 10, 15, 25, 35, 40 períodos). Cuando la media periódica más corta está por encima de la media periódica más larga y el precio rompe la media periódica más corta, dispara una señal de compra. También establece un stop loss del 2%.
Estrategia MA100: combina la media de 100 días, la media de 8 días y la media de 25 días, e introduce indicadores aleatorios para juzgar la venta por encima. Cuando la media de corto plazo está por encima de la media de largo plazo y los precios fluctúan cerca de la MA100, el sistema busca oportunidades de compra en la zona de venta por encima. Esta estrategia utiliza una configuración de stop loss del 3%.
La combinación de estrategias y técnicas de análisis técnico proporciona a los operadores un marco completo para la toma de decisiones comerciales mediante la integración de varios métodos de análisis técnico ya desarrollados. Las principales ventajas del sistema residen en su flexibilidad y capacidad de controlar el riesgo, pero también requiere que los operadores tengan un profundo entendimiento del mercado para usarlo correctamente.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ v5 code implements multiple trading strategies
//@version=5
strategy("Multi-Strategy Trading System", overlay=true)
// Input parameters for customization
strategy_type = input.string("MACD", "Strategy Type", options=["MACD", "EMA8", "SimpleMA", "MA100"])
show_macd = input.bool(true, "Show MACD Signals")
show_ema = input.bool(true, "Show EMA Signals")
show_ma = input.bool(true, "Show MA Signals")
// MACD Strategy Components
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)
// Function to detect three consecutive ascending histogram bars
isThreeAscendingBars(hist) =>
not na(hist[3]) and hist[3] < hist[2] and hist[2] < hist[1] and hist[1] < hist[0]
// Function to detect two consecutive descending histogram bars
isTwoDescendingBars(hist) =>
not na(hist[2]) and hist[2] > hist[1] and hist[1] > hist[0]
// EMA Strategy Components
ema8_weekly = request.security(syminfo.tickerid, "W", ta.ema(close, 8))
weeklyHigh = request.security(syminfo.tickerid, "W", high)
previousWeekHigh = weeklyHigh[1]
isStrongCandleWeekly = request.security(syminfo.tickerid, "W", close > open and (close - open) > (high - low) * 0.6)
// Simple MA Strategy Components
ema10 = ta.ema(close, 10)
ema15 = ta.ema(close, 15)
ema25 = ta.ema(close, 25)
ema35 = ta.ema(close, 35)
ema40 = ta.ema(close, 40)
// MA100 Strategy Components
ma100 = ta.sma(close, 100)
ma8 = ta.sma(close, 8)
ma25 = ta.sma(close, 25)
// Corrected Stochastic Oscillator Calculation
stochK = ta.stoch(high, low, close, 14)
stochD = ta.sma(stochK, 3)
isOversold = stochK < 20 and stochD < 20
// MACD Strategy Logic
if strategy_type == "MACD"
// Buy condition: Three ascending histogram bars after lowest
if isThreeAscendingBars(histLine)
strategy.entry("MACD Buy", strategy.long)
// Sell condition: Two descending histogram bars after highest
if isTwoDescendingBars(histLine)
strategy.close("MACD Buy")
// EMA8 Strategy Logic
if strategy_type == "EMA8"
if close > ema8_weekly and close > previousWeekHigh and isStrongCandleWeekly
strategy.entry("EMA8 Buy", strategy.long)
strategy.exit("EMA8 Exit", "EMA8 Buy", stop=low - (low * 0.02))
// Simple MA Strategy Logic
if strategy_type == "SimpleMA"
isUptrend = ema10 > ema15 and ema15 > ema25 and ema25 > ema35 and ema35 > ema40
if isUptrend and close > ema10 and close[1] <= ema10[1]
strategy.entry("MA Buy", strategy.long)
strategy.exit("MA Exit", "MA Buy", stop=low - (low * 0.02))
// MA100 Strategy Logic
if strategy_type == "MA100"
isUptrend = ma8 > ma100 and ma25 > ma100
isPriceNearMA100 = math.abs(close - ma100) / ma100 * 100 < 1
if isUptrend and isPriceNearMA100 and isOversold
strategy.entry("MA100 Buy", strategy.long)
strategy.exit("MA100 Exit", "MA100 Buy", stop=low - (low * 0.03))
// Plotting components for visualization
plot(ma100, "MA100", color=color.blue, linewidth=2)
plot(ema8_weekly, "EMA8 Weekly", color=color.yellow, linewidth=2)
plot(series=histLine, title="MACD Histogram", style=plot.style_histogram, color=histLine > 0 ? color.green : color.red)