Chiến lược đột phá đường trung bình động kép


Ngày tạo: 2023-11-21 11:34:09 sửa đổi lần cuối: 2023-11-21 11:34:09
sao chép: 0 Số nhấp chuột: 561
1
tập trung vào
1617
Người theo dõi

Chiến lược đột phá đường trung bình động kép

Tổng quan

Chiến lược vượt qua đường trung bình di chuyển kép là một chiến lược theo dõi xu hướng điển hình. Nó nắm bắt hướng và cường độ của xu hướng thị trường bằng cách tính toán đường trung bình di chuyển của hai chu kỳ khác nhau và sử dụng đường trung bình di chuyển của nó như một tín hiệu mua và bán.

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

Chiến lược này chủ yếu dựa trên hai đường trung bình di chuyển: đường trung bình di chuyển đầu tiên có chu kỳ ngắn hơn, có thể phản ứng nhanh hơn với sự thay đổi giá; đường trung bình di chuyển thứ hai có chu kỳ dài hơn, có thể lọc một số tiếng ồn. Khi đường trung bình di chuyển ngắn hạn vượt qua đường trung bình di chuyển dài hạn, nó được coi là tín hiệu mua; khi đường trung bình di chuyển ngắn hạn vượt qua đường trung bình di chuyển dài hạn, nó được coi là tín hiệu bán.

Cụ thể, chiến lược này tính toán đường trung bình di chuyển chỉ số 10 chu kỳ (price1) và đường trung bình di chuyển chỉ số 20 chu kỳ (price2). Nếu giá mở và giá đóng của dòng K hiện tại cao hơn hai đường trung bình di chuyển, sẽ tạo ra tín hiệu mua; Nếu giá mở và giá đóng của dòng K hiện tại thấp hơn hai đường trung bình di chuyển, sẽ tạo ra tín hiệu bán.

Bằng cách thiết kế như vậy, bạn có thể vào thị trường sớm hơn khi xu hướng bắt đầu hình thành và theo dõi xu hướng; Khi xu hướng đảo ngược, bạn cũng có thể thoát khỏi thị trường sớm hơn, kiểm soát rủi ro hiệu quả.

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

  • Bắt xu hướng sớm, theo dõi xu hướng mạnh
  • Bộ lọc hai dòng đồng nhất, tránh một số đột phá giả
  • Giá mở và giá đóng K-line được xác nhận đôi, giảm giao dịch không hiệu lực

Rủi ro chiến lược

  • Chiến lược đường hai dễ tạo ra nhiều giao dịch ngược hơn
  • Có thể xảy ra tín hiệu chéo thường xuyên khi hoạt động theo đường hai chiều
  • Không gian tối ưu hóa tham số lớn, tối ưu hóa không đúng cách có thể dẫn đến quá phù hợp

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

  • Kiểm tra các kết hợp tham số khác nhau để tìm ra tham số tối ưu
  • Tăng các chiến lược dừng lỗ, giảm số lượng tổn thất đơn lẻ
  • Tăng các điều kiện lọc để giảm các giao dịch không có hiệu lực
  • Kết hợp với các chỉ số khác xác nhận hiệu quả của tín hiệu

Tóm tắt

Chiến lược này là một chiến lược cơ bản để định lượng giao dịch. Tuy nhiên, chiến lược này cũng có một số rủi ro và cần được tối ưu hóa hơn nữa để thích ứng với môi trường thị trường khác nhau. Có không gian tối ưu hóa trong điều chỉnh tham số, cơ chế dừng lỗ, lọc tín hiệu, v.v., có thể làm cho chiến lược ổn định và đáng tin cậy hơn.

Mã nguồn chiến lược
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//study(title="MA River CC v1", overlay = true)
strategy("MA River CC v1", overlay=true)
src = input(close, title="Source")

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

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

price1 = if (type1 == "SMA")
    sma(price, ma1)
else
    ema(price, ma1)
    
price2 = if (type2 == "SMA")
    sma(price, ma2)
else
    ema(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)


buy_entry = (open>price1 and open>price2) and (close>price1 and close>price2)  
sell_entry = (open<price1 and open<price2) and (close<price1 and close<price2)
buy_close = sell_entry
sell_close = buy_entry
//longCondition = crossover(price1, price2)    
if(buy_entry)
    strategy.entry("Long", strategy.long)
    
if(sell_entry)
    strategy.entry("Short", strategy.short)

strategy.close("Long" , when=buy_close)
strategy.close("Short",when=sell_close)