
Une stratégie de retour d’onde de filtrage est une stratégie de négociation d’actions basée sur un filtre de filtrage. Elle simule un filtre de filtrage en construisant une fonction cos et sine et en générant des signaux d’achat et de vente. La stratégie effectue une action inversée, c’est-à-dire acheter ou vendre, lorsque la sortie du filtre est supérieure ou inférieure à un certain niveau de déclenchement.
Le cœur de la stratégie est de construire un filtre à bande passante BP, composé de deux paramètres: la fréquence centrale et la bande passante. La fréquence centrale détermine la cyclicité principale par laquelle le filtre passe, la bande passante détermine la gamme de cycles par laquelle il passe. Ces paramètres déterminent les propriétés de transmission du filtre.
Plus précisément, la stratégie est construite sur les variables suivantes:
Sur la base de ces variables, la stratégie a construit un filtre à impulsions illimitées de phase IIR:
BP = 0.5(1 - alpha)(xPrice - xPrice[2]) + beta*(1 + alpha)*nz(BP[1]) - alpha*nz(BP[2])
Lorsque BP est supérieur ou inférieur au TriggerLevel, la stratégie fonctionne dans le sens inverse.
Les principaux avantages de cette stratégie sont:
Cette stratégie comporte aussi des risques:
Afin de réduire ces risques, les méthodes d’optimisation suivantes peuvent être envisagées:
Cette stratégie peut être optimisée principalement dans les domaines suivants:
Adaptation des cycles et des paramètres: Adaptation en temps réel des paramètres tels que la longueur, le delta, etc., en fonction de la tendance des prix au cours des différentes cycles et de la fenêtre de temps la plus récente, afin de permettre au filtre de s’adapter dynamiquement aux changements de l’environnement du marché.
Déterminer la direction de la tendance en ajoutant des indicateurs techniques tels que MACD, MA, etc. sur la base d’un filtre à bande, afin d’éviter l’ouverture de positions négatives.
Combinaison de plusieurs fuseaux horaires: déploiement de stratégies sur plusieurs fuseaux horaires (par exemple, 5 minutes, 15 minutes, 30 minutes, etc.), vérification du signal entre les différentes fuseaux horaires, amélioration de l’exactitude du signal.
Mécanisme de stop-loss: définir une position de stop-loss raisonnable, arrêter activement la position de placement après que les pertes aient atteint le point de stop-loss, contrôler efficacement la taille des pertes individuelles.
L’optimisation des points ci-dessus peut considérablement améliorer la stabilité, l’adaptabilité et la rentabilité de la stratégie.
La stratégie d’inversion des ondes de bande passante consiste à construire des filtres de bande passante, à extraire des signaux de fréquence moyenne utiles, et à prendre des mesures inverses pour capturer les occasions de revers de prix à court terme lorsque les filtres émettent des niveaux de déclenchement. La stratégie est relativement simple et peut s’adapter à une variété d’environnements de marché grâce à l’optimisation des paramètres. Les principales directions d’optimisation comprennent l’adaptation des filtres, les tendances, les jugements, les combinaisons de cadres temporels multiples et les mécanismes de stop-loss.
/*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")