이 전략은 다른 기간의 이동 평균을 계산하고 트렌드를 따르기 위해 구매 및 판매 신호로 크로스오버를 사용하여 거래 신호를 생성합니다. 핵심 논리는 짧은 기간 이동 평균을 사용하여 더 긴 기간 트렌드의 전환점을 추적하는 것입니다.
거래 신호의 논리는 짧은 기간 MA가 가격 변화에 더 빠르게 반응하고 최신 트렌드를 반영 할 수 있으며, 더 긴 기간 MA는 전체 트렌드를 더 잘 표현하고 소음을 필터 할 수 있다는 것입니다. 짧은 MA가 더 긴 MA를 넘으면 트렌드 반전을 나타냅니다. 따라서 거래 신호가 활성화됩니다.
이 전략은 간단한 MA 크로스오버로 트렌드 변화를 잡습니다. 그것은 전형적인 트렌드 다음 전략에 속합니다. 장점은 단순하고 사용하기 쉽고 매개 변수 조정으로 적응이 가능합니다. 단점은 느린 반응과 잘못된 신호입니다. 전반적으로 명확한 논리를 가지고 있으며 알고 거래의 좋은 출발점입니다. 라이브 거래에 적절한 위험 관리 및 최적화가 필요합니다.
/*backtest start: 2023-02-23 00:00:00 end: 2024-02-29 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("MA Crossover Strategy", overlay=true) // Функция для получения скользящего среднего на заданном таймфрейме getMA(source, length, timeframe) => request.security(syminfo.tickerid, timeframe, ta.sma(source, length)) // Вычисляем 200-периодное и 100-периодное скользящее среднее для текущего таймфрейма ma200 = getMA(close, 200, "240") ma100 = getMA(close, 100, "240") // Открываем позицию Long, если 100-периодное скользящее среднее пересекает 200-периодное сверху вниз if (ta.crossover(ma100, ma200)) strategy.entry("Long", strategy.long) // Закрываем позицию Long, если 100-периодное скользящее среднее пересекает 200-периодное сверху вниз if (ta.crossunder(ma100, ma200)) strategy.close("Long") // Открываем позицию Short, если 100-периодное скользящее среднее пересекает 200-периодное сверху вниз if (ta.crossunder(ma100, ma200)) strategy.entry("Short", strategy.short) // Закрываем позицию Short, если 100-периодное скользящее среднее пересекает 200-периодное снизу вверх if (ta.crossover(ma100, ma200)) strategy.close("Short") // Рисуем линии скользящих средних на графике plot(ma200, color=color.blue, linewidth=2, title="200 MA") plot(ma100, color=color.red, linewidth=2, title="100 MA")