
La estrategia de negociación combina dos indicadores técnicos, el MACD y el gráfico de equilibrio de primera vista, para capturar tendencias y cambios de dinámica a medio plazo. El indicador MACD consta de líneas rápidas, lentas y de señal, que usan configuraciones de parámetros de 12, 26 y 9, respectivamente, para identificar cambios de dinámica y reveses de tendencia. El gráfico de equilibrio de primera vista contiene líneas de giro, líneas de referencia, límites superiores y inferiores, que brindan información sobre la fuerza y dirección de la tendencia, así como puntos de soporte / resistencia.
La estrategia utiliza el indicador MACD y la nube de gráficos de equilibrio inicial para generar señales de compra y venta. Cuando el precio supera la nube de equilibrio inicial y el MACD cruza la línea de señal, se activa una señal de compra, lo que indica una tendencia alcista. Cuando el precio cae por debajo de la nube de equilibrio inicial y el MACD cruza la línea de señal, se activa una señal de venta, lo que indica una tendencia alcista.
El MACD dinámico y la estrategia de negociación de gráficos de equilibrio a primera vista ofrecen una poderosa manera de identificar tendencias y cambios de dinámica a medio plazo, combinando dos indicadores técnicos muy populares. La estrategia está diseñada para ayudar a los comerciantes a tomar decisiones inteligentes, controlar el riesgo y maximizar los beneficios a través de criterios de compra y venta claramente definidos, así como guías de gestión de riesgos.
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MACD and Ichimoku Cloud Strategy", overlay=true)
// MACD Components
fastLength = 12
slowLength = 26
signalLength = 9
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength)
// Ichimoku Cloud Components
tenkanLength = 9
kijunLength = 26
senkouLength = 52
displacement = 26
tenkanSen = (ta.highest(high, tenkanLength) + ta.lowest(low, tenkanLength)) / 2
kijunSen = (ta.highest(high, kijunLength) + ta.lowest(low, kijunLength)) / 2
senkouSpanA = (tenkanSen + kijunSen) / 2
senkouSpanB = (ta.highest(high, senkouLength) + ta.lowest(low, senkouLength)) / 2
chikouSpan = close[displacement]
// Plot Ichimoku Cloud
plot(tenkanSen, color=color.red, title="Tenkan-sen")
plot(kijunSen, color=color.blue, title="Kijun-sen")
p1 = plot(senkouSpanA, color=color.green, title="Senkou Span A", offset=displacement)
p2 = plot(senkouSpanB, color=color.orange, title="Senkou Span B", offset=displacement)
fill(p1, p2, color=senkouSpanA > senkouSpanB ? color.new(color.green, 90) : color.new(color.red, 90))
// Define Buy and Sell Conditions
macdBuy = ta.crossover(macdLine, signalLine)
ichimokuBuy = (close > senkouSpanA) and (close > senkouSpanB) and (tenkanSen > kijunSen)
buySignal = macdBuy and ichimokuBuy
macdSell = ta.crossunder(macdLine, signalLine)
ichimokuSell = (close < senkouSpanA) and (close < senkouSpanB) and (tenkanSen < kijunSen) and (tenkanSen[displacement] < math.min(senkouSpanA, senkouSpanB))
sellSignal = macdSell and ichimokuSell
// Execute Buy or Sell orders
if (buySignal)
strategy.entry("Buy", strategy.long)
if (sellSignal)
strategy.entry("Sell", strategy.short)
// Setting up the stop loss and take profit
stopLossPerc = 5.0
takeProfitPerc = 10.0
strategy.exit("Exit Buy", "Buy", loss=stopLossPerc, profit=takeProfitPerc)
strategy.exit("Exit Sell", "Sell", loss=stopLossPerc, profit=takeProfitPerc)
// Plot Buy and Sell Signals
plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY")
plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL")