Chiến lược trung bình động 8 kỳ và 21 kỳ


Ngày tạo: 2024-01-17 17:45:45 sửa đổi lần cuối: 2024-01-17 17:45:45
sao chép: 2 Số nhấp chuột: 568
1
tập trung vào
1617
Người theo dõi

Chiến lược trung bình động 8 kỳ và 21 kỳ

Tổng quan

Chiến lược này sử dụng hai trung bình di chuyển, 8 chu kỳ và 21 chu kỳ. Khi di chuyển ngắn hạn trên trung bình di chuyển dài hạn, hãy làm nhiều hơn; Khi di chuyển ngắn hạn dưới trung bình di chuyển dài hạn, hãy làm trống.

Chiến lược này cũng giới thiệu một chỉ số độ lệch của đường trung bình di chuyển để lọc ra một số khoảng không có xu hướng, chỉ tạo ra tín hiệu giao dịch khi xu hướng rõ ràng hơn.

Nguyên tắc chiến lược

Cốt lõi của chiến lược này nằm ở sự giao thoa giữa đường trung bình di chuyển ngắn hạn và đường trung bình di chuyển dài hạn. Đường trung bình di chuyển ngắn hạn có thể nắm bắt xu hướng thay đổi giá nhanh hơn, trong khi đường trung bình di chuyển dài hạn có hiệu quả lọc tiếng ồn tốt hơn.

Chiến lược này cũng thiết lập một ngưỡng độ lệch. Chỉ khi độ lệch lớn hơn ngưỡng tích cực, tín hiệu nhiều được tạo ra, và chỉ khi độ lệch nhỏ hơn ngưỡng tiêu cực, tín hiệu trống được tạo ra. Điều này có thể lọc ra một số khoảng không có xu hướng rõ ràng, cho phép tín hiệu giao dịch có chất lượng cao hơn.

Cụ thể, chiến lược này có một logic tạo tín hiệu giao dịch như sau:

  1. Tính trung bình di chuyển đơn giản 8 chu kỳ và 21 chu kỳ
  2. Khám phá tín hiệu chéo của cả hai.
  3. Tính độ lệch của trung bình di chuyển 21 chu kỳ được tính bằng cách tính toán hàm cắt ngược at
  4. Chỉ khi độ lệch vượt quá ngưỡng chính được thiết lập, sẽ tạo ra nhiều tín hiệu
  5. Chỉ phát ra tín hiệu trống khi độ dốc thấp hơn ngưỡng âm được đặt

Phân tích lợi thế

Chiến lược này có những ưu điểm sau:

  1. Ý tưởng chiến lược đơn giản, dễ hiểu và dễ thực hiện
  2. Tiếp theo là giới thiệu các chỉ số độ dốc, có thể lọc các khoảng không có xu hướng rõ ràng, cải thiện chất lượng tín hiệu.
  3. Sử dụng đường trung bình di chuyển kép, bạn có thể tận dụng lợi thế của mình để tăng sự ổn định
  4. Có thể điều chỉnh theo các tham số của thị trường để phù hợp với các loại giao dịch khác nhau
  5. Chương trình đơn giản, dễ phát triển và tối ưu hóa

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

Chiến lược này cũng có một số rủi ro:

  1. Trong một khoảng thời gian thị trường có sự biến động mạnh, có thể có nhiều tín hiệu sai.
  2. Việc giao nhau hai đường dây có thể tạo ra nhiều tín hiệu sai lệch hơn.
  3. Có một mức độ chậm trễ, không thể bắt kịp sự thay đổi xu hướng ngay lập tức.

Những rủi ro này có thể được tối ưu hóa bằng cách:

  1. Điều chỉnh các tham số của đường trung bình di chuyển để phù hợp với đặc điểm của thị trường
  2. Tối ưu hóa giá trị giảm lệch, nâng cao độ cứng của tham số
  3. Tăng cơ chế ngăn chặn tổn thất, kiểm soát tổn thất đơn lẻ
  4. Bộ lọc kết hợp với các chỉ số khác để nâng cao chất lượng tín hiệu
  5. Sử dụng các thiết lập tham số thích ứng để làm cho chiến lược trở nên mạnh mẽ hơn

Hướng tối ưu hóa

Chiến lược này cũng có thể được tối ưu hóa theo các hướng sau:

  1. Sử dụng trung bình di chuyển thích ứng, điều chỉnh tham số theo mức độ biến động của thị trường
  2. Tăng phân tích liên quan về số lượng giao dịch, tránh các tín hiệu sai khi tính toán
  3. Kết hợp với chỉ số dao động để tăng cường chất lượng và hiệu quả thời gian của tín hiệu
  4. Thêm các thuật toán học máy để tự động tối ưu hóa các tham số
  5. Kết hợp công nghệ học sâu để khám phá các mô hình giá không tuyến tính phức tạp hơn

Tóm tắt

Chiến lược trung bình di chuyển kép này nói chung là đơn giản và thực tế, nó thu được các đặc điểm xu hướng khác nhau thông qua các tham số của hai chu kỳ của các phân kỳ và kết hợp với nhau để tạo ra tín hiệu giao dịch. Đồng thời, việc đưa ra các ngưỡng lệch độ làm tăng chất lượng tín hiệu. Chiến lược này có thể được sử dụng như một chiến lược cơ bản và mở rộng, có rất nhiều không gian tối ưu hóa và khả năng mở rộng.

Mã nguồn chiến lược
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//written by sixpathssenin
//@version=4
strategy(title="Dual Moving Average",initial_capital=10000,overlay=true)

ma1= sma(close,8)
ma2= sma(close,21)

angleCriteria = input(title="Angle", type=input.integer, defval=7, minval=1, maxval=13)

i_lookback   = input(2,     "Angle Period", input.integer, minval = 1)
i_atrPeriod  = input(10,    "ATR Period",   input.integer, minval = 1)
i_angleLevel = input(6,     "Angle Level",  input.integer, minval = 1)
i_maSource   = input(close, "MA Source",    input.source)

f_angle(_src, _lookback, _atrPeriod) =>
    rad2degree = 180 / 3.141592653589793238462643  //pi 
    ang = rad2degree * atan((_src[0] - _src[_lookback]) / atr(_atrPeriod)/_lookback)
    ang
_angle = f_angle(ma2, i_lookback, i_atrPeriod)

plot(ma1,color=#FF0000)
plot(ma2,color=#00FF00)

crosso=crossover(ma1,ma2) 
crossu=crossunder(ma1,ma2)

_lookback = 15

f_somethingHappened(_cond, _lookback) =>
    bool _crossed = false
    for i = 1 to _lookback
        if _cond[i]
            _crossed := true
    _crossed
    
longcrossed = f_somethingHappened(crosso,_lookback)
shortcrossed = f_somethingHappened(crossu,_lookback)

long = longcrossed and _angle > angleCriteria
short= shortcrossed and _angle < -(angleCriteria)


if(long)
    strategy.entry("Long",strategy.long)
if(short)
    strategy.entry("short",strategy.short)