Стратегия перекрестного использования скользящей средней

Автор:Чао Чжан, Дата: 2024-01-23 15:20:16
Тэги:

img

Обзор

Это торговая стратегия, основанная на сигналах пересечения скользящей средней. Она использует 45-дневную скользящую среднюю линию в качестве основного технического индикатора и генерирует сигналы покупки и продажи, когда цена проходит через скользящую среднюю линию.

Логика стратегии

Когда цена поднимается и превышает 45-дневную скользящую среднюю линию, генерируется сигнал покупки. После 8 дней удержания позиции генерируется сигнал продажи. После этого, если цена снова поднимается и превышает 45-дневную скользящую среднюю линию, будет задействован новый сигнал покупки и так далее.

Конкретными логическими принципами являются:

  1. Вычислите 45-дневную скользящую среднюю.
  2. Когда цена закрытия переходит ниже и выше скользящей средней линии, генерируется сигнал покупки, чтобы пойти длинным.
  3. Удерживать позицию в течение 8 торговых дней после выхода на рынок.
  4. Закройте длинную позицию через 8 дней и сделайте сигнал продажи.
  5. Если впоследствии цена закрытия снова превысит линию скользящей средней, регенерируйте сигнал покупки для повторного открытия длинной позиции.

Вышеперечисленное составляет основную логику торговли этой стратегии.

Преимущества

Эта стратегия имеет следующие преимущества:

  1. Правила торговли просты и понятны, легко понять и применить.
  2. Использует функцию отслеживания тенденций скользящих средних для эффективного отслеживания среднесрочных и долгосрочных тенденций.
  3. 8-дневный период хранения является достаточно длинным для отслеживания тенденций и достаточно коротким для своевременного сокращения потерь.
  4. Правила повторного выхода на рынок ясны, что помогает ограничить частоту торговли.

Риски

Эта стратегия сопряжена с некоторыми рисками:

  1. Отставание скользящих средних может привести к поздним входам и преждевременным выходам.
  2. Период фиксированного хранения и параметры MA могут не адаптироваться к изменяющимся рыночным условиям.
  3. Частота торговли может быть слишком высокой, увеличивая затраты и сдвиг.
  4. Сигналы прорыва могут производить ложные сигналы, что приводит к некоторым ударам.

Решения:

  1. Оптимизируйте параметры MA, чтобы уменьшить задержку.
  2. Увеличьте период хранения или используйте остановки для лучшего отслеживания тенденций.
  3. Добавьте фильтры, использующие другие индикаторы, такие как MACD или KDJ, для подтверждения сигналов.
  4. Уточните правила повторного входа для контроля частоты.

Области улучшения

Основными направлениями совершенствования являются:

  1. Оптимизировать параметры МДК для поиска лучших комбинаций, например, 15-дневные, 30-дневные, 60-дневные МДК.

  2. Оптимизировать период хранения для определения оптимальной продолжительности, например, 5 дней, 10 дней, 15 дней.

  3. Добавление остановок для отслеживания тенденций и контроля рисков, например, остановок для испытаний или остановок ATR.

  4. Добавьте фильтры, использующие другие индикаторы, такие как MACD, KDJ, чтобы уменьшить ложные сигналы.

  5. Усовершенствовать правила реинтеграции, чтобы предотвратить чрезмерную торговлю, например, ввести периоды отсрочки.

  6. Эффективность испытаний на разных рынках и инструментах.

Резюме

В целом, эта стратегия кроссовера 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")

Больше