Chiến lược đầu tư cổ phiếu dựa trên đường trung bình động kép và biến động


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

Chiến lược đầu tư cổ phiếu dựa trên đường trung bình động kép và biến động

Tổng quan

Chiến lược này dựa trên hai đường trung bình và chỉ số cường độ tương đối, kết hợp với biến động lịch sử của cổ phiếu, để thực hiện mua và bán cổ phiếu tự động. Ưu điểm của chiến lược là thực hiện kết hợp đường dài và đường ngắn, có thể kiểm soát rủi ro hiệu quả.

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

Chiến lược sử dụng hệ thống hai đường bằng nhau bao gồm đường trung bình linea 150 tuần và đường trung bình nhanh 50 ngày, và đường trung bình nhanh nhất 20 ngày. Khi giá vượt qua đường 150 tuần, giá được coi là bắt đầu đi lên, và khi giá vượt qua đường 50 ngày, giá được coi là bắt đầu đi xuống.

Ngoài ra, chiến lược này cũng sử dụng giá cao nhất của biến động hàng năm và chỉ số cường độ tương đối để xác định thời điểm mua cụ thể. Chỉ khi giá đóng cửa vượt quá giá cao nhất tính toán của biến động hàng năm và chỉ số cường độ tương đối là tích cực, tín hiệu mua sẽ được phát đi.

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

  1. Sử dụng hệ thống hai đường đồng nhất, có thể đánh giá hiệu quả sự thay đổi trong xu hướng chính, để theo đuổi đà giảm
  2. Việc thêm chỉ số tỷ lệ dao động và chỉ số cường độ có thể giúp tránh dòng chảy theo sóng trong tình huống chấn động
  3. Thêm đường trung bình nhanh 20 ngày, có thể dừng lỗ nhanh hơn

Rủi ro chiến lược

  1. Có một sự chậm trễ, không thể dừng lại nhanh chóng.
  2. Không có điểm dừng, dễ bị thua lỗ lớn
  3. Thiếu tối ưu hóa tham số, thiết lập tham số khá chủ quan

Để giải quyết rủi ro, bạn có thể đặt mức dừng lỗ hoặc sử dụng số nhân của chỉ số ATR làm mức dừng lỗ. Ngoài ra, bạn có thể tối ưu hóa các tham số bằng cách đo lại nghiêm ngặt hơn.

Hướng tối ưu hóa chiến lược

  1. Tăng hệ thống chống thiệt hại
  2. Sử dụng phương pháp tối ưu hóa tham số để tìm tham số tối ưu
    1. Xem xét thêm các chỉ số khác để lọc tín hiệu, chẳng hạn như chỉ số giao dịch
  3. Có thể xem xét xây dựng chiến lược thành mô hình đa yếu tố, kết hợp nhiều chỉ số

Tóm tắt

Chiến lược này nói chung là một chiến lược đầu tư cổ phiếu tương đối bảo thủ. Sử dụng hai đường trung bình để đánh giá xu hướng chính, và kết hợp với dao động và cường độ của các chỉ số tham gia, có thể lọc hiệu quả phá vỡ giả mạo. Việc thêm đường trung bình nhanh cũng làm cho việc dừng lỗ nhanh hơn.

Mã nguồn chiến lược
/*backtest
start: 2023-12-12 00:00:00
end: 2023-12-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Relative Strength
strategy("Stan my man", overlay=true)
comparativeTickerId = input("BTC_USDT:swap",  title="Comparative Symbol")
l = input(50, type=input.integer, minval=1, title="Period")
baseSymbol = security(syminfo.tickerid, timeframe.period, close)
comparativeSymbol = security(comparativeTickerId, timeframe.period, close)
hline(0, color=color.black, linestyle=hline.style_dotted)
res = baseSymbol / baseSymbol[l] /(comparativeSymbol / comparativeSymbol[l]) - 1
plot(res, title="RS", color=#1155CC)

//volume ma
vol1 = sma(volume,20)
// 30 week ma
ema1 = ema(close, 150)
//consolidation
h1 = highest(high[1],365)

fastPeriod = input(title="Fast MA", type=input.integer, defval=50)
slowPeriod = input(title="Slow MA", type=input.integer, defval=150)
fastestperiod = input(title="Fastest MA", type=input.integer, defval=20)

fastEMA = ema(close, fastPeriod)
slowEMA = ema(close, slowPeriod)
fastestEMA = ema(close, fastestperiod)

monitorStrategy = close < close[20]


// trade conditions
buytradecondition1 = close >ema1 and res>0 and volume> 1.5*vol1 and close > h1
buytradecondition2 = close > fastEMA  and volume> 1.5* vol1 
selltradecondition1  = close< 0.95 * fastEMA 
selltradecondition2  = close< 0.90 * open

if (buytradecondition1)
    strategy.entry("long",strategy.long,alert_message ="Seems ready to Buy")
    alert("Buy Alert Price (" + tostring(close) + ") crossed over Slow moving average",alert.freq_all)
    
if (buytradecondition2)
    strategy.entry("long",strategy.long,alert_message ="Seems ready to Buy")
    alert("Buy Alert Price (" + tostring(close) + ") crossed over fast moving average",alert.freq_all)
    
if (selltradecondition1)
    strategy.close("long",alert_message ="Seems ready to Sell")
    alert("Sell Alert Price (" + tostring(close) + ") crossed down fast moving average",alert.freq_all)
    
if (selltradecondition2)
    strategy.close("long",alert_message ="Seems ready to Sell")
    alert("Sell Alert Price (" + tostring(close) + ") crossed down 10% below open price  ",alert.freq_all)

//alertcondition(buytradecondition1,title ="BuySignal", message ="Price Crossed Slow Moving EMA ")

plot(fastEMA, color=color.navy)
plot(slowEMA, color=color.fuchsia)
plot(fastestEMA, color=color.green)