Chiến lược chéo trung bình di chuyển Ichimoku xác định các tín hiệu dài và ngắn bằng cách tính toán một tập hợp các đường trung bình di chuyển và phát hiện các đường chéo giá. Chiến lược này kết hợp nhiều chỉ số kỹ thuật và cung cấp giao dịch vững chắc và đáng tin cậy cho các hoạt động trung hạn đến dài hạn.
Chiến lược Ichimoku sử dụng một hệ thống chuyên dụng bao gồm 5 đường trung bình động, cụ thể là đường chuyển đổi, đường cơ sở, trải dài dẫn đầu 1, trải dài dẫn đầu 2 và trải dài chậm. Cụ thể, đường chuyển đổi mô tả đà tăng giá gần đây, đường cơ sở cho thấy xu hướng trung bình đến dài hạn, các đường dẫn đầu kết hợp chuyển đổi và cơ sở để dự đoán các chuyển động trong tương lai, và trải dài chậm hiển thị giá quá khứ để tham khảo. Các tín hiệu giao dịch được tạo ra khi giá vượt qua đường cơ sở. Chiến lược cũng kết hợp các bộ lọc cơ thể và màu nến để tránh phá vỡ sai.
Chiến lược Ichimoku kết hợp các điểm mạnh của các chỉ số kỹ thuật khác nhau thành một hệ thống. Nó hợp nhất các khái niệm về đường trung bình động, kênh giá, xác nhận khối lượng vv, tạo thành một phương pháp hệ thống. Điều này đảm bảo độ chính xác và định hướng của các tín hiệu giao dịch. So với các chiến lược chỉ số duy nhất, nó làm giảm đáng kể các tín hiệu sai và tăng các yếu tố lợi nhuận.
Là một hệ thống theo xu hướng, chiến lược Ichimoku có khoảng thời gian giao dịch tương đối dài. Điều này có nghĩa là không thể nắm bắt các dao động giá ngắn hạn. Ngoài ra, đường trung bình động thất bại khi giá dao động mạnh mẽ. Những tình huống như vậy có thể dẫn đến tín hiệu sai và thua giao dịch.
Chiến lược Ichimoku có thể được cải thiện trong các lĩnh vực như: 1) Điều chỉnh các tham số trung bình cho các giai đoạn và sản phẩm khác nhau; 2) Kết hợp các chỉ số khối lượng để xác nhận mối quan hệ giá-độ lượng; 3) giới thiệu các mô hình học máy để tinh chỉnh xác định tín hiệu; 4) Thêm nhiều bộ lọc để giảm xác suất giao dịch không chính xác.
Chiến lược chéo trung bình di chuyển Ichimoku ổn định và đáng tin cậy phù hợp như một chiến lược cốt lõi kết hợp với các thuật toán khác. Hướng dẫn xu hướng rõ ràng và tính linh hoạt do điều chỉnh tham số và tối ưu hóa nhiều chỉ số làm cho nó có giá trị cho nghiên cứu sâu sắc và ứng dụng dài hạn bởi các nhà giao dịch lượng.
/*backtest start: 2023-11-18 00:00:00 end: 2023-12-18 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy(title = "Noro's Ichimoku Strategy v1.0", shorttitle = "Ichimoku str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") conversionPeriods = input(9, minval = 1, title = "Conversion Periods") basePeriods = input(26, minval = 1, title = "Base Periods") laggingSpan2Periods = input(52, minval = 1, title = "Lagging Span") usebf = input(true, defval = true, title = "Use body filter") usecf = input(true, defval = true, title = "Use color filter") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Ichimoku donchian(len) => avg(lowest(len), highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods) //Lines plot(conversionLine, color=red, title="Conversion Line") plot(baseLine, color=blue, title="Base Line") plot(close, offset = -basePeriods, color=green, title="Lagging Span") p1 = plot(leadLine1, offset = basePeriods, color=green, title="Lead 1") p2 = plot(leadLine2, offset = basePeriods, color=red, title="Lead 2") fill(p1, p2) //Body Filter nbody = abs(close - open) abody = sma(nbody, 10) body = nbody > abody / 3 or usebf == false //Color Filter bar = close > open ? 1 : close < open ? -1 : 0 gb = bar == 1 or usecf == false rb = bar == -1 or usecf == false //Signals up = low > baseLine and rb and body dn = high < baseLine and gb and body //Trading if up //if strategy.position_size < 0 // strategy.close_all() strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn //if strategy.position_size > 0 // strategy.close_all() strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) strategy.close_all()