Chiến lược thoát lệnh sớm trung bình động để có lợi nhuận sớm


Ngày tạo: 2023-12-01 14:32:48 sửa đổi lần cuối: 2023-12-01 14:32:48
sao chép: 2 Số nhấp chuột: 605
1
tập trung vào
1619
Người theo dõi

Chiến lược thoát lệnh sớm trung bình động để có lợi nhuận sớm

Tổng quan

Chiến lược này dựa trên việc thực hiện nhiều giao dịch ngắn và dài trong các giao dịch chuyển động trung bình và giao dịch chết, đồng thời dựa trên các số liệu thống kê về lợi nhuận của máy chủ đầu tiên, chỉ dừng lỗ và dừng lỗ vào buổi chiều để tránh bị cản trở bởi tỷ lệ biến động cao của giao dịch buổi sáng.

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

Chiến lược này sử dụng moving average với 3 tham số khác nhau: đường 14 ngày, đường 28 ngày và đường 56 ngày. Làm nhiều khi đường 14 ngày đi qua đường 56 ngày; làm trống khi đường 14 ngày đi qua đường 56 ngày. Đây là phương pháp cơ bản để theo dõi xu hướng đường dài. Để lọc một số tiếng ồn, chiến lược cũng thêm đường 28 ngày làm tham chiếu, chỉ khi đường 14 ngày đồng thời cao hơn hoặc thấp hơn đường 28 ngày sẽ phát ra tín hiệu giao dịch.

Sự đổi mới quan trọng của chiến lược này là nó chỉ dừng lại trong khoảng từ 4 đến 5 giờ chiều. Theo thống kê, có khả năng 70% giá cao nhất và giá thấp nhất trong ngày sẽ xảy ra trong giờ đầu tiên mở cửa. Để tránh tác động của biến động cao vào chiến lược trong thời gian mở cửa, chỉ dừng lại trong thời gian giao dịch buổi chiều.

Phân tích lợi thế

Chiến lược này có một số lợi thế:

  1. Theo dõi xu hướng trung bình và dài hạn để tránh bị ảnh hưởng bởi quá nhiều tiếng ồn
  2. Sử dụng tính năng thống kê của sự biến động cao của đĩa mở để thiết kế logic dừng lỗ để tránh phá vỡ giả
  3. Những ý tưởng đơn giản, trực quan, dễ hiểu và sửa đổi

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

Chiến lược này cũng có những rủi ro sau:

  1. Nếu xu hướng bị đảo ngược vào đầu tháng, bạn sẽ bỏ lỡ cơ hội. Bạn có thể thử nghiệm xem nó có phù hợp với đặc điểm của cổ phiếu hay không.
  2. Nếu biến động lớn tiếp tục sau khi giao dịch, vẫn có nguy cơ bị che đậy. Bạn có thể thử nghiệm mức dừng lỗ nới lỏng thích hợp.
  3. Đặt khoảng thời gian phản hồi không đúng, có thể dẫn đến quá phù hợp. Bạn nên mở rộng khoảng thời gian phản hồi

Hướng tối ưu hóa

Chiến lược này có thể được tối ưu hóa hơn nữa ở những khía cạnh sau:

  1. Kiểm tra các kết hợp trung bình di chuyển khác nhau để tìm tham số tối ưu
  2. Tích chỉnh mức dừng lỗ theo đặc điểm biến động của một cổ phiếu cụ thể
  3. Kết hợp với tín hiệu lọc khối lượng giao dịch để tránh bị mắc kẹt
  4. Tăng động dừng lỗ, theo dõi rút lui sau khi đột phá

Tóm tắt

Chiến lược này có ý tưởng tổng thể rõ ràng và dễ hiểu, sử dụng hiệu quả các tính năng mở cửa thiết kế logic dừng lỗ, có thể tránh sự biến động cao trong thời gian đầu, đáng để thử nghiệm và tối ưu hóa thêm. Nhưng cũng có nguy cơ bị lấp và bỏ lỡ cơ hội, cần điều chỉnh tham số cho từng cổ phiếu. Nhìn chung, chiến lược này cung cấp một ý tưởng giao dịch định lượng đơn giản và hiệu quả cho người mới bắt đầu.

Mã nguồn chiến lược
/*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)