
La estrategia se llama Basado en la línea corta de la EMA y el MACD. Combina la EMA y el MACD para identificar tendencias y dar señales de negociación.
La estrategia utiliza el EMA del 5o día y el EMA del 21o día para formar un canal de EMA. Cuando el EMA del 5o día atraviesa el EMA del 21o día, se considera que el mercado entra en el polinomio, y cuando el EMA del 5o día atraviesa el EMA del 21o día, se considera que el mercado entra en el horizonte.
La estrategia combina la identificación de tendencias y el filtrado de indicadores para identificar eficazmente la dirección de las tendencias en las líneas cortas. Utilizando el canal EMA para determinar la dirección de la tendencia principal, y filtrando las señales falsas con el indicador MACD, se puede aumentar considerablemente la probabilidad de obtener ganancias. El mecanismo de parada de pérdidas fijas también garantiza el beneficio-riesgo de los beneficios. En general, la estrategia es adecuada para el comercio de líneas cortas, especialmente en las variedades de acciones y divisas con mayor dinamismo.
La estrategia se aplica principalmente a las operaciones en línea corta, y es ineficaz en condiciones de línea larga y oscilación. En los mercados en línea larga horizontal, las señales de cruce de los canales EMA son frecuentes, pero en su mayoría son falsas, y en este momento el diagrama MACD puede tener un cierto efecto de filtración, pero el efecto es limitado. Además, el mecanismo de suspensión de pérdidas fijas hace que sea difícil capturar los beneficios adicionales de la tendencia en línea larga.
La estrategia puede ser optimizada en los siguientes aspectos:
Esta estrategia es altamente rentable en general, especialmente para operaciones de corta línea, y es una buena opción en la búsqueda de estrategias de operaciones cuantitativas con una mayor frecuencia de operaciones. Sin embargo, el comerciante debe tener cuidado al usarla para ajustar razonablemente los parámetros de acuerdo con las condiciones del mercado para maximizar las ganancias de la estrategia, al tiempo que controla el riesgo de las operaciones.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © moondevonyt
//@version=5
strategy("Scalping with EMA channel and MACD", overlay=true)
// Exponential moving average inputs
ema21 = ta.ema(close, 21)
ema5 = ta.ema(close, 5)
// MACD inputs
fastLength = 18
slowLength = 34
signalSmoothing = 12
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
macdHistogram = macdLine - signalLine
// Buy and sell conditions
buyCondition = ta.crossover(ema5, ema21) and macdHistogram > 0
sellCondition = ta.crossunder(ema5, ema21) and macdHistogram < 0
// Re-entry conditions
reEntryBuyCondition = close > ema21
reEntrySellCondition = close < ema21
// Set stop loss and take profit
stopLoss = 8
takeProfit = 15
// Execute Strategy
if buyCondition
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit/Stop Loss", "Buy", stop=close - stopLoss, limit=close + takeProfit)
if reEntryBuyCondition
strategy.entry("Re-Enter Buy", strategy.long)
strategy.exit("Take Profit/Stop Loss", "Re-Enter Buy", stop=close - stopLoss, limit=close + takeProfit)
if sellCondition
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit/Stop Loss", "Sell", stop=close + stopLoss, limit=close - takeProfit)
if reEntrySellCondition
strategy.entry("Re-Enter Sell", strategy.short)
strategy.exit("Take Profit/Stop Loss", "Re-Enter Sell", stop=close + stopLoss, limit=close - takeProfit)
// Plotting EMAs and MACD
plot(ema21, color=color.blue, title="21 EMA")
plot(ema5, color=color.orange, title="5 EMA")
plot(macdHistogram, color=color.red, title="MACD Histogram")
// Plot buy and sell signals
plotshape(series=buyCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal")
plotshape(series=sellCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")