
Эта стратегия использует двузначное движущееся среднее ((DEMA) для вычисления волатильности цены, а также обрабатывает волатильность, чтобы обнаружить тенденцию к волатильности цены, делая больше, когда волатильность повышается, и делая меньше, когда волатильность снижается.
Двойная скользящая средняя стоимости (DEMA) по формуле: DEMA = 2*EMA(price, N) - EMA(EMA(price, N), N)
Расчет колебаний цены по отношению к DEMA: колебания = (price - DEMA) / price * 100%
Опять обрабатываем волатильность с помощью DEMA и получаем сигнал тренда волатильности
Когда после выравнивания волатильность превышает определенный уровень, делать больше; когда после выравнивания волатильность превышает определенный уровень, делать пустоту
Можно установить, что сделка будет совершаться только в определенный период времени
Использование двойных скользящих средних позволяет быстрее улавливать тенденции изменения цен
Волатильность может отражать рыночные ожидания, причем повышение волатильности означает преимущество, а снижение - преимущество.
Второе сглаживание колебаний, которое отфильтровывает кратковременный шум и улавливает основные тенденции
Можно установить, чтобы торговать только в определенные периоды времени, чтобы избежать ненужных потерь в скольжениях
Применение стратегии “стоп-лосс”, “выход из игры”, “контроль риска”
В экстремальных условиях DEMA может отстать и не попасть в лучшие места для заезда.
Возможен ложный прорыв в показателе волатильности, который следует проверять в сочетании с другими показателями
следует установить стоп-пойнт, чтобы предотвратить увеличение убытков
Если вы не будете торговать в течение определенного периода времени, вы упустите возможность торговать.
Выбор периода торговли требует тестирования на основе исторических данных, а неуместный период может снизить доход
Оптимизация параметров DEMA с меньшими значениями N
Интегрированный анализ в сочетании с другими показателями, такими как RSI, MACD и т. Д.
Определение стоп-пойнтов на основе исторических данных и максимально допустимых потерь
Выбор оптимального периода торговли
Наилучшие сроки торговли для различных сортов
Тестирование различных комбинаций DEMA-параметров, чтобы найти оптимальный параметр для сглаживания
Попробуйте другие типы скользящих средних, такие как EMA, SMA и т.д.
Оптимизация показателя колебаний с помощью многократного сглаживания
Добавление других вспомогательных показателей для многофакторной проверки
Автоматическая оптимизация входных и выходных параметров с использованием методов, таких как машинное обучение
Оптимальное сочетание параметров для тестирования различных сортов
Увеличение стратегии стоп-лосс и ухода из игры, строгий контроль риска
Эта стратегия позволяет быстро обнаружить изменяющиеся тенденции рыночного настроения, когда рынок колеблется, когда колебания растут, когда колебания растут, когда колебания падают, когда они становятся пустыми, чтобы совершить текущую торговлю. Однако стратегия может иметь такие проблемы, как задержка DEMA, ложные прорывы и т. Д.
/*backtest
start: 2022-10-17 00:00:00
end: 2023-10-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version= 2
strategy("DEMA of DPD Strategy ",shorttitle="DPD% DEMA " ,overlay=false)
buyper =input(-2)
sellper=input(2)
demalen = input(50,title="Dema Length")
e1= ema(close,demalen)
e2=ema(e1,demalen)
demaprice = 2 * e1 - e2
price=close
demadifper = ((price-demaprice)/price)*100
OverDemaPer = input(1, title="Band for OverBought")
UnderDemaPer= input(-1,title="Band for OverSold")
band1 = hline(OverDemaPer)
band0 = hline(UnderDemaPer)
zeroline=0
fill(band1, band0, color=green, transp=90)
demalen2 = input(21,title="DEMA to Calculate dema of DPD")
demaofdpd =ema(demadifper,demalen2)
demaofdpd2 =ema(demaofdpd,demalen2)
resultstrategy = 2*demaofdpd - demaofdpd2
plot(resultstrategy,color=blue)
yearfrom = input(2018)
yearuntil =input(2019)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)
if ( crossover(resultstrategy,buyper) )
strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY")
else
strategy.cancel(id="BUY")
if ( crossunder(resultstrategy,sellper) )
strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND", comment="SELL")
else
strategy.cancel(id="SELL")