Эта стратегия использует двойную экспоненциальную скользящую среднюю величину (DEMA) для расчета волатильности цен, и далее сглаживает волатильность, чтобы обнаружить тенденции колебаний цен, идя длинным, когда волатильность растет, и коротким, когда волатильность падает.
Вычислить двойную экспоненциальную скользящую среднюю (DEMA) цены по формуле: DEMA = 2*EMA(цены, N) - EMA(EMA(цены, N), N)
Расчет волатильности цен относительно DEMA: Волатильность = (цена - DEMA) / цена * 100%
Применить DEMA сглаживание на волатильности снова, чтобы получить тренд сигнал волатильности
Когда волатильность выше определенного уровня, переходите на длинный курс, а когда она ниже, переходите на короткий.
Могут торговать только в течение определенного периода времени.
DEMA замечает изменения тренда быстрее, чем простые скользящие средние.
Волатильность отражает настроение рынка, рост волатильности представляет доминирование быков, падение представляет медведей.
Сглаживание волатильности отфильтровывает краткосрочный шум и фиксирует основную тенденцию.
Торговля в определенные периоды времени позволяет избежать ненужных расходов на сдвиг.
Стоп-лосс и стратегии выхода контролируют риск.
DEMA может отставать во время сильных тенденций, пропуская лучшие точки входа.
Индекс волатильности может давать ложные сигналы, должен сочетаться с другими показателями.
Настроить стоп-потерю, чтобы не увеличить потерю.
Пропущенные возможности за пределами периода торговли.
Торговый период требует тестирования на исторические данные, неправильное время может снизить прибыль.
Оптимизируйте параметры DEMA, используйте меньшие значения N.
Для подтверждения объедините другие индикаторы, такие как RSI, MACD.
Установите стоп-лосс на основе исторических данных и максимально допустимых потерь.
Оптимизировать выбор периода торговли.
Испытывать оптимальные сроки торговли отдельно для различных продуктов.
Испытайте различные комбинации параметров DEMA для лучшего сглаживания.
Попробуйте другие скользящие средние, как EMA, SMA.
Дополнительное сглаживание волатильности с помощью различных параметров.
Добавить другие показатели для многофакторной проверки.
Используйте машинное обучение для автоматической оптимизации параметров входа и выхода.
Испытывать оптимальные параметры отдельно для различных продуктов.
Добавьте стоп-лосс и стратегии выхода, чтобы контролировать риск.
Эта стратегия отслеживает изменения тренда на рынке, рассчитывая сглаженную волатильность DEMA, идя длинный, когда волатильность повышается, и короткий, когда она падает. Но задержка 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")