Это торговая стратегия, основанная на сигналах пересечения скользящей средней. Она использует 45-дневную скользящую среднюю линию в качестве основного технического индикатора и генерирует сигналы покупки и продажи, когда цена проходит через скользящую среднюю линию.
Когда цена поднимается и превышает 45-дневную скользящую среднюю линию, генерируется сигнал покупки. После 8 дней удержания позиции генерируется сигнал продажи. После этого, если цена снова поднимается и превышает 45-дневную скользящую среднюю линию, будет задействован новый сигнал покупки и так далее.
Конкретными логическими принципами являются:
Вышеперечисленное составляет основную логику торговли этой стратегии.
Эта стратегия имеет следующие преимущества:
Эта стратегия сопряжена с некоторыми рисками:
Решения:
Основными направлениями совершенствования являются:
Оптимизировать параметры МДК для поиска лучших комбинаций, например, 15-дневные, 30-дневные, 60-дневные МДК.
Оптимизировать период хранения для определения оптимальной продолжительности, например, 5 дней, 10 дней, 15 дней.
Добавление остановок для отслеживания тенденций и контроля рисков, например, остановок для испытаний или остановок ATR.
Добавьте фильтры, использующие другие индикаторы, такие как MACD, KDJ, чтобы уменьшить ложные сигналы.
Усовершенствовать правила реинтеграции, чтобы предотвратить чрезмерную торговлю, например, ввести периоды отсрочки.
Эффективность испытаний на разных рынках и инструментах.
В целом, эта стратегия кроссовера MA - это простая и практичная система отслеживания тренда. Она использует возможности отслеживания тренда MA и сочетает в себе ценовые прорывы для генерации торговых сигналов.
/*backtest start: 2023-01-16 00:00:00 end: 2024-01-22 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Moving Average Crossover Strategy", overlay=true) // Calculate the 45-day moving average ma_length = 45 ma = ta.sma(close, ma_length) // Track position entry and entry bar var bool in_long_position = na var int entry_bar = na var int exit_bar = na // Entry condition: Close price crosses above the 45-day moving average to enter the position if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] < ma[1]) in_long_position := true entry_bar := bar_index // Exit condition: Close the position after holding for 8 trading days if (in_long_position and bar_index - entry_bar >= 8) in_long_position := false exit_bar := bar_index // Re-entry condition: Wait for price to cross over the 45-day moving average again if (not in_long_position and ta.crossover(close, ma) and not na(ma[1]) and close > ma and close[1] > ma[1] and (na(exit_bar) or bar_index - exit_bar >= 8)) in_long_position := true entry_bar := bar_index // Execute long entry and exit if (in_long_position) strategy.entry("Long", strategy.long) if (not in_long_position) strategy.close("Long")