Chiến lược giao dịch Ichimoku Kinko Hyo Oscillator


Ngày tạo: 2024-02-20 11:12:44 sửa đổi lần cuối: 2024-02-20 11:12:44
sao chép: 0 Số nhấp chuột: 742
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch Ichimoku Kinko Hyo Oscillator

Tổng quan

Chiến lược này là một chiến lược giao dịch định lượng kết hợp các chỉ số bảng cân bằng đầu tiên và các chỉ số băng tần Brin. Chiến lược này sử dụng các đường chuyển đổi, đường chuẩn và đường trước và sau của bảng cân bằng đầu tiên để xây dựng tín hiệu giao dịch, đồng thời sử dụng băng tần Brin để đánh giá sự biến động của thị trường và tham gia vào thời điểm thích hợp.

Nguyên tắc chiến lược

Chỉ số bảng cân bằng

Chỉ số bảng cân bằng một mắt bao gồm bốn đường cong: đường chuyển đổi, đường chuẩn, đường trước và đường sau. Đường chuyển đổi là giá trị trung bình của giá đóng cửa trong thời gian gần đây (9 ngày) và đường chuẩn là giá trị trung bình của giá đóng cửa trong thời gian dài (26 ngày).

Dải sóng Brinh

Dải sóng đường Brinh bao gồm ba đường trung bình, đường trên và đường dưới. đường trung bình là đường trung bình di chuyển đơn giản của giá đóng cửa trong n ngày (được thiết lập ở đây là 20 ngày). đường trên là chênh lệch chuẩn của đường trung bình cộng k lần (được thiết lập ở đây là 2 lần). đường dưới là đường trung bình trừ đi chênh lệch chuẩn của k lần.

Chiến lược này sử dụng các đường dây vàng và đường dây chết để tạo ra tín hiệu mua và bán. Đồng thời kết hợp với dải sóng đường dây Brin để đánh giá biến động giá, để xác định tín hiệu nhập cảnh khi không có biến động lớn.

Phân tích lợi thế

Chiến lược này kết hợp các chỉ số bảng cân bằng đầu tiên và các chỉ số dây chuyền Brin, đánh giá tổng hợp xu hướng thị trường và biến động, có thể trích xuất thông tin về sự thay đổi thị trường hiệu quả, đánh giá điểm mua và bán. Bảng cân bằng đầu tiên có thể xác định hướng xu hướng chính của thị trường, và dây chuyền Brin có thể đánh giá thời điểm tham gia cụ thể.

Các tham số của chiến lược này có thể điều chỉnh, có thể được tối ưu hóa cho các giống và môi trường thị trường khác nhau, có khả năng thích ứng. Bảng cân bằng trực tiếp sử dụng các kết hợp tham số khác nhau để xác định các cơ hội giao dịch trong các chu kỳ khác nhau.

Phân tích rủi ro

Chiến lược này dựa chủ yếu vào dải sóng Brinline khi đánh giá sự biến động của thị trường. Dải sóng Brinline sẽ bị mất hiệu lực khi sự kiện đột ngột gây ra biến động lớn.

Ngoài ra, đường biểu đồ cân bằng đầu tiên cũng nhạy cảm với các sự kiện bất ngờ, đường chuyển đổi và đường chuẩn cũng sẽ tạo ra tín hiệu sai khi giá dao động mạnh. Vì vậy, trong trường hợp này, việc ra ngoài hoặc tạm dừng giao dịch có thể là lựa chọn tốt nhất.

Hướng tối ưu hóa

Có thể xem xét thời gian nhập cảnh kết hợp với các chỉ số khác. Ví dụ, chỉ số KDJ xác định liệu có nằm trong khu vực quá mua quá bán hay không, MACD xác định mối quan hệ đường trung bình ngắn và dài. Điều này có thể tránh được việc vẫn tham gia vào thị trường khi thị trường biến động mạnh.

Ngoài ra, các tham số của bảng cân bằng có thể được tối ưu hóa thông qua các phương pháp như học máy. Các tham số khác nhau có ảnh hưởng lớn đến các chu kỳ khác nhau và các giống khác nhau. Tìm ra các tham số kết hợp tốt nhất có thể làm tăng đáng kể lợi nhuận chiến lược.

Tóm tắt

Chiến lược này kết hợp với chỉ số bảng cân bằng đầu tiên và chỉ số Bollinger Bands, trong khi đánh giá xu hướng thị trường, một chiến lược giao dịch định lượng có khả năng thích ứng mạnh mẽ. Chiến lược này có thể được cải thiện bằng cách điều chỉnh các tham số và tối ưu hóa quy tắc nhập cảnh, có thể thu được lợi nhuận tốt trong thực tế.

Mã nguồn chiến lược
/*backtest
start: 2023-02-13 00:00:00
end: 2024-02-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("一目均衡表シグナル + ボリンジャーバンド", overlay=true)

conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length")
displacement = input.int(26, minval=1, title="Lagging Span")
bbLength = input(20, title="Bollinger Bands Length")
bbMultiplier = input(2.0, title="Bollinger Bands Multiplier")

donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

// ボリンジャーバンドの計算
basis = ta.sma(close, bbLength)
bbUpper = basis + bbMultiplier * ta.stdev(close, bbLength)
bbLower = basis - bbMultiplier * ta.stdev(close, bbLength)

// 1σ、2σ、3σのライン
bbUpper1 = basis + ta.stdev(close, bbLength)
bbLower1 = basis - ta.stdev(close, bbLength)

bbUpper2 = basis + 2 * ta.stdev(close, bbLength)
bbLower2 = basis - 2 * ta.stdev(close, bbLength)

bbUpper3 = basis + 3 * ta.stdev(close, bbLength)
bbLower3 = basis - 3 * ta.stdev(close, bbLength)

// 遅行スパンがローソクに交差した際のBuyとSellシグナル
buySignalLeadLine = ta.crossover(close, leadLine2)
sellSignalLeadLine = ta.crossunder(close, leadLine2)

// Strategy Entry and Exit Conditions for Lead Line
strategy.entry("BuyLeadLine", strategy.long, when = buySignalLeadLine)
strategy.close("BuyLeadLine", when = sellSignalLeadLine)

strategy.entry("SellLeadLine", strategy.short, when = sellSignalLeadLine)
strategy.close("SellLeadLine", when = buySignalLeadLine)

// Plotting Ichimoku Cloud
plot(conversionLine, color=color.new(color.blue, 0), title="Conversion Line")
plot(baseLine, color=color.new(color.red, 0), title="Base Line")
plot(close, offset = -displacement + 1, color=color.new(color.green, 0), title="Lagging Span")
p1 = plot(leadLine1, offset = displacement - 1, color=color.new(color.green, 0),
     title="Leading Span A")
p2 = plot(leadLine2, offset = displacement - 1, color=color.new(#cdf80d, 0),
     title="Leading Span B")

fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))



// 2σ、3σのラインをプロット

plot(bbUpper2, color=color.rgb(100, 96, 100), title="BB Upper 2σ")
plot(bbLower2, color=color.rgb(100, 96, 100), title="BB Lower 2σ")

plot(bbUpper3, color=color.rgb(67, 61, 68), title="BB Upper 3σ")
plot(bbLower3, color=color.rgb(67, 61, 68), title="BB Lower 3σ")

// Plotting Entry and Exit Signals
plotshape(series=buySignalLeadLine, title="Buy Signal (Lead Line)", color=color.green, style=shape.triangleup, location=location.belowbar, size=size.small)
plotshape(series=sellSignalLeadLine, title="Sell Signal (Lead Line)", color=color.rgb(255, 115, 0), style=shape.triangledown, location=location.abovebar, size=size.small)