이 전략은 거래 신호를 생성하기 위해 서로 다른 기간을 가진 두 개의 이동 평균 (MA) 을 사용합니다. 단기 MA가 아래에서 장기 MA보다 높을 때 구매 신호를 생성합니다. 단기 MA가 위에서 장기 MA보다 낮을 때 판매 신호를 생성합니다. 이 전략의 주된 아이디어는 MA의 트렌드 추적 특성을 활용하고 거래 목적으로 MA 크로스오버를 통해 트렌드 변화를 포착하는 것입니다.
이중 이동 평균 크로스오버 전략은 서로 다른 기간의 두 MAs의 크로스오버를 통해 트렌드 변화를 포착하는 간단하고 사용하기 쉬운 트렌드 추적 전략이다. 전략의 장점은 명확한 논리, 명시적인 신호 및 트렌딩 시장에 적합한 것입니다. 그러나 불안정한 시장에서 전략은 더 많은 잘못된 신호를 생성하고 거래를 잃을 수 있습니다. 따라서 실용적인 응용에서는 트렌드 필터를 추가하고 수익을 취하고 손실을 중지하는 최적화, 매개 변수를 동적으로 최적화하고 다른 신호와 결합하여 적응력과 안정성을 향상시킬 수 있습니다.
/*backtest start: 2023-05-22 00:00:00 end: 2024-05-27 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Combined Strategy", overlay=true) // Moving Averages Length Inputs short_length = input.int(20, "Short MA Length") long_length = input.int(50, "Long MA Length") // Moving Averages ma_short = ta.sma(close, short_length) ma_long = ta.sma(close, long_length) // Buy Condition (Moving Average Crossover) buy_condition = ta.crossover(ma_short, ma_long) plotshape(series=buy_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) // Sell Condition (Moving Average Crossover) sell_condition = ta.crossunder(ma_short, ma_long) plotshape(series=sell_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Strategy Entry and Exit if (buy_condition) strategy.entry("Buy", strategy.long) if (sell_condition) strategy.entry("Sell", strategy.short) // Debug statements if (buy_condition) label.new(x=bar_index, y=low, text="Buy Signal", color=color.green, style=label.style_label_up) if (sell_condition) label.new(x=bar_index, y=high, text="Sell Signal", color=color.red, style=label.style_label_down)