Chiến lược giao cắt đường trung bình động

MA SMA
Ngày tạo: 2024-04-30 17:33:09 sửa đổi lần cuối: 2024-04-30 17:33:09
sao chép: 1 Số nhấp chuột: 644
1
tập trung vào
1617
Người theo dõi

Chiến lược giao cắt đường trung bình động

Tổng quan

Chiến lược này sử dụng hai đường trung bình di chuyển ((MA) để tạo ra tín hiệu giao dịch. Khi MA có chu kỳ ngắn hơn đi từ dưới lên qua MA có chu kỳ dài hơn, tạo ra tín hiệu mua; Khi MA có chu kỳ ngắn hơn đi từ trên xuống qua MA có chu kỳ dài hơn, tạo ra tín hiệu bán. Chiến lược này đồng thời thiết lập khoảng thời gian giao dịch ((8 giờ đến 20 giờ UTC) và điểm dừng ((150 điểm).

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

  1. Tính trung bình di chuyển của hai chu kỳ khác nhau (bằng mặc định là 5 chu kỳ và 20 chu kỳ).
  2. Xác định liệu MA có ngắn hay dài hơn để sử dụng như một tín hiệu mua / bán.
  3. Đặt khoảng thời gian giao dịch là 8:00 đến 20:00 UTC, và chỉ giao dịch trong khoảng thời gian đó.
  4. Xác định liệu 4 đường K gần đây đã kết thúc ở trên/dưới MA để xác nhận xu hướng.
  5. Nếu đáp ứng các điều kiện mua/bán, hãy mở một vị trí và đặt một điểm dừng 150 điểm.

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

  1. Sử dụng hai MA khác nhau có thể nắm bắt được xu hướng hiệu quả, áp dụng cho thị trường có xu hướng.
  2. Thiết lập khoảng thời gian giao dịch giúp tránh giao dịch trong thời gian thiếu thanh khoản, giảm rủi ro.
  3. Bằng cách đánh giá liệu 4 đường K gần đây đã đóng trên / dưới MA, bạn có thể xác nhận xu hướng và cải thiện độ tin cậy tín hiệu.
  4. Thiết lập điểm dừng cố định, có thể khóa lợi nhuận hiệu quả, kiểm soát rủi ro.

Rủi ro chiến lược

  1. Trong một thị trường bất ổn, chiến lược này có thể dẫn đến các tín hiệu sai lệch thường xuyên, dẫn đến tổn thất.
  2. Các điểm dừng cố định có thể hạn chế khả năng kiếm tiền của chiến lược.
  3. Chiến lược này không có lệnh dừng lỗ và có thể sẽ có rủi ro lớn hơn trong trường hợp thị trường quay ngược nhanh chóng.

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

  1. Có thể xem xét thêm các chỉ số kỹ thuật như RSI, MACD, v.v. để cải thiện độ tin cậy tín hiệu.
  2. Các thiết lập có thể được tối ưu hóa cho điểm dừng lỗ, chẳng hạn như sử dụng dừng lỗ động hoặc dừng lỗ dựa trên ATR.
  3. Các tín hiệu giao dịch có thể được xác nhận lần thứ hai với cấu trúc vi mô của thị trường, chẳng hạn như dòng lệnh.
  4. Các thiết lập tham số khác nhau có thể được thực hiện cho các tình trạng thị trường khác nhau (trend / oscillation) để cải thiện khả năng thích ứng của chiến lược.

Tóm tắt

Chiến lược này dựa trên sự giao thoa của hai trung bình di chuyển trong hai chu kỳ khác nhau để tạo ra tín hiệu giao dịch và phù hợp với thị trường đang có xu hướng. Bằng cách thiết lập khoảng thời gian giao dịch và điểm dừng cố định, rủi ro có thể được kiểm soát ở một mức độ nào đó. Tuy nhiên, chiến lược này có thể không hoạt động tốt trong thị trường bất ổn và điểm dừng cố định có thể hạn chế không gian lợi nhuận của chiến lược.

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

//@version=4
strategy("Moving Average Crossover Strategy", overlay=true)

// User-defined moving average periods
ma1Periods = input(5, title="First Moving Average Periods")
ma2Periods = input(20, title="Second Moving Average Periods")

// Calculate moving averages
ma1 = sma(close, ma1Periods)
ma2 = sma(close, ma2Periods)

// Plot moving averages
plot(ma1, color=color.red, linewidth=2, title="First Moving Average")
plot(ma2, color=color.blue, linewidth=2, title="Second Moving Average")

// Detect crossovers and crossunders
bullishCross = crossover(ma1, ma2)
bearishCross = crossunder(ma1, ma2)

// Define trading hours (8 AM to 2 PM UTC)
startHour = 8
endHour = 20
utcHour = hour(time, "UTC")
isMarketOpen = true

// Define profit target
profitTarget = 150

// Check if the price has closed above/below the MA for the past 4 bars
aboveMa = close[4] > ma1[4] and close[3] > ma1[3] and close[2] > ma1[2] and close[1] > ma1[1]
belowMa = close[4] < ma1[4] and close[3] < ma1[3] and close[2] < ma1[2] and close[1] < ma1[1]

// Create buy and sell signals
if (bullishCross and isMarketOpen and aboveMa)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell", "Buy", profit=profitTarget)
if (bearishCross and isMarketOpen and belowMa)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover", "Sell", profit=profitTarget)

// Plot shapes on crossovers
plotshape(series=bullishCross and isMarketOpen and aboveMa, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=bearishCross and isMarketOpen and belowMa, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")