Chiến lược ra khỏi chu kỳ đầu tiên

Tác giả:ChaoZhang, Ngày: 2023-12-01 14:32:48
Tags:

img

Tổng quan

Chiến lược này thực hiện dài và ngắn dựa trên đường chéo trung bình động, và chỉ ra vào buổi chiều dựa trên thống kê thu lợi nhuận sớm để tránh bị mắc kẹt bởi biến động mở cửa cao.

Chiến lược logic

Chiến lược này sử dụng 3 đường trung bình động với các thông số khác nhau: đường 14 ngày, đường 28 ngày và đường 56 ngày. Nó sẽ dài khi đường 14 ngày vượt qua đường 56 ngày và ngắn khi vượt qua đường dưới. Cách tiếp cận cơ bản này theo dõi xu hướng dài hạn. Để lọc một số tiếng ồn, đường 28 ngày được thêm làm tham chiếu, vì vậy các tín hiệu chỉ được kích hoạt khi đường 14 ngày cũng ở trên hoặc dưới đường 28 ngày.

Nhờ đó, giao dịch có khả năng tăng/giảm trong khoảng thời gian từ 4 giờ chiều đến 5 giờ chiều. Để tránh ảnh hưởng từ biến động mở cửa cao, việc ra chỉ được kích hoạt trong giờ giao dịch buổi chiều bình thường.

Phân tích lợi thế

Những lợi thế của chiến lược này bao gồm:

  1. Theo dõi xu hướng trung bình dài hạn, tránh tiếng ồn quá mức
  2. Sử dụng thống kê về biến động mở cửa cho logic dừng lỗ để tránh phá vỡ sai
  3. Logic đơn giản và trực quan, dễ hiểu và sửa đổi

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

Ngoài ra còn có một số rủi ro:

  1. Có thể kiểm tra tính tương thích với các cổ phiếu cụ thể.
  2. Có nguy cơ bị mắc kẹt sau giờ làm việc.
  3. Thiết lập không đúng thời gian backtest dẫn đến quá tải nên mở rộng thời gian backtest

Cơ hội gia tăng

Một số cách để tối ưu hóa thêm chiến lược:

  1. Kiểm tra các kết hợp trung bình động khác nhau để tìm các thông số tối ưu
  2. Phạm vi dừng lỗ tinh chỉnh dựa trên các mô hình biến động của các cổ phiếu cụ thể
  3. Thêm bộ lọc âm lượng để tránh bẫy
  4. Thêm các điểm dừng động để kéo lại đường mòn sau khi phá vỡ

Kết luận

Chiến lược có logic rõ ràng và đơn giản, sử dụng hiệu quả các tính năng mở cửa để dừng lỗ để tránh bẫy biến động. Nhưng có nguy cơ bỏ lỡ cơ hội và bị mắc kẹt. Các tham số nên được điều chỉnh theo cổ phiếu. Nhìn chung là một ý tưởng đơn giản nhưng hiệu quả cho những người mới bắt đầu.


/*backtest
start: 2023-11-23 00:00:00
end: 2023-11-30 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("MAC 1st Trading Hour Walkover", overlay=true)

// Setting up timeperiod for testing
startPeriodYear = input(2014, "Backtest Start Year")
startPeriodMonth = input(1, "Backtest Start Month")
startPeriodDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(startPeriodYear, startPeriodMonth, startPeriodDay, 0, 0)

stopPeriodYear = input(2025, "Backtest Stop Year")
stopPeriodMonth = input(12, "Backtest Stop Month")
stopPeriodDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(stopPeriodYear, stopPeriodMonth, stopPeriodDay, 0, 0)

// Moving Averages
ema14 = ema(close, 14)
ema28 = ema(close, 28)
sma56 = sma(close, 56)

// Plot
plot(ema14, title="ema14", linewidth=2, color=green)
plot(ema28, title="ema28", linewidth=2, color=red)
plot(sma56, title="sma56", linewidth=3, color=blue)

// Strategy
goLong = cross(ema14, sma56) and ema14 > ema28
goShort = cross(ema14, sma56) and ema14 < ema28

// Strategy.When to enter
if time >= testPeriodStart
    if time <= testPeriodStop
        strategy.entry("Go Long", strategy.long, 1.0, when=goLong)
        strategy.entry("Go Short", strategy.short, 1.0, when=goShort)

// Strategy.When to take profit 
if time >= testPeriodStart 
    if time <= testPeriodStop 
        strategy.exit("Close Long", "Go Long", profit=2000) 
        strategy.exit("Close Short", "Go Short", profit=2000) 

// Strategy.When to stop out 
// Some studies show that 70% of the days high low happen in the first hour 
// of trading. To avoid having that volatility fire our loss stop we 
// ignore price action in the morning, but allow stops to fire in the afternoon. 
if time("60", "1000-1600") 
    strategy.exit("Close Long", "Go Long", loss=500) 
    strategy.exit("Close Short", "Go Short", loss=500)

Thêm nữa