La stratégie est basée sur une stratégie de négociation bi-équilibrée de prix synthétiques détrended. Le DSP est une fonction synchronisée avec le cycle de domination du prix réel, obtenue en calculant l’EMA de 1⁄4 de cycle moins l’EMA de 1⁄2 de cycle.
Calculer le prix de la moyenne HL de 1⁄2 cycle x HL2 ≠
Les paramètres de longueur sont calculés en utilisant les paramètres de longueur xHL2 de 1⁄4 de cycle EMA ((xEMA1) et 1⁄2 de cycle EMA ((xEMA2)).
Calculer xEMA1 moins xEMA2 pour obtenir le prix de synthèse de la tendance DSP。
Réglez les paramètres de montée et descente de la voie, en faisant plus lorsque le DSP monte sur la voie, et vide lorsque la voie descend.
Il est possible d’effectuer plusieurs blanchissages par commutation des paramètres inversés.
Cette stratégie présente les avantages suivants:
Le DSP peut capturer le cycle dominant des prix et éviter d’être induit en erreur par le cycle secondaire.
La double conception de l’EMA permet de suivre efficacement les changements de cycle dominants.
Le trajet est simple et facile, ce qui permet d’éviter les transactions excessives.
Il est possible de changer de direction de couverture pour s’adapter à différents environnements de marché.
Il n’y a pas besoin d’optimiser des paramètres complexes, c’est simple et pratique.
Les principaux risques de cette stratégie sont:
Le cycle DSP n’est pas correctement configuré et peut manquer la boucle dominante.
La largeur des voies ascendantes et descendantes doit être optimisée, sinon les transactions peuvent être trop fréquentes.
La conception de cycles fixes, une mauvaise adaptation aux changements drastiques du marché.
Les transactions basées uniquement sur le DSP sont sujettes à des erreurs croisées répétitives.
Il n’y a pas de couvre-feu, il y a un risque de pertes importantes.
Cette stratégie peut être optimisée dans les directions suivantes:
Optimiser les paramètres pour trouver la meilleure combinaison de paramètres de cycle.
Ajout d’un réglage dynamique de la montée et de la descente basé sur la volatilité.
Le filtrage des indicateurs de tendance et de volatilité réduit les faux signaux.
Augmentation de la perte mobile ou de la perte de suivi pour contrôler le risque.
Les paramètres de la variété sont ajustés pour évaluer l’universalité.
Ajout d’algorithmes d’apprentissage automatique pour optimiser l’adaptation au cycle DSP.
L’ensemble de la stratégie est une stratégie de négociation binaire très simple et pratique. Elle est basée sur une analyse des cycles raisonnables et suit efficacement le cycle de domination via le DSP. Des améliorations dans l’optimisation des paramètres, le mécanisme de stop-loss, les conditions de filtrage, etc., peuvent constituer une stratégie de négociation quantitative plus fiable.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-13 02:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 20/03/2017
// Detrended Synthetic Price is a function that is in phase with the
// dominant cycle of real price data. This DSP is computed by subtracting
// a half-cycle exponential moving average (EMA) from the quarter cycle
// exponential moving average.
// See "MESA and Trading Market Cycles" by John Ehlers pages 64 - 70.
//
// 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="D_DSP (Detrended Synthetic Price)", shorttitle="D_DSP")
Length = input(14, minval=1)
SellBand = input(25)
BuyBand = input(-25)
reverse = input(false, title="Trade reverse")
hline(0, color=blue, linestyle=line)
hline(SellBand, color=red, linestyle=line)
hline(BuyBand, color=green, linestyle=line)
xHL2 = hl2
xEMA1 = ema(xHL2, Length)
xEMA2 = ema(xHL2, 2 * Length)
xEMA1_EMA2 = xEMA1 - xEMA2
pos = iff(xEMA1_EMA2 > SellBand, 1,
iff(xEMA1_EMA2 < BuyBand, -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(xEMA1_EMA2, color=blue, title="D_DSP")