Chiến lược đầu tư định lượng dựa trên ngày mua hàng tháng


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

Chiến lược đầu tư định lượng dựa trên ngày mua hàng tháng

Tổng quan

Ý tưởng cốt lõi của chiến lược này là tìm ra ngày mua tối ưu hàng tháng để đạt được lợi nhuận tối ưu bằng cách mua tài sản kỹ thuật số vào ngày này và bán nó vào cuối tháng. Chiến lược này dành cho các nhà đầu tư muốn tận dụng biến động giá trong ngày để kiếm được lợi nhuận.

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

Chiến lược này hoạt động dựa trên ngày mua và ngày bán hàng tháng mà người dùng đã đặt. Nếu đặt ngày mua vào ngày mua, hãy mua nhiều tài sản vào ngày bán, nếu không đặt ngày bán, hãy bán vào ngày kết thúc chiến lược.

Lý luận của tín hiệu mua là: nếu đó là ngày mua mà người dùng đã đặt và trong phạm vi ngày chiến lược có hiệu lực, thì mở nhiều lệnh.

Hình thức phân tích tín hiệu bán khỏa là: Nếu đặt ngày bán và ngày bán, bán khỏa; Nếu không đặt ngày bán nhưng vượt quá ngày kết thúc chiến lược, cũng bán khỏa.

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

  1. Có thể tìm ra điểm mua lớn nhất trong biến động giá hàng tháng, tận dụng giao dịch trong ngày thường xuyên để kiếm thêm lợi nhuận
  2. Bạn có thể tìm ra điểm mua tốt nhất bằng cách so sánh các ngày mua khác nhau
  3. Có thể kết hợp các sự kiện tin tức trong tháng để xác định ngày tốt nhất để mua sẽ thay đổi
  4. Có thể đặt ngày bán khác nhau để cân bằng giao dịch ngắn và dài

Rủi ro chiến lược và giải pháp

  1. Rủi ro giảm giá sau khi mua

    • Thiết lập điểm dừng để giảm tổn thất tối đa
    • Lựa chọn các cặp giao dịch có tính thanh khoản để tránh biến động giá cực đoan
  2. Rủi ro của việc thay đổi ngày mua tốt nhất

    • Theo dõi sự thay đổi dữ liệu lịch sử và điều chỉnh điểm mua tốt nhất kịp thời
    • Giảm kích thước vị thế trong thời gian rủi ro cao
  3. Rủi ro mất mát do cài đặt sai

    • Thử nghiệm các tham số khác nhau để so sánh lợi nhuận khác nhau
    • Chọn một khoảng thời gian đại diện để thử nghiệm

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

  1. Kết hợp nhiều yếu tố để xác định điểm mua

    • Xem xét các sự kiện tin tức quan trọng trong tháng ảnh hưởng đến giá cả
    • Phân tích xu hướng giá của các tài sản kỹ thuật số liên quan
    • Thêm mô hình học máy để xác định thời điểm tốt nhất để mua
  2. Tối ưu hóa cơ chế quản lý vị trí

    • Thiết lập điểm dừng động đồng bằng
    • Điều chỉnh quy mô vị trí theo tỷ lệ biến động
    • Cân nhắc giữ vị thế dài hạn
  3. Mở rộng sang các thị trường khác

    • Các cặp giao dịch tiền kỹ thuật số được sử dụng nhiều hơn
    • Thị trường chứng khoán, ngoại hối
    • Thiết lập chiến lược giao dịch mạo hiểm trên khắp thị trường

Tóm tắt

Chiến lược này tìm kiếm điểm mua lớn nhất trong biến động giá mỗi tháng bằng cách thử nghiệm sự khác biệt về thu nhập từ các ngày mua khác nhau. Điều này có thể mang lại lợi nhuận vượt trội cho các nhà đầu tư tìm kiếm lợi nhuận từ giao dịch tần suất cao trong ngày. Bước tiếp theo có thể nâng cao hơn nữa mức độ ổn định và thu nhập của chiến lược bằng cách giới thiệu nhiều yếu tố để xác định thời điểm mua, tối ưu hóa quản lý vị trí và mở rộng thị trường ứng dụng.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © dennis.decoene

//@version=4
strategy(title="Buy and Hold, which day of month is best to buy?", overlay=true)

// Make input options that configure backtest date range
startDate = input(title="Start Date", type=input.integer,
     defval=1, minval=1, maxval=31, group="Starting From")
     
startMonth = input(title="Start Month", type=input.integer,
     defval=1, minval=1, maxval=12, group="Starting From")
     
startYear = input(title="Start Year", type=input.integer,
     defval=2021, minval=1800, maxval=2100, group="Starting From")

endDate = input(title="End Date", type=input.integer,
     defval=2, minval=1, maxval=31, group="Until")
endMonth = input(title="End Month", type=input.integer,
     defval=10, minval=1, maxval=12, group="Until")
endYear = input(title="End Year", type=input.integer,
     defval=2021, minval=1800, maxval=2100, group="Until")

entryday = input(title="Entry Day", type=input.integer,
     defval=26, minval=1, maxval=31, tooltip="When to enter (buy the asset) each month")
exitday = input(title="Exit Day", type=input.integer,
     defval=6, minval=1, maxval=31, tooltip="When to exit (sell the asset) each month")
     
useExitDay= input(title="Close position on exit day?", type=input.bool, defval=false, tooltip="Use the Exit Day to close each months position it true or close at the end of the period (if false)")
     
isEntryDay= (dayofmonth(time)==entryday)
isExitDay= (dayofmonth(time)==exitday-1)


inDateRange = true

if (isEntryDay and inDateRange)
    strategy.entry(id="Buy", long=true)
    
if (isExitDay and useExitDay)
    strategy.close_all()


// Exit open market position when date range ends
if (not inDateRange and not useExitDay)
    strategy.close_all()