Chiến lược dựa trên đường trung bình động theo xu hướng


Ngày tạo: 2024-02-29 14:00:35 sửa đổi lần cuối: 2024-02-29 14:00:35
sao chép: 0 Số nhấp chuột: 599
1
tập trung vào
1617
Người theo dõi

Chiến lược dựa trên đường trung bình động theo xu hướng

Tổng quan

Chiến lược này theo dõi xu hướng giá cổ phiếu bằng cách tính toán đường trung bình, thiết lập vị trí đầu hoặc đầu trống khi giá vượt qua đường trung bình, thuộc loại chiến lược theo dõi xu hướng.

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

Chiến lược này bắt đầu bằng cách tính trung bình điểm cao 20 ngày làm đường dẫn lên, trung bình điểm thấp 20 ngày làm đường dẫn xuống và tính đường trung bình. Đường trung bình đại diện cho xu hướng trung bình gần đây của giá. Xây dựng vị trí đa đầu khi giá vượt qua đường trung bình trên đường; Xây dựng vị trí trống khi giá vượt qua đường trung bình dưới đường. Theo dõi xu hướng giá cho đến khi giá trở lại trở lại đường trung bình giữa đường.

Phân tích lợi thế

  • Sử dụng các kênh để theo dõi xu hướng giá và tránh các khoản tiền bị khóa trong thị trường ngang.
  • Các điểm mua và bán được kiểm soát dễ dàng thông qua các đường dẫn trên và dưới đường ray.
  • Một số nhà đầu tư cho rằng các con đường này có thể làm giảm một phần tiếng ồn và làm tăng khả năng kiếm tiền.
  • Có thể cấu hình các tham số kênh, điều chỉnh độ nhạy của chiến lược;

Phân tích rủi ro

  • Sau khi vượt qua đường trung tâm, có thể xảy ra tình huống quay trở lại đường trung tâm thử nghiệm, khi đó sẽ được đặt;
  • Các loại cổ phiếu chấn động không phù hợp với chiến lược này và dễ bị mạo hiểm trong giao dịch thường xuyên;
  • Thiết lập tham số không đúng cũng có thể ảnh hưởng đến hiệu quả của chiến lược.

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

  • Tối ưu hóa các tham số chu kỳ kênh, kiểm tra tác động của các tham số khác nhau đối với hiệu quả của chiến lược;
  • Tăng cường chiến lược dừng lỗ, kiểm soát tổn thất đơn và toàn bộ;
  • Kết hợp với các chỉ số khác để hỗ trợ phán đoán, tránh các tín hiệu sai;
  • Xây dựng nhà kho theo giai đoạn để giảm khả năng bị mắc kẹt của đường trung tâm thử nghiệm hồi phục đột phá;

Tóm tắt

Chiến lược này nói chung là đơn giản, trực tiếp, thông qua các kênh giá cơ bản để đánh giá xu hướng giá cổ phiếu, thuộc loại chiến lược theo dõi xu hướng. Ưu điểm là dễ vận hành, tận dụng tối đa các cơ hội đầu tư do xu hướng giá mang lại, tránh bị khóa vốn. Ưu điểm là cài đặt tham số không đúng có thể ảnh hưởng đến hiệu quả, và có một số rủi ro của thử nghiệm điều chỉnh. Bằng cách tối ưu hóa hợp lý, có thể nâng cao sự ổn định của chiến lược, tăng cường hiệu suất cổ phiếu thực.

Mã nguồn chiến lược
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//future strategy
//strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2)
//stock strategy
strategy(title = "dc", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=.005)
//forex strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true)
//crypto strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true, commission_type=strategy.commission.percent,commission_value=.25,default_qty_value=20)


testStartYear = input(2000, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testEndYear = input(2019, "Backtest Start Year")
testEndMonth = input(3)
testEndDay = input(31, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)


testPeriod() =>
    true
    //time >= testPeriodStart  ? true : false

dcPeriod = 20

dcUpper = highest(close, dcPeriod)[1]
dcLower = lowest(close, dcPeriod)[1]
dcAverage = (dcUpper + dcLower) / 2

plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)

plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average")

strategy.entry("simpleBuy", strategy.long, when=close > dcAverage)
strategy.close("simpleBuy",when=close < dcLower)
    
strategy.entry("simpleSell", strategy.short,when=close < dcAverage)
strategy.close("simpleSell",when=close > dcAverage)