동적인 이동 평균 크로스오버 전략은 트렌드 추후 전략이다. 빠른 이동 평균 (Fast MA) 과 느린 이동 평균 (Slow MA) 을 계산하고 그 사이의 교차를 감지하여 시장의 트렌드 반전 지점을 파악하여 구매 및 판매 신호를 생성합니다.
이 전략의 핵심 논리는 다음과 같습니다: 빠른 이동 평균이 아래에서 느린 이동 평균을 넘을 때 구매 신호가 생성됩니다. 빠른 이동 평균이 위에서 느린 이동 평균을 넘을 때 판매 신호가 생성됩니다.
이동 평균은 시장 소음을 효과적으로 필터하고 가격 트렌드를 포착 할 수 있습니다. 빠른 이동 평균은 더 민감하며 트렌드 변화를 적시에 포착 할 수 있습니다. 느린 이동 평균은 더 안정적이며 단기 변동의 영향을 효과적으로 필터 할 수 있습니다. 빠르고 느린 MAs가 황금 십자가 (아래에서 상승) 를 가지고있을 때 시장이 상승 단계로 들어갔음을 나타냅니다. 사망 십자가 (위에서 하락) 을 볼 때 시장이 하락 단계로 들어갔음을 나타냅니다.
이 전략은 이동평균이 교차할 때 즉시 거래 신호를 발행하고, 시장 추세를 따라가 더 큰 이윤을 창출하기 위해 트렌드 추격 전략을 채택합니다. 동시에 전략은 위험을 엄격히 통제하기 위해 스톱 로스를 설정하고 이윤을 취합니다.
매개 변수를 최적화하고, 이동 평균 기간을 조정하고, 필터 조건을 추가하여 개선 할 수 있습니다.
동적 이동 평균 크로스오버 전략은 전반적으로 상당히 잘 수행됩니다. 매개 변수를 최적화함으로써 추가 개선이 가능합니다. 전략은 구현이 쉽고 초보자 연습에 적합합니다. 그러나 잘못된 신호의 위험은 주의해야하며 더 나은 성과를 내기 위해 다른 지표와 함께 사용해야합니다.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Simple Moving Average Crossover", shorttitle="SMAC", overlay=true) // Define input parameters fast_length = input.int(9, title="Fast MA Length") slow_length = input.int(21, title="Slow MA Length") stop_loss = input.float(1, title="Stop Loss (%)", minval=0, maxval=100) take_profit = input.float(2, title="Take Profit (%)", minval=0, maxval=100) // Calculate moving averages fast_ma = ta.sma(close, fast_length) slow_ma = ta.sma(close, slow_length) // Define conditions for long and short signals long_condition = ta.crossover(fast_ma, slow_ma) short_condition = ta.crossunder(fast_ma, slow_ma) // Plot moving averages on the chart plot(fast_ma, title="Fast MA", color=color.blue) plot(slow_ma, title="Slow MA", color=color.red) // Execute long and short trades if (long_condition) strategy.entry("Long", strategy.long) if (short_condition) strategy.entry("Short", strategy.short) // Set stop loss and take profit levels stop_loss_price = close * (1 - stop_loss / 100) take_profit_price = close * (1 + take_profit / 100) strategy.exit("Take Profit/Stop Loss", stop=stop_loss_price, limit=take_profit_price) // Plot signals on the chart plotshape(series=long_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(series=short_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)