Chiến lược giao dịch này kết hợp hai chỉ số kỹ thuật, MACD và Ichimoku Cloud, để nắm bắt xu hướng trung hạn và thay đổi động lực. Chỉ số MACD bao gồm các đường tín hiệu nhanh, chậm và tín hiệu, sử dụng các thiết lập 12, 26, và 9 tương ứng, để xác định thay đổi động lực và đảo ngược xu hướng.
Chiến lược này sử dụng chỉ số MACD và đám mây Ichimoku để tạo ra tín hiệu mua và bán. Một tín hiệu mua được kích hoạt khi giá vượt quá đám mây Ichimoku và đường MACD vượt qua trên đường tín hiệu, cho thấy xu hướng tăng. Một tín hiệu bán được kích hoạt khi giá giảm xuống dưới đám mây Ichimoku và đường MACD vượt qua dưới đường tín hiệu, báo hiệu xu hướng giảm. Mức dừng lỗ và lấy lợi nhuận có thể cấu hình dựa trên biến động và hành động giá lịch sử, nhưng ban đầu được thiết lập với sự tập trung vào quản lý rủi ro để bảo vệ vốn và khóa lợi nhuận.
Chiến lược giao dịch đám mây Dynamic MACD và Ichimoku cung cấp một cách tiếp cận mạnh mẽ kết hợp hai chỉ số kỹ thuật phổ biến để xác định xu hướng trung hạn và sự thay đổi động lực. Với các tiêu chí mua và bán được xác định rõ ràng, cũng như các hướng dẫn quản lý rủi ro, chiến lược nhằm mục đích giúp các nhà giao dịch đưa ra quyết định sáng suốt, kiểm soát rủi ro và tối đa hóa lợi nhuận. Tuy nhiên, các nhà giao dịch nên tối ưu hóa và tùy chỉnh chiến lược dựa trên phong cách giao dịch và đặc điểm thị trường của riêng họ và liên tục theo dõi hiệu suất của nó. Với các điều chỉnh và quản lý rủi ro thích hợp, chiến lược này có thể là một bổ sung có giá trị cho bộ công cụ của nhà giao dịch.
/*backtest start: 2024-04-01 00:00:00 end: 2024-04-30 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("MACD and Ichimoku Cloud Strategy", overlay=true) // MACD Components fastLength = 12 slowLength = 26 signalLength = 9 [macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength) // Ichimoku Cloud Components tenkanLength = 9 kijunLength = 26 senkouLength = 52 displacement = 26 tenkanSen = (ta.highest(high, tenkanLength) + ta.lowest(low, tenkanLength)) / 2 kijunSen = (ta.highest(high, kijunLength) + ta.lowest(low, kijunLength)) / 2 senkouSpanA = (tenkanSen + kijunSen) / 2 senkouSpanB = (ta.highest(high, senkouLength) + ta.lowest(low, senkouLength)) / 2 chikouSpan = close[displacement] // Plot Ichimoku Cloud plot(tenkanSen, color=color.red, title="Tenkan-sen") plot(kijunSen, color=color.blue, title="Kijun-sen") p1 = plot(senkouSpanA, color=color.green, title="Senkou Span A", offset=displacement) p2 = plot(senkouSpanB, color=color.orange, title="Senkou Span B", offset=displacement) fill(p1, p2, color=senkouSpanA > senkouSpanB ? color.new(color.green, 90) : color.new(color.red, 90)) // Define Buy and Sell Conditions macdBuy = ta.crossover(macdLine, signalLine) ichimokuBuy = (close > senkouSpanA) and (close > senkouSpanB) and (tenkanSen > kijunSen) buySignal = macdBuy and ichimokuBuy macdSell = ta.crossunder(macdLine, signalLine) ichimokuSell = (close < senkouSpanA) and (close < senkouSpanB) and (tenkanSen < kijunSen) and (tenkanSen[displacement] < math.min(senkouSpanA, senkouSpanB)) sellSignal = macdSell and ichimokuSell // Execute Buy or Sell orders if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.entry("Sell", strategy.short) // Setting up the stop loss and take profit stopLossPerc = 5.0 takeProfitPerc = 10.0 strategy.exit("Exit Buy", "Buy", loss=stopLossPerc, profit=takeProfitPerc) strategy.exit("Exit Sell", "Sell", loss=stopLossPerc, profit=takeProfitPerc) // Plot Buy and Sell Signals plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY") plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL")