Thuộc tính chiến lược

Mỗi chiến lược Pine có một số thuộc tính xác định hành vi của chiến lược đó:

  1. Vốn ban đầu
  2. Đơn vị tiền tệ cơ bản
  3. Kích thước đặt lệnh
  4. Pyramiding
  5. Hoa hồng
  6. Xác minh giá cho các lệnh giới hạn
  7. Trượt giá
  8. Ký quỹ
  9. Tính toán lại
  10. Backtest giá trị chính xác

Tất cả đều có sẵn trong phần cài đặt chiến lược, trong tab Properties:

Mỗi tham số được chỉ định trong các thuộc tính của chiến lược có thể được thay đổi bằng cách chỉnh sửa các đối số của lệnh gọi hàm strategy() trong tập lệnh Pine tương ứng:

strategy(title, initial_capital, currency, default_qty_value, default_qty_type, pyramiding, commission_type, commission_value, backtest_fill_limits_assumption, slippage, process_orders_on_close, margin_long, margin_short, calc_on_order_fills, calc_on_every_tick, process_orders_on_close, use_bar_magnifier)

Chúng ta hãy xem xét từng tham số đầu vào trong menu Properties và tham số tương ứng trong ngôn ngữ Pine:

1 - Vốn ban đầu (tham số: initial_capital) đại diện cho số tiền ban đầu có sẵn cho chiến lược giao dịch, bằng đơn vị tiền tệ được xác định trong Đơn vị tiền tệ cơ sở (Base Currency). Theo mặc định, giá trị này bằng 1.000.000. Bạn có thể cần phải tăng giá trị này để các giao dịch xảy ra trên một số mã giao dịch nhất định.

2 - Đơn vị tiền tệ cơ sở (tham số: currency) chỉ định đơn vị tiền tệ được sử dụng để tính toán. Kết quả xuất hiện trong tab Strategy Tester (lãi, lỗ, giảm, v.v.) được biểu thị bằng đơn vị tiền tệ này. Các lựa chọn có sẵn là:

Default, USD, EUR, AUD, GBP, NZD, CAD, CHF, HKD, JPY, NOK, SEK, SGD, TRY, ZAR. Nếu lựa chọn Default được chọn, chiến lược sẽ sử dụng đơn vị tiền tệ mặc định cho mã này và không thực hiện quy đổi đơn vị tiền tệ.

3 - Kích thước lệnh (tham số: default_qty_value, default_qty_type). Điều này yêu cầu một giá trị và một chế độ tính toán. Lưu ý rằng các giá trị được tính toán có thể bị ràng buộc do số lượng tối thiểu có thể giao dịch cho mã giao dịch:

  • Hợp đồng (đối số: Strategy.fixed) - chiến lược sẽ nhập với số lượng hợp đồng/cổ phiếu/lot được chỉ định.
  • Số tiền tính theo đơn vị tiền tệ (đối số: Strategy.cash) - chiến lược sẽ nhập số tiền được chỉ định bằng đơn vị tiền tệ cơ sở.
  • Phần trăm vốn chủ sở hữu (đối số: strategy.percent_of_equity) - quy mô vị thế sẽ được tính theo phần trăm vốn chủ sở hữu khả dụng khi giao dịch mở cửa.

4 - Pyramiding (tham số: pyramiding) chỉ định số lượng tối đa các mục nhập liên tiếp được phép theo cùng một hướng. Khi tính năng Pyramiding bị vô hiệu hóa, chiến lược chỉ có thể mở một vị thế mua hoặc bán, ngay cả khi đáp ứng các điều kiện đầu vào. Pyramiding chỉ ảnh hưởng đến các mục nhập được thực hiện bằng cách sử dụng hàm Strategy.entry(). Nó không ảnh hưởng đến các lệnh được tạo bằng cách sử dụng Strategy.order().

- Hoa hồng (các tham số: commission_typecommission_value). Đây là số tiền được trả trong phí giao dịch cho mỗi giao dịch. Giá trị và chế độ tính toán phải được cung cấp. Lưu ý rằng hoa hồng được áp dụng cho cả lượt nhập và lượt ra, và khi tỷ lệ phần trăm được sử dụng, hoa hồng được tính sẽ thay đổi theo giá trị của giao dịch:

  • Phần trăm giá trị đã giao dịch (đối số: strategy.commission.percent) - áp đặt hoa hồng cho mỗi lệnh bằng phần trăm được chỉ định.
  • Đơn vị tiền tệ trên mỗi hợp đồng (đối số: strategy.commission.cash_per_contract) - áp đặt hoa hồng cho mỗi hợp đồng.
  • Đơn vị tiền tệ trên mỗi lệnh (đối số: strategy.commission.cash_per_order) - tính hoa hồng cho mỗi lệnh.

6 - Xác minh giá cho lệnh giới hạn (tham số: backtest_fill_limits_assumption) làm cho các điều kiện để nhập một vị thế sử dụng lệnh giới hạn nghiêm ngặt hơn. Theo mặc định, giá trị này là 0, tức là các lệnh giới hạn được lưu vào dữ liệu lịch sử ngay sau khi đạt đến giá được chỉ định trong lệnh. Nếu tham số không phải là 0, thì lệnh giới hạn chỉ có thể nhập một vị thế trong thanh nếu giá thị trường đã vượt quá mức của lệnh giới hạn bằng số lần tick xác định.

7 - Trượt giá (tham số: slippage) chỉ định giá trị trong tích tắc sẽ được thêm vào giá đầy đủ của thị trường hoặc lệnh dừng. Tham số này có thể được sử dụng để tính toán mức chênh lệch.

8 - Ký quỹ đối với các Vị thế Mua và Bán (tham số: margin_long, margin_short) chỉ định mức ký quỹ cho mỗi giao dịch, tức là phần trăm vị thế mà nhà giao dịch phải cấp vốn. Ví dụ: nếu Ký quỹ cho các vị thế mua được đặt thành 25%, nhà giao dịch phải có đủ tiền để chi trả 25% giao dịch mở và có khả năng chi tiêu tới 400% vốn chủ sở hữu của họ cho mỗi giao dịch. Nếu một giao dịch đã được mở và bắt đầu thua lỗ đến mức số tiền của nhà giao dịch không đủ để trang trải phần giao dịch của nhà giao dịch, thì một Lệnh gọi ký quỹ sẽ xảy ra và buộc phải thanh lý một phần của vị thế ban đầu. Bạn có thể tìm hiểu thêm về tính năng này và cách tính toán trong bài viết trong Trung tâm Trợ giúp.

9 - Tuỳ chọn Tính toán lại quy định tần suất nên tính toán lại chiến lược. Theo mặc định, chiến lược được tính toán lại khi đóng mỗi thanh, nhưng bằng cách sử dụng các tùy chọn bên dưới, chiến lược cũng có thể được tính toán lại:

  • Sau khi Lệnh được thực hiện (tham số: calc_on_order_fills) - cho phép chiến lược thực hiện tính toán lệnh bổ sung trong thanh ngay lập tức sau khi đơn hàng được hoàn thành. Tính toán bổ sung đó xảy ra trên cả thanh lịch sử và thanh thời gian thực.
  • Trên mỗi lần thay đổi giá (tham số: calc_on_every_tick). Theo mặc định, các chiến lược chỉ tính toán khi đóng các thanh thời gian thực. Tham số này cho phép chiến lược tính toán trên mỗi lần cập nhật thanh thời gian thực, giống như một chỉ báo. Lưu ý rằng dữ liệu đánh dấu sẽ bị mất khi biểu đồ được làm mới, vì vậy các chiến lược sử dụng tùy chọn này sẽ sơn lại. Tham số này không ảnh hưởng đến hành vi của các chiến lược trên thanh lịch sử. Cũng lưu ý rằng các chiến lược sử dụng tính năng này sẽ không hiển thị kết quả thực tế trên các thanh lịch sử, vì không chứa dữ liệu đánh dấu.
  • Trên mỗi lần đóng thanh: (tham số: process_orders_on_close): Nếu đúng, chiến lược tiếp tục cố thực hiện lệnh sau khi đóng một thanh và hoàn tất việc tính toán chiến lược. Nếu lệnh là lệnh trên thị trường, trình lập giá của nhà môi giới thực thi lệnh trước khi mở thanh tiếp theo. Nếu lệnh phụ thuộc vào giá, lệnh sẽ chỉ được điền nếu đáp ứng các điều kiện về giá. Tuỳ chọn này hữu ích nếu bạn muốn thực thi lệnh khi tạo lệnh: theo mặc định, lệnh được tạo khi Đóng thanh hiện tại và được thực thi khi Mở thanh tiếp theo. Khi bật cài đặt này, lệnh sẽ được thực thi trong cùng thời điểm Đóng khi lệnh được tạo. Lưu ý rằng nhập vị thế trong cùng một lần đánh dấu khi tạo lệnh có thể gây hiểu lầm bởi điều đó có thể làm giao dịch thực tế hoàn tất.

10 - Backtest giá trị Chính xác:

  • Sử dụng Bar Magnifier (tham số: use_bar_magnifier) cho phép Trình giả lập của Nhà môi giới sử dụng dữ liệu khung thời gian thấp hơn trong khi backtest quá khứ để có thêm kết quả thực tế. Bạn có thể tìm hiểu thêm về chế độ backtest Bar Magnifier trong Trung tâm Hỗ trợ.
  • Khi đóng thanh (tham số: process_orders_on_close). Nếu đúng, chiến lược sẽ tạo ra một nỗ lực bổ sung để thực hiện các lệnh sau khi thanh đóng và tính toán chiến lược được hoàn thành. Nếu lệnh là lệnh thị trường, trình mô phỏng môi giới sẽ thực hiện chúng trước khi thanh tiếp theo mở. Nếu các lệnh phụ thuộc vào giá, chúng sẽ chỉ được thực hiện nếu các điều kiện về giá được đáp ứng. Tùy chọn này hữu ích nếu bạn muốn thực hiện các lệnh cùng lúc với thời điểm chúng được tạo: theo mặc định, các lệnh được tạo ở phần Đóng của thanh hiện tại và được thực thi ở phần Mở của thanh tiếp theo; khi cài đặt này được bật, chúng sẽ được thực hiện trên cùng một lần Đóng mà lệnh được tạo trên đó. Lưu ý rằng việc nhập vị trí trên cùng một dấu tích mà lệnh được tạo có thể gây hiểu nhầm vì điều đó không thể thực hiện được trong giao dịch thực.
  • Việc sử dụng OHLC tiêu chuẩn (tham số: fill_orders_on_standard_ohlc) buộc các chiến lược chạy trên biểu đồ Heikin Ashi phải thực hiện các lệnh sử dụng giá OHLC thực tế để có kết quả thực tế hơn. Theo mặc định, tập lệnh chiến lược sẽ thực hiện lệnh bằng cách sử dụng giá của biểu đồ, bất kể loại biểu đồ. Đối với biểu đồ Heikin Ashi, cài đặt này ngăn việc sử dụng giá tổng hợp có thể không phù hợp với thực tế. Ví dụ: chiến lược này chúng tôi đã áp dụng cho biểu đồ NASDAQ:AAPL Heikin Ashi hàng ngày đã thực hiện lệnh vào ngày 25/09/2023 với mức giá tổng hợp là 175,61 USD. Tuy nhiên, sau khi kích hoạt tùy chọn "Sử dụng OHLC tiêu chuẩn", lệnh tương tự được thực hiện ở mức giá biểu đồ tiêu chuẩn là 174,20 USD.