Chiến lược này là một phương pháp xác định xu hướng và chiến lược giao dịch dựa trên chỉ số Ichimoku Cloud kết hợp với tỷ lệ Fibonacci. Nó sử dụng đường chuyển đổi, đường cơ sở, đám mây Kumo và khoảng thời gian trễ từ chỉ số Ichimoku Cloud để xác định xu hướng thị trường hiện tại, và kết hợp tỷ lệ 1.618 và 0.618 Fibonacci để thiết lập mức dừng lỗ và xác định thị trường bên. Ngoài ra, chiến lược giới thiệu hai đường trung gian bổ sung để lọc các tín hiệu sai.
Chỉ số đám mây Ichimoku bao gồm bốn thành phần: Đường chuyển đổi, Đường cơ bản, Đường đám mây Kumo và Khoảng thời gian trễ. Đường chuyển đổi và Đường cơ bản được tính bằng cách sử dụng trung bình của mức cao nhất và thấp nhất trong các khoảng thời gian khác nhau. Đám mây Kumo được hình thành bằng cách di chuyển Đường cơ bản về phía trước 26 giai đoạn, và Khoảng thời gian trễ là giá đóng chuyển ngược lại 26 giai đoạn.
Các điều kiện tham gia dài hạn cho chiến lược này là như sau:
Các điều kiện nhập cảnh ngắn là ngược lại với các điều kiện nhập cảnh dài.
Các mức dừng lỗ được thiết lập bằng cách sử dụng tỷ lệ 1.618 và 0.618 Fibonacci. Đối với các vị trí dài, mức dừng lỗ là cạnh trên của đám mây trừ đi 1.618 lần khoảng cách giữa các cạnh trên và dưới. Đối với các vị trí ngắn, ngược lại. Dòng 0.618 được sử dụng để xác định thị trường bên. Khi đám mây màu xanh lá cây và đường 0.618 dưới mức dừng lỗ 1.618 thì thị trường được coi là ở trạng thái bên.
Ngoài chỉ số đám mây Ichimoku, chiến lược giới thiệu hai đường trung gian để lọc thêm các tín hiệu sai. Các đường trung gian được tính bằng cách sử dụng trung bình của mức cao nhất và thấp nhất trong các khoảng thời gian khác nhau.
Chiến lược này kết hợp công nghệ chỉ số Ichimoku Cloud với tỷ lệ Fibonacci để tạo thành một hệ thống xác định và giao dịch xu hướng hoàn chỉnh. Việc giới thiệu các đường trung gian bổ sung để lọc có thể cải thiện chất lượng tín hiệu đến một mức độ nhất định. Ưu điểm của chiến lược nằm trong khả năng thích nghi tốt với cả các điều kiện thị trường xu hướng và dao động, và kiểm soát rủi ro thông qua stop-loss động. Tuy nhiên, chiến lược cũng có một số thiếu sót, chẳng hạn như thiếu hỗ trợ lý thuyết và tiềm năng quá phù hợp trong tối ưu hóa tham số. Trong tương lai, chiến lược có thể được cải thiện bằng cách giới thiệu nhiều chỉ số hơn, tối ưu hóa stop-loss và định vị kích thước, và sử dụng máy học để tối ưu hóa tham số. Nhìn chung, chiến lược này có một cách tiếp cận sáng tạo và đáng tham khảo, nhưng cần thử nghiệm và tối ưu hóa thêm để áp dụng thực tế.
/*backtest start: 2023-03-13 00:00:00 end: 2024-03-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © manoharbauskar //@version=5 // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © manoharbauskar //@version=5 strategy("Advanced_Ichimoku_Cloud_Strategy", overlay=true, margin_long=100, margin_short=100) conversionPeriods = input.int(9, minval=1, title="Conversion Line Length") basePeriods = input.int(26, minval=1, title="Base Line Length") laggingSpanPeriods = input.int(52, minval=1, title="Leading Span B Length") pivotPeriods1 = input.int(17,minval = 1,title = "PPL1") pivotPeriods2 = input.int(39,minval = 1,title = "PPL2") displacement = input.int(26, minval=1, title="Lagging Span") donchian(len) => math.avg(ta.lowest(len), ta.highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) midLine1 = donchian(pivotPeriods1) midLine2 = donchian(pivotPeriods2) midLine3 = donchian(laggingSpanPeriods) leadLine1 = math.avg(conversionLine, baseLine, midLine1) leadLine2 = math.avg(midLine2 , midLine3) plot(conversionLine, color=#2962FF, title="Conversion Line") plot(baseLine, color=#B71C1C, title="Base Line") plot(close, offset = -displacement + 1, color=color.yellow, title="Lagging Span") p1 = plot(leadLine1, offset = displacement - 1, color=#A5D6A7, title="Leading Span A") p2 = plot(leadLine2, offset = displacement - 1, color=#EF9A9A, title="Leading Span B") plot(leadLine1 > leadLine2 ? leadLine1 : leadLine2, offset = displacement - 1, title = "Kumo Cloud Upper Line", display = display.none) plot(leadLine1 < leadLine2 ? leadLine1 : leadLine2, offset = displacement - 1, title = "Kumo Cloud Lower Line", display = display.none) fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90)) //stoploss calculating mult1 = input.float(1.618, "Mult1") mult2 = input.float(0.618, "Mult2") stoploss1 = leadLine1 - (leadLine1 - leadLine2)*mult1 stoploss2 = leadLine1 - (leadLine1 - leadLine2)*mult2 plot(stoploss1,"Sl", color = color.fuchsia, linewidth = 2, style = plot.style_line, offset = displacement - 1) plot(stoploss2,"S2", color = color.lime, linewidth = 2, style = plot.style_line, offset = displacement - 1) longCondition = leadLine1 > leadLine2 if (longCondition) strategy.entry("Buy", strategy.long) shortCondition = leadLine1 < leadLine2 if (shortCondition) strategy.entry("Sell", strategy.short)