Tài nguyên đang được tải lên... tải...

Chiến lược giao dịch cặp đa MA

Tác giả:ChaoZhang, Ngày: 2023-09-23 15:16:50
Tags:

Tổng quan

Chiến lược này kết hợp hai lựa chọn trung bình động và nhận dạng mô hình giá để tạo thành một cơ chế nhập cảnh toàn diện hơn để cải thiện chất lượng tín hiệu. Nó cũng kết hợp kiểm soát lợi nhuận và thời gian giữ tối đa để đạt được quản lý rủi ro mạnh mẽ.

Chiến lược logic

Chiến lược bao gồm các chỉ số và quy tắc sau:

  1. 3 SMA đánh giá xu hướng tổng thể.

  2. 2 EMA đưa ra phán đoán chi tiết về hướng đi.

  3. SAR hỗ trợ với xu hướng và động lực.

  4. Các mô hình giá xác định các hình thành như là tín hiệu nhập cảnh.

  5. Lợi nhuận tối đa lấy giới hạn kiểm soát tài khoản lợi nhuận.

  6. Giới hạn thời gian nắm giữ tránh mở rộng lỗ.

Sự kết hợp của nhiều chỉ số tạo ra các tín hiệu đầu vào và cơ chế thoát mạnh mẽ, cân bằng lợi nhuận và kiểm soát rủi ro cho giao dịch ổn định.

Ưu điểm

So với các chiến lược chỉ số duy nhất, những lợi thế là:

  1. Nhiều chỉ số cải thiện độ chính xác.

  2. Nhận dạng mô hình giá cải thiện thời gian nhập cảnh.

  3. Lợi nhuận nắm quyền kiểm soát sẽ mang lại lợi nhuận.

  4. Khoảng thời gian nắm giữ tránh mở rộng lỗ.

  5. SMA theo xu hướng.

  6. EMA cải thiện độ nhạy.

  7. SAR xác minh độ tin cậy thoát.

  8. Nhìn chung cân bằng rủi ro-lợi nhuận tốt, vững chắc.

  9. Các thông số điều chỉnh có thể đạt được alpha ổn định.

Rủi ro

Mặc dù có lợi, nên lưu ý các rủi ro sau:

  1. Nhiều chỉ số làm tăng sự phức tạp.

  2. Chế độ điều chỉnh tham số rộng có nguy cơ tối ưu hóa quá mức.

  3. Hiệu quả nhận dạng mô hình giá không chắc chắn.

  4. Lợi nhuận có rủi ro thiếu xu hướng tiếp tục.

  5. Thời gian giữ hạn chế tiềm năng lợi nhuận.

  6. Sự ổn định và lợi nhuận có sự đánh đổi.

  7. Sự vững chắc của nhiều thị trường đòi hỏi phải được xác nhận.

  8. Giám sát liên tục về độ bền của mô hình là rất quan trọng.

Tăng cường

Dựa trên phân tích, các cải tiến có thể bao gồm:

  1. Điều chỉnh các thông số cho sự ổn định trở lại.

  2. Tích hợp máy học cho thời gian nhập.

  3. Tối ưu hóa stop loss động và lấy lợi nhuận.

  4. Đánh giá tác động của thời gian nắm giữ đối với đường cong vốn chủ sở hữu.

  5. Kiểm tra độ bền trên các thị trường khác nhau.

  6. Thêm kiểm tra độ bền tham số để ngăn ngừa quá mức.

  7. Phát triển quản lý rủi ro định lượng.

  8. Tiếp tục xác nhận hiệu quả chiến lược.

Kết luận

Tóm lại, phương pháp tiếp cận đa chỉ số tạo thành một hệ thống giao dịch tương đối mạnh mẽ. Nhưng tối ưu hóa và xác nhận liên tục là chìa khóa cho bất kỳ chiến lược nào, tập trung vào độ mạnh mẽ của các tham số để thích nghi với thị trường.


//@version=3
strategy("Free Strategy #08 (Combo of #01 and #02) (ES / SPY)", overlay=true)

// Inputs
Quantity = input(1, minval=1, title="Quantity")
SmaPeriod01 = input(3, minval=1, title="SMA Period 01")
SmaPeriod02 = input(8, minval=1, title="SMA Period 02")
SmaPeriod03 = input(10, minval=1, title="SMA Period 03")
EmaPeriod01 = input(5, minval=1, title="EMA Period 01")
EmaPeriod02 = input(3, minval=1, title="EMA Period 02")
MaxProfitCloses = input(5, minval=1, title="Max Profit Close")
MaxBars = input(10, minval=1, title="Max Total Bars")

// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
Sma01 = sma(close, SmaPeriod01)
Sma02 = sma(close, SmaPeriod02)
Sma03 = sma(close, SmaPeriod03)
Ema01 = ema(close, EmaPeriod01)
Ema02 = ema(close, EmaPeriod02)
OHLC = (open + high + low + close) / 4.0

// Conditions
Cond00 = strategy.position_size == 0
Cond01 = close < Sma03
Cond02 = close <= Sma01
Cond03 = close[1] > Sma01[1]
Cond04 = open > Ema01
Cond05 = Sma02 < Sma02[1]
Entry01 = Cond00 and Cond01 and Cond02 and Cond03 and Cond04 and Cond05

Cond06 = close < Ema02
Cond07 = open > OHLC
Cond08 = volume <= volume[1]
Cond09 = (close < min(open[1], close[1]) or close > max(open[1], close[1]))
Entry02 = Cond00 and Cond06 and Cond07 and Cond08 and Cond09

// Update Exit Variables
BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1
MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1])

// Entries
strategy.entry(id="L1", long=true, qty=Quantity, when=(Entry01 or Entry02))
 
// Exits
strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))

Thêm nữa