Chiến lược giao dịch dựa trên đường trung bình động golden cross và dead cross


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

Chiến lược giao dịch dựa trên đường trung bình động golden cross và dead cross

Tổng quan

Chiến lược giao dịch chuyển động trung bình vàng (đường dài) tạo ra tín hiệu mua và bán bằng cách tính toán chéo của đường nhanh EMA ((fastLength) và đường chậm EMA ((slowLength)). Khi đường nhanh đi qua đường chậm, tạo ra tín hiệu mua; khi đường nhanh đi qua đường dài, tạo ra tín hiệu bán. Chiến lược này đơn giản và thực tế, phù hợp với giao dịch đường ngắn.

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

Chiến lược này sử dụng hai đường trung bình di chuyển, đường nhanh và đường chậm. Các tham số đường nhanh EMAfastLength mặc định là đường 9 ngày, tham số đường chậm EMAAslowLength mặc định là đường 26 ngày.

  1. Khi đường nhanh từ dưới lên vượt qua đường chậm, tạo ra tín hiệu mua (enterLong)
  2. Khi đường nhanh từ trên xuống dưới phá vỡ đường chậm, tạo ra một tín hiệu bánenterShort ()

Các tín hiệu giao dịch cụ thể và các quy tắc chiến lược như sau:

  1. Khi đường nhanh vượt qua đường chậm, hãy chơi nhiều hơn; khi đường nhanh vượt qua đường chậm dưới đường nhanh, rời khỏi sân.
  2. Đặt điểm dừng là Targetpercentage của giá (tạm dịch là 0.15% theo mặc định), tức là khi giá tăng lên 15%, bạn sẽ thoát khỏi vị trí thanh toán.
  3. Hạn chế nhiều là StopLosspercentage của giá (chọn mặc định là 0.20%), dừng bán khi giảm đến 20%.
  4. Hãy làm như vậy.

Vì vậy, chiến lược này là một chiến lược để thực hiện các hoạt động giao dịch khi hai đường trung bình di chuyển xảy ra và hai đường trung bình di chuyển xảy ra.

Phân tích lợi thế

  1. Chiến lược rất đơn giản và dễ hiểu.
  2. Ứng dụng moving average đã lọc một số tiếng ồn thị trường, giúp tín hiệu giao dịch chính xác hơn.
  3. Quy tắc giao dịch rõ ràng, có chiến lược dừng lỗ rõ ràng.
  4. Các tham số thử nghiệm có thể được điều chỉnh linh hoạt để phù hợp với các tình huống thị trường khác nhau.

Phân tích rủi ro

  1. Đường trung bình di chuyển tự nó có tính chậm trễ, có thể bỏ qua các biến động ngắn hạn của giá, dẫn đến việc điểm mua và bán không chính xác.
  2. Các tham số trung bình di chuyển của các chu kỳ khác nhau có thể tạo ra tín hiệu sai, dẫn đến tổn thất.
  3. Chỉ phụ thuộc vào một vài tham số, chiến lược này có nhu cầu tối ưu hóa siêu tham số cao, cần tìm ra sự kết hợp tham số tối ưu.
  4. Trong một số xu hướng cụ thể, chiến lược này có thể thất bại.

Đối với rủi ro, các tham số có thể được tối ưu hóa như chu kỳ trung bình di chuyển, loại giao dịch, tỷ lệ dừng lỗ, v.v., cần nhiều thử nghiệm để giảm rủi ro.

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

Chiến lược này có ý tưởng trung bình di chuyển đơn giản và thực tế, có thể được tối ưu hóa bằng cách:

  1. Thay đổi loại trung bình di chuyển: Ngoài EMA, bạn cũng có thể kiểm tra các loại đường như SMA, LWMA, HMA.
  2. Thêm các chỉ số khác: giao dịch theo thời gian phân tán với các chỉ số như RSI, MACD.
  3. Các tham số tối ưu hóa tự động: Tìm kiếm tối ưu hóa tự động cho hai tham số chu kỳ của EMA để tìm kiếm các tham số kết hợp tốt nhất.
  4. Trình lọc xu hướng: Giao dịch một cách chọn lọc dựa trên các xu hướng lớn.
  5. Tối ưu hóa chiến lược dừng lỗ: cải thiện phương thức dừng lỗ ở tỷ lệ cố định để có hiệu quả hơn trong chiến đấu.

Những thử nghiệm tối ưu này có thể cải thiện đáng kể hiệu quả chiến đấu và tính ổn định của chiến lược.

Tóm tắt

Chiến lược giao dịch đường trung bình di chuyển rất đơn giản, và ứng dụng thực tế cần phải được tối ưu hóa liên tục. Chiến lược này cung cấp logic tạo tín hiệu giao dịch và các quy tắc giao dịch cơ bản, trên cơ sở đó có thể được tối ưu hóa mạnh mẽ, làm cho nó trở thành một chiến lược định lượng thực tế. Ứng dụng đường trung bình di chuyển cũng cung cấp cho chúng tôi tư duy chiến lược, chúng tôi có thể đổi mới và cải tiến trên cơ sở này.

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

//@version=4
strategy("EMA Cross by MarketAlpha", overlay=true)
EMAfastLength = input(defval = 9, minval = 2)
EMAslowLength = input(defval = 26, minval = 2)
Targetpercentage = input(defval = 0.15, title = "Profit Target in percentage", minval = 0.05)
StopLosspercentage = input(defval = 0.20, title = "Stop Loss in percentage", minval = 0.05)
profitpoints = close*Targetpercentage
stoplosspoints = close*StopLosspercentage
price = close

FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 2000)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

emafast = ema(price, EMAfastLength)
emaslow = sma(price, EMAslowLength)
plot(emafast,color=green)
plot(emaslow,color=red)

enterLong() => crossover(emafast, emaslow)
strategy.entry(id = "MarketAlpha Long", long = true, when = window() and enterLong())
strategy.exit("Exit Long", from_entry = "MarketAlpha Long", profit = profitpoints,loss = stoplosspoints)

enterShort() => crossunder(emafast, emaslow)
strategy.entry(id = "MarketAlpha Short", long = false, when = window() and enterShort())
strategy.exit("Exit Short", from_entry = "MarketAlpha Short", profit = profitpoints,loss = stoplosspoints)