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

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

img

Обзор

Эта стратегия генерирует сигналы входа и выхода, рассчитывая экспоненциальную скользящую среднюю EMA и индикатор MACD и объединяя сигналы перекрестка обоих.

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

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

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

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

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

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

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

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

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

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

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

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

  2. Добавление других индикаторов в комбинации, таких как каналы BOLL или индикаторы KD, для обогащения сигналов стратегии

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

  4. При прорыве линии EMA, судите о силе направления, чтобы избежать ложных прорывов

  5. Добавьте стратегии получения прибыли и остановки потерь, чтобы зафиксировать прибыль и сократить потери

Резюме

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


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

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

// Input definitions
fastLength = input(12, title="Fast Length")
slowlength = input(26, title="Slow Length")
MACDLength = input(9, title="MACD Length")
emaLength = input(13, title="EMA Length")
//smaLength = input(200, title="SMA Length")

// SMA Indicator - Are we in a Bull or Bear market according to 200 SMA?
//SMA = ta.ema(close, smaLength)

// EMA Indicator - Are we in a rally or not?
EMA = ta.ema(close, emaLength)

// MACD Indicator - Is the MACD bullish or bearish?
MACD = ta.ema(close, fastLength) // - ta.ema(close, slowlength)
aMACD = ta.ema(MACD, MACDLength)
delta = MACD - aMACD

// Set Buy/Sell conditions
buy_entry = close > EMA and delta > 5 ? true : close > EMA and delta > -5
sell_entry = close < EMA and delta < -5 ? true : close < EMA and delta < 5

if buy_entry
    strategy.entry(id='EL', direction=strategy.long)

if sell_entry
    strategy.entry(id='ES', direction=strategy.short)

// strategy.entry("Buy", strategy.long)
// strategy.entry("Sell", strategy.short)


Больше