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


Ngày tạo: 2023-12-20 14:23:49 sửa đổi lần cuối: 2023-12-20 14:23:49
sao chép: 0 Số nhấp chuột: 771
1
tập trung vào
1621
Người theo dõi

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

Tổng quan

Chiến lược này dựa trên mẫu lựa chọn cổ phiếu của Mark Menevigne, kết hợp với chỉ số trung bình di chuyển để xác định xu hướng giá cổ phiếu, để thực hiện mua và dừng tự động. Chiến lược này chủ yếu xác định liệu cổ phiếu có đang trong xu hướng tăng và phá vỡ trung bình di chuyển quan trọng để tạo ra tín hiệu mua hay không.

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

Chiến lược này chủ yếu đánh giá các điều kiện sau, tạo ra tín hiệu mua khi các điều kiện được đáp ứng đồng thời:

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

Khi các điều kiện trên được đáp ứng, chiến lược đánh giá giá cổ phiếu đang ở giai đoạn tăng, tạo ra tín hiệu mua.

Ngoài ra, chiến lược này cũng thiết lập đường dừng lỗ khi giá cổ phiếu giảm 5% hoặc tăng 10% từ mức cao nhất.

Lợi thế chiến lược

  1. Sử dụng ý tưởng chọn cổ phiếu của Mark Menevigney để tăng khả năng lợi nhuận
  2. Sử dụng nhiều đường trung bình di chuyển để xác nhận xu hướng và tránh bỏ lỡ điểm mua
  3. Thiết lập cơ chế ngăn chặn thiệt hại để tránh thua lỗ 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, dẫn đến việc dừng lỗ được kích hoạt
  2. Trung bình di chuyển không thể xác định được xu hướng hoàn toàn, có thể xảy ra đột phá giả
  3. Thiết lập Stop Loss Stop Ratio không hoàn hảo, có thể dừng quá sớm hoặc mở rộng lỗ

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

  1. Có thể kiểm tra các kết hợp trung bình di chuyển với các tham số khác nhau
  2. Có thể kết hợp các chỉ số kỹ thuật khác để xác định thời gian mua
  3. Cài đặt tỷ lệ để tối ưu hóa Stop Loss Stop

Tóm tắt

Chiến lược tổng thể theo suy nghĩ của giao dịch xu hướng, tạo ra tín hiệu mua với giả định xác nhận xu hướng tăng giá cổ phiếu. Đồng thời thiết lập cơ chế kiểm soát rủi ro lỗ. Bằng cách tối ưu hóa các thông số chi tiết, bạn có thể nâng cao hơn nữa sự ổn định và khả năng sinh lợi của chiến lược.

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