Стратегия прогнозирования тренда MACD

Автор:Чао Чжан, Дата: 2023-11-02 15:25:11
Тэги:

img

Обзор

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

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

  1. Вычислить скоростную линию DEMAfast: вычислить два значения EMA скоростной линии MMEfast и вычислить скоростную линию DEMAfast по формуле DEMAfast = ((2 * MMEfast) - MMEfastb).

  2. Вычислить медленную линию DEMAslow: вычислить два значения EMA медленной линии MMEslow и вычислить медленную линию DEMAslow по формуле DEMAslow = ((2 * MMEslow) - MMEslowb).

  3. Вычислить линию MACD: Линия MACD - это разница между быстрой линией DEMAfast и медленной линией DEMAslow, LigneMACDZeroLag.

  4. Вычислить линию сигнала: вычислить два значения EMA линии MACD MMEsignal и вычислить линию сигнала Lignesignal по формуле Lignesignal = ((2 * MMEsignal) - MMEsignalb).

  5. Сравните линию MACD и линию сигнала: генерируйте сигнал покупки, когда линия MACD больше линии сигнала, и генерируйте сигнал продажи, когда линия MACD меньше линии сигнала.

  6. В вышеуказанном расчете используется алгоритм DEMA, который может эффективно уменьшить отставание индикатора MACD.

Преимущества стратегии

  1. Использование алгоритма DEMA может уменьшить задержку индикатора MACD и сделать торговые сигналы более чувствительными.

  2. Он не опирается на перекрестные сигналы MACD, но фиксирует изменения тренда через изменения расстояния между линиями MACD и сигналом, которые могут входить в тренд раньше.

  3. Стратегия точно оценивает тенденцию, и коэффициент прибыли может достигать 1,6-3,5 при хорошей рентабельности.

  4. Логика стратегии проста и понятна, легко понять и реализовать, подходит для количественной торговли.

Риски стратегии

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

  2. Хотя алгоритм DEMA уменьшает задержку, он не может полностью устранить задержку.

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

  4. Параметры sma, lma, tsp необходимо оптимизировать для различных периодов и сортов.

  5. Строп-лосс-стратегии могут быть добавлены для контроля потерь.

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

  1. Оптимизируйте параметры SMA, LMA и TSP для адаптации к различным периодам и видам торговли.

  2. Добавьте динамические стратегии стоп-лосса, такие как ATR, для контроля по торговым потерям.

  3. Включать индикаторы оценки тенденций, чтобы избежать торговли на различных рынках.

  4. Добавить размеры позиций для корректировки позиций на основе волатильности рынка.

  5. Оптимизировать логику входа и выхода для уточнения правил торговли сигналом.

Резюме

Стратегия прогнозирования тренда MACD улучшает расчет MACD с помощью алгоритма DEMA для уменьшения задержки и оценивает тренд через изменения расстояния между MACD и линиями сигнала. Как стратегия, следующая за трендом, она может эффективно улавливать изменения тренда. Фактор прибыли может достигать 1,6-3,5, с определенными преимуществами. Но ей все еще нужна дальнейшая оптимизация параметров, стратегии остановки потерь, фильтрация рынков диапазона и т. Д. Чтобы адаптироваться к большему количеству рыночных условий. Это будет направление развития этой стратегии.


/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
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/
// © moritz1301

//@version=4
strategy("MACD Trendprediction Strategy V1", shorttitle="MACD TPS", overlay=true)
sma = input(12,title='DEMA Courte')
lma = input(26,title='DEMA Longue')
tsp = input(9,title='Signal')
dolignes = input(true,title="Lignes")

MMEslowa = ema(close,lma)
MMEslowb = ema(MMEslowa,lma)
DEMAslow = ((2 * MMEslowa) - MMEslowb )

MMEfasta = ema(close,sma)
MMEfastb = ema(MMEfasta,sma)
DEMAfast = ((2 * MMEfasta) - MMEfastb)

LigneMACDZeroLag = (DEMAfast - DEMAslow)

MMEsignala = ema(LigneMACDZeroLag, tsp)
MMEsignalb = ema(MMEsignala, tsp)
Lignesignal = ((2 * MMEsignala) - MMEsignalb )

MACDZeroLag = (LigneMACDZeroLag - Lignesignal)

bgcolor(LigneMACDZeroLag<Lignesignal ? color.red : color.green)

if (LigneMACDZeroLag>Lignesignal)
	strategy.entry("Buy", strategy.long, comment="BUY")
	
if (LigneMACDZeroLag<Lignesignal)
	strategy.close("Buy", strategy.long, comment="SELL")








Больше