Chiến lược giao dịch định lượng dựa trên Ichimoku Cloud Breakout và chỉ số ADX

Tác giả:ChaoZhang, Ngày: 2024-02-02 17:50:30
Tags:

img

Tổng quan

Tên của chiến lược này là Quantitative Trading Strategy Based on Ichimoku Cloud Breakout and ADX Index. Nó kết hợp biểu đồ đám mây Ichimoku với Chỉ số chuyển động theo hướng trung bình (ADX) để xác định khi nào nên có các vị trí dài hoặc ngắn. Cụ thể, nó đi vào các vị trí khi giá phá vỡ các khu vực chính của biểu đồ đám mây và ADX cho thấy xu hướng mạnh.

Chiến lược logic

Chiến lược này sử dụng Ichimoku Cloud từ các chỉ số Ichimoku Kinko Hyo để xác định các khu vực hỗ trợ và kháng cự chính.

Tín hiệu bước vào dài:

  • Đường chuyển đổi qua trên đường cơ sở
  • Đường trễ vượt qua trục 0
  • Giá trên đỉnh mây
  • ADX dưới 45 (cho thấy xu hướng không quá mức)
  • +DI trên -DI (cho thấy xu hướng tăng)

Tín hiệu nhập cảnh ngắn:

  • Đường chuyển đổi đi qua dưới đường cơ sở
  • Đường lùi qua dưới trục 0
  • Giá dưới đáy mây
  • ADX trên 45 (cho thấy khả năng đảo ngược xu hướng)
  • +DI dưới -DI (cho thấy xu hướng giảm)

Phân tích lợi thế

Chiến lược kết hợp phân tích mô hình biểu đồ và các chỉ số phân tích xu hướng, có thể xác định hiệu quả xu hướng thị trường và các lĩnh vực mạnh.

  1. Sử dụng đám mây Ichimoku để xác định mức hỗ trợ / kháng cự chính để bắt được xu hướng mạnh
  2. Tích hợp chỉ số ADX để đánh giá sức mạnh xu hướng thực sự, tránh giao dịch sai
  3. Các quy tắc rõ ràng dễ tuân theo cho giao dịch trực tiếp

Rủi ro và giải pháp

Có một số rủi ro với chiến lược này, chủ yếu là xung quanh sự bất ổn trong xác định xu hướng ADX.

  1. ADX có hiệu ứng chậm, có thể bỏ lỡ sự đảo ngược nhanh.
  2. ADX không hoạt động tốt trong các thị trường khác nhau. có thể thêm bộ lọc như kênh BOLL
  3. Ichimoku đám mây cũng có thể thất bại. có thể điều chỉnh các tham số hoặc thêm các chỉ số phụ trợ

Các đề xuất tối ưu hóa

Chiến lược có thể được tối ưu hóa thêm theo các cách sau:

  1. Điều chỉnh các thông số Ichimoku để phù hợp với nhiều thiết bị hơn
  2. Thêm stop loss để kiểm soát lỗ giao dịch duy nhất
  3. Kết hợp nhiều chỉ số hơn để lọc tín hiệu
  4. Thêm dự đoán học máy để xác định thêm các tín hiệu xu hướng

Kết luận

Chiến lược này kết hợp biểu đồ đám mây Ichimoku và chỉ số xu hướng ADX để tạo thành một hệ thống giao dịch định lượng hoàn chỉnh. Nó xác định các mức hỗ trợ / kháng cự chính trong khi cũng đánh giá xu hướng. Nó có thể nắm bắt hiệu quả các cơ hội thị trường. Chiến lược dễ thực hiện trong giao dịch trực tiếp và cũng có chỗ cho tối ưu hóa. Nhìn chung, nó là một chiến lược định lượng chất lượng.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule

//@version=5
strategy('Ichimoku Cloud with ADX (By Coinrule)',
         overlay=true,
         initial_capital=1000,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=30,
         commission_type=strategy.commission.percent,
         commission_value=0.1)

showDate = input(defval=true, title='Show Date Range')
timePeriod = time >= timestamp(syminfo.timezone, 2022, 1, 1, 0, 0)


// Stop Loss and Take Profit for Shorting
Stop_loss = input(1) / 100
Take_profit = input(5) / 100
longStopPrice = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)


// Inputs
ts_bars = input.int(9, minval=1, title='Tenkan-Sen Bars')
ks_bars = input.int(26, minval=1, title='Kijun-Sen Bars')
ssb_bars = input.int(52, minval=1, title='Senkou-Span B Bars')
cs_offset = input.int(26, minval=1, title='Chikou-Span Offset')
ss_offset = input.int(26, minval=1, title='Senkou-Span Offset')
long_entry = input(true, title='Long Entry')
short_entry = input(true, title='Short Entry')

middle(len) => math.avg(ta.lowest(len), ta.highest(len))

// Ichimoku Components
tenkan = middle(ts_bars)
kijun = middle(ks_bars)
senkouA = math.avg(tenkan, kijun)
senkouB = middle(ssb_bars)

// Plot Ichimoku Kinko Hyo
plot(tenkan, color=color.new(#0496ff, 0), title='Tenkan-Sen')
plot(kijun, color=color.new(#991515, 0), title='Kijun-Sen')
plot(close, offset=-cs_offset + 1, color=color.new(#459915, 0), title='Chikou-Span')
sa = plot(senkouA, offset=ss_offset - 1, color=color.new(color.green, 0), title='Senkou-Span A')
sb = plot(senkouB, offset=ss_offset - 1, color=color.new(color.red, 0), title='Senkou-Span B')
fill(sa, sb, color=senkouA > senkouB ? color.green : color.red, title='Cloud color', transp=90)

ss_high = math.max(senkouA[ss_offset - 1], senkouB[ss_offset - 1])
ss_low = math.min(senkouA[ss_offset - 1], senkouB[ss_offset - 1])


// ADX
[pos_dm, neg_dm, avg_dm] = ta.dmi(14, 14)


// Entry/Exit Signals
tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
cs_cross_bull = ta.mom(close, cs_offset - 1) > 0
cs_cross_bear = ta.mom(close, cs_offset - 1) < 0
price_above_kumo = close > ss_high
price_below_kumo = close < ss_low

bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and avg_dm < 45 and pos_dm > neg_dm
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and avg_dm > 45 and pos_dm < neg_dm

strategy.entry('Long', strategy.long, when=bullish and long_entry and timePeriod)
strategy.close('Long', when=bearish and not short_entry)

strategy.entry('Short', strategy.short, when=bearish and short_entry and timePeriod)
strategy.close('Short', when=bullish and not long_entry)




Thêm nữa