
Chiến lược này là một hệ thống giao dịch phức tạp kết hợp một loạt các chỉ số kỹ thuật, chủ yếu sử dụng ba chỉ số cốt lõi là đám mây thị trường (Ichimoku Cloud), chỉ số xu hướng trung bình (ADX) và giá trung bình cân bằng khối lượng giao dịch (VWAP) để xác định xu hướng thị trường, xác minh cường độ động lực và xác nhận vị trí giá. Chiến lược này giúp tăng độ chính xác và độ tin cậy của giao dịch thông qua phân tích đa chiều, đặc biệt phù hợp với giao dịch xu hướng trung bình và dài hạn.
Chiến lược sử dụng cơ chế xác minh ba tầng:
Các tín hiệu giao dịch được tạo ra bởi các điều kiện: Tín hiệu mua: Giá nằm trên các vùng A và B + ADX> 25 + Giá nằm trên VWAP Tín hiệu bán: Giá nằm dưới các vùng A và B + ADX> 25 + Giá nằm dưới VWAP
Các tín hiệu giao dịch thường xuyên có thể được tạo ra trong thị trường bất ổn, làm tăng chi phí giao dịch. Giải pháp: Bạn có thể tăng giới hạn tối thiểu về thời gian nắm giữ hoặc thêm các chỉ số dao động để lọc.
Các nhà đầu tư có thể sẽ có những bước lùi lớn hơn khi thị trường chuyển động nhanh chóng. Giải pháp: Thiết lập vị trí dừng thích hợp, bạn có thể xem xét sử dụng chỉ số ATR để điều chỉnh dừng động.
Thiết lập nhiều điều kiện có thể làm mất đi một số cơ hội giao dịch tiềm năng. Giải pháp: Các tham số có thể được điều chỉnh theo các điều kiện thị trường khác nhau, hoặc có thể đặt các tham số khác nhau.
Chiến lược này được xây dựng bằng cách kết hợp một số chỉ số kỹ thuật đã được chứng minh và đáng tin cậy để xây dựng một hệ thống giao dịch hoàn chỉnh. Hệ thống không chỉ bao gồm các chức năng cốt lõi như nhận dạng xu hướng, xác nhận động lực và xác minh giá, mà còn cung cấp các quy tắc giao dịch rõ ràng và cơ chế kiểm soát rủi ro. Mặc dù có một số không gian tối ưu hóa, nhưng nói chung là một chiến lược giao dịch có tính nghiêm ngặt và thực tiễn.
/*backtest
start: 2025-02-12 00:00:00
end: 2025-02-15 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"TRUMP_USDT"}]
*/
//@version=5
strategy("Ichimoku + ADX + VWAP Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// --- Ichimoku Cloud Parameters ---
conversionPeriods = 9
basePeriods = 26
laggingSpan2Periods = 52
displacement = 26
// --- Ichimoku Cloud Calculation ---
conversionLine = (ta.highest(high, conversionPeriods) + ta.lowest(low, conversionPeriods)) / 2
baseLine = (ta.highest(high, basePeriods) + ta.lowest(low, basePeriods)) / 2
leadingSpanA = (conversionLine + baseLine) / 2
leadingSpanB = (ta.highest(high, laggingSpan2Periods) + ta.lowest(low, laggingSpan2Periods)) / 2
// Plot Ichimoku Cloud
plot(conversionLine, color=color.blue, title="Conversion Line")
plot(baseLine, color=color.red, title="Base Line")
plot(leadingSpanA, color=color.green, title="Leading Span A", offset=displacement)
plot(leadingSpanB, color=color.orange, title="Leading Span B", offset=displacement)
fill(plot(leadingSpanA, offset=displacement), plot(leadingSpanB, offset=displacement),
color=leadingSpanA > leadingSpanB ? color.new(color.green, 90) : color.new(color.red, 90),
title="Ichimoku Cloud")
// --- ADX Calculation ---
adx_length = 14
upMove = high - high[1]
downMove = low[1] - low
plusDM = upMove > downMove and upMove > 0 ? upMove : 0
minusDM = downMove > upMove and downMove > 0 ? downMove : 0
tr = ta.tr(true)
smoothedPlusDM = ta.rma(plusDM, adx_length)
smoothedMinusDM = ta.rma(minusDM, adx_length)
smoothedTR = ta.rma(tr, adx_length)
plusDI = (smoothedPlusDM / smoothedTR) * 100
minusDI = (smoothedMinusDM / smoothedTR) * 100
dx = math.abs(plusDI - minusDI) / (plusDI + minusDI) * 100
adx = ta.rma(dx, adx_length)
// Plot ADX
adx_threshold = 25
hline(adx_threshold, "ADX Threshold", color=color.gray)
plot(adx, color=color.purple, title="ADX")
// --- VWAP Calculation ---
vwap_val = ta.vwap(close)
plot(vwap_val, color=color.blue, title="VWAP", linewidth=2)
// --- Buy and Sell Conditions ---
// Buy Condition:
// - Cena je nad oboma Leading Span A a B
// - ADX je nad prahovou hodnotou
// - Cena je nad VWAP
buyCondition = close > leadingSpanA and close > leadingSpanB and adx > adx_threshold and close > vwap_val
// Sell Condition:
// - Cena je pod oboma Leading Span A a B
// - ADX je nad prahovou hodnotou
// - Cena je pod VWAP
sellCondition = close < leadingSpanA and close < leadingSpanB and adx > adx_threshold and close < vwap_val
// Plot Buy/Sell Signals
plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sellCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// --- Execute Trades ---
if (buyCondition)
strategy.entry("Long", strategy.long)
if (sellCondition)
strategy.close("Long")