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

Tác giả:ChaoZhang, Ngày: 2023-12-20 14:23:49
Tags:

img

Tổng quan

Chiến lược này sử dụng mẫu lựa chọn cổ phiếu của Mark Minervini và các chỉ số trung bình động để xác định xu hướng giá cho việc tự động vào và dừng lỗ. Nó chủ yếu đánh giá xem giá cổ phiếu có đang trong xu hướng tăng hay không và liệu chúng đã vượt qua các đường trung bình động chính để tạo ra tín hiệu mua hay không. Đồng thời, chiến lược đặt ra một đường dừng lỗ để chủ động dừng lỗ khi giá giảm trở lại.

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

Chiến lược chủ yếu đánh giá các điều kiện sau và tạo ra tín hiệu mua khi chúng được đáp ứng cùng một lúc:

  1. Giá cổ phiếu hiện tại cao hơn cả đường trung bình động 150 ngày và 200 ngày.
  2. Trung bình di chuyển 150 ngày là trên trung bình di chuyển 200 ngày.
  3. Trung bình di chuyển 200 ngày đã có xu hướng tăng trong ít nhất 1 tháng.
  4. Trung bình động 50 ngày trên cả trung bình động 150 ngày và 200 ngày.
  5. Giá cổ phiếu hiện tại cao hơn trung bình động 50 ngày.
  6. Giá cổ phiếu hiện tại đã tăng ít nhất 25% so với mức thấp nhất trong 52 tuần qua.
  7. Giá cổ phiếu hiện tại ở trong vòng ít nhất 25% so với mức cao nhất 52 tuần.

Khi các điều kiện trên được đáp ứng, chiến lược đánh giá rằng giá cổ phiếu đang có xu hướng tăng và tạo ra tín hiệu mua.

Ngoài ra, chiến lược cũng đặt ra một đường dừng lỗ. Khi giá cổ phiếu giảm 5% từ đỉnh của nó hoặc tăng 10%, nó sẽ dừng lỗ hoặc kiếm lợi nhuận.

Phân tích lợi thế

  1. Sử dụng ý tưởng lựa chọn cổ phiếu của Mark Minervini để cải thiện lợi nhuận.
  2. Sử dụng nhiều đường trung bình động để xác nhận xu hướng và tránh bỏ lỡ các điểm mua.
  3. Thiết lập cơ chế dừng lỗ để tránh tổn thất lớn.

Phân tích rủi ro

  1. Giá cổ phiếu có thể điều chỉnh trong thời gian ngắn, kích hoạt dừng lỗ.
  2. Trung bình động không thể xác định hoàn toàn xu hướng và có thể xảy ra sự đột phá sai.
  3. Các tỷ lệ dừng lỗ và lấy lợi nhuận được thiết lập không hoàn hảo, có thể lấy lợi nhuận hoặc mở rộng lỗ sớm.

Tối ưu hóa

  1. Thử kết hợp các đường trung bình động với các thông số khác nhau.
  2. Thêm các chỉ số kỹ thuật khác để xác định thời gian nhập cảnh.
  3. Tối ưu hóa các thiết lập stop loss và take profit ratio.

Tóm lại

Chiến lược nói chung theo ý tưởng giao dịch xu hướng, tạo ra tín hiệu mua khi xu hướng tăng của giá cổ phiếu được xác nhận. Đồng thời, một cơ chế dừng lỗ được thiết lập để kiểm soát rủi ro. Bằng cách tối ưu hóa các tham số chi tiết khác nhau, sự ổn định và lợi nhuận của chiến lược có thể được cải thiện hơn nữa. Tuy nhiên, không có chiến lược nào có thể tránh hoàn toàn rủi ro thị trường, vì vậy các nhà đầu tư cần phải xử lý nó một cách thận trọng.


/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Pure Mark Minervini 10%TP 5%CL", pyramiding = 0, commission_type=strategy.commission.percent, commission_value=0.08, overlay=true)

ma50 = sma(close,50)
ma150 = sma(close,150)
ma200 = sma(close,200)
ma200_22 = ma200[22]

high_loopback = input(260, "High Lookback Length")
low_loopback = input(260, "Low Lookback Length")
highest_price = highest(high, high_loopback)
lowest_price = lowest(low, low_loopback)
above52lo = ((close/lowest_price)-1)*100
below52hi = (1-(close/highest_price))*100
ep = strategy.position_avg_price

trigger = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3
var label maLabel = na
if (trigger)
    yLocation = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3 ?
         yloc.abovebar :
         yloc.belowbar

    // labelStyle = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3 ?
    //      label.style_labeldown :
    //      label.style_labelup

buy = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3
sell = close>ep*1.1 or close<ep*0.95

strategy.entry("TF", strategy.long, when = buy)
strategy.close("TF", when = sell)

Thêm nữa