Chiến lược giao dịch định lượng của Gandalf dựa trên đường trung vị


Ngày tạo: 2023-10-30 10:27:40 sửa đổi lần cuối: 2023-10-30 10:33:17
sao chép: 0 Số nhấp chuột: 772
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch định lượng của Gandalf dựa trên đường trung vị

Tổng quan

Chiến lược giao dịch định lượng Gandalf là một chiến lược theo dõi xu hướng dựa trên đường trung bình. Nó đánh giá hướng xu hướng hiện tại bằng cách tính toán giá trung bình trọng lượng, đường trung bình và giá trung bình thực tế để tìm điểm vào tốt hơn.

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

Lập luận cốt lõi của chiến lược Gandalf là so sánh giá trung bình trọng lượng, đường trung bình và giá trung bình thực tế để xác định hướng và sức mạnh của xu hướng hiện tại.

Cụ thể, nó tính giá như sau:

  • Giá trung bình trọng lượng: ((giá cao nhất + giá thấp nhất + giá đóng cửa + giá đóng cửa) / 4
  • Đường trung bình: ((giá cao nhất + giá thấp nhất) / 2
  • Giá trung bình thực thể: ((giá mở + giá đóng) / 2

Khi vào, nó sẽ so sánh giữa giá trung bình trọng lượng, giá trung bình và giá trung bình thực tế của hai đường K trước để xác định xem nó có phù hợp với đặc điểm khởi động xu hướng hay không.

Ví dụ, nếu giá trung bình có trọng lượng thấp hơn đường trung bình và giá trung bình thực tế cũng thấp hơn giá trung bình có trọng lượng, điều này cho thấy giá đang giảm, đây là một cơ hội để giảm giá.

Khi dừng lỗ, nó sẽ tiếp tục so sánh các mối quan hệ lớn và nhỏ giữa các giá để đánh giá liệu có dấu hiệu thay đổi xu hướng hay không. Nếu giá trung bình có trọng số cao hơn giá trung bình thực tế và đường trung bình cũng thấp hơn giá trung bình có trọng số, điều này cho thấy xu hướng thay đổi, nên dừng lỗ ngay lập tức.

Thông qua phương pháp so sánh giá cả lớn và nhỏ, chiến lược Gandalf thực hiện phán đoán và theo dõi xu hướng. Nó có thể tìm thấy thời gian nhập cảnh tốt hơn và có thể nhanh chóng phát hiện xu hướng đảo ngược và dừng lỗ.

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

Chiến lược Gandalf có những lợi thế sau:

  1. Sử dụng đường trung bình để đánh giá xu hướng, bạn có thể lọc hiệu quả tiếng ồn thị trường và khóa xu hướng chính.

  2. Điều kiện tham gia kết hợp với nhiều so sánh giá, có thể đánh giá một cách đáng tin cậy hơn về sự khởi động của xu hướng.

  3. Điều kiện dừng lỗ cũng sử dụng so sánh giá để xác định xu hướng đảo ngược, có thể dừng lỗ nhanh chóng, kiểm soát rủi ro.

  4. Có thể tham gia với mức giá lý tưởng.

  5. Có thể đặt trước số lần dừng và giới hạn giữ, có thể khóa lợi nhuận và kiểm soát rủi ro cho mỗi giao dịch.

  6. Cấu trúc mã rõ ràng, đơn giản, dễ hiểu và sửa đổi.

  7. Các tham số có thể được điều chỉnh theo sở thích rủi ro cá nhân, dễ dàng tối ưu hóa.

  8. Đối với các giống có xu hướng, có thể có được lợi nhuận theo xu hướng.

Nhìn chung, chiến lược Gandalf sử dụng đường trung bình để đánh giá xu hướng, thiết lập điều kiện dừng dừng để kiểm soát hiệu quả xu hướng theo dõi rủi ro, là một chiến lược theo dõi xu hướng đáng tin cậy.

Rủi ro chiến lược

Nhưng chiến lược của Gandalf cũng có một số rủi ro cần lưu ý:

  1. Là một chiến lược theo dõi xu hướng, khi xu hướng không rõ ràng hoặc đảo ngược thường xuyên, sẽ tạo ra nhiều lỗ nhỏ hơn.

  2. Không có khả năng đánh giá hiệu quả điểm đảo ngược xu hướng, có thể dẫn đến sự gia tăng tổn thất.

  3. Trong khi đó, các nhà đầu tư khác cũng có xu hướng bị đánh giá cao.

  4. Tùy thuộc vào cài đặt tham số, các giống khác nhau cần điều chỉnh tham số.

  5. Các nhà đầu tư không thể nắm giữ các vị thế độc lập và lợi nhuận từ các hoạt động trái chiều.

  6. Điều kiện đơn có tỷ lệ thất bại cao và có thể phải chờ đợi lâu để được nhận.

Các biện pháp quản lý rủi ro:

  1. Sử dụng các vị trí nhỏ, nhập trận theo nhóm, kiểm soát tổn thất đơn.

  2. Thiết lập đường dừng, dừng nhanh. Hoặc sử dụng dừng di động theo dõi điểm dừng.

  3. Các tham số tối ưu hóa, điều chỉnh phù hợp với giống hiện tại. Có thể hỗ trợ đánh giá xu hướng bằng các chỉ số khác.

  4. Có thể sử dụng phương pháp bổ sung Martingale để giảm chi phí.

  5. Các loại giao dịch có xu hướng rõ ràng, lợi nhuận cao.

  6. Điều kiện nhập học được nới lỏng một cách thích hợp, có tính đến xác suất nhập học.

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

Các chiến lược của Gandalf có thể được tối ưu hóa theo các cách sau:

  1. Xây dựng các chỉ số đánh giá xu hướng, hỗ trợ đánh giá thời gian đảo ngược xu hướng.

  2. Thêm chức năng tối ưu hóa tách rời, tự động tối ưu hóa tham số, thích ứng với nhiều giống hơn.

  3. Thêm các thuật toán học máy, sử dụng các mô hình mạng thần kinh hoặc SVM để huấn luyện xu hướng dựa trên dữ liệu lịch sử.

  4. Thêm chế độ dừng, như dừng di động, dừng di động chỉ số.

  5. Kết hợp với các sản phẩm liên quan, để thực hiện chênh lệch giá thầu hoặc thầu thống kê.

  6. Tham gia dự đoán trạng thái dựa trên mô hình Hyn Markov, để đánh giá tình hình.

  7. Xây dựng các chiến lược phức tạp, chẳng hạn như kết hợp với các chiến lược thống nhất, để thực hiện quản lý nhiều chiến lược.

  8. Khám phá sự tối ưu hóa danh mục chiến lược giao dịch, tìm trọng lượng danh mục.

Nói chung, chiến lược Gandalf có thể được mở rộng và tối ưu hóa ở nhiều cấp độ như đánh giá xu hướng, tối ưu hóa tự động và quản lý rủi ro, giúp chiến lược trở nên ổn định và đáng tin cậy hơn.

Tóm tắt

Chiến lược định lượng Gandalf là một chiến lược đơn giản và hiệu quả dựa trên xu hướng đánh giá so sánh giá. Nó kết hợp theo dõi xu hướng với tư duy dừng nhanh, có thể kiểm soát rủi ro một cách hiệu quả.

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

//@version=3

// The GandalfProjectResearchSystem strategy, as discussed in
// “System Development Using Artificial Intelligence”
// by Domenico D’Errico and Giovanni Trombetta
strategy("Gandalf Project Research System", overlay=true)

// Inputs
Quantity = input(0, title="Quantity (0 to auto calc)")
Single_Trade_Money = input(10000, minval=1, title="Money to spend on single trade")
MaxProfitCloses = input(6, minval=1, title="Max Profit Close")
MaxBars = input(8, minval=1, title="Max Total Bars")
Enter_Gap = input(-0.08, title="Distance from low price to place entry limit")
AltExit = input(true, title="Use Alt Exit")

// Calculate Order Quantity
Ncon = Single_Trade_Money / close

// Misc Variables
src = close
BarsSinceEntry = 0
MaxProfitCount = 0
MedBodyPrice = (open + close) / 2.0
Weighted = (high + low + close + close) / 4.0
Median = (high + low) / 2.0

// Enter Conditions
Cond00 = strategy.position_size == 0
Cond01 = ((Weighted[1] < Median[1] and Median[2] <= Weighted[1] and MedBodyPrice[2] <= Weighted[3]) or (Weighted[1] < Median[3] and MedBodyPrice[0] < Median[2] and MedBodyPrice[1] < MedBodyPrice[2]))
Entry01 = Cond00 and Cond01

// 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])

// Exit Conditions
eCond01 = BarsSinceEntry - 1 >= MaxBars
eCond02 = MaxProfitCount >= MaxProfitCloses
eCond03 = ((Weighted[1] < MedBodyPrice[1] and Median[2] == MedBodyPrice[3] and MedBodyPrice[1] <= MedBodyPrice[4]) or (Weighted[2] < MedBodyPrice[0] and Median[4] <= Weighted[3] and MedBodyPrice[1] <= Weighted[1]) or (Weighted[2] < MedBodyPrice[0] and Median[4] <= Weighted[3] and MedBodyPrice[1] <= Weighted[1]))
eCond04 = AltExit ? true : close - strategy.position_avg_price < 0
Exit01 = not Cond00 and (eCond01 or eCond02 or (eCond03 and eCond04))

// Entries
strategy.entry(id="L1", long=true, limit=low + Enter_Gap, qty=(Quantity > 0 ? Quantity : Ncon), when=Entry01)
 
// Exits
strategy.close("L1", Exit01)