Стратегия перекрестного использования MACD и EMA

Автор:Чао Чжан, Дата: 2023-12-28 15:22:14
Тэги:

img

Обзор

Эта стратегия использует перекрестное соединение быстрых и медленных линий индикатора MACD для определения входов и выходов. Индикатор EMA также используется для оценки направления тренда. Он длинный, когда быстрая линия проходит через медленную линию снизу, а значение MACD ниже 0, короткий, когда быстрая линия проходит через медленную линию сверху, а значение MACD выше 0. Выход стоп-лосса установлен на значение EMA, когда был сгенерирован сигнал; прибыль устанавливается в 2 раза больше цены входа.

Принцип стратегии

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

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

Стоп-лосс устанавливается на значение EMA, когда был сгенерирован сигнал. EMA может хорошо судить о тренде. Установка его как значения EMA может уменьшить вероятность того, что стоп-лосс будет выведен на предыдущие низкие или высокие точки. Приобретение прибыли устанавливается в 2 раза выше цены входа, давая соотношение риска и вознаграждения 2.

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

Эта стратегия сочетает в себе индикаторы MACD и EMA для лучшего определения времени входа и направления тренда. Метод стоп-лосса избегает погони за ростом и падением продаж. Соотношение риска и вознаграждения 2 является относительно консервативным параметром. Параметры индикатора MACD могут быть скорректированы, чтобы гибко адаптироваться к изменениям рынка.

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

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

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

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

Резюме

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


/*backtest
start: 2022-12-21 00:00:00
end: 2023-12-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

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

// MACD Settings
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
src = close

[macdLine, signalLine, _] = ta.macd(src, fastLength, slowLength, signalLength)

// 200 EMA
ema200 = ta.ema(src, 200)
plot(ema200, title="200 EMA", color=color.red)

// Long Condition
longCondition = ta.crossover(macdLine, signalLine) and macdLine < 0 and close > ema200
if (longCondition and strategy.position_size <= 0)
    strategy.entry("Long", strategy.long)
    longStopLoss = ema200
    longTakeProfit = close + 2 * (close - ema200)
    strategy.exit("Exit Long", "Long", stop=longStopLoss, limit=longTakeProfit)

// Short Condition
shortCondition = ta.crossunder(macdLine, signalLine) and macdLine > 0 and close < ema200
if (shortCondition and strategy.position_size <= 0)
    strategy.entry("Short", strategy.short)
    shortStopLoss = ema200
    shortTakeProfit = close - 2 * (ema200 - close)
    strategy.exit("Exit Short", "Short", stop=shortStopLoss, limit=shortTakeProfit)


Больше