Chiến lược theo xu hướng dựa trên sự giao nhau của đường trung bình động


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

Chiến lược theo xu hướng dựa trên sự giao nhau của đường trung bình động

Tổng quan

Chiến lược này được sử dụng để xác định xu hướng và theo dõi xu hướng bằng cách tính các loại đường trung bình khác nhau (SMA, EMA, HMA và VWMA) và tìm kiếm điểm giao nhau của chúng. Đường trung bình ngắn hơn tạo ra tín hiệu mua khi nó đi qua đường trung bình dài hơn từ phía dưới; và đường trung bình ngắn hơn tạo ra tín hiệu bán khi nó đi qua đường trung bình dài hơn từ phía trên xuống.

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

Chiến lược này chủ yếu đánh giá xu hướng thị trường bằng cách so sánh mối quan hệ giữa hai đường trung bình khác nhau. Cụ thể, thiết lập loại và độ dài của hai đường trung bình bằng các tham số đầu vào. Trong đó, đường trung bình đầu tiên có chiều dài dài hơn, đại diện cho xu hướng dài hạn; đường trung bình thứ hai có chiều dài ngắn hơn, đại diện cho xu hướng ngắn hạn hiện tại.

Khi đường trung bình ngắn hạn đi qua đường trung bình dài hạn từ phía dưới, đại diện cho xu hướng ngắn hạn trở nên mạnh hơn, giá cả đi vào xu hướng đi lên, do đó phát đi tín hiệu mua tại điểm giao thoa này. Ngược lại, khi đường trung bình ngắn hạn đi qua đường trung bình dài hạn từ phía trên, đại diện cho xu hướng ngắn hạn trở nên yếu hơn, giá cả đi vào xu hướng giảm, do đó phát đi tín hiệu bán tại điểm giao thoa này.

Theo dõi xu hướng của thị trường bằng cách sử dụng sự phán đoán chéo ngang này.

Lợi thế chiến lược

  • Xu hướng chính trong việc sử dụng phương tiện tính toán chéo, một chỉ số kỹ thuật cổ điển và thực tế
  • Hỗ trợ nhiều loại kết hợp đường trung bình khác nhau, linh hoạt cao
  • Chiến lược logic đơn giản, rõ ràng, dễ hiểu thực hiện, phù hợp với tự động hóa giao dịch số lượng
  • Các tham số có thể được cấu hình linh hoạt để phù hợp với các môi trường thị trường khác nhau

Phân tích rủi ro

  • Đường trung bình có tính chậm trễ, khi tín hiệu chéo phát ra, chuyển động giá có thể đã xảy ra hoặc gần điểm đảo ngược, có một số rủi ro báo cáo sai lệch chậm trễ
  • Đánh giá xu hướng có thể bị sai lệch, dẫn đến tổn thất không cần thiết
  • Cần thiết phải có cấu hình hợp lý cho các tham số trung bình, các tham số khác nhau có thể dẫn đến kết quả khác nhau rất nhiều

Phương pháp giải quyết rủi ro:

  • Giảm chu kỳ trung bình một cách thích hợp, tăng độ nhạy cảm với sự thay đổi của thị trường
  • Kiểm tra kết hợp với các chỉ số khác để tránh sai lầm
  • Phương pháp tối ưu hóa tham số: du hành, học máy, thuật toán di truyền
  • Kiểm soát đúng quy mô và điểm dừng lỗ

Hướng tối ưu hóa chiến lược

  • Thêm bộ lọc các chỉ số khác, kết hợp nhiều chỉ số để đưa ra quyết định chính xác hơn
  • Tự động điều chỉnh tham số đường trung bình theo môi trường thị trường
  • Tự động tìm kiếm tham số ưu tiên kết hợp với thuật toán học máy
  • Tối ưu hóa chiến lược dừng lỗ

Tóm tắt

Chiến lược này dựa trên tư duy cổ điển của xu hướng chính của phán đoán chéo đồng nhất, ứng dụng linh hoạt thông qua sự kết hợp của các đường đồng nhất khác nhau. Logic của chiến lược đơn giản, dễ thực hiện, phù hợp với giao dịch tự động. Nhìn chung, chiến lược này có một số tính thực tế, nhưng cũng có một số không gian để cải tiến tối ưu hóa.

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

//@version=3
//study(title="MA Crossover Strategy", overlay = true)
strategy("MA Crossover Strategy", overlay=true)
src = input(close, title="Source")

price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(25, title="1st MA Length")
type1 = input("HMA", "1st MA Type", options=["SMA", "EMA", "HMA", "VWMA"])

ma2 = input(7, title="2nd MA Length")
type2 = input("HMA", "2nd MA Type", options=["SMA", "EMA", "HMA", "VWMA"])

f_hma(_src, _length)=>
    _return = wma((2*wma(_src, _length/2))-wma(_src, _length), round(sqrt(_length)))

price1 = if (type1 == "SMA")
    sma(price, ma1)
else
    if (type1 == "EMA")
        ema(price, ma1)
    else
        if (type1 == "VWMA")
            vwma(price, ma1)
        else
            f_hma(price, ma1)
    
price2 = if (type2 == "SMA")
    sma(price, ma2)
else
    if (type2 == "EMA")
        ema(price, ma2)
    else
        if (type2 == "VWMA")
            vwma(price, ma2)
        else
            f_hma(price, ma2)


//plot(series=price, style=line,  title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line,  title="1st MA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0)


longCondition = crossover(price1, price2)
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = crossunder(price1, price2)
if (shortCondition)
    strategy.entry("Short", strategy.short)