Ý tưởng cốt lõi của chiến lược này là tìm ngày mua tốt nhất mỗi tháng bằng cách mua tài sản kỹ thuật số vào ngày đó và bán chúng vào cuối tháng, để đạt được lợi nhuận đầu tư tối ưu.
Chiến lược này chạy dựa trên ngày mua hàng tháng và ngày bán được xác định bởi người dùng. Nó đi dài vào ngày mua bằng cách mua tài sản và đóng vị trí vào ngày bán nếu được đặt. Nếu không, nó đóng vị trí vào ngày kết thúc chiến lược. Điều này có thể kiểm tra sự khác biệt lợi nhuận từ các ngày mua hàng tháng khác nhau.
Lý luận cho tín hiệu mua là: nếu đó là ngày mua được xác định bởi người dùng và trong phạm vi ngày hiệu quả của chiến lược, mua dài.
Lý thuyết cho tín hiệu vị trí đóng là: nếu ngày bán được thiết lập và đó là ngày bán bây giờ, đóng vị trí; nếu không có ngày bán nhưng sau ngày kết thúc chiến lược, cũng đóng vị trí.
Rủi ro sụp đổ giá sau khi mua
Thay đổi ngày mua tối ưu
Mất do cài đặt tham số không chính xác
Xem xét nhiều yếu tố khác trong việc xác định điểm nhập cảnh
Tối ưu hóa cơ chế quản lý vị trí
Mở rộng sang các thị trường giao dịch khác
Chiến lược này tìm ra ngày dao động giá nội ngày lớn nhất mỗi tháng bằng cách kiểm tra sự khác biệt lợi nhuận từ các ngày mua khác nhau. Nó có thể mang lại lợi nhuận dư thừa cho các nhà đầu tư tìm kiếm lợi nhuận từ giao dịch nội ngày tần suất cao. Cải thiện hơn nữa về xác định thời gian nhập cảnh, quản lý vị trí và mở rộng phạm vi ứng dụng sẽ tăng cường tính ổn định và lợi nhuận của 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()