이 전략은 20 기간 간단한 이동 평균 (SMA) 과 21 기간 기하급수적 이동 평균 (EMA) 을 계산하고 그래프화하며, 가격 변동 구역을 시각화하기 위해 그 사이의 색상을 채우고 있습니다. 가격이 20 기간 SMA 이상으로 넘어가면 구매 신호를 생성하고 가격이 21 기간 EMA 이하로 넘어가면 판매 신호를 생성합니다. 이 전략에는 또한 후속 스톱 손실 및 수익 취업 기능이 있습니다.
이중 이동 평균 크로스오버 전략의 핵심 아이디어는 빠른 이동 평균과 느린 이동 평균 사이의 크로스오버를 거래 신호로 사용하는 것입니다. 20 기간 SMA는 가격 변화에 더 빠르게 반응하는 반면 21 기간 EMA는 약간 뒤떨어져 있지만 더 부드럽습니다. 단기 및 장기 트렌드가 일관성있는 경우, 즉 두 이동 평균이 상향 또는 하향으로 교차하면 트렌드가 강화되고 거래 결정이 더 수익성이있을 가능성이 있음을 나타냅니다.
특히, 종료 가격이 20주기 SMA를 넘을 때, 단기 및 장기 모두 상승 추세에 있음을 나타냅니다. 따라서 장거리로 이동합니다. 종료 가격이 21주기 EMA를 넘을 때, 단기 및 장기 모두 하락 추세에 있음을 나타냅니다. 출구 신호는 입구 신호의 반대입니다. 예를 들어, 가격이 20주기 SMA 아래로 떨어지면 긴 포지션을 닫습니다. 가격이 21주기 EMA를 넘을 때, 짧은 포지션을 닫습니다.
채식 기술은 또한 두 이동 평균 사이의 색을 채우기 위해 사용되며 시장 트렌드를 판단하는 데 도움이되는 시각적 지표를 형성합니다.
이중 이동 평균 크로스오버 전략은 다음과 같은 장점을 가지고 있습니다.
이 전략에는 몇 가지 위험도 있습니다.
위의 위험을 해결하기 위해 다음과 같은 조치를 취할 수 있습니다.
이 전략은 다음과 같은 측면에서 개선될 수 있습니다.
이 전략은 빠르고 느린 이동 평균 사이의 교차점을 사용하여 트렌드 변화를 식별하고 그에 따른 긴 및 짧은 결정을 내립니다. 단순성, 직관성 및 구현 용이성과 같은 장점이 있지만, 또한 몇 가지 위험을 안고 있습니다. 위험은 파라미터 최적화, 필터 추가, 수동 감독 등을 통해 감소하고 성능을 향상시킬 수 있습니다. 전략은 큰 확장성을 가지고 있으며 심도있는 연구와 응용 가치가 있습니다.
/*backtest start: 2024-01-27 00:00:00 end: 2024-02-26 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("BMSB Breakout Strategy", shorttitle="BMSB Breakout", overlay=true) source = close smaLength = 20 emaLength = 21 sma = ta.sma(source, smaLength) ema = ta.ema(source, emaLength) outSma = request.security(syminfo.tickerid, timeframe.period, sma) outEma = request.security(syminfo.tickerid, timeframe.period, ema) smaPlot = plot(outSma, color=color.new(color.red, 0), title='20w SMA') emaPlot = plot(outEma, color=color.new(color.green, 0), title='21w EMA') fill(smaPlot, emaPlot, color=color.new(color.orange, 75), fillgaps=true) // Definir condiciones para la estrategia de compra y venta buyCondition = ta.crossover(close, outSma) sellCondition = ta.crossunder(close, outEma) // Entrada larga (compra) y salida corta strategy.entry("Long", strategy.long, when=buyCondition and not na(sellCondition)) strategy.close("Short", when=buyCondition) // Entrada corta (venta) y salida larga strategy.entry("Short", strategy.short, when=sellCondition and not na(buyCondition)) strategy.close("Long", when=sellCondition) // Puedes ajustar la configuración de la estrategia y los valores predeterminados según tus preferencias plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.triangleup, title="Buy Signal") plotshape(series=sellCondition, location=location.abovebar, color=color.red, style=shape.triangledown, title="Sell Signal")