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

Автор:Чао Чжан, Дата: 2024-02-22 15:36:49
Тэги:

img

Обзор

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

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

Основная логика этой стратегии основана на перекрестках между краткосрочными и долгосрочными скользящими средними в качестве торговых сигналов. В частности, стратегия определяет 34-периодные и 89-периодные краткосрочные и долгосрочные простые скользящие средние (SMA). Она наблюдает перекрестки между этими двумя SMA только в течение утренней сессии (08:00 - 10:00). Когда краткосрочная SMA пересекает длинную SMA снизу, рынок считается в восходящем тренде, тем самым генерируя сигнал покупки. Когда краткосрочная SMA пересекает длинную SMA сверху, рынок считается в нисходящем тренде, тем самым генерируя сигнал продажи.

При получении сигнала покупки или продажи стратегия вступает в позицию и устанавливает условие выхода из позиции, которое заключается в получении прибыли после удержания за определенное количество свечей (по умолчанию 3 свечи) с момента входа. Это позволяет зафиксировать частичную прибыль и избежать дальнейших потерь.

Следует отметить, что стратегия идентифицирует перекрестные сигналы только во время утренней сессии. Это связано с тем, что в этом временном периоде объемы торговли выше, а сигналы изменения тренда более надежные. Другие временные периоды имеют большие колебания цен и легче генерировать ложные сигналы.

Анализ преимуществ

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

  1. Использование простых и универсальных правил пересечения скользящей средней, легко понятных, подходящих для новичков

  2. Идентификация сигналов только во время утренней сессии, когда качественные сигналы в изобилии, что фильтрует ложные сигналы в течение других временных рамок

  3. Имеет условия стоп-лосса, которые позволяют своевременно остановить потерю, блокировать частичную прибыль и снизить риск потери

  4. Многие настраиваемые параметры, которые могут быть скорректированы на основе рыночных условий и личного стиля торговли

  5. Легко расширяется для объединения с другими показателями для разработки более сложных стратегий

Анализ рисков

Стратегия также сопряжена с определенными рисками, главным образом из следующих аспектов:

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

  2. Опирается исключительно на простые индикаторы, подверженные сбоям в определенных рыночных условиях (шоки тренда, диапазонные ограничения и т.д.)

  3. Неправильное расположение стоп-лосса может привести к ненужным потерям

  4. Неправильное настройка параметров (периоды скользящей средней, периоды хранения и т.д.) также может повлиять на эффективность стратегии.

Соответствующие решения:

  1. Включить другие ведущие показатели для повышения чувствительности к краткосрочным изменениям

  2. Добавить условия фильтрации, чтобы избежать воздействия ложных сигналов во время шоков и рынков с ограниченным диапазоном

  3. Оптимизировать логику стоп-лосса и динамически регулировать диапазон стоп-лосса на основе волатильности рынка

  4. Оптимизация нескольких параметров для поиска оптимальных параметров

Руководство по оптимизации

Стратегия также обладает большим потенциалом для оптимизации, главным образом в следующих аспектах:

  1. Добавление других условий фильтрации для предотвращения ложных сигналов во время шоков и рынков с диапазоном

  2. Включить индикаторы импульса для выявления более сильных сигналов прорыва

  3. Оптимизировать параметры скользящей средней продолжительности для поиска наилучшей комбинации параметров

  4. Автоматически оптимизировать диапазон стоп-лосса на основе волатильности рынка

  5. Попытка автоматической оптимизации всей стратегии на основе методов машинного обучения

  6. Попытка объединить с другими стратегиями для разработки более сложных многостратегических систем

Заключение

В целом, эта стратегия относительно проста и практична, подходит для обучения новичков. Она воплощает в себе типичную модель движущихся средних кроссовер стратегий и использует остановки для контроля рисков. Однако могут быть сделаны дальнейшие оптимизации для улучшения производительности для большего количества рыночных условий. Инвесторы могут использовать эту базовую основу для разработки более продвинутых количественных торговых стратегий.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("34 89 SMA Crossover Strategy", overlay=true)

// Define the length for the SMAs
short_length = input(34, title="Short SMA Length")
long_length = input(89, title="Long SMA Length")
exit_candles = input(3, title="Exit after how many candles?")
exit_at_open = input(true, title="Exit at Open?")

// Define morning session
morning_session = input("0800-1000", "Morning Session")

// Calculate SMAs
short_sma = ta.sma(close, short_length)
long_sma = ta.sma(close, long_length)

// Function to check if current time is within specified session
in_session(session) =>
    session_start = na(time(timeframe.period, "0800-1000")) ? na : true
    session_start

// Condition for buy signal (short SMA crosses over long SMA) within specified trading hours
buy_signal = ta.crossover(short_sma, long_sma)

// Condition for sell signal (short SMA crosses under long SMA) within specified trading hours
sell_signal = ta.crossunder(short_sma, long_sma)

// Function to exit the trade after specified number of candles
var int trade_entry_bar = na
var int trade_exit_bar = na
if (buy_signal or sell_signal)
    trade_entry_bar := bar_index
if (not na(trade_entry_bar))
    trade_exit_bar := trade_entry_bar + exit_candles

// Exit condition
exit_condition = (not na(trade_exit_bar) and (exit_at_open ? bar_index + 1 >= trade_exit_bar : bar_index >= trade_exit_bar))

// Execute trades
if (buy_signal)
    strategy.entry("Buy", strategy.long)
if (sell_signal)
    strategy.entry("Sell", strategy.short)
if (exit_condition)
    strategy.close("Buy")
    strategy.close("Sell")

// Plot SMAs on the chart
plot(short_sma, color=color.blue, linewidth=1)
plot(long_sma, color=color.red, linewidth=1)


Больше