Wolverine, RBI and TDAmeritrade fee models charge no fees

Đang mở Phù hợp với người mới
#9,953 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
85/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
csharp
Lĩnh vực
backend

Hướng nghiên cứu

Mở Common/Orders/Fees/WolverineFeeModel.cs, RBIFeeModel.cs và TDAmeritradeFeeModel.cs và so sánh GetOrderFee với chữ ký cơ sở FeeModel.GetOrderFee để xem vì sao các phương thức ẩn thay vì ghi đè. Thêm override vào từng phương thức, sau đó sửa thông báo loại chứng khoán không được hỗ trợ trong Common/Messages/Messages.Orders.Fees.cs để in giá trị thay vì nameof(securityType). Build và chạy các bài kiểm thử mô hình phí hiện có để xác nhận các mức $0.005/share và $0.65/contract và rằng các cảnh báo CS0114 đã biến mất.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

Expected Behavior

Orders placed with WolverineBrokerageModel or RBIBrokerageModel are charged $0.005 per share by default, and option orders placed with TDAmeritradeBrokerageModel are charged $0.65 per contract, as WolverineFeeModel, RBIFeeModel and TDAmeritradeFeeModel describe.

Actual Behavior

Every order is charged 0 USD. The three fee models declare GetOrderFee without the override keyword, so they hide FeeModel.GetOrderFee instead of overriding it (compiler warning CS0114). Lean calls fee models through IFeeModel, which dispatches to the base FeeModel.GetOrderFee and returns 0 USD.

Potential Solution

Add override to GetOrderFee in Common/Orders/Fees/WolverineFeeModel.cs, RBIFeeModel.cs and TDAmeritradeFeeModel.cs. The TDAmeritrade unsupported security type message in Common/Messages/Messages.Orders.Fees.cs also prints nameof(securityType) instead of the value.

Reproducing the Problem
var security = /* SPY equity security */;
var order = new MarketOrder(security.Symbol, 1000, DateTime.UtcNow);
IFeeModel feeModel = new WolverineBrokerageModel().GetFeeModel(security);
var fee = feeModel.GetOrderFee(new OrderFeeParameters(security, order));
// fee.Value.Amount is 0, expected 5 (1000 shares x $0.005)

The same happens with RBIBrokerageModel (expected 5) and with TDAmeritradeBrokerageModel for 10 option contracts (expected 6.5).

System Information

Ubuntu x86_64, .NET SDK 10.0.403, master at 22404ea28b8d3f3c9eb74d6ed9f0444426f8e417.

Checklist
  • I have completely filled out this template
  • I have confirmed that this issue exists on the current master branch
  • I have confirmed that this is not a duplicate issue by searching issues
  • I have provided detailed steps to reproduce the issue
Ngôn ngữ chính
C#
Star
22.4k
Fork
5.4k
Merge trung bình
1 ngày 23 giờ
Pull request đã merge (30 ngày)
51

Chuẩn bị môi trường

Mở trong Codespaces

Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của QuantConnect/Lean

Tất cả issue của QuantConnect/Lean

Issue tương tự

Thêm issue về C#

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.