Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature:TradeStationBrokerage: support ComboMarket && ComboLimit #8290

Merged
merged 27 commits into from
Sep 6, 2024

Conversation

Romazes
Copy link
Collaborator

@Romazes Romazes commented Aug 29, 2024

Description

  • Refactored TradeStationBrokerageModel to support new order types:
    • OrderType.ComboMarket
    • OrderType.ComboLimit
  • Added validation to ensure CrossZeroOrder type cannot be submitted with OrderType.ComboMarket or OrderType.ComboLimit.
  • Implemented support for updating the LimitPrice of OrderType.ComboLimit.
  • Introduced new exchanges in Lean:
    • NASDAQ_Options;
    • ARCA_Options;
    • CBOE;
    • EDGO;
    • BOX;
    • MIAX_SAPPHIRE;
    • CSFB;
    • PHLX.
  • Modified the access modifier of the Exchange class to allow users to create custom exchanges in Lean.
  • Implemented GroupOrderCacheManager to reuse abstraction logic for combo orders.
  • Refactored GroupOrderManager, added a new constructor that omits the ID parameter.
  • Fixed the addition of GroupOrderManager.OrderIds in the Lean Order class.
  • Added the new AllOrNone property to class TradeStationOrderProperties.
  • Auto-generated ID's groupOrderManager in BrokerageTransactionHandler and OrderProvider.
Changes in class Exchange
  • Exchange BATS_Y is BYX in TradeStation Brokerage - docs

Related Issue

Motivation and Context

This refactor improves the TradeStationBrokerageModel by expanding support for additional order types (ComboMarket and ComboLimit) and refining order management through GroupOrderCacheManager and GroupOrderManager improvements. It also enhances flexibility by allowing users to define custom exchanges and supports new trading platforms. These changes improve performance and code reuse while fixing issues related to GroupOrderManager.OrderIds and improving the transaction handling for combo orders.

Requires Documentation Change

How Has This Been Tested?

  • Added unit tests to validate the submission and updating of new order types (ComboMarket, ComboLimit) in the TradeStationBrokerageModel.
  • Tested the validation logic to prevent submission of CrossZeroOrder with incompatible order types.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • Refactor (non-breaking change which improves implementation)
  • Performance (non-breaking change which improves performance. Please add associated performance test and results)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Non-functional change (xml comments/documentation/etc)

Checklist:

  • My code follows the code style of this project.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.
  • All new and existing tests passed.
  • My branch follows the naming convention bug-<issue#>-<description> or feature-<issue#>-<description>

Copy link
Member

@Martin-Molinero Martin-Molinero left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you 👍

@Martin-Molinero Martin-Molinero merged commit adfad47 into QuantConnect:master Sep 6, 2024
6 of 7 checks passed
@Romazes Romazes deleted the fix-group-order-process branch September 17, 2024 17:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants