Giá vượt qua xu hướng trung bình động theo chiến lược

Tác giả:ChaoZhang, Ngày: 2024-01-26
Tags:

img

Tổng quan

Chiến lược này tạo ra tín hiệu mua và bán dựa trên sự vượt qua của giá với một đường trung bình động. Nó cung cấp nhiều loại đường trung bình động và một tham số dung nạp để lọc các sự đột phá sai. Chiến lược nhằm mục đích nắm bắt các điểm chuyển đổi trong xu hướng giá để theo xu hướng.

Chiến lược logic

Chiến lược tính toán một đường dài N trung bình động dựa trên giá đóng cửa. Các loại đường trung bình động điển hình bao gồm đường trung bình động đơn giản (SMA), đường trung bình động nhân tố (EMA), đường trung bình động cân (WMA) v.v. Sau đó, một mức độ dung nạp được thiết lập, ví dụ: 5%, và dải trên (1.05 lần đường trung bình động) và dải dưới (0.95 lần đường trung bình động) được tính toán. Khi giá đóng cửa vượt qua dải trên, một tín hiệu mua được tạo ra. Khi giá đóng cửa vượt qua dải dưới, một tín hiệu bán được tạo ra. Điều này giúp lọc một số đột phá sai. Ngoài ra, một tham số Boolean Short Only được cung cấp. Khi được bật, chỉ có tín hiệu bán được tạo ra để bán ngắn thị trường.

Ưu điểm

  • Theo dõi hiệu quả xu hướng giá bằng cách sử dụng xu hướng trung bình động
  • Cung cấp các loại trung bình động khác nhau cho các kết hợp linh hoạt
  • Các thông số dung nạp giúp lọc các vụ phá vỡ sai và tránh các giao dịch không cần thiết
  • Chỉ có thể đi ngắn, phù hợp để bắt được xu hướng giảm

Rủi ro

  • Trung bình động có tác dụng chậm, có thể bỏ lỡ các điểm chuyển đổi giá
  • Không phù hợp với môi trường thị trường giới hạn phạm vi
  • Cài đặt tham số dung sai có thể lọc các tín hiệu hợp lệ
  • Đi ngắn có rủi ro cao hơn, cần hoạt động thận trọng

Hướng dẫn tối ưu hóa

  • Tối ưu hóa các thông số kiểu và chiều dài trung bình di chuyển
  • Kiểm tra các thiết lập tham số dung nạp khác nhau
  • Thêm các chỉ số khác vào các tín hiệu lọc
  • Sử dụng các chiến lược định kích thước vị trí

Kết luận

Nhìn chung, đây là một chiến lược theo xu hướng điển hình. Nó sử dụng mối quan hệ giữa giá và trung bình động để xác định xu hướng, với một số tính linh hoạt. Thông qua tối ưu hóa tham số và lọc tín hiệu thích hợp, nó có thể trở thành một chiến lược lượng tốt. Nhưng kiểm soát rủi ro giảm khi bán ngắn là quan trọng để tránh mất mát quá mức.


/*backtest
start: 2023-12-26 00:00:00
end: 2024-01-25 00:00:00
period: 1h
basePeriod: 15m
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/
// © RafaelPiccolo

//@version=4
strategy("Price X MA Cross", overlay=true)

typ = input("HMA", "MA Type", options=["SMA", "EMA", "WMA", "HMA", "VWMA", "RMA", "TEMA"])
len = input(100, minval=1, title="Length")
src = input(close, "Source", type=input.source)
tol = input(0, minval=0, title="Tolerance (%)", type=input.float)
shortOnly = input(false, "Short only")

tema(src, len)=>
    ema1 = ema(src, len)
    ema2 = ema(ema1, len)
    ema3 = ema(ema2, len)
    return = 3 * (ema1 - ema2) + ema3

getMAPoint(type, len, src)=>
    return = type == "SMA" ? sma(src, len) : type == "EMA" ? ema(src, len) : type == "WMA" ? wma(src, len) : type == "HMA" ? hma(src, len) : type == "VWMA" ? vwma(src, len) : type == "RMA" ? rma(src, len) : tema(src, len)

ma = getMAPoint(typ, len, src)
upperTol = ma * (1 + tol/100)
lowerTol = ma * (1 - tol/100)

longCondition = crossover(close, upperTol)
shortCondition = crossunder(close, lowerTol)

if (shortCondition)
    strategy.entry("Short", strategy.short)

if (longCondition)
    if (shortOnly)
        strategy.close("Short")
    else
        strategy.entry("Long", strategy.long)

plot(ma, "Moving Average", close > ma ? color.green : color.red, linewidth = 2)
t1 = plot(tol > 0 ? upperTol : na, transp = 70)
t2 = plot(tol > 0 ? lowerTol : na, transp = 70)
fill(t1, t2, color = tol > 0 ? color.blue : na)


Thêm nữa