
Chiến lược này dựa trên các chỉ số đường trung bình thực tế (ATR) và các chỉ số xu hướng (DMI) để xác định thời gian mua và bán. Chiến lược này thuộc chiến lược theo dõi xu hướng, xác định điểm biến của xu hướng bằng sự giao thoa của DI + và DI- và ATR được sử dụng để thiết lập giá dừng lỗ và giá dừng.
Tính ATR ((14): Sử dụng giá cao nhất, giá thấp nhất và giá đóng cửa trong 14 ngày qua để tính toán phạm vi biến động thực tế trung bình
Tính toán DI+ và DI-:
DI+ = 100 * RMA(MAX(UP,0),N) / ATNR
DI- = 100 * RMA(MAX(DOWN,0),N) / ATNR
Trong đó UP là chênh lệch giữa giá cao nhất trong ngày và giá đóng cửa ngày hôm qua, DOWN là chênh lệch giữa giá thấp nhất trong ngày và giá đóng cửa ngày hôm qua, N là chiều dài tham số, mặc định là 14, ATNR là ATR thu được từ bước tính toán trước
Những người mua và bán:
Khi DI+ đeo trên DI-, tạo ra tín hiệu mua
Khi DI+ đi qua DI-, tạo ra tín hiệu bán
Cài đặt Stop Loss:
Giá dừng đơn là giá đầu vào trừ ATR nhân nhân số dừng
Giá tăng nhiều điểm dừng với giá khởi điểm cộng với ATR nhân số lần tăng
Giá dừng lỗ của vé rỗng cộng với ATR nhân số lần dừng lỗ
Giá dừng trống là giá khởi điểm trừ ATR nhân nhân giá dừng
Sử dụng DI+ và DI-đánh giá chéo các điểm chuyển hướng xu hướng, có thể bắt kịp các hướng xu hướng mới
ATR là một chỉ số dừng lỗ động, có thể thiết lập điểm dừng lỗ hợp lý dựa trên mức độ biến động của thị trường
Các tham số chiến lược ít hơn, dễ hiểu và thực hiện
Dữ liệu phản hồi cho thấy chiến lược này có yếu tố lợi nhuận tích cực và hoạt động tốt hơn chiến lược mua giữ
DI Cross có nguy cơ giao dịch sai
Điểm dừng lỗ quá gần
Không thể xử lý hiệu quả thị trường biến động
Rủi ro rút lui
Bộ lọc tín hiệu giao thoa DI kết hợp với các chỉ số như đường trung bình di chuyển để tránh giao dịch sai trong tình huống chấn động
Tăng cơ chế quản lý vị trí, chẳng hạn như cổ phần cố định, Martingale, để kiểm soát rút lui và tăng lợi nhuận
Tối ưu hóa tham số ATR để làm cho các điểm dừng lỗ phù hợp hơn với phạm vi biến động của các loại giao dịch khác nhau
Tối ưu hóa các tham số để tìm ra sự kết hợp tốt nhất của các tham số, chẳng hạn như chu kỳ DI, chu kỳ ATR và nhân ATR
Thêm logic phán đoán giao dịch cho giao dịch ban đêm và ban ngày, cho phép chiến lược hoạt động 24⁄7.
Chiến lược này nói chung là đơn giản và thực tế, xác định thời gian mua và bán thông qua giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch.
/*backtest
start: 2022-11-06 00:00:00
end: 2023-11-12 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/
// © TheHulkTrading
//@version=4
strategy("DI Crossing Daily Straregy HulkTrading", overlay=true)
// ATR Multiplier. Recommended values between 1..4
atr_multiplier = input(1, minval=1, title="ATR Multiplier")
//Length of DI. Recommended default value = 14
length = input(14, minval=1, title="Length di")
up = change(high)
down = -change(low)
range = rma(tr, 14)
//DI+ and DI- Calculations
di_plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, length) / range)
di_minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, length) / range)
//Long and short conditions
longCond = crossover(di_plus,di_minus)
shortCond = crossunder(di_plus,di_minus)
//Stop levels and take profits
stop_level_long = strategy.position_avg_price - atr_multiplier*atr(14)
take_level_long = strategy.position_avg_price + 2*atr_multiplier*atr(14)
stop_level_short = strategy.position_avg_price + atr_multiplier*atr(14)
take_level_short = strategy.position_avg_price - 2*atr_multiplier*atr(14)
//Entries and exits
strategy.entry("Long", strategy.long, when=longCond)
strategy.exit("Close Long","Long", stop=stop_level_long, limit = take_level_long)
strategy.entry("Short", strategy.short, when=shortCond)
strategy.exit("Close Short","Short", stop=stop_level_short, limit = take_level_short)