Chiến lược giao dịch chỉ số xu hướng theo hướng

Tác giả:ChaoZhang, Ngày: 2023-09-18 17:07:55
Tags:

Tổng quan

Chiến lược này sử dụng chỉ số xu hướng hướng (DTI) để xác định hướng xu hướng giá cho xu hướng sau các giao dịch. DTI so sánh sự thay đổi giá cao nhất và thấp nhất trong một khoảng thời gian để đánh giá xu hướng, với ngưỡng trên và dưới tạo ra tín hiệu. Đi dài khi DTI vượt trên dải trên và ngắn khi vượt dưới dải dưới.

Chiến lược logic

Tính toán giá trị thay đổi giá từ biến đổi giá cao nhất và thấp nhất trong một khoảng thời gian. Áp dụng nhiều đường trung bình chuyển động theo cấp số nhân để dẫn ra đường cong DTI. Thiết lập ngưỡng trên và dưới cho DTI. Khi chỉ số vượt qua ngưỡng trên, một tín hiệu dài được tạo ra. Đi dưới ngưỡng dưới cho tín hiệu ngắn. Giữ vị trí cho đến khi tín hiệu tiếp theo xảy ra.

Ưu điểm

  • DTI xác định chính xác hướng xu hướng với ít tín hiệu hơn
  • Các ngưỡng lọc các sự đột phá không đáng kể tránh giao dịch ồn ào
  • Tiếp tục theo xu hướng, không bị ảnh hưởng bởi biến động ngắn hạn
  • Không gian điều chỉnh tham số lớn để cân bằng khả năng đáp ứng

Rủi ro

  • Các điểm đảo ngược xu hướng không thể được xác định chính xác, rủi ro mất mát
  • Điều chỉnh tham số DTI kém rủi ro mất cơ hội
  • Việc nắm giữ lâu dài có thể dẫn đến thu hút lớn hơn
  • Tần số giao dịch thấp không phù hợp với giao dịch tần số cao

Các rủi ro có thể được giảm thiểu bằng cách rút ngắn thời gian tính toán, điều chỉnh ngưỡng hoặc thêm các chỉ số đảo ngược.

Những cải tiến

  • Kiểm tra các kết hợp tham số khác nhau để tính DTI
  • Tối ưu hóa các mức ngưỡng dài / ngắn
  • Xem xét thêm các chiến lược dừng lỗ để kiểm soát rủi ro
  • Kiểm tra độ bền trên các sản phẩm khác nhau

Kết luận

Chiến lược DTI xác định chính xác hướng xu hướng từ các tín hiệu rõ ràng, cho phép lợi nhuận lâu dài ổn định.


/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 29/03/2017
// This technique was described by William Blau in his book "Momentum,
// Direction and Divergence" (1995). His book focuses on three key aspects 
// of trading: momentum, direction and divergence. Blau, who was an electrical 
// engineer before becoming a trader, thoroughly examines the relationship between 
// price and momentum in step-by-step examples. From this grounding, he then looks 
// at the deficiencies in other oscillators and introduces some innovative techniques, 
// including a fresh twist on Stochastics. On directional issues, he analyzes the 
// intricacies of ADX and offers a unique approach to help define trending and 
// non-trending periods.
// Directional Trend Index is an indicator similar to DM+ developed by Welles Wilder. 
// The DM+ (a part of Directional Movement System which includes both DM+ and 
// DM- indicators) indicator helps determine if a security is "trending." William 
// Blau added to it a zeroline, relative to which the indicator is deemed positive or 
// negative. A stable uptrend is a period when the DTI value is positive and rising, a 
// downtrend when it is negative and falling. 
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="Directional Trend Index (DTI)", shorttitle="DTI")
r = input(14, minval=1)
s = input(10, minval=1)
u = input(5, minval=1)
OS = input(45, minval=1)
OB = input(-45, maxval=-1)
reverse = input(false, title="Trade reverse")
hline(0, color=green, linestyle=line)
xHMU = iff(high - high[1] > 0, high - high[1], 0)
xLMD = iff(low - low[1] < 0, -(low - low[1]), 0)
xPrice = xHMU - xLMD
xPriceAbs = abs(xPrice)
xuXA = ema(ema(ema(xPrice, r),s),u)
xuXAAbs = ema(ema(ema(xPriceAbs, r),s),u)
Val1 = 100 * xuXA
Val2 = xuXAAbs
DTI = iff(Val2 != 0, Val1 / Val2, 0)
pos = iff(DTI > OS, -1,
	     iff(DTI < OB, 1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(DTI, color=maroon, title="DTI")
plot(OB, color=blue, title="OB")
plot(OS, color=red, title="OS")

Thêm nữa