Stratégie de rupture du MACD DEMA avec décalage zéro

Auteur:ChaoZhang est là., Date: 2023-09-11 14:43:52 Je vous en prie.
Les étiquettes:

Cette stratégie construit des signaux de trading basés sur l'indicateur MACD DEMA de Toff.

Les règles de négociation sont les suivantes: aller long lorsque le MACD à décalage zéro franchit la ligne 0, et aller court lorsque le MACD franchit la ligne 0.

L'avantage de cette stratégie MACD à décalage zéro est qu'elle peut capturer les changements de tendance de manière plus sensible. L'utilisation de DEMA au lieu de EMA filtre également les fausses ruptures. Cependant, le MACD lui-même a une capacité de jugement limitée sur l'action des prix complexes, avec un certain risque de faux signaux.

En résumé, la stratégie de rupture MACD DEMA à décalage zéro fonctionne très bien sur les mouvements de tendance forts, saisissant rapidement les opportunités.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// strategy(title="Patron04 MACD DEMA Strategy",default_qty_type = strategy.percent_of_equity,default_qty_value = 3500, overlay=true)

testStartYear = input(2000, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2100, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false

sma = input(12,title='DEMA Courte')
lma = input(26,title='DEMA Longue')
tsp = input(9,title='Signal')
dolignes = input(true,title="Lignes")

MMEslowa = ema(close,lma)
MMEslowb = ema(MMEslowa,lma)
DEMAslow = ((2 * MMEslowa) - MMEslowb )

MMEfasta = ema(close,sma)
MMEfastb = ema(MMEfasta,sma)
DEMAfast = ((2 * MMEfasta) - MMEfastb)

LigneMACDZeroLag = (DEMAfast - DEMAslow)

MMEsignala = ema(LigneMACDZeroLag, tsp)
MMEsignalb = ema(MMEsignala, tsp)
Lignesignal = ((2 * MMEsignala) - MMEsignalb )

MACDZeroLag = (LigneMACDZeroLag - Lignesignal)

long = LigneMACDZeroLag > 0
short = LigneMACDZeroLag < 0

if testPeriod()

    strategy.entry("Long", strategy.long,when=long)
    strategy.entry("Short", strategy.short,when=short)







Plus de