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


Дата создания: 2023-09-14 16:46:53 Последнее изменение: 2023-09-14 16:46:53
Копировать: 6 Количество просмотров: 647
1
Подписаться
1617
Подписчики

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

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

Вот логика:

  1. Вычислить быстрый цикл EMA, например, 12 дней

  2. Вычислите медленный цикл EMA, например 26 дней

  3. Рассчитайте разницу между EMA и MACD

  4. Сигнальная линия EMA для MACD, как 9-й EMA

  5. Затем разница между MACD и сигнальной линией EMA создает усиленную сигнальную линию

  6. Сделайте больше, когда проходите нулевую ось на линии усиленного сигнала

  7. Уравнение позиции при прохождении нулевой оси под усиленным сигналом

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

Стратегические преимущества

  • Улучшенная подача шума MACD повышает точность сигнала

  • Постепенно EMA принимает решение о направлении и масштабах работы

  • Медленные параметры с акцентом на длинную линию

Стратегический риск

  • Осторожно выбирайте параметры цикла EMA

  • Нельзя использовать свободные возможности, делая больше.

  • Сигнал появляется с небольшой частотой

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

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

Исходный код стратегии
/*backtest
start: 2022-09-07 00:00:00
end: 2023-09-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//study("MACDAS")
// strategy("macdas",shorttitle="macdas",overlay=true,default_qty_value=10000,initial_capital=10000,currency=currency.USD)

// Date range filter
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(4, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)

testStopYear = input(2018, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

inTimeRange = true


fastperiod = input(12,title="fastperiod",minval=1,maxval=500)
slowperiod = input(26,title="slowperiod",minval=1,maxval=500)
signalperiod = input(9,title="signalperiod",minval=1,maxval=500)
fastMA = ema(close, fastperiod)
slowMA = ema(close, slowperiod)
macd = fastMA - slowMA
signal = ema(macd, signalperiod)
macdAS = macd - signal
signalAS = ema(macdAS, signalperiod)
plot(macdAS, color=blue, linewidth=2)
plot(signalAS, color=red, linewidth=2)
plot(0, color=black)

strategy.entry("LONG", strategy.long, when =inTimeRange and crossover(macdAS,signalAS))
strategy.close("LONG", when= inTimeRange and crossunder(macdAS,signalAS))

plotshape(crossover(macdAS, signalAS) , style = shape.arrowup, text="Long",color=green,size=size.huge)
plotshape(crossover(signalAS,macdAS) , style = shape.arrowdown, text="End Long",color=red,size=size.huge)