
Chiến lược này dựa trên một bảng chỉ số Ichimoku Kinko Hyo để tạo tín hiệu giao dịch. Ichimoku Kinko Hyo là bảng cân bằng ngay lập tức, nó kết hợp các ưu điểm của đường trung bình di chuyển và các chỉ số băng tần, đồng thời có thể xác định hướng xu hướng và hỗ trợ mức kháng cự, được coi là một chỉ số tổng hợp.
Chiến lược này sử dụng đường thành phần của Ichimoku Kinko Hyo để đánh giá chiều hướng và sức mạnh của xu hướng. Nó tạo ra tín hiệu giao dịch khi giá phá vỡ đường lên xuống của biểu đồ đám mây.
Chiến lược này sử dụng năm dòng thành phần của Ichimoku Kinko Hyo:
Một bản đồ khác của Ichimoku, bao gồm Senkou Span A và Senkou Span B, đại diện cho khu vực xu hướng hiện tại.
Các tín hiệu giao dịch cho chiến lược này xuất phát từ các tình huống sau:
Ngoài ra, chiến lược này cũng đánh giá thời gian dừng chân và dừng lỗ của đường Tenkan và đường Kijun.
Lợi thế lớn nhất của chiến lược này là khả năng sử dụng chỉ số Ichimoku Kinko Hyo để xác định hướng xu hướng và hỗ trợ sức đề kháng.
Ngoài ra, chiến lược này đã thêm vào các mô-đun dừng lỗ và dừng chết để khóa một phần lợi nhuận và kiểm soát rủi ro.
Rủi ro chính của chiến lược này nằm ở khả năng nhảy vọt do thuật toán dòng thành phần Ichimoku gây ra. Điều này có thể gây ra nguy cơ đột phá giả.
Giải pháp là điều chỉnh các tham số của thuật toán, giảm khoảng cách giữa các dòng thành phần, hoặc thêm các điều kiện bộ lọc để tránh đi vào vùng rung.
Có một số hướng mà chiến lược này có thể được cải thiện:
Tối ưu hóa các tham số của dòng thành phần Ichimoku, điều chỉnh chu kỳ đường trung bình để phù hợp với nhiều giống và chu kỳ hơn.
Tăng cường xác nhận giao dịch, tránh các tín hiệu giả tạo gây ra bởi các cuộc không kích.
Kết hợp với các bộ lọc của các chỉ số khác, chẳng hạn như MACD, RSI, để xác định xu hướng và vùng quá mua quá bán.
Tối ưu hóa logic dừng lỗ, chẳng hạn như phương pháp di chuyển dừng lỗ, thu nhỏ.
Tóm lại, chiến lược này sử dụng biểu đồ đám mây và đường thành phần của Ichimoku Kinko Hyo để xác định hướng xu hướng và cơ hội giao dịch. Ưu điểm của chiến lược nằm ở việc xác định xu hướng rõ ràng, thời gian nhập vào chính xác. Bằng cách tối ưu hóa tham số và tăng điều kiện lọc, tỷ lệ tín hiệu giả có thể được giảm thêm, do đó có thể có hiệu suất chiến lược tốt hơn.
/*backtest
start: 2022-12-08 00:00:00
end: 2023-12-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Ichimoku Cloud", shorttitle="Ichimoku", overlay=true)
previous_close = close[1]
conversionPeriods = input.int(20, minval=1, title="Conversion Line Periods"),
basePeriods = input.int(60, minval=1, title="Base Line Periods")
laggingSpan2Periods = input.int(120, minval=1, title="Lagging Span 2 Periods"),
displacement = input.int(30, minval=1, title="Displacement")
long_entry = input.bool(true, title="Long Entry")
short_entry = input.bool(true, title="Short Entry")
e2e_entry = input.bool(true, title="E2E Entry")
donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
tenkan = donchian(conversionPeriods)
kijun = donchian(basePeriods)
spanA = math.avg(tenkan, kijun)
spanB = donchian(laggingSpan2Periods)
plot(tenkan, color=#0496ff, title="Conversion Line")
plot(kijun, color=#991515, title="Base Line")
plot(close, offset = -displacement, color=#459915, title="Lagging Span")
p1 = plot(spanA, offset = displacement, color=#459915, title="Lead 1")
p2 = plot(spanB, offset = displacement, color=#991515, title="Lead 2")
fill(p1, p2, color = spanA > spanB ? #459915 : #991515)
ss_high = math.max(spanA[displacement - 1], spanB[displacement - 1])
ss_low = math.min(spanA[displacement - 1], spanB[displacement - 1])
// Entry/Exit Signals
tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
kumo_twist_bull = ta.mom(close, displacement) > 0
kumo_twist_bear = ta.mom(close, displacement) < 0
price_above_kumo = close > ss_high
price_below_kumo = close < ss_low
price_enters_kumo_top = previous_close > ss_high[1] and close < ss_high
price_enters_kumo_bottom = previous_close < ss_low[1] and close > ss_low
bullish = tk_cross_bull and kumo_twist_bull and price_above_kumo
bearish = tk_cross_bear and kumo_twist_bear and price_below_kumo
bullishe2e = price_enters_kumo_bottom // and tk_cross_bull
bearishe2e = price_enters_kumo_top // and tk_cross_bear
price_touches_kumo_top = ta.cross(close, ss_high)
price_touches_kumo_bottom = ta.cross(close, ss_low)
strategy.entry("Long", strategy.long, when=bullish and long_entry)
strategy.close("Long", when=tk_cross_bear)
strategy.close("Long", when=price_enters_kumo_top)
strategy.entry("Long e2e", strategy.long, when=bullishe2e and e2e_entry)
strategy.close("Long e2e", when=price_touches_kumo_top)
strategy.close("Long e2e", when=price_below_kumo, qty_percent = 100)
// strategy.close("Long e2e", when=ta.cross(close, kijun), qty_percent = 50)
strategy.entry("Short", strategy.short, when=bearish and short_entry)
strategy.close("Short", when=tk_cross_bull)
strategy.close("Short", when=price_enters_kumo_bottom)
strategy.entry("Short e2e", strategy.short, when=bearishe2e and e2e_entry)
strategy.close("Short e2e", when=price_touches_kumo_bottom)
strategy.close("Short e2e", when=price_above_kumo, qty_percent = 100)
// strategy.close("Long e2e", when=ta.cross(close, kijun), qty_percent = 50)