
Обратная стратегия с пропускным фильтром - это стратегия торговли акциями, основанная на пропускном фильтре. Она имитирует пропускной фильтр путем построения функции cos и sine и генерирует сигналы покупки и продажи. Стратегия совершает обратную операцию, то есть покупает или продает, когда выход фильтра выше или ниже определенного уровня триггера.
В основе этой стратегии лежит построение пропускного фильтра BP, который состоит из двух параметров: центральной частоты и полосы пропускания. Центральная частота определяет основные циклы, через которые проходит фильтр, а полоса пропускания определяет диапазон циклов, через которые проходит фильтр. Эти параметры определяют характеристики передачи фильтра.
В частности, стратегия включает в себя следующие параметры:
На основе этих переменных стратегия создает одноступенчатый IIR (бесконечный импульсный ответ) фильтр:
BP = 0.5(1 - alpha)(xPrice - xPrice[2]) + beta*(1 + alpha)*nz(BP[1]) - alpha*nz(BP[2])
Когда BP выше или ниже TriggerLevel, стратегия будет работать в противоположном направлении.
Основные преимущества этой стратегии:
Однако эта стратегия также несет в себе некоторые риски:
Чтобы снизить эти риски, можно рассмотреть следующие варианты оптимизации:
Эта стратегия может быть оптимизирована в следующих аспектах:
Циклическая и параметрическая адаптация: в зависимости от ценовой ситуации в разных циклах и последнего временного окна, в режиме реального времени корректируются параметры, такие как Length, Delta, чтобы динамика фильтра адаптировалась к изменениям в рыночной среде.
Определение тенденции в сочетании: на основе фильтров с пропускным способом добавляются технические показатели, такие как MACD, MA, чтобы определить направление тенденции, чтобы избежать открытия позиций на обратном направлении.
Объединение нескольких временных рамок: развертывание стратегий в нескольких временных рамах (например, 5 минут, 15 минут, 30 минут и т. Д.), проверка сигналов между различными временными рамками, повышение точности сигналов.
Механизм остановки убытков: установление разумного места остановки убытков, активное прекращение убытков после достижения уровня остановки убытков, эффективный контроль размера убытков.
Оптимизация вышеперечисленных пунктов может значительно повысить стабильность, адаптивность и рентабельность стратегии.
Стратегия реверсирования полосы пропускания используется для построения полосы пропускания, извлечения полезного среднечастотного сигнала и использования обратной операции для захвата краткосрочных возможностей реверсирования цены при выходе фильтра на уровень триггера. Эта стратегия относительно проста и может быть адаптирована к различным рыночным условиям с помощью параметрической оптимизации. Основные направления оптимизации включают адаптацию фильтра, тренд, решение, комбинацию многовременных рамок и механизм остановки убытков.
/*backtest
start: 2024-01-16 00:00:00
end: 2024-01-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version = 2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 24/11/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...
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Bandpass Filter Reversed Strategy")
Length = input(20, minval=1)
Delta = input(0.5)
TriggerLevel = input(0)
xPrice = hl2
hline(TriggerLevel, color=blue, linestyle=line)
beta = cos(3.14 * (360 / Length) / 180)
gamma = 1 / cos(3.14 * (720 * Delta / Length) / 180)
alpha = gamma - sqrt(gamma * gamma - 1)
BP = 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(BP[1]) - alpha * nz(BP[2])
pos = iff(BP > TriggerLevel, -1,
iff(BP <= TriggerLevel, 1, nz(pos[1], 0)))
if (pos == 1)
strategy.entry("Long", strategy.long)
if (pos == -1)
strategy.entry("Short", strategy.short)
barcolor(pos == -1 ? red: pos == 1 ? green : blue )
plot(BP, color=red, title="Bandpass Filter Strategy")