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

Автор:Чао Чжан, Дата: 2024-01-03 15:22:49
Тэги:

img

Обзор

Стратегия извлечения трендов с помощью фильтрации полосы пропускания (Bandpass Filtering Trend Extraction Strategy) - это стратегия отслеживания трендов акций, основанная на фильтрах с помощью полосы пропускания.

Принципы

Стратегия сначала создает двойную экспоненциальную скользящую среднюю, настраивая параметры Длины и Дельты для управления длиной скользящей средней и плавностью. Затем она использует набор математических преобразований для извлечения компонента тренда из серии цен и сохраняет его в переменной xBandpassFilter. Наконец, она вычисляет простую скользящую среднюю xBandpassFilter, xMean, как индикатор для входов и выходов.

Он длинный, когда xMean пересекает уровень Trigger, и короткий, когда пересекает ниже.

Преимущества

  1. Двойная EMA эффективно отфильтровывает шум в ценах для более стабильных стратегий.
  2. Пропускная лента фильтрации только извлекает тенденцию компонента в ценах, избегая whipsaws.
  3. Меньшее количество параметров облегчает оптимизацию и контроль рисков.

Риски

  1. Задержка времени приводит к упущенным возможностям из-за быстрых перемен.
  2. Двойная EMA и фильтрация пропускной полосы имеют эффект низкого пропуска, уменьшая чувствительность.
  3. Перефильтрация может привести к отсутствию сильных тенденций, если параметры плохо настроены.

Сокращение длины может улучшить проблемы с задержкой.

Усовершенствования

  1. Добавить стоп-лосс для контроля одиночных потерь.
  2. Система двойных скользящих средних может улучшить стабильность.
  3. Используйте в сочетании с громкостью звука или другими сигналами обратного движения, чтобы избежать ударов.
  4. Используйте машинное обучение или генетические алгоритмы для оптимизации параметров.

Заключение

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


/*backtest
start: 2022-12-27 00:00:00
end: 2024-01-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version = 2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/12/2016
// The related article is copyrighted material from Stocks & Commodities Mar 2010
//
// You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Extracting The Trend Strategy Backtest")
Length = input(20, minval=1)
Delta = input(0.5)
Trigger = input(0)
reverse = input(false, title="Trade reverse")
hline(Trigger, color=blue, linestyle=line)
xPrice = hl2
beta = cos(3.1415 * (360 / Length) / 180)
gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180)
alpha = gamma - sqrt(gamma * gamma - 1)
xBandpassFilter = 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2])
xMean = sma(xBandpassFilter, 2 * Length)
pos = iff(xMean > Trigger, 1,
	   iff(xMean < Trigger, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(xMean, color=red, title="ExTrend")

Больше