Chiến lược trung bình động đa khung thời gian

Tác giả:ChaoZhang, Ngày: 2023-12-13 15:34:09
Tags:

img

Tổng quan

Chiến lược này sử dụng đường trung bình động và đường trung bình động theo cấp số nhân của các khung thời gian khác nhau làm tín hiệu giao dịch để theo đuổi tăng và giảm giảm. Nó đánh giá xu hướng thị trường và các điểm uốn cong theo vị trí và xu hướng của đường trung bình động ngắn hạn và xác định xu hướng chính theo đường trung bình động dài hạn. Chiến lược kết hợp đường trung bình động đơn giản (SMA) và đường trung bình động theo cấp số (EMA) làm chỉ số kỹ thuật để lọc hiệu quả tiếng ồn thị trường và xác định xu hướng giá.

Chiến lược logic

Chiến lược sử dụng SMA 5 ngày, 13 ngày, 21 ngày và EMA 75 ngày, 90 ngày, 200 ngày làm tín hiệu giao dịch.

Khi các SMA ngắn hạn (5 ngày, 13 ngày, 21 ngày) được sắp xếp theo thứ tự (5 ngày ở trên cùng, 13 ngày tiếp theo, 21 ngày ở dưới cùng) và tất cả các SMA ngắn hạn nằm trên các EMA dài hạn (75 ngày, 90 ngày, 200 ngày), mua dài;

Khi các SMA ngắn hạn (5 ngày, 13 ngày, 21 ngày) được sắp xếp theo thứ tự (5 ngày ở dưới cùng, 13 ngày tiếp theo, 21 ngày ở trên cùng) và tất cả các SMA ngắn hạn nằm dưới các EMA dài hạn (75 ngày, 90 ngày, 200 ngày), đi ngắn.

Bằng cách kết hợp SMA và EMA của các chu kỳ khác nhau, nó có thể đánh giá hiệu quả xu hướng giá ngắn hạn và dài hạn để thực hiện chiến lược theo xu hướng.

Phân tích lợi thế

Chiến lược có những lợi thế sau:

  1. Sử dụng các chỉ số trung bình động kép có thể lọc hiệu quả tiếng ồn thị trường và xác định chính xác xu hướng giá.

  2. Cài đặt nhiều khung thời gian, với chu kỳ ngắn để xác định xu hướng ngắn hạn và chu kỳ dài để xác định xu hướng chính, đạt được nhanh chóng với chậm.

  3. SMA nhạy cảm với sự thay đổi giá trong khi EMA làm mịn mượt sự thay đổi giá, kết hợp hai hoạt động tốt hơn.

  4. Lý thuyết của việc đuổi theo những ngọn núi và tiêu diệt những giọt là đơn giản và trực tiếp, dễ vận hành.

Phân tích rủi ro

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

  1. Cài đặt nhiều khung thời gian khá phức tạp với những khó khăn trong điều chỉnh và tối ưu hóa tham số.

  2. Sự khác biệt có thể xảy ra giữa các chỉ số ngắn hạn và dài hạn, cung cấp các tín hiệu sai.

  3. Chỉ dựa trên các chỉ số trung bình động, có thể hoạt động kém hơn trong điều kiện thị trường cực đoan.

  4. Có một sự chậm trễ nhất định, không thể nắm bắt đúng lúc các điểm biến đổi.

Tối ưu hóa

Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:

  1. Thêm các chỉ số kỹ thuật khác để lọc tín hiệu như KDJ, MACD vv để cải thiện độ chính xác chiến lược.

  2. Kiểm tra và tối ưu hóa các khoảng thời gian và số lượng trung bình động ngắn hạn và dài hạn để tìm kết hợp tham số tối ưu.

  3. Thêm các cơ chế dừng lỗ để kiểm soát rủi ro và DD.

  4. Kết hợp các chỉ số khối lượng để tránh sự phá vỡ sai khi giá tăng mạnh.

Kết luận

Chiến lược thực hiện theo dõi xu hướng đơn giản và hiệu quả bằng cách sử dụng trung bình di chuyển kép và phân tích nhiều khung thời gian. Ý tưởng chiến lược rõ ràng và dễ hiểu với một giá trị thực tế nhất định. Nhưng vẫn còn chỗ để cải thiện như tối ưu hóa tham số, kiểm soát rủi ro vv. Nhìn chung, chiến lược cung cấp những ý tưởng có giá trị cho giao dịch định lượng, đáng nghiên cứu và thảo luận sâu sắc.


/*backtest
start: 2023-11-12 00:00:00
end: 2023-12-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="my_strategy_name", shorttitle="MS1", overlay=true )


source = close


// MAの長さ
len1 = 5
len2 = 13
len3 = 21

// MAの計算
ma1 = sma(source, len1)
ma2 = sma(source, len2)
ma3 = sma(source, len3)

// 計算したMAをプロットする
plot(ma1,color=color.red)
plot(ma2,color=color.orange)
plot(ma3,color=color.blue)

// EMAの長さ
len4 = 75
len5 = 90
len6 = 200

// MAの計算
ema1 = ema(source, len4)
ema2 = ema(source, len5)
ema3 = ema(source, len6)

// 計算したMAをプロットする
plot(ema1,color=color.red)
plot(ema2,color=color.orange)
plot(ema3,color=color.blue)

longCondition = (ma1>ma2 and ma2>ma3 and ma3>ema1 and ema1>ema2 and ema2>ema3)//ロングにエントリーする条件
if (longCondition)
    strategy.entry("My Long Entry", strategy.long, comment="Long")

shortCondition = (ma1<ma2 and ma2<ma3 and ma3<ema1 and ema1<ema2 and ema2<ema3)//ショートにエントリーする条件
if (shortCondition)
    strategy.entry("My Short Entry", strategy.short, comment="Short")
    
    //エグジット条件
strategy.exit("My Long Exit", "My Long Entry", profit=200, loss=100)
strategy.exit("My Short Exit", "My Short Entry", profit=200, loss=100)
    

    
    

Thêm nữa