Торговая стратегия с двойным скользящим средним колебанием


Дата создания: 2023-12-04 15:28:12 Последнее изменение: 2023-12-04 15:28:12
Копировать: 0 Количество просмотров: 360
1
Подписаться
1166
Подписчики

Торговая стратегия с двойным скользящим средним колебанием

Обзор

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

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

Стратегия двойного равнолинейного колебания состоит из двух частей:

  1. 220 индексный скользящий средний. Этот индикатор создает сигнал покупки, когда цена пересекает 20-дневную линию и не пересекает 2-дневную линию; сигнал продажи, когда цена пересекает 2-дневную линию и не пересекает 20-дневную линию.

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

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

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

Двойная линейная торговая стратегия сочетает в себе преимущества использования линейных и волатильных индикаторов и имеет следующие характеристики:

  1. Надежный торговый сигнал. Двойная проверка показателей повышает качество сигнала, эффективная фильтрация недействительного сигнала.

  2. Приспособность к шокирующим ситуациям. Использование комбинации средней линии и индикатора ценовой полосы позволяет точно определить переломные моменты в шокирующих ситуациях.

  3. Частота операций умеренная. По сравнению с двузначной стратегией скользящих средних, можно уменьшить количество недействительных сделок.

  4. Легкость в реализации автоматической торговли. Правила сигналов ясны, параметры установлены просто, легко программировать для реализации автоматической торговли.

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

Также существуют риски, связанные с двойной линейной волатильностью:

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

  2. По мере ослабления волатильности, эффективность становится слабее. Стратегия в основном зависит от волатильности, а при ослаблении волатильности, торговые сигналы и пространство для получения прибыли сокращаются.

  3. Оптимизация параметров оказывает значительное влияние. Настройка параметров индикатора оказывает значительное влияние на результаты торговли. Необходима системная оптимизация для определения оптимальных параметров.

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

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

Стратегия двойного равномерного колебания может быть оптимизирована в следующих аспектах:

  1. Тестирование большего количества комбинаций средних линий и ценовых поясов. Систематическое тестирование средних линий и ценовых поясов различной длины для поиска оптимальных комбинаций.

  2. Добавление фильтрующего сигнала для показателя объема сделок. В сочетании с фильтрующим сигналом для показателя объема сделок для фильтрующего сигнала для среднелинейного ценового сигнала, можно дополнительно повысить качество сигнала.

  3. Настройка динамического механизма остановки убытков. При ослаблении рыночной волатильности, надлежащее ужесточение точки остановки убытков, уменьшение одиночных убытков.

  4. В сочетании с моделями глубокого обучения. Используйте модели глубокого обучения, такие как 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)