Chiến lược thời gian bắt đầu kiểm tra ngược tùy chỉnh


Ngày tạo: 2023-09-26 20:53:15 sửa đổi lần cuối: 2023-09-26 20:53:15
sao chép: 4 Số nhấp chuột: 651
1
tập trung vào
1617
Người theo dõi

Tổng quan

Mục đích của chính sách này là để cho phép người dùng tùy chỉnh thời gian khởi động phản hồi, để thực hiện phản hồi linh hoạt và tùy chỉnh hơn.

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

Chiến lược này thực hiện thời gian khởi động phản hồi tùy chỉnh bằng cách sử dụng hàm time và timestamp của kịch bản pine.

Đầu tiên, nó cho phép người dùng nhập vào các thiết lập năm, tháng, ngày, giờ và phút bắt đầu phản hồi tùy chỉnh. Sau đó, nó sử dụng các đầu vào này để tạo ra một mảng thời gian và lưu trữ nó trong biến startTime.

Trong đánh giá điều kiện của chiến lược, nó đã thêm một điều kiện startTime. Chỉ khi thời gian hiện tại lớn hơn hoặc bằng startTime, chiến lược sẽ khởi động.

Ví dụ:

longCondition = crossover(sma(close, 14), sma(close, 28)) 

if (longCondition and startTime) 

  strategy.entry("My Long Entry Id", strategy.long)

Điều này có thể thực hiện thời gian bắt đầu phản hồi tùy chỉnh. Người dùng có thể tùy chỉnh thời gian bắt đầu phản hồi theo nhu cầu linh hoạt, không chỉ giới hạn trong thời gian mã hóa cứng.

Phân tích lợi thế

Chiến lược này có những ưu điểm sau:

  1. Tính linh hoạt hơn: Người dùng có thể hoàn toàn tùy chỉnh thời gian khởi động của phản hồi, không còn bị giới hạn ở một thời điểm cố định.

  2. Thực tế hơn: có thể đặt thời gian bắt đầu phản hồi là thời gian thực tế của chiến lược, do đó làm cho phản hồi gần gũi hơn với tình hình thị trường thực tế.

  3. Khả năng phản hồi theo sự kiện: Bạn có thể đặt thời gian khởi động dựa trên thời gian xảy ra một sự kiện để phản hồi cho một sự kiện cụ thể.

  4. Khả năng điều chỉnh dễ dàng: Điều kiện khởi động của phản hồi có thể được điều chỉnh rất dễ dàng, do đó có thể thực hiện phản hồi có mục tiêu cho các giai đoạn khác nhau.

  5. Có thể lặp lại đáng tin cậy: Để tham số hóa thời gian khởi động của phản hồi, bạn có thể chạy lặp lại để có được kết quả phản hồi đáng tin cậy.

Phân tích rủi ro

Sử dụng thời gian khởi động phản hồi tùy chỉnh cũng có một số rủi ro:

  1. Kết quả phản hồi phụ thuộc vào thời gian khởi động: thời gian khởi động khác nhau có thể dẫn đến kết quả phản hồi khác nhau rất nhiều.

  2. Cần thận trọng khi chọn thời gian khởi động: thời gian khởi động không hợp lý có thể gây ra phản hồi sai lệch và không phản ánh được tình hình thực tế.

  3. Tăng nguy cơ phù hợp với đường cong: dễ dàng phù hợp với dữ liệu lịch sử bằng cách điều chỉnh thời gian khởi động, do đó tạo ra nguy cơ quá phù hợp.

  4. Giảm khả năng so sánh kết quả phản hồi: Kết quả phản hồi của chiến lược này ít so sánh với kết quả phản hồi của thời gian khởi động cố định.

Giải pháp tương ứng:

  1. Đánh giá lại nhiều lần để đánh giá ảnh hưởng của thay đổi thời gian khởi động đến kết quả.

  2. Chọn thời điểm xảy ra sự kiện quan trọng để bắt đầu, giảm thiểu tính sai lệch.

  3. Cẩn thận điều chỉnh thời gian khởi động để tránh quá phù hợp với dữ liệu lịch sử.

  4. Giữ phản hồi thời gian khởi động cố định làm chuẩn so với phản hồi tùy chỉnh.

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

Chiến lược khởi động thời gian phản hồi tùy chỉnh này cũng có thể được tối ưu hóa theo các khía cạnh sau:

  1. Hỗ trợ tùy chỉnh thời gian bắt đầu và kết thúc, cho phép cấu hình linh hoạt của cửa sổ thời gian phản hồi đầy đủ.

  2. Hỗ trợ nhiều chế độ thời gian: ngày cụ thể, ngày tương đối, điều khiển sự kiện, v.v., giúp thiết lập thời gian quay trở lại thông minh hơn.

  3. Hỗ trợ giao diện cấu hình đồ họa để thiết lập tham số thời gian trực quan hơn.

  4. Hỗ trợ cấu hình hạt thời gian khác nhau: năm, tháng, ngày, giờ, phút, giây, v.v.

  5. Ghi lại cấu hình thời gian đo đạc để kết quả đo đạc có thể được tái tạo, theo dõi và so sánh.

  6. Tăng kiểm tra không hợp lý về thời gian, tránh không hợp lý về thời gian ảnh hưởng đến chất lượng phản hồi.

  7. Cung cấp tính năng bắt buộc thời gian khởi động, đồng bộ sao chép thời gian khởi động cho nhiều chính sách bằng một nút.

Tóm tắt

Chính sách này thực hiện cấu hình thời gian khởi động phản hồi tùy chỉnh và linh hoạt, có thể làm giảm giới hạn phản hồi, làm cho nó gần gũi hơn với tình huống thực tế. Nhưng cũng cần phải cảnh giác về sự phụ thuộc của kết quả phản hồi vào thời gian khởi động, thực hiện nhiều lần phản hồi, các biện pháp điều khiển sự kiện và các biện pháp khác để giảm phản hồi sai.

Mã nguồn chiến lược
/*backtest
start: 2022-09-19 00:00:00
end: 2023-09-25 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("C320up Strategy Tester Start Time", overlay = true)
// Copy and paste below into your strategy
// Strategy Tester Start Time
xYear = input(2018, title = "Start Year")
xMonth = input(01, title = "Start Month", minval = 01, maxval = 12)
xDay = input(01, title = "Start Day", minval = 01, maxval = 31)
xHour = input(00, title = "Start Hour", minval = 00, maxval = 23)
xMinute = input(00, title = "Start Minute", minval = 00, maxval = 59)
startTime = time >= timestamp(xYear, xMonth, xDay, xHour, xMinute)
// End copy and paste
// Add (and startTime) at the end of your condition/s to activate

// The strategy below is just an example
longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition and startTime)
    strategy.entry("My Long Entry Id", strategy.long)
shortCondition = crossunder(sma(close, 14), sma(close, 28))
if (shortCondition and startTime)
    strategy.entry("My Short Entry Id", strategy.short)
// Happy trading!