Chiến lược MACD Valley Detector là một chiến lược giao dịch dựa trên chỉ số MACD. Chiến lược tạo ra tín hiệu mua bằng cách phát hiện các thung lũng trong chỉ số MACD. Khi chỉ số MACD tạo thành một thung lũng, giá trị MACD nhỏ hơn hoặc bằng -0.4, và sự khác biệt giữa MACD và đường tín hiệu của nó nhỏ hơn 0, chiến lược phát ra tín hiệu mua và thiết lập giá lấy lợi nhuận.
Lòng cốt của chiến lược máy dò thung lũng MACD là sử dụng chỉ số MACD để nắm bắt các cơ hội đảo ngược tiềm năng. Chỉ số MACD được tính bằng sự khác biệt giữa hai đường trung bình chuyển động theo cấp số nhân (EMA), phản ánh sự thay đổi động lực giá. Khi chỉ số MACD hình thành một thung lũng, nó cho thấy động lực giảm của giá có thể suy yếu và có khả năng đảo ngược.
Chiến lược sử dụng các điều kiện sau đây để xác định thung lũng MACD:
Khi các điều kiện trên được đáp ứng đồng thời, chiến lược coi nó là một thung lũng MACD và phát ra tín hiệu mua. Đồng thời, chiến lược đặt giá lợi nhuận cố định, đó là giá mua cộng với chênh lệch giá cố định (takeProfitValue).
Chiến lược MACD Valley Detector là một chiến lược giao dịch dựa trên việc phát hiện các thung lũng trong chỉ số MACD. Bằng cách nắm bắt các thung lũng của chỉ số MACD, chiến lược cố gắng tìm cơ hội đảo ngược tiềm năng và mua hàng. Chiến lược này sử dụng nhiều điều kiện để xác nhận các tín hiệu và thiết lập một mức giá lợi nhuận cố định. Mặc dù chiến lược này có một số lợi thế nhất định, chẳng hạn như sử dụng chỉ số MACD được sử dụng rộng rãi và xác nhận nhiều điều kiện, nhưng nó cũng có một số rủi ro và hạn chế, chẳng hạn như trễ, tham số cố định, thiếu stop-loss rõ ràng, v.v. Để cải thiện chiến lược, người ta có thể xem xét giới thiệu stop-loss động, tối ưu hóa tham số, kết hợp với các chỉ số khác để lọc và phương pháp lợi nhuận động. Nhìn chung, chiến lược MACD Valley Detector cung cấp một ý tưởng để nắm bắt các cơ hội đảo ngược, nhưng vẫn cần được tối ưu hóa và cải thiện dựa trên điều kiện và nhu cầu thị trường thực tế.
/*backtest start: 2024-03-12 00:00:00 end: 2024-04-11 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © freditansari //@version=5 //@version=5 strategy("MACD Valley Detector", overlay=true) fastLength = input(12) slowlength = input(26) MACDLength = input(9) MACD = ta.ema(close, fastLength) - ta.ema(close, slowlength) aMACD = ta.ema(MACD, MACDLength) delta = MACD - aMACD rsi = ta.rsi(close, 14) atr = ta.atr(14) qty=1 takeProfitValue =7 // stopLossValue = 1 // close[0] < close[1] and close[1] > close[2] is_valley= delta[0] > delta[1] and delta[1]<delta[2]? 1:0 // plot(is_valley , "valley?") if(is_valley==1 and MACD<=-0.4 and delta <0) takeProfit = close +takeProfitValue action = "buy" // strategy.entry("long", strategy.long, qty=qty) // // strategy.exit("exit", "long", stop=stopLoss, limit=takeProfit) // strategy.exit("exit", "long", limit=takeProfit) alert('{"TICKER":"'+syminfo.ticker+'","ACTION":"'+action+'","PRICE":"'+str.tostring(close)+'","TAKEPROFIT":"'+str.tostring(takeProfit)+'","QTY":"'+str.tostring(qty)+'"}') if (ta.crossover(delta, 0)) stopLoss = low -0.3 takeProfit = high +0.3 strategy.entry("MacdLE", strategy.long,qty=qty, comment="MacdLE") strategy.exit("exit long", "MacdLE", limit=takeProfit) // strategy.exit("exit long", "MacdLE", stop=stopLoss, limit=takeProfit) if (ta.crossunder(delta, 0)) stopLoss = high + 0.3 takeProfit = low - 0.3 strategy.entry("MacdSE", strategy.short,qty=qty, comment="MacdSE") strategy.exit("exit long", "MacdLE", limit=takeProfit) // strategy.exit("exit short", "MacdSE", stop=stopLoss, limit=takeProfit) //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)