Modified algorithms to use futures contract objects directly instead of accessing their Symbol property.
Removed unnecessary import statements and redundant lines in various files.
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
Benchmarks / build (push) Has been cancelled
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
* Refactor SetHoldings to return a List<OrderTicket>
* Add expectedQuantities to the testCases
* Update regression tests
* Update name of regressionAlgorithm
* Address review comments
* Update unit test
* Fix symbol changed events emission time
Ensure the symbol changed events are emitted after the securities are processes by the main loop in the AlgorithmManager. This way the algorithm has access to the new symbol security since it would be added by the securities processing logic.
Also, allow all securities to be properly updated, including prices and cash, before emitting the event, so that the any logic (like placing orders) done by the algorithm on the handler has the correct data.
* Minor fix
* Minor change
* Minor change
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Create regression tests and refactor liquidation logic
- Implemented regression tests for order creation and liquidation
scenarios
- Removed LiquidateExistingHoldings method
- Replaced LiquidateExistingHoldings with the general Liquidate method
* Addressed review comments
* Addressed new comments review
* Update default value for 'tag'
* Update ExpectedStatistics
* Identify and liquidate portfolio symbols not included in targets
* Create a new regression test
* Fix minor comments
* Move regression tests to the correct folder
The delisting time is handled by the DateChangeTimeKeeper now, so there is no need for the SubscriptionDataReader to do any special logic for it.
This was preventing the new tradable date events to be emitted after the delisting date in some cases, like when the day after delisting is not tradable
Co-authored-by: Jhonathan Abreu <jdabreu25@gmail.com>
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Inicial solution
* Use InitialMargin instead of MaintenanceMargin
* Addressed review comments
* Update unit test
* Refactor GenerateOptionTicker method to handle IndexOption
* Addressed PR comments
* Update unit test
* WIP: Refactor Correlation Indicator
* Simplified comparison logic and improved abstraction
* Refactor Correlation and Beta indicators
- Created a base class to handle indicators with dual-symbol
functionality.
- Refactored the Beta and Correlation indicators to inherit from the new
base class.
- Updated unit tests.
- Added a new regression test to validate the latest computed value.
* Addressed review comments
* Update regression test
* Add new unit test to CommonIndicatorTests
* Addressed new review comments
* Fix bug in beta calculation
- Beta is fill-forwarded
- A correct pair considered when they have different symbols and the
same date
- Processing occurs when there are at least period+1 correct pairs
* Address review comments
* Add time zone handling and resolution-based truncation
* Fix regression test for Beta indicator
* Handle resolution for beta indicator
- Remove effectiveResolution and Beta constructor parameter for
resolution.
- Streamlined resolution handling logic for Beta indicator.
- Fixed issues with regression test for Beta.
* Fix issue with period and WarmUpPeriod
* Update unit tests for Alpha indicator
* Fixing minor issues
* Add a variable to track if the previous symbol is the target
* Add regression test for Beta calculation between BTCUSD and SPY
* Add an extra period if the TZ are different
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
Benchmarks / build (push) Has been cancelled
Build & Test Lean / build (push) Has been cancelled
* Add helper method to calculate options expiration date time
This allows to compute accurate time till expiry for greek indicators to be able to calculate on the actual expiration date before market close
* Update tolerance in greek indicators tests
* Minor fix
* Modify helper method to calculate settlement time instead of expiration time
* Cache option expiration date time
* Minor changes
* Minor changes
* Fix for daily options open interest data to be added to contracts
* Cleanup
* Update regression algorithms stats
* Minor fix and cleanup
* Minor fix
* Minor fix
* Update regression algorithms data point count
* Address peer review
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
* First draft of the solution
* Add regression tests
* Improve solution and add unit test
* Address suggestions
* Improve unit tests
* Nit changes
* Fix regression algorithms
* Default Data to null for ETFConstituentUniverses.
The data collection will be assigned only if needed. This allows data column to be filtered from dataframes since it will always be null for all constituents.
* Make base data collection aggregator reader fall back to BaseDataCollection
After instatiating the collection type, fall back to the base BaseDataCollection to aggregate data if the type is not a base data collection.
* Minor change
* Minor change
* Update pythonnet to 2.0.41
* Ignore data column for every flattened universe dataframe
* Filter empty collections columns in data frames
* Allow snake case named attributes in PythonSlice
* Remove PythonSlice Data Python class
Pythonnet handles dynamic objects behavior
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
Benchmarks / build (push) Has been cancelled
Build & Test Lean / build (push) Has been cancelled
* Adjust lower-resolution fill-forwarded daily bars when strict end times is enabled
This allows to get fill-forwarded bars with unchanged time stamps
* Minor fixes
* Minor test data changes
* Fixes and comments
* Address peer review and add some fixes
* Minor fix and add regression algorithm
* Minor fix
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Normalize universe data frames
Universe and (generically BaseDataCollection) data frames are not normalize and unpacked into a data frame, instead of just creating data frames with the universe lists within it
* Fix unit tests and algorithms to expecte new universe dataframe format
* Fixes
* Add PandasConverter.DataFrameGenerator class
* Pandas data frame generator class fixes
* Add comments
* Housekeeping
* Add attributes to mark classes and properties for pandas processing
* Improve pandas properties expanding
Allow and handle duplicate names
* Use PandasData generalization for Lean common data types
* Add points time as column when converting base data collections to data frames
* Cleanup and minor changes
* Minor change
* Pandas data to get type members on demand
* Move Pandas helper classes to their own files
* Minor changes
* Add flatten argument to python history api
This allows users to decide whether they want fully expanded dataframes for universe and other collection data types. Else, master behavior is kept
* Adding missing changes to last commit
* Update Pythonnet version to 2.0.40
* Add flattent argument to algorithm's OptionChain api
* Minor changes
* Housekeeping
* Minor changes
* Bug fix skipping data collection data points
* Add comment
* Set correct exchange time to OptionUniverse instances
* Address peer review and cleanup
* Cleanup
* Minor changes
- Addressed bug causing mismatch between types of correlations.
- Updated C method to include CorrelationType.
- Created regression test to ensure proper validation.
* Let delistings through for internal subscriptions
Without it, previously mapped continuous future contracts for which a position is open never received a delisting event for them to be liquidated and marked as non-tradable
* Update regression algorithm stats
* Revert/remove transaction handler initialization parameters DTO class
* Cleanup
Build & Test Lean / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
Benchmarks / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
* Fix option universe
Set right time using exchange time zone when reading.
Remove OptionUniverse market hours hack in GetEntry extension method.
* Minor change
* Test
* Fix price shift on continuous future rollover
* Keep track of both data and exchange time in subscription data reader
* Fix for daily and hourly resolutions.
Add daily and hour algorithms
* Fixes for emitting new exchange dates at the beginning and end when data is not available
* Cleanup
* Minor fix
* Minor fix: detect mapping in data reader after advancing time keeper
* Minor fix
* More fixes
* More fixes
* Fixes for universe files
* More fixes for daily resolution data
* Separate DateChangeTimeKeeper to its own file
* Add DateChangeTimeKeeper unit tests
* Minor fix
* Add more DateChangeTimeKeeper unit tests
* Address peer review
* Address peer review
* Address peer review
* Detect mappings using the config NewSymbol event
* DateChangeTimeKeeper performance improvement for time zone conversions
* Clean up date change time keeper
* Cleanup
* Minor regression algo update
* Cleanup
* Cleanup
* Fix perform universe selection on sundays for continuous futures with extended market hours
* Cleanup
* Address peer review
* More cleanup
* More cleanup
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Fix ConsolidateRegressionAlgorithm
- Fix Bitcoin custom data time range. Historical data goes from April 2014
- Fix expected consolidated bar counts
- Fix python Consolidate implementations to respect daily strict times for Daily resolution
* Housekeeping
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* feat: sort property in SubscriptionDataSource
* refactor: read lines (with sort opportunity) in TextSubscriptionDataSourceReader
* refactor: xml description of Sort property in SubscriptionDataSource
* revet: TextSubscriptionDataSourceReader changes
* feat: develop UnsortedTextSubscriptionDataSourceReader
* remove: UnsortedTextSubscriptionDataSourceReader
* feat: develop SortEnumerator
feat: use SortEnumerator in SubscriptionDataReader
* revert: TextSubscriptionDataSourceReader changes
* feat: use sort Enumerator in LiveCustomDataSubscriptionEnumeratorFactory
* test:feat: Unsorted Live Data Feed with using Object Store
* test:feat: history CustomData request with unsorted data
* refactor: develop TryWrapper on SortEnumerator
* remove: extra spacing
* refactor: Sort in SubscriptionDataSource
* feat: add RegressionAlgorithms when source return data in Descending format
* refactor: xml description of prop Sort in SubscriptionDataSource
* refactor: SortEnumerator
* test:refactor access modifier in ExampleCustomDataWithSort
* test:refactor: increase performance LiveDataFeedSourcesDataFromObjectStore
* feat: add xml comment of regression algorithm
* test:revert: access modifier to public in internal test class
* test:refactor: use while instead of timer
* Revert "test:refactor: use while instead of timer"
This reverts commit 4fe43da8094df366f7ae4b361c97a4a14b815c32.