Стратегия торговли по тренду с двойным пересечением линий на основе индикатора EMA


Дата создания: 2024-01-23 14:43:46 Последнее изменение: 2024-01-23 14:43:46
Копировать: 2 Количество просмотров: 635
1
Подписаться
1617
Подписчики

Стратегия торговли по тренду с двойным пересечением линий на основе индикатора EMA

Обзор

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

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

Стратегия использует две средние линии EMA на 30 и 60 циклов. Средняя линия EMA - это скользкая скользящая средняя, которая придает более высокий вес последним ценам, чтобы средняя линия EMA могла быстрее реагировать на изменения цен.

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

Стратегия одновременно устанавливает стоп-стоп. Стоп-стоп устанавливается как наивысшая из последних 10 K-линейных максимумов для блокирования максимальной прибыли. Стоп-стоп устанавливается как средняя длительная EMA для контроля риска.

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

Основные преимущества этой стратегии:

  1. Использование средней линии EMA для определения тренда имеет высокую надежность и позволяет легко использовать трендовые возможности.
  2. Двухлинейный перекрестный сигнал высокой чувствительности
  3. Установка стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп-стоп

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

Основные риски этой стратегии:

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

Решение проблемы:

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

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

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

  1. Оптимизация среднелинейных параметров EMA для поиска оптимального сочетания параметров
  2. Добавление других показателей в качестве вспомогательных суждений, таких как MACD, KDJ и т. д.
  3. Повышение показателей энергопотребления, предотвращение ложных прорывов из-за недостаточного энергопотребления
  4. Динамическая оптимизация остановочных точек с использованием машинного обучения
  5. Тестирование параметров устойчивости различных сортов, чтобы найти оптимальный вариант

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

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

Исходный код стратегии
/*backtest
start: 2023-12-23 00:00:00
end: 2024-01-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

// 输入设置
ema30_length = input.int(30, title="EMA 30 Length", minval=1)
ema60_length = input.int(60, title="EMA 60 Length", minval=1)

// 计算EMA
ema30 = ta.ema(close, ema30_length)
ema60 = ta.ema(close, ema60_length)

// 绘制EMA
plot(ema30, title="EMA 30", color=color.blue, linewidth=2)
plot(ema60, title="EMA 60", color=color.red, linewidth=2)

// 判断上升趋势
uptrend = close > ema30 and ema30 > ema60

// 买入条件
buy_signal = ta.crossover(close, ema30) and close[1] < ema30[1] and close[1] > ema60[1] and uptrend

// 止盈止损
take_profit_level = ta.highest(high, 10)
stop_loss_level = ema60

// 执行交易
if (buy_signal)
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit", "Long", stop=stop_loss_level, limit=take_profit_level)