Cette stratégie combine les indicateurs de la moyenne mobile exponentielle double (DEMA) et du filtre à dépassement de bande (BPF) pour mettre en œuvre un double filtrage des achats de rupture et des surachats de survente, formant des signaux de négociation stables et poursuivant une rentabilité maximale.
La stratégie est composée de deux sous-stratégies:
Stratégie de la DEMA
Il utilise les moyennes mobiles exponentielles doubles de 2 jours et de 20 jours pour générer des signaux d'achat croisé doré et de vente croisée morte.
Stratégie du BPF
L'indicateur BPF combine des transformations mathématiques pour détecter les composantes cycliques des prix et forme des zones de surachat-survente dans une certaine période pour générer des signaux de trading.
La combinaison des deux fournit une vérification plus solide de la tendance et des facteurs cycliques lorsque des signaux d'achat/vente simultanés émergent.
Le plus grand avantage de cette stratégie est le double filtre d'indicateur qui rend les signaux plus stables et fiables. DEMA aplatit les prix et identifie les directions de tendance; BPF reconnaît les caractéristiques cycliques et détermine les zones de surachat-survente. La validation croisée entre les deux peut réduire considérablement les faux signaux causés par le bruit des prix et les ajustements cycliques.
En outre, la stratégie elle-même a une fréquence de négociation peu fréquente, évitant ainsi des coûts de capital et de commission excessifs dus à une surtrading.
Le plus grand risque de cette stratégie est de mal juger l'état du marché. Elle est sujette à des signaux erronés dans les marchés variés et pourrait subir de gros stops-loss lorsque les tendances s'inversent. De plus, les paramètres peuvent également avoir un impact considérable sur la performance de la stratégie.
Pour faire face à ces risques, des méthodes telles que l'optimisation des paramètres de l'indicateur, la définition d'arrêt des pertes / prise de bénéfices, la combinaison d'autres indicateurs, etc. peuvent être adoptées pour le contrôle et l'amélioration.
La stratégie peut être optimisée dans les aspects suivants:
Optimisation du cycle de temps: tester différents paramètres DEMA et BPF pour déterminer les combinaisons optimales de périodes.
Ajoutez des paramètres stop loss/take profit. Réglez raisonnablement les amplitudes de stop loss pour éviter l'agrandissement des pertes; prenez des profits de manière appropriée pour verrouiller les gains partiels.
Ajoutez d'autres filtres d'indicateur tels que le volume, le MACD, etc. pour éviter les signaux trompeurs du déblocage de volume élevé et du renversement de position.
Optimisation adaptative des paramètres. Rendre les paramètres DEMA et BPF adaptables en fonction des dernières conditions du marché pour maintenir la rapidité des indicateurs.
La stratégie intègre les forces des deux indicateurs EMA et BPF avec un double filtrage pour améliorer la qualité du signal et poursuivre des bénéfices stables à moyen et long terme. Les risques proviennent principalement d'erreurs de jugement sur les conditions du marché et d'un réglage inadéquat des paramètres. Des méthodes telles que la validation multi-indicateur et l'optimisation dynamique des paramètres peuvent rendre la stratégie plus élastique et adaptable pour une plus grande rentabilité.
/*backtest start: 2023-01-10 00:00:00 end: 2024-01-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 05/04/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 related article is copyrighted material from // Stocks & Commodities Mar 2010 // // // 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 BPF(Length,Delta,SellZone,BuyZone) => pos = 0.0 xPrice = hl2 beta = math.cos(3.14 * (360 / Length) / 180) gamma = 1 / math.cos(3.14 * (720 * Delta / Length) / 180) alpha = gamma - math.sqrt(gamma * gamma - 1) BP = 0.0 BP := 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(BP[1]) - alpha * nz(BP[2]) pos:= BP > SellZone ? 1 : BP <= BuyZone? -1 : nz(pos[1], 0) pos strategy(title='Combo 2/20 EMA & Bandpass Filter', shorttitle='Combo', overlay=true) var I1 = '●═════ 2/20 EMA ═════●' Length = input.int(14, minval=1, group=I1) var I2 = '●═════ Bandpass Filter ═════●' LengthBPF = input.int(20, minval=1, group=I2) Delta = input(0.5, group=I2) SellZone = input.float(5, step = 0.01, group=I2) BuyZone = input.float(-5, step = 0.01, group=I2) 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) prePosBPF = BPF(LengthBPF,Delta,SellZone,BuyZone) iff_1 = posEMA20 == -1 and prePosBPF == -1 and StartTrade ? -1 : 0 pos = posEMA20 == 1 and prePosBPF == 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)