Chiến lược theo xu hướng này sử dụng chỉ số MACD nâng cao. Nó tính toán EMA nhanh, EMA chậm, sự khác biệt của chúng và EMA của sự khác biệt đó để tạo ra tín hiệu.
Lý do là:
Tính toán thời gian EMA nhanh, ví dụ 12 ngày
Tính toán thời gian EMA chậm, ví dụ 26 ngày
Trừ nhanh từ EMA chậm để có được MACD
Lấy EMA của MACD làm đường tín hiệu, ví dụ 9 ngày
EMA của tín hiệu MACD trừ đi cho tín hiệu tăng cường
Đi dài khi tín hiệu tăng cường vượt qua đường không
Đóng dài khi tín hiệu tăng cường vượt qua dưới đường không
Chiến lược khai thác khả năng theo xu hướng của MACD và tối ưu hóa nó hơn nữa cho các tín hiệu xu hướng chất lượng trung và dài hạn.
MACD nâng cao làm giảm tiếng ồn và cải thiện tín hiệu
Định hướng và sức mạnh EMA nhanh / chậm
Các thông số chậm hơn tập trung vào xu hướng trung bình đến dài hạn
Cần tối ưu hóa cẩn thận các khoảng thời gian EMA
LONG chỉ không thể sử dụng các cơ hội ngắn hạn
Sự xuất hiện của tín hiệu ít hơn
Chiến lược này tận dụng MACD nâng cao để xác định xu hướng trung và dài hạn tốt hơn. Nhưng tối ưu hóa và kiểm soát rủi ro là chìa khóa. Kết hợp với các yếu tố khác có thể cải thiện hiệu suất.
/*backtest start: 2022-09-07 00:00:00 end: 2023-09-13 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //study("MACDAS") // strategy("macdas",shorttitle="macdas",overlay=true,default_qty_value=10000,initial_capital=10000,currency=currency.USD) // Date range filter testStartYear = input(2018, "Backtest Start Year") testStartMonth = input(4, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0) testStopYear = input(2018, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(31, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0) inTimeRange = true fastperiod = input(12,title="fastperiod",minval=1,maxval=500) slowperiod = input(26,title="slowperiod",minval=1,maxval=500) signalperiod = input(9,title="signalperiod",minval=1,maxval=500) fastMA = ema(close, fastperiod) slowMA = ema(close, slowperiod) macd = fastMA - slowMA signal = ema(macd, signalperiod) macdAS = macd - signal signalAS = ema(macdAS, signalperiod) plot(macdAS, color=blue, linewidth=2) plot(signalAS, color=red, linewidth=2) plot(0, color=black) strategy.entry("LONG", strategy.long, when =inTimeRange and crossover(macdAS,signalAS)) strategy.close("LONG", when= inTimeRange and crossunder(macdAS,signalAS)) plotshape(crossover(macdAS, signalAS) , style = shape.arrowup, text="Long",color=green,size=size.huge) plotshape(crossover(signalAS,macdAS) , style = shape.arrowdown, text="End Long",color=red,size=size.huge)