Cette stratégie combine les indices MACD et DEMA pour former un signal de transaction à l’aide d’une fourche multi-ligne. La stratégie capte le moment de tournage de l’indicateur MACD et utilise le filtre DEMA pour obtenir une entrée optimale.
Calculer le DEMAfast de la ligne rapide, prendre la valeur DEMA du prix, la longueur de cycle étant fastmacd。
Calculer le DEMAslow de la ligne lente, en prenant la valeur DEMA de prices, dont la longueur de cycle est slowmacd。
La ligne MACD est la différence entre la ligne rapide et la ligne lente: DEMAfast - DEMAslow。
La ligne de signal est la valeur DEMA de la ligne MACD, la longueur de cycle est signalmacd。
Le croisement de plusieurs lignes ouvertes est utilisé comme signal de transaction: la fourche dorée fait plus, la fourche morte fait moins.
Ajout d’un filtre pour les jours de l’année et les mois, afin d’émettre des signaux uniquement dans la plage de dates indiquée.
Les principaux avantages de cette stratégie sont:
Combiné avec MACD et DEMA, l’indicateur est complémentaire. Le MACD capture le virage, le filtre DEMA améliore la qualité du signal.
La conception à double voie du DEMA permet de réduire le retard et le bruit des indicateurs MACD.
Les intersections entre les lignes multifonctions sont faciles à détecter et la génération de signaux est simple et claire.
Il est possible de définir une plage de dates de transaction flexible pour s’adapter à différentes stratégies.
Les paramètres du MACD peuvent être optimisés pour une combinaison flexible et adaptée à de multiples situations.
Les principaux risques de cette stratégie sont les suivants:
Le MACD est un indicateur de suivi des tendances qui n’est pas adapté aux marchés horizontaux.
Le croisement multi-espace peut produire de faux signaux et doit être filtré efficacement.
Les stratégies de stop loss sont imparfaites, et les pertes peuvent être trop importantes.
L’optimisation des paramètres n’est pas complète et les variétés varient considérablement.
Le filtrage de la date de transaction est trop rigide et doit être ajusté dynamiquement.
La réponse:
Combinez les indicateurs de vitesse pour éviter le basculement.
Les conditions d’augmentation des prix, le filtrage des fausses croix.
Définir des stop-loss initiaux raisonnables et des stop-loss suivants.
Test de l’efficacité des paramètres multivariés et optimisation dynamique.
Les dates de filtrage sont ajustées en fonction de la situation en temps réel.
La stratégie peut être optimisée en fonction des points suivants:
Les indicateurs de trafic sont augmentés pour filtrer les signaux.
Optimiser les combinaisons de paramètres MACD pour tester les données de différentes variétés.
Définir des stratégies de stop loss, telles que la fixation des stops, le suivi des stops, etc.
Modifier la position de stop loss en fonction de la volatilité du marché.
Le suivi de la tendance est faible et la taille de la position doit être ajustée.
La stratégie MACD DEMA combine l’avantage des deux indicateurs et exploite la tendance à la capture des signaux croisés. Cependant, la MACD est intrinsèquement retardée et il faut faire attention à filtrer les faux signaux. De plus, la stratégie de stop-loss doit être optimisée pour réduire les arrêts irrationnels.
/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(" MACD DEMA STRATEGY ", overlay=true)
source=close
price=source
fastmacd = input(12,title='MACD Fast Line Length')
slowmacd = input(26,title='MACD Slow Line Length')
signalmacd = input(9,title='Signal Line Length')
macdslowline1 = ema(close,slowmacd)
macdslowline2 = ema(macdslowline1,slowmacd)
DEMAslow = ((2 * macdslowline1) - macdslowline2 )
macdfastline1 = ema(close,fastmacd)
macdfastline2 = ema(macdfastline1,fastmacd)
DEMAfast = ((2 * macdfastline1) - macdfastline2)
MACDLine = (DEMAfast - DEMAslow)
SignalLine1 = ema(MACDLine, signalmacd)
SignalLine2 = ema(SignalLine1, signalmacd)
SignalLine = ((2 * SignalLine1) - SignalLine2 )
MACDSignal = SignalLine-MACDLine
colorbar= MACDSignal>0?green:red
yearfrom = input(2018)
yearuntil =input(2019)
monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)
if ( crossover(MACDLine,SignalLine) )
strategy.entry("MMAL", strategy.long, stop=close, oca_name="TREND", comment="AL")
else
strategy.cancel(id="MMAL")
if ( crossunder(MACDLine,SignalLine) )
strategy.entry("MMSAT", strategy.short,stop=close, oca_name="TREND", comment="SAT")
else
strategy.cancel(id="MMSAT")