ゼロ遅延MACD DEMAブレイクストラテジー

作者: リン・ハーンチャオチャン,日付: 2023-09-11 14:43:52
タグ:

この戦略は,ToffのMACD DEMA指標に基づいて取引信号を構築する.MACD DEMA指標は,ゼロレイグ処理で,DEMAの高速線とDEMAの遅い線の違いを計算し,通常のMACDの遅延問題を効果的に排除する.

トレーディングルールは,ゼロレイグMACDが0線を超えるとロング,MACDが0線を下回るとショート.MACD0線クロスオーバーは市場情勢を決定するために使用されます.

このゼロレイグMACD戦略の利点は,傾向の変化をより敏感に把握できるということです.EMAの代わりにDEMAを使用すると,偽ブレイクもフィルターされます.しかし,MACD自体は複雑な価格アクションに対する判断能力が限られており,誤った信号のリスクがあります.安定性を向上させるためにトレンドフィルタが必要です.

概要すると,ゼロレイグMACD DEMAブレイクアウト戦略は,強いトレンド動きで非常にうまく機能し,機会を迅速に捉える.しかし,範囲に制限された期間に劣っているため,慎重に使用する必要があります.継続的な最適化と厳格なリスク管理によってのみ,この戦略は長期的に成功して適用できます.


/*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)







もっと