Files
strategies/Zero-Lag-MACD-DEMA-Breakout-Strategy.md
T
2023-10-31 12:29:56 +08:00

4.0 KiB

Name

Zero-Lag-MACD-DEMA-Breakout-Strategy

Author

ChaoZhang

Strategy Description

[trans] 零拉格MACD DEMA突破策略

该策略基于Toff的MACD DEMA指标构建交易信号。MACD DEMA指标通过计算DEMA快线和DEMA慢线的差值,再经过去相移处理,可以有效消除MACD指标的滞后问题。

该策略的交易规则是:当零拉格MACD上穿0轴做多;当零拉格MACD下穿0轴做空。通过MACD对0轴的突破来判断市场的多空态势。

这种基于零拉格MACD的策略的优势在于可以更敏感地捕捉趋势的变化,采用DEMA而非EMA可以过滤假突破。但是MACD指标本身对复杂行情的判断力有限,存在一定的错误信号风险,需要配合趋势过滤指标来提高稳定性。

总的来说,零拉格MACD DEMA突破策略对强势趋势行情效果很好,可以快速抓住机会。但在盘整行情中表现较差,需要谨慎使用。只有不断优化参数并严格控制风险,才能长期应用该策略。

||

This strategy builds trading signals based on Toff's MACD DEMA indicator. The MACD DEMA indicator calculates the difference between DEMA fast line and DEMA slow line, with zero-lag processing, effectively eliminating the lagging issue of regular MACD.

The trading rules are: go long when zero-lag MACD crosses above 0 line, and go short when MACD crosses below 0 line. MACD 0-line crossovers are used to determine market sentiment.

The advantage of this zero-lag MACD strategy is it can capture trend changes more sensitively. Using DEMA instead of EMA also filters false breakouts. However, MACD itself has limited judging ability on complex price action, with some risk of false signals. Trend filters are needed to improve stability.

In summary, the zero-lag MACD DEMA breakout strategy works very well on strong trending moves, catching opportunities quickly. But it underperforms in range-bound periods, requiring cautious use. Only through continuous optimization and strict risk control can this strategy be applied successfully in the long run.

[/trans]

Strategy Arguments

Argument Default Description
v_input_1 2000 Backtest Start Year
v_input_2 true Backtest Start Month
v_input_3 true Backtest Start Day
v_input_4 2100 Backtest Stop Year
v_input_5 12 Backtest Stop Month
v_input_6 31 Backtest Stop Day
v_input_7 12 DEMA Courte
v_input_8 26 DEMA Longue
v_input_9 9 Signal
v_input_10 true Lignes

Source (PineScript)

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






Detail

https://www.fmz.com/strategy/426360

Last Modified

2023-09-11 14:43:52