Стратегия прорыва двойной скользящей средней, основанная на волатильности цен


Дата создания: 2023-12-08 16:44:22 Последнее изменение: 2023-12-08 16:44:22
Копировать: 0 Количество просмотров: 637
1
Подписаться
1621
Подписчики

Стратегия прорыва двойной скользящей средней, основанная на волатильности цен

Обзор

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

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

Сначала стратегия рассчитывает процентные изменения цены:

i=(src/nz(src[1], src))*100

Затем через среднюю линию длиной 35 фильтруют первичный показатель волатильности цены pmol2 ◄ . Затем через среднюю линию длиной 20 фильтруют вторую на pmol2 и получают конечный показатель волатильности цены pmol ◄ . И, наконец, через среднюю линию длиной 10 фильтруют сигнальную линию pmols ◄ . Когда pmol проходит через pmols над pmol, создается сигнал покупки; когда pmol проходит через pmols ниже, создается сигнал продажи ◄ .

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

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

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

  • Двухлинейная фильтрация приводит к некоторой задержке.
  • Процентное изменение в расчете более чувствительно к ценовым колебаниям.
  • При переводе коров и медведей необходимо своевременно погасить ставки.

Направление оптимизации:

  • Оптимизация параметров средней линии, улучшение восприятия тенденций.
  • Попробуйте различные методы расчета изменения цен.
  • Добавьте условия фильтрации, чтобы избежать ошибочных сигналов.

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

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

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

//@version=2
strategy("Strategy for DPMO", overlay=true)

src=input(close, title="Source")
length1=input(35, title="First Smoothing")
length2=input(20, title="Second Smoothing")
siglength=input(10, title="Signal Smoothing")
ebc=input(false, title="Enable Bar Colors")

upSign = '↑' // indicates the indicator shows uptrend
downSign = '↓' // incicates the indicator showing downtrend
exitSign ='x' //indicates the indicator uptrend/downtrend ending

calc_csf(src, length) => 
	sm = 2.0/length
	csf=(src - nz(csf[1])) * sm + nz(csf[1])
	csf
i=(src/nz(src[1], src))*100
pmol2=calc_csf(i-100, length1)
pmol=calc_csf( 10 * pmol2, length2)
pmols=ema(pmol, siglength)
d=pmol-pmols
hc=d>0?d>d[1]?lime:green:d<d[1]?red:orange

buyDPMO = hc==lime and hc[1]!=lime
closeBuyDPMO = hc==green and hc[1]!=green
sellDPMO = hc==red and hc[1]!=red
closeSellDPMO = hc==orange and hc[1]!=orange

plotshape(buyDPMO, color=lime, style=shape.labelup, textcolor=#000000, text="DPMO", location=location.belowbar, transp=0)
plotshape(closeBuyDPMO, color=green, style=shape.labelup, textcolor=#ffffff,  text="X", location=location.belowbar, transp=0)
plotshape(sellDPMO, color=red, style=shape.labeldown, textcolor=#000000, text="DPMO", location=location.abovebar, transp=0)
plotshape(closeSellDPMO, color=orange, style=shape.labeldown, textcolor=#ffffff,  text="X", location=location.abovebar, transp=0)
barcolor(ebc?hc:na)


strategy.entry("Long", strategy.long, when=buyDPMO)
strategy.close("Long", when=closeBuyDPMO or sellDPMO)   
strategy.entry("Short", strategy.short, when=sellDPMO)
strategy.close("Short", when=closeSellDPMO or buyDPMO)