
Chiến lược này được thiết kế dựa trên một chỉ số đám mây Ichimoku kết hợp với tỷ lệ Fibonacci vàng. Chiến lược sử dụng đường chuyển đổi, đường cơ sở, Kumo Cloud và đường chậm trễ trong chỉ số đám mây để đánh giá xu hướng thị trường hiện tại và kết hợp hai tỷ lệ chia vàng 1.618 và 0.618 để thiết lập điểm dừng lỗ và nhận diện thị trường xung đột. Ngoài ra, chiến lược cũng giới thiệu hai đường trung tâm bổ sung để lọc các tín hiệu giả.
Một chỉ số đám mây bao gồm bốn phần là đường chuyển đổi, đường cơ sở, đám mây và đường trì hoãn. Trong đó, đường chuyển đổi và đường cơ sở được tính toán tương ứng với giá cao nhất và giá thấp nhất của các chu kỳ khác nhau, đám mây được hình thành từ đường cơ sở tiến về phía trước 26 chu kỳ, và đường trì hoãn là giá đóng cửa 26 chu kỳ.
Các điều kiện mở nhiều đầu của chiến lược này như sau:
Điều kiện để mở một vị trí trống là ngược lại với nhiều đầu.
Cài đặt vị trí dừng lỗ sử dụng hai tỷ lệ phân chia vàng là 1.618 và 0.618; điểm dừng nhiều đầu là đường lên trên của đám mây trừ đi khoảng cách theo chiều lên xuống là 1.618 lần, và điểm dừng đầu trống là ngược lại. Dòng 0.618 được sử dụng để xác định thị trường chấn động, khi đám mây màu xanh và đường 0.618 thấp hơn điểm dừng 1.618 thì thị trường được coi là đang chấn động.
Ngoài một chỉ số đám mây, chiến lược này cũng giới thiệu hai đường trung tâm để lọc các tín hiệu giả. Các đường trung tâm được tính bằng giá trung bình cao nhất và thấp nhất trong các chu kỳ khác nhau.
Chiến lược này kết hợp một cách sáng tạo các chỉ số đám mây và tỷ lệ phân chia vàng để tạo thành một hệ thống nhận dạng và giao dịch xu hướng hoàn chỉnh. Đồng thời, giới thiệu bộ lọc đường trung tâm bổ sung, có thể cải thiện chất lượng tín hiệu ở một mức độ nhất định. Ưu điểm của chiến lược là có thể thích ứng tốt hơn với cả hai trạng thái thị trường xu hướng và biến động và kiểm soát rủi ro bằng cách dừng lỗ động.
/*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)