Chiến lược này dựa trên các chỉ số MACD tăng cường để theo dõi xu hướng. Nó đồng thời tính toán đường trung bình di chuyển nhanh, đường trung bình di chuyển chậm và chênh lệch của cả hai, và sau đó tính toán đường trung bình di chuyển của chênh lệch để tạo ra tín hiệu giao dịch.
Lý luận cụ thể là:
Tính toán chu kỳ EMA nhanh, ví dụ 12 ngày
Tính toán chu kỳ EMA chậm, ví dụ như 26 ngày
Tính toán chênh lệch của EMA chậm là MACD
Giao thức MACD EMA, như EMA ngày 9
Sau đó MACD với sự chênh lệch của đường tín hiệu để tạo đường tín hiệu tăng cường EMA
Làm nhiều hơn khi đi qua trục 0 trên đường tín hiệu tăng cường
Khi tín hiệu tăng cường đi ngang qua trục 0
Chiến lược này khai thác đầy đủ các đặc tính theo dõi xu hướng của chỉ số MACD và lọc tối ưu hóa thứ hai để cải thiện chất lượng tín hiệu, theo đuổi xu hướng đường dài.
Tăng cường giảm nhiễu MACD để tăng độ chính xác tín hiệu
EMA nhanh chóng đưa ra quyết định về hướng đi và sức mạnh của mình
Xu hướng đường dài giữa các tham số chậm hơn
Cẩn thận chọn tham số chu kỳ EMA
Chỉ cần làm nhiều hơn là không thể tận dụng cơ hội trống rỗng.
Tín hiệu có tần số thấp
Chiến lược này xác định các cơ hội đường dài trung bình bằng cách tăng cường khả năng theo dõi xu hướng của MACD. Tuy nhiên, tối ưu hóa tham số và kiểm soát rủi ro đặc biệt quan trọng. Sự kết hợp thích hợp của các yếu tố khác có thể làm tăng hiệu quả.
/*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)