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

Автор:Чао Чжан, Дата: 2023-10-24 13:51:02
Тэги:

img

Обзор

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

Принцип

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

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

Кроме того, RSI используется для предотвращения чрезмерного короткого позиционирования, причем короткая позиция начинается только тогда, когда RSI ниже 30%.

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

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

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

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

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

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

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

  2. Индикатор MACD подвержен генерированию ложных сигналов. Могут быть добавлены другие фильтры, такие как KDJ.

  3. Фиксированный процент стоп-лосса иногда не может выйти своевременно.

  4. Стратегия может иметь большие убытки. Размер позиции может быть уменьшен для снижения риска.

  5. Стратегия длится только долго и не может извлекать выгоду из нисходящих тенденций.

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

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

  1. Оптимизировать параметры MA для более точных сигналов.

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

  3. Испытывать методы динамической остановки потерь, такие как остановки отслеживания и остановки ATR, чтобы лучше контролировать риски.

  4. Добавьте механизмы короткого ценообразования, чтобы стратегия могла извлекать выгоду из нисходящих тенденций.

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

  6. Проверка производительности на различных продуктах и классах активов для расширения применимости.

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

Заключение

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


/*backtest
start: 2023-10-16 00:00:00
end: 2023-10-23 00:00:00
period: 2m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Toxic_Cat_

//@version=5
// strategy("MA_50_200_CROSS", overlay=true, margin_long=100, margin_short=100)

EMA21 = ta.ema(close, 21)
EMA100 = ta.ema(close, 100)
[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)

plot(EMA21)
plot(EMA100, color = color.orange)

openLong = ta.crossover(EMA21, EMA100) and macdLine > signalLine
openShort = ta.crossunder(EMA21, EMA100) and ta.rsi(close, 14) <= 33

crossunderMACD = ta.crossunder(macdLine, signalLine)


if (strategy.opentrades < 1)
    if openLong 
        strategy.entry("L",strategy.long, 1)

   if openShort
      strategy.entry("S",strategy.short, 1)

// slose long
// if ((strategy.opentrades.entry_price(0) + strategy.opentrades.entry_price(0)*0.03) <= open) 
//     strategy.exit("profit L", "L", limit = close)

// else if strategy.opentrades.entry_price(0) - strategy.opentrades.entry_price(0)*0.01 >= open or crossunderMACD
//     strategy.exit("loss L", "L", stop = close)

// slose short
// if (strategy.opentrades.entry_price(0) - strategy.opentrades.entry_price(0)*0.03) >= open
//     strategy.exit("profit S", "S", limit = (strategy.opentrades.entry_price(0) - strategy.opentrades.entry_price(0)*0.03))

// else if strategy.opentrades.entry_price(0) + strategy.opentrades.entry_price(0)*0.01 <= open
//    strategy.exit("loss S", "S", stop = (strategy.opentrades.entry_price(0) + strategy.opentrades.entry_price(0)*0.01))

















Больше