Chiến lược này được gọi là chiến lược giao dịch định lượng dựa trên một đám mây đột phá và chỉ số ADX. Nó kết hợp phân tích kỹ thuật đồ thị đám mây và chỉ số xu hướng trung bình (ADX) để quyết định khi nào tạo vị trí đầu nhiều hoặc đầu trống. Cụ thể, nó tạo vị trí khi giá phá vỡ các khu vực quan trọng của đồ thị đám mây và chỉ số ADX cho thấy xu hướng mạnh.
Chiến lược này sử dụng các hình ảnh hình ảnh đám mây trong chỉ số chu kỳ để xác định các vùng hỗ trợ và kháng cự quan trọng. Nó kết hợp với chỉ số ADX để xác định cường độ của xu hướng. Các quy tắc chiến lược giao dịch cụ thể như sau:
Tín hiệu xây dựng nhiều đầu:
Tín hiệu đóng khoang:
Chiến lược này kết hợp với phân tích kỹ thuật đồ họa và các chỉ số phân tích xu hướng để xác định hiệu quả xu hướng và khu vực mạnh mẽ của thị trường. Các ưu điểm cụ thể như sau:
Chiến lược này cũng có một số rủi ro, chủ yếu tập trung vào sự không ổn định được xác định bởi chỉ số ADX. Các rủi ro cụ thể và giải pháp như sau:
Chiến lược này cũng có thể được tối ưu hóa theo các khía cạnh sau:
Chiến lược này kết hợp phân tích kỹ thuật đồ họa đám mây và chỉ số đánh giá xu hướng ADX để tạo ra một bộ chiến lược giao dịch định lượng rõ ràng và hoàn chỉnh. Nó đánh giá các vùng hỗ trợ kháng cự quan trọng đồng thời cân bằng với đánh giá xu hướng, có thể nắm bắt cơ hội thị trường hiệu quả. Chiến lược này dễ sử dụng trên thực tế, cũng có không gian có thể tối ưu hóa, tổng thể là một bộ 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)