이 전략은 EMA와 SMA라는 두 개의 이동 평균에 기반한 크로스오버 전략이다. 느린 EMA가 더 빠른 SMA 위에 넘어가면 구매 신호를 생성하고 느린 EMA가 더 빠른 SMA 아래에 넘어가면 판매 신호를 생성한다. 이 전략은 황소 시장의 상승 추세를 파악하는 동시에 약간의 지원을 제공하는 것을 목표로 한다.
이 전략은 20주기 SMA와 21주기 EMA라는 두 개의 이동 평균을 사용합니다. EMA가 SMA를 넘으면 시장이 상승 추세로 변할 수 있음을 나타내고 구매 신호를 생성합니다. 반대로, EMA가 SMA를 넘으면 시장이 하향 추세로 변할 수 있음을 나타내고 판매 신호를 생성합니다. 신호를 확인하기 위해 전략은 현재 폐쇄 가격이 이전 폐쇄 가격 (구매 신호) 보다 높거나 이전 폐쇄 가격 (판매 신호) 보다 낮아야합니다.
EMA-SMA 크로스오버 황소 시장 지원 밴드 전략은 황소 시장에 특히 적합한 간단하고 이해하기 쉬운 트렌드 추적 전략입니다. 그러나 전략에는 잘못된 신호, 지연 및 제한된 트렌드 인식 능력과 같은 특정 한계도 있습니다. 다른 지표와 결합하여 매개 변수를 최적화하고 스톱 로스 및 영리를 추가하면 전략의 성능과 안정성이 더욱 향상 될 수 있습니다.
/*backtest start: 2023-05-17 00:00:00 end: 2024-05-22 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/ // © rodrinverte //@version=5 strategy("EMA-SMA Crossover Strategy", overlay=true, initial_capital = 1000) // Definir la longitud de las medias móviles fast = ta.sma(close, 20) slow = ta.ema(close, 21) // Definir condiciones de compra y venta buySignal = ta.crossover(slow, fast) sellSignal = ta.crossunder(slow, fast) // Configurar colores de las líneas y relleno emaColor = buySignal ? color.green : sellSignal ? color.red : color.blue smaColor = color.gray fillColor = slow < fast ? color.new(color.green, 90) : color.new(color.red, 90) // Esperar un periodo para confirmar la señal de compra o venta buyConfirmation = close > close[1] and buySignal sellConfirmation = close < close[1] and sellSignal // Dibujar las medias móviles plot(slow, title="EMA", color=emaColor) plot(fast, title="SMA", color=smaColor) // Configurar las señales de compra y venta plotshape(buyConfirmation, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(sellConfirmation, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Estrategia de compra y venta if (buyConfirmation) strategy.entry("Buy", strategy.long) if (sellConfirmation) strategy.entry("Sell", strategy.short) // Cerrar posición opuesta al cruce original if (sellSignal) strategy.close("Buy") if (buySignal) strategy.close("Sell")