
La estrategia combina el uso de la línea media EMA y el indicador MACD para identificar señales de tendencia en varios marcos de tiempo para capturar tendencias de línea media y larga. Se toman medidas de seguimiento de tendencias cuando las tendencias a corto plazo coinciden con la dirección de las tendencias a medio y largo plazo. Al mismo tiempo, la estrategia utiliza el indicador ATR para establecer paradas de pérdidas y controlar el riesgo de la volatilidad.
La estrategia determina la dirección de la tendencia a medio y largo plazo con la línea de 50 días de EMA y la línea de 100 días de EMA. Cuando la tendencia a corto plazo es identificada por el indicador MACD, determina si la dirección de la tendencia a corto plazo coincide con la dirección de la tendencia a medio y largo plazo. Si coincide, toma la operación de seguimiento de la tendencia.
Concretamente, cuando el MACD cruza la línea lenta en la línea rápida y se cierra > 50 días de EMA y se cierra > 100 días de EMA, haga más; cuando el MACD cruza la línea lenta en la línea rápida y se cierra < 50 días de EMA y se cierra < 100 días de EMA, haga un vacío.
Además, la estrategia utiliza el indicador ATR para calcular el rango de fluctuación y establecer el precio de parada de pérdida. El ATR de ciertos múltiplos del precio de cierre como punto de parada y el ATR de ciertos múltiplos del precio de cierre como punto de parada.
Respuesta:
La estrategia integra el uso de indicadores como EMA, MACD y ATR para realizar operaciones de seguimiento de tendencias en marcos temporales múltiples. A través de la optimización de los parámetros, se espera obtener una mejor rentabilidad de la estrategia. Al mismo tiempo, se necesita prevenir el retraso de los indicadores, el ajuste de los parámetros y el control inadecuado de la volatilidad.
/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA-50, EMA-100, and MACD Strategy with ATR for Stop Loss/Profit", overlay=true)
// MACD hesaplama
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength)
// EMA-50 ve EMA-100 hesaplama
ema50 = ta.ema(close, 50)
ema100 = ta.ema(close, 100)
// ATR hesaplama
atrLength = input(14, title="ATR Length")
atrValue = ta.atr(atrLength)
// Take Profit ve Stop Loss çoklayıcıları
takeProfitMultiplier = input(3.0, title="Take Profit Multiplier") // TP, 3 katı ATR
stopLossMultiplier = input(1.0, title="Stop Loss Multiplier")
// Long Pozisyon Koşulları
longCondition = ta.crossover(macdLine, signalLine) and close > ema50 and close > ema100
// Short Pozisyon Koşulları
shortCondition = ta.crossunder(macdLine, signalLine) and close < ema50 and close < ema100
// Take Profit ve Stop Loss Seviyeleri
takeProfitLevel = close + takeProfitMultiplier * atrValue
stopLossLevel = close - stopLossMultiplier * atrValue
// Long Pozisyon İşlemleri
strategy.entry("Long", strategy.long, when=longCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Long", loss=stopLossLevel, profit=takeProfitLevel)
// Short Pozisyon İşlemleri
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", loss=stopLossLevel, profit=takeProfitLevel)
// Grafikte Gösterme
plot(ema50, color=color.blue, title="EMA-50")
plot(ema100, color=color.red, title="EMA-100")
hline(0, "Zero Line", color=color.gray)