Стратегия двойного колебания скользящей средней генерирует торговые сигналы путем объединения экспоненциальной скользящей средней 2/20 и индикатора колебания адаптивной ценовой зоны для получения прибыли на колеблющихся рынках.
Стратегия торговли двойной колебательной скользящей средней состоит из двух частей:
2/20 Экспоненциальный скользящий средний. Этот индикатор генерирует сигнал покупки, когда цена проходит через 20-дневную линию и не проходит через 2-дневную линию на подъеме; он генерирует сигнал продажи, когда цена проходит через 2-дневную линию и не превышает 20-дневную линию на снижении.
Индикатор колебаний адаптивной ценовой зоны. Этот индикатор строит ценовые диапазоны на основе диапазона волатильности цен и оценивает переломные моменты рынка по ценам, пробивающимся через верхние и нижние ценовые диапазоны, чтобы генерировать сигналы купли и продажи.
Стратегия торговли колебания двойной скользящей средней генерирует фактические торговые сигналы только тогда, когда экспоненциальная скользящая средняя 2/20 и индикатор колебания адаптивной ценовой зоны выпускают сигналы одновременно для реализации стратегии торговли. Это может эффективно отфильтровать некоторые недействительные сигналы и улучшить качество сигнала.
Стратегия торговли двойной колебательной скользящей средней сочетает в себе преимущества показателей скользящей средней и показателей волатильности с следующими характеристиками:
Достоверные торговые сигналы: проверка двойного индикатора улучшает качество сигнала и эффективно отфильтровывает недействительные сигналы.
Совместное использование показателей скользящей средней и диапазона цен позволяет точно определить поворотные моменты на колеблющихся рынках.
Умеренная частота операции. По сравнению с стратегией двойной экспоненциальной скользящей средней, она может уменьшить количество недействительных транзакций.
Правила сигнала ясны, параметры просты в настройке, что легко запрограммировать для достижения автоматической торговли.
Стратегия торговли двойной колебательной скользящей средней также имеет следующие риски:
Сочетание двойных индикаторов с фильтрующими сигналами может лишить возможности для быстрого изменения цены.
Невысокая эффективность при ослаблении колебаний. Стратегия основана в основном на колебаниях рынков, а торговые сигналы и маржа прибыли будут снижаться по мере ослабления волатильности.
Значительное влияние оптимизации параметров. Настройки параметров индикаторов могут иметь большее влияние на результаты торговли и должны быть систематически оптимизированы для оптимальных параметров.
В ответ на вышеуказанные риски могут быть приняты такие методы, как динамическая корректировка параметров для адаптации к изменениям окружающей среды рынка, при этом устанавливаются стратегии прекращения потерь для контроля риска снижения.
Стратегия торговли двойной колебательной скользящей средней может быть оптимизирована в следующих аспектах:
Систематически проверяйте скользящие средние и ценовые диапазоны разной длины, чтобы найти оптимальную комбинацию параметров.
Добавление индикатора объема к сигналам фильтрации. Комбинирование сигналов аномального объема торговли с фильтрацией ценовых сигналов скользящих средних может еще больше улучшить качество сигнала.
Когда волатильность рынка ослабевает, соответствующим образом затягивайте точки остановки потери, чтобы уменьшить единичные потери.
Используйте LSTM и другие модели глубокого обучения для проверки торговых сигналов, чтобы сделать стратегии более умными.
Стратегия двойной колебательной средней торговли генерирует высококачественные колебательные торговые сигналы путем сочетания экспоненциальной скользящей средней 2/20 и индикатора колебания адаптивной ценовой зоны, который может адаптироваться к волатильным рынкам, таким как фондовый индекс, форекс, сырье с большими колебаниями и проводить частый торговый арбитраж в пределах диапазона колебаний. Стратегия имеет такие преимущества, как высокое качество сигнала и легкая автоматизация. В то же время, такие риски, как задержка выявления поворотных точек и динамическая коррекция параметров, также необходимо контролировать, и на этой основе все еще есть большое пространство для оптимизации.
/*backtest start: 2023-11-03 00:00:00 end: 2023-12-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 02/03/2022 // This is combo strategies for get a cumulative signal. // // First strategy // This indicator plots 2/20 exponential moving average. For the Mov // Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met. // // Second strategy // The adaptive price zone (APZ) is a volatility-based technical indicator that helps investors // identify possible market turning points, which can be especially useful in a sideways-moving // market. It was created by technical analyst Lee Leibfarth in the article “Identify the // Turning Point: Trading With An Adaptive Price Zone,” which appeared in the September 2006 issue // of the journal Technical Analysis of Stocks and Commodities. // This indicator attempts to signal significant price movements by using a set of bands based on // short-term, double-smoothed exponential moving averages that lag only slightly behind price changes. // It can help short-term investors and day traders profit in volatile markets by signaling price // reversal points, which can indicate potentially lucrative times to buy or sell. The APZ can be // implemented as part of an automated trading system and can be applied to the charts of all tradeable assets. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// EMA20(Length) => pos = 0.0 xPrice = close xXA = ta.ema(xPrice, Length) nHH = math.max(high, high[1]) nLL = math.min(low, low[1]) nXS = nLL > xXA or nHH < xXA ? nLL : nHH iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0) pos := nXS > close[1] ? -1 : iff_1 pos APZ(nPeriods,nBandPct) => pos = 0.0 xHL = high - low nP = math.ceil(math.sqrt(nPeriods)) xVal1 = ta.ema(ta.ema(close,nP), nP) xVal2 = ta.ema(ta.ema(xHL,nP), nP) UpBand = nBandPct * xVal2 + xVal1 DnBand = xVal1 - nBandPct * xVal2 pos := low < DnBand ? 1 : high > UpBand ? -1 : pos[1] pos strategy(title='Combo 2/20 EMA & Adaptive Price Zone', shorttitle='Combo', overlay=true) var I1 = '●═════ 2/20 EMA ═════●' Length = input.int(14, minval=1, group=I1) var I2 = '●═════ Adaptive Price Zone ═════●' nPeriods = input(20) nBandPct = input(2) var misc = '●═════ MISC ═════●' reverse = input.bool(false, title='Trade reverse', group=misc) var timePeriodHeader = '●═════ Time Start ═════●' d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader) m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader) y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader) StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false posEMA20 = EMA20(Length) prePosAPZ = APZ(nPeriods,nBandPct) iff_1 = posEMA20 == -1 and prePosAPZ == -1 and StartTrade ? -1 : 0 pos = posEMA20 == 1 and prePosAPZ == 1 and StartTrade ? 1 : iff_1 iff_2 = reverse and pos == -1 ? 1 : pos possig = reverse and pos == 1 ? -1 : iff_2 if possig == 1 strategy.entry('Long', strategy.long) if possig == -1 strategy.entry('Short', strategy.short) if possig == 0 strategy.close_all() barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)