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

EMA MACD SMA
Дата создания: 2025-02-24 09:43:04 Последнее изменение: 2025-02-27 16:49:52
Копировать: 1 Количество просмотров: 427
2
Подписаться
319
Подписчики

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

Обзор

Эта стратегия - это система обратного тренда, основанная на средней и MACD-индикаторах. Она объединяет в себе быстрые скользящие средние индексы (EMA), простые скользящие средние (SMA) и MACD-индикаторы, чтобы получить прибыль от захвата покупательских возможностей при изменении рыночной тенденции.

Стратегический принцип

Стратегия применяет EMA ((10) и MA ((20) в качестве ориентира для определения тренда, а также для подтверждения сигнала в сочетании с MACD ((12,26,9). В частности, входный сигнал должен одновременно соответствовать следующим условиям:

  1. EMA ((10) на MA ((20)), показывает, что краткосрочный тренд начинает быть сильнее среднесрочного
  2. MACD-индикатор и сигнальная линия расположены ниже нулевой оси, но MACD-линия находится выше сигнальной линии, показывая потенциальный нижний обратный сигнал Прямое положение стратегии проходит под разрывом MACD 0 и MACD и сигнальная линия находятся выше нулевой оси, что указывает на то, что восходящая тенденция может быть завершена.

Стратегические преимущества

  1. Многоуровневая проверка технологических показателей повышает надежность сигнала
  2. Сочетание трендов и динамических индикаторов позволяет не только понять основные тенденции, но и точно определить время входа в рынок.
  3. Использование двух средних линий EMA и SMA обеспечивает чувствительность к изменениям рынка и фильтрует некоторые ложные сигналы
  4. Ясные условия залога помогают вовремя остановить сделку и избежать ловушки

Стратегический риск

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

Направление оптимизации стратегии

  1. Введение показателей волатильности (например, ATR) для динамического регулирования размеров позиций и стоп-позиций
  2. Добавлен фильтр силы тренда, позволяющий избежать торговли в условиях слабых трендов.
  3. Оптимизация среднелинейных параметров, позволяющая выбрать оптимальные комбинации параметров в зависимости от различных рыночных характеристик
  4. Добавление проверки показателей объема перевода для повышения надежности сигнала
  5. Создание более совершенной системы управления капиталом, включающей в себя механизмы строительства складов по партиям и динамического размещения

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2024-02-25 00:00:00
end: 2025-01-20 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/

//@version=5
strategy("MACD Strategy", overlay=true)

//Macd 参数
fastLength = input(12, title="快线长度")
slowLength = input(26, title="慢线长度")
MACDLength = input(9, title="MACD 信号线长度")

// 计算 MACD
MACD = ta.ema(close, fastLength) - ta.ema(close, slowLength)
aMACD = ta.ema(MACD, MACDLength)
delta = MACD - aMACD


// 计算 EMA(10) 和 MA(20)
ema10 = ta.ema(close, 10)
ma20 = ta.sma(close, 20)
// 在图表上绘制 EMA(10) 和 MA(20),用于调试
plot(ema10, title="EMA 10", color=color.blue, linewidth=2)
plot(ma20, title="MA 20", color=color.red, linewidth=2)

// 实时检查条件
// 检查 EMA(10) 是否高于 MA(20)
bool emaAboveMa = ema10 > ma20

// 检查 MACD 是否在信号线上方,且 MACD 和信号线均在 0 轴下方
bool macdCondition = (MACD > aMACD) and (MACD < 0) and (aMACD < 0)

// 添加调试信息 - 当条件满足时绘制图形
plotshape(emaAboveMa, title="EMA Above MA Condition",  size=size.small, text="eam")
plotshape(macdCondition, title="MACD Condition", size=size.small, text="macd")

// 当两个条件都满足时,触发买入操作
if (emaAboveMa and macdCondition)
    strategy.entry("多头", strategy.long, comment="买入信号")
    // 显示买入信号的标签
    label.new(bar_index, high, "买入", textcolor=color.white, style=label.style_label_up, size=size.normal)

// 平仓条件
if (ta.crossunder(delta, 0) and MACD > 0 and aMACD > 0)
    strategy.close("MacdLE", comment="Close Long")
//if (ta.crossunder(delta, 0))
//	strategy.entry("MacdSE", strategy.short, comment="MacdSE")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)