Ichimoku bước vào chiến lược

Tác giả:ChaoZhang, Ngày: 2024-01-31 15:23:21
Tags:

img

Tổng quan

Các mục nhập Ichimoku là một chiến lược định lượng xác định hướng xu hướng bằng cách sử dụng biểu đồ đám mây Ichimoku, và tạo ra các tín hiệu giao dịch kết hợp với Bollinger Bands và chỉ số RSI. Chiến lược này chủ yếu xác định xem thị trường hiện đang trong xu hướng tăng hay giảm dựa trên đường chéo vàng hoặc đường chéo chết của đường Tenkan và đường Kijun, và do đó tạo ra các tín hiệu nhập cảnh cho các vị trí dài và ngắn.

Chiến lược logic

Cốt lõi của chiến lược này nằm trong hai đường quan trọng của biểu đồ mây Ichimoku - Đường Tenkan và Đường Kijun. Đường Tenkan là mức trung bình của mức cao nhất và thấp nhất trong 9 ngày qua, đại diện cho xu hướng ngắn hạn. Đường Kijun là mức trung bình của mức cao nhất và thấp nhất trong 26 ngày qua, đại diện cho xu hướng trung bình đến dài hạn. Khi Đường Tenkan vượt qua trên Đường Kijun, nó báo hiệu một bước đi dài. Khi Đường Tenkan giảm xuống dưới Đường Kijun, nó báo hiệu một bước đi ngắn. Điều này đánh giá hướng xu hướng hiện tại.

Ngoài đám mây Ichimoku, chiến lược cũng xem xét các Bollinger Bands và chỉ số RSI để tạo ra các tín hiệu giao dịch. Nó được coi là một dấu hiệu của hoạt động giá bất thường khi giá đóng phá vỡ các Bollinger Bands trên hoặc dưới.

Về logic thoát, chiến lược kiểm tra xem việc phá vỡ Bollinger Bands có thành công hay không và nếu Trade Proximity Oscillator vượt qua trục 0, để quyết định khóa lợi nhuận hoặc dừng lỗ.

Phân tích lợi thế

Lợi thế lớn nhất của chiến lược này là nó kết hợp xác định xu hướng và biến động giá bất thường để xác định hướng giao dịch. Các đám mây Ichimoku rõ ràng tiết lộ xu hướng, trong khi Bollinger Bands nắm bắt sự bất thường. RSI hiệu quả lọc ra các đột phá sai. Việc sử dụng nhiều chỉ số phối hợp làm cho các tín hiệu giao dịch đáng tin cậy hơn. Ngoài ra, logic dừng lỗ và lấy lợi nhuận giúp khóa lợi nhuận và tránh tổn thất lớn.

Phân tích rủi ro

Mặc dù có lợi thế để xác định xu hướng và bất thường, chiến lược vẫn đặt ra một số rủi ro. Bởi vì nó giao dịch cùng với xu hướng, rất nhiều tín hiệu sai có thể xuất hiện trong các thị trường dao động. Cài đặt tham số không chính xác cũng có thể làm suy giảm hiệu suất của chiến lược. Tối ưu hóa từng bước được khuyến cáo để kiểm tra các kết hợp tham số khác nhau và tìm ra các giá trị tối ưu.

Hướng dẫn tối ưu hóa

Chiến lược có thể được nâng cấp theo các khía cạnh sau:

  1. Kiểm tra các kết hợp tham số khác nhau, như thời gian Bollinger, thời gian RSI, v.v.
  2. Giới thiệu các mô hình học máy, các thông số đầu ra năng động dựa trên dữ liệu lịch sử.
  3. Kết hợp luồng thông tin để xác định cảm xúc của thị trường, tránh những động thái sai lầm vào những thời điểm quan trọng.
  4. Thêm các phương pháp dừng lỗ có điều kiện, như dừng lại, để bảo tồn lợi nhuận.

Kết luận

Ichimoku Entry Strategy là một chiến lược giao dịch xu hướng tích hợp đa chỉ số. Bằng cách đánh giá cả hướng xu hướng và sự bất thường của giá, nó nắm bắt nhịp điệu thị trường khá đáng tin cậy. Mặc dù có chỗ để cải thiện, nói chung đây là một chiến lược có hiệu suất nhất quán và rủi ro có thể kiểm soát được.


/*backtest
start: 2023-01-30 00:00:00
end: 2024-01-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ichi strategy", overlay=true)

// Input parameters
rsiLength = input(14, title="RSI Length")
bbLength = input(20, title="Bollinger Bands Length")
bbMultiplier = input(2, title="Bollinger Bands Multiplier")
stopLossPct = input(1, title="Stop Loss Percentage")
takeProfitPct = input(2, title="Take Profit Percentage")

// Calculate Ichimoku Cloud components
tenkan = ta.sma(high + low, 9) / 2
kijun = ta.sma(high + low, 26) / 2
senkouA = (tenkan + kijun) / 2
senkouB = ta.sma(high + low, 52) / 2

// Bollinger Bands
basis = ta.sma(close, bbLength)
upperBB = basis + bbMultiplier * ta.stdev(close, bbLength)
lowerBB = basis - bbMultiplier * ta.stdev(close, bbLength)

// RSI
rsiValue = ta.rsi(close, rsiLength)

// Trade Proximity Oscillator
length = input(14, title="Channels Length")
multiplier = input(2, title="Channels Multiplier")
atr_length = input(14, title="ATR Length")
threshold_percentage = input(1.5, title="Threshold Percentage (%)")

ma = ta.sma(close, length)
std_dev = ta.stdev(close, length)
upper_band = ma + multiplier * std_dev
lower_band = ma - multiplier * std_dev
distance_upper = close - upper_band
distance_lower = lower_band - close
atr_value = ta.atr(atr_length)
threshold = atr_value * threshold_percentage
oscillator = distance_upper - distance_lower

// Strategy logic
longCondition = close > upperBB and tenkan > kijun and ta.crossover(close, basis) and rsiValue < 70
shortCondition = close < lowerBB and tenkan < kijun and ta.crossunder(close, basis) and rsiValue > 30

strategy.entry("Long", strategy.long, when = longCondition)
strategy.entry("Short", strategy.short, when = shortCondition)

// Exit logic
longExitCondition = close < upperBB and ta.crossover(oscillator, 0)
shortExitCondition = close > lowerBB and ta.crossunder(oscillator, 0)

strategy.exit("Take Profit/Stop Loss", from_entry="Long", loss=close - close * stopLossPct / 100, profit=close + close * takeProfitPct / 100, when = longExitCondition)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", loss=close + close * stopLossPct / 100, profit=close - close * takeProfitPct / 100, when = shortExitCondition)

// Plotting
plot(senkouA, color=color.green, title="Senkou A")
plot(senkouB, color=color.red, title="Senkou B")
plot(upperBB, color=color.blue, title="Upper Bollinger Band")
plot(lowerBB, color=color.blue, title="Lower Bollinger Band")

// Additional Plots
plot(tenkan, color=color.orange, title="Tenkan")
plot(kijun, color=color.purple, title="Kijun")



Thêm nữa