1517 Commits

Author SHA1 Message Date
Roman Yavnikov 6b22254924 Feature: new sorting property in SubscriptionDataSource and SortEnumerator (#8352)
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
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.
2024-10-07 18:16:33 -03:00
Ricardo Andrés Marino Rojas 0e61415ce2 Fix bug ImmediateExecutionModel when using Crypto (#8355)
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
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* First draft of the solution

* Add missing algorithm

* Improve regression tests

* Nit change

* Address requests

* Nit change

* Address minor requests

* Nit changes

* Nit suggestion
2024-10-07 16:46:37 -03:00
Jhonathan Abreu 0a9dc2c71c QCAlgorithm's OptionChain() api refactor (#8334)
* Fix pandas converter to handle list of data with different symbols

* Properly convert list of data into dataframe

Take into consideration data for multiple symbols in the same list

* Cleanup

* Index dataframes by symbol object instead of SID string

* Add symbol equality operator to compare against object

* Exclude "ID" from option chain dataframe

* Minor fix

* Add greeks columns directly in option chain dataframe.

Also add pass-through properties for greek values in OptionUniverse

* Some cleanup

* Minor fix

* Add new QCAlgorithm.OptionChains() method

- Use OptionChains as output
- Add DataFrame to OptionChain and OptionChains
- Rename Greeks classes
- Add ISymbolProvider for classes that have a symbol (IBaseData, OptionContract)

* Unify QCAlgorithmOptionChain API

Also refactor OptionContract to handle: (1) Actual market data and option price model data, and (2) OptionUniverse data

* Pass symbol properties to OptionUniverse option chain from algorithm

* Format OptionContract for dataframe

* Minor fix

* Add multiple option chains api regression algorithms and other minor changes

* Address peer review

Add NullGreeks class: keep ModeledGreeks as internal as possible

* Minor fix and add PandasConverter unit tests

* Peer review: Non-thread-safe Lazy for Python

* Handle Greeks unwrapping by PandasData

* PandasData cleanup

* Add data and other minor changes

* Unit test fix

* Update Pythonnet to 2.0.39

* Cleanup

* PandasData handling children class members

Address peer review

* Fix: indexing symbol conversion in pandas mapper

* Fix pandas mapper to convert string keys to symbol only when necessary

* Cleanup

* Cleanup

* Add PandasColumn python class to handle proper indexing

This allows propery hash and equality between Symbols, C# strings and Python strings

* Minor fixes

* Symbol cache improvements

* Minor fix for cache miss

* Revert PandasMapper reserved names and improvements

* Minor fix

* Revert reserved names

* Minor fix for Symbol equality operators

---------

Co-authored-by: Martin Molinero <martin.molinero1@gmail.com>
2024-10-04 12:26:15 -04:00
Martin-Molinero 8fb70b20d0 Enhance command support (#8348)
Benchmarks / 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
API Tests / build (push) Has been cancelled
Build & Test Lean / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Enhance command support

- Enhance command support, adding link helper methods. Adding and
  expanding new tests
- Minor improvement for command str representation

* Minor test fix
2024-09-30 16:01:08 -03:00
Louis Szeto 809faa24de Add Backspread Option Strategies (#8312)
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
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Call and put backspread definitions

* Margin model

* regression tests

* strategy unit test

* refactor

* Use option strategies to order
2024-09-26 16:57:20 -03:00
Martin-Molinero 86fd80a31a Generic live command support (#8330)
API Tests / build (push) Has been cancelled
Benchmarks / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
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
* Generic command support

- Adding generic algorithm command support. Adding regression algorithms
- Allow PythonWrapper to validate classes too

* Minor improvements
2024-09-19 16:02:42 -03:00
Martin-Molinero 6351773a01 Option universe resolution improvements (#8324)
Build & Test Lean / 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
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
* Option universe improvements

- Improvement for resolution handling of option universes, affecting
  performance in live mode. Adding regression algorithm

* Minor fix for research test
2024-09-16 10:22:58 -03:00
Jhonathan Abreu bf4b08e202 Fix: adjust option expiry reference date (#8322)
Build & Test Lean / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
Benchmarks / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Fix: adjust option expiry reference date

* Add universe files

* Update data and other minor changes

* Minor changes

* Add regression algorithm summary
2024-09-13 18:22:26 -04:00
Jhonathan Abreu fa9ff399cc Euro Stoxx 50 Index and Index Futures support (#8278)
Benchmarks / build (push) Has been cancelled
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
API Tests / build (push) Has been cancelled
* EUREX data

EUREX data model and sample data

* Add EUREX futures expiry function and sample algorithms

* Add EuroStoxx50 futures map and factor files

* Reduce eurex data for repo

* Map eurex market to primary exchange

* Update Euro Stoxx 50 (FESX) map and factol files

* Update Euro Stoxx 50 (FESX) minute data

* Added EURSD data

* Added 2 basic FESX futures algorithms in CSharp and Python (#2)

* Add regression algorithms

* Update regression algorithms and data

* Minor change

* Cleanup

---------

Co-authored-by: paulius-an <118921953+paulius-an@users.noreply.github.com>
2024-09-12 10:00:16 -04:00
Jhonathan Abreu 16c4259342 Add QCAlgorithm.OptionChain() method to fetch option chains (#8316)
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
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Add new QCAlgorithm.OptionChain method to get full data option chain

* Add extension method to get canonical symbol

* Support future options in new OptionChain method

* Replace option chain provider with OptionChain method in some regression algorithms

* Add new regression algorithms for OptionChain method

* Replace option chain provider with OptionChain method in some regression algorithms

* Minor

* Cleanup

* Minor changes in regression algorithms

* Minor adjustments
2024-09-11 15:15:51 -04:00
Jhonathan Abreu e29bb2c5e0 File-based options universe (#8212)
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
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Initial options universe with greeks implementation

* Options universe improvements

* Address peer review

* File based options universe fixes and improvements.

- Adjust OptionUniverse start-end times and period.
- Adapt unit tests and some algorithms to pass with new options universe selection.

* Updated options regression algorithms stats for new universe data

* Updated options regression algorithms stats for new universe data

* Updated options regression algorithms stats for new universe data

* Updated options regression algorithms stats for new universe data

* Updated options regression algorithms stats for new universe data

* Option chain provider with new options universe

* Allow canonical option history requests

* Address peer review

* Address peer review

* Fix symbols parsing in OptionUniverse

* Fix universe selection subscriptions start time to not include extended market hours

* Minor changes

* Minor changes

* Peer recommended changes and fixes

* Update regression algorithm stats

* Update regression algorithms stats and minor fixes

* Fix option chain provider history request

* Round option indicators values

* Added option universe csv header property

* Update regression algorithms stats

* Update regression algorithms stats

* Data fixes and regression algos stats update

* Unit test fixes

* Minor changes

* Option chain handling in live trading data feed

* Minor changes

* Added processed data provider

* Fix thread-safety violation in Slice class

* Minor change

* Update options filter universe API to use OptionUniverse data

Add new filter methods for greeks, IV and open interest

* Option filter universe api updates

* Add OptionUniverse history regression algorithms

* Add regression algorithms for new options filter universe api methods

* Added options greeks data and updated regression algorithms

* Address peer review

* Address peer review

* Add more assertions to new options filter api regression algorithms

* Minor performance improvement.

Reduce greeks binomial model steps to 140

* Minor tests updates

* Greeks numerical models performance improvements

* Greeks numerical models performance improvements

* Revert array pool change for option pricing numerical models

* Update default dividend yield provider depending on option type

* [TEST]

* Add helper method con calculate time till expiration

* Use double in price option numerical models

* Implied volatility calculation improvements

- Adjust root finding method accuracy as a factor of the option price
- Use BSM to get a first guess

* Cleanup

* Some regression algorithms and unit tests cleanup

* Regression tests updates after rebasing from master

* Add universe files

* Self review and cleanup

* Minor regression tests updates after rebase

* Fix: set data time zone to same as exchange tz for options universes

* Minor change

* Minor change

* Fix for live trading options universe selection

* Keep underlying when aggregating collections in BaseDataCollectionAggregatorEnumerator

* Update index options regression algorithms stats

* Minor change

* Address peer review

* Memory usage improvements

* Minor build fix

* Minor changes and test fixes

* Cache symbols in OptionUniverse

* Cleanup

* Fix index option creation in OptionUniverse

* Use cached underlying SID when parsing from string

* Abstract symbols cache to BaseDataCollection

* Return actual underlying symbol when mapping decomposing ICO ticker

* Address peer review

* Minor performance improvements reduce garbage

* Limit Symbols and SIDs cache size to help with memory usage

* Minor fix in symbols and sid cache cleanup

* Build fix

* Lazily parse greeks on individual access

* Cleanup and tests

* Address peer review

* Minor greeks fix

---------

Co-authored-by: Martin Molinero <martin.molinero1@gmail.com>
2024-09-09 12:39:31 -03:00
Alexandre Catarino 3b588d04fb Adds Overload to AddIndexOption (#8291)
* Adds Overload to AddIndexOption

Simplify usage. We don't need to create/add the underlying explicitly, see AddIndexOption(string, Resolution, string, bool) overload.

* Addresses Peer-Review

- Default market is `null` instead of `Market.USA` allowing for `BrokerageModel` setup.
- `AddIndexOption` and `AddIndexOptionContract` methods now return `indexOption` objects.

* Fixes Logic Bug
2024-09-04 10:30:05 -03:00
Roman Yavnikov f31251732e Fix: Coinbase MinimumOrderSize tests based on new SPDB data (#8276)
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
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* test:fix: minimValue based on new SPDB data

* fix: Estimated Strategy Capacity in FractionalQuantityRegressionAlgorithm
2024-08-23 11:47:45 -03:00
Martin-Molinero 363d469d6a Minor indicator history fix (#8270)
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
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Minor indicator history fix

- Take into account warmup period when used, the last bar of the warmup
  period is counted as a data point.
- Fix bug where in some cases the last data point could of been missed
  and the indicator not updated with it

* Minor tweak
2024-08-22 16:48:26 -03:00
Jhonathan Abreu 9b332c2149 Dividend yield calculation fix (#8264)
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
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Fix dividend yield calculation

* Get security price as input for dividend yield provider

* Account for splits in dividend yield provider

* Fix split adjustment for dividend yield calculation

* Use right dividend yield in options indicators
2024-08-19 09:30:05 -04:00
Martin-Molinero 7879795207 Enable daily precise end time by default (#8254)
API Tests / build (push) Has been cancelled
Build & Test Lean / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Benchmarks / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
* Default daily precise end times

- Enable by default daily precise end times. Updating stats
- Minor fix for algorithm manager consolidator updates, adding new regression test
  asserting behavior and updating others
- Minor fix for SubscriptionData creator avoid round down on warmup if
  not appropiate
- Adjust consolidators to emit on daily strict end times if requested
  daily resolution and setting enabled
- Updating regression algorithms

* Skip daily data on extended market hours

* Some cleanup and self review

* Revert unrequired change
2024-08-14 12:49:56 -03:00
Noah Misch d2d366e3f9 Fix sign of order quantity in example algorithm OnMarginCall(). (#8251)
Regression Tests / 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
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
Despite the comments about avoiding margin calls and about padding, this
turned a proposed sale of 100 shares into a *buy* of 110 shares.
2024-08-12 17:40:51 -03:00
Ricardo Andrés Marino Rojas 5226b7a468 Add more options to Field class (#8228)
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
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* First draft of the solution

* Reduce duplication and add more properties

* Add regression tests

* Add xml docs

* Add unit tests

* Improve regression and unit tests

* Address requested changes

* Address request and improve unit tests

* Add unit test and fix bug

* Improve unit tests and implementation

* Nit change

* Address reviews

* Improve regression tests

* Address requests

* Fix bug

* Address requests
2024-08-07 19:08:34 -03:00
Noah Misch 2b1136e446 Fix algorithms using OnData(TradeBars) w/o using arg or other OnData(). (#8245)
Report Generator 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
API Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
Commit d24f665ee4 removed the
Engine/AlgorithmManager.cs support for OnData(TradeBars), making these
methods dead code.  Hence, some of these algorithms no longer placed
orders.  Fix by changing OnData(TradeBars) to OnData(Slice).  Files that
use the TradeBars argument or use OnData(Dividends) have the same
trouble; leave them for future work.
2024-08-06 10:15:56 -03:00
Jhonathan Abreu 9eb484625d Default option pricing models for options indicators (#8229)
* Set best recommended model based on option style.

The best option model will be used in options indicators based on option style if not specified

* Reduced Greeks/IV numerical models steps to 100

* Minor fixes

* Minor changes and improvements

* Changed default pricing model for IV

* Minor performance improvements

* Minor performance improvements and fixes

* Minor change

* Minor regression algorithm fix

* Update greek indicators internal IV indicator only when not user provided

* Revert unnecessary changes

* Minor changes

* Cleanup
2024-07-30 10:15:21 -04:00
Ricardo Andrés Marino Rojas 97959d560a Add liquidate method overloads (#8210)
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
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* First draft of the solution

* First draft of the tests

* Nit changes

* Nit change

* Add improvements

* Improve unit tests

* Regression algos

* Nit change

* Nit changes

* Improve unit tests

* Improve unit test

* Nit change

* Address reviews
2024-07-22 12:48:53 -03:00
Martin-Molinero 53c2a214a1 Improve indicator warmup (#8192)
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
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Improve indicator warmup

- Allow indicator warmup to handle multiple symbols, used for option
  greeks. Adding regression test
- Improve indicator history to handle specific T types. Adding unit test
- Remove period, and historical underlying volatility, from IV so
  simplify warmup behavior

* Address review, fix minor issues
2024-07-11 16:16:49 -03:00
Ricardo Andrés Marino Rojas 554a82527f Fix minor warnings (#8190)
* Fix CA1847 warnings and some CA1307 warnings

* Fix CA1823 and CS0169

* Fix CA1820 warnings

* Address requested changes
2024-07-10 14:17:27 -03:00
Ricardo Andrés Marino Rojas 8b312efd0c Fix CA1829 warning (#8188)
* Fix CA1829 warning

* Fix failing test
2024-07-10 14:08:28 -03:00
Jhonathan Abreu e0c90e8c04 Minor changes in option chain fetching algorithms (#8175) 2024-07-09 10:55:45 -03:00
Martin-Molinero 12644f8b2a Minor fixes for IndicatorHistory and IV (#8174)
* Minor fixes for IndicatorHistory and IV

- Minor fix for IndicatorHistory, use ScaledRaw data normalization mode
  for option indicators. Adding unit test
- Expand the IV expected upper range to 400%, given values can be higher
  than previous value of 200%
- Adjust IV to use smoothing function only when both option calculations
  succeed

* Updating regression algorithm expected greeks, minor change
2024-07-09 10:54:55 -03:00
Martin-Molinero 6c30157fab Remove universe selection on extended market dates (#8160)
- Remove universe selection on dates with extended market hours only
- Updating regression algorithms
- Expand date & time rules API to support specifying whether extended
  market hours only dates are desired or not
2024-07-08 11:58:50 -03:00
Louis Szeto 6185a4c6a4 Option Strategy Filters for Jelly Roll and Ladder (#8150)
* add option filter strategy

* unit test

* regression test
2024-07-05 16:31:38 -03:00
Ricardo Andrés Marino Rojas 16a737ee26 Fix most of CA1725 warnings (#8154)
* Fix CA1725 warning

* Address requested changes
2024-07-05 16:19:56 -03:00
Ricardo Andrés Marino Rojas 0a0c012ae9 Fix second half of the CA1051 warnings (#8140)
* Fix second half of the CA1051 warnings

* Address requested changes
2024-07-05 13:54:03 -03:00
Louis Szeto 409f93a3aa Option Strategy Filter Universe (#8088)
* add 1-2 contracts universes

* Add unit tests for 1-2 contract strategies

* refactor

* Call/Put Butterfly

* Iron Butterfly/Condor & Box Spread

* Refactor and bug fixes

* Add regression algorithms

* use AllSymbols

* refactor on peer review, update unit tests

* update regression tests

* update assertion

* update

* remaining assertion

* order hash update

* use helper method on assertion

* fix bug

* Address reviews. Some cleanup and refactor

---------

Co-authored-by: Martin Molinero <martin.molinero1@gmail.com>
2024-07-01 13:58:30 -03:00
Martin-Molinero 25c635d846 Add indicator helper methods for base Algorithm (#8076)
* Add indicator helper methods for base Algorithm

- Add indicator helper methods for base algorithm. Adding new unit tests

* Expand indicators helper methods

- Expand indicators helper methods, adding support for C# and custom
  indicators too. Adding unit tests
- Expand indicators helper methods to support multiple symbols as input.
  Adding unit tests
- Improve conversion of symbol enumerable from python to C# adding unit
  tests

* Address reviews

- Keep old QB.Indicator methods for backwards compatibility
- Rename new API to IndicatorHistory, matching
  FutureHistory/OptionHistory
- Add new regression algorithms
- Minor improvement to DynamicData so it supports snake name access
2024-07-01 13:27:47 -03:00
Ricardo Andrés Marino Rojas a2b420cb0a Fix warnings part 8 (#8113)
* Fix CA1819 and CA1002 warnings

Changed the type of Languages statistic in regression tests from
Language[] to List<Language>. By doing that, the warning CA1819 was
removed but then the warning CA1002 was raised. However, this warning
was expected to be excluded from QuantConnect.Algorithm.CSharp.

* Improve implementation

* Simplify code

* Fix bugs
2024-06-28 10:10:30 -03:00
Louis Szeto cd1aad657d OptionStrategies for Iron Butterfly (#8072)
* Define Iron Butterfly and its buying power model

* Add unit tests

* Add regression test

* Address peer review

* Add short iron butterfly and short iron condor

* Add unit tests on short strategies

* add regression algorithms

* Invert direction of iron butterfly
2024-06-28 10:07:39 -03:00
Louis Szeto aae6d617fb Option Strategy: Jelly Roll & Ladder (#8092)
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
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Define Jelly Roll

* Margin Model

* Add universe filter

* unit tests

* add regression tests

* add definitions

* universe filter

* margin model

* unit tests

* bug fix

* unit tests

* regression tests

* typo

* peer review

* peer review 2

* bug fix, address peer review

* minor fix

* Fixes `middleStrike` Parameter Description

The "middle strike" instead of "with higher/lower" to match the parameter description with name.

---------

Co-authored-by: Alexandre Catarino <AlexCatarino@users.noreply.github.com>
2024-06-27 15:58:06 -03:00
Ricardo Andrés Marino Rojas ba2d519910 Remove warnings from csproj files (#8108)
* Remove warnings from csproj files

* Leave just 2 warnings

* Nit change

* Leave just 2 warnings
2024-06-26 17:07:51 -03:00
Martin-Molinero c8446ae26e Refactor AutomaticIndicatorWarmUp settings (#8111)
- Move EnableAutomaticIndicatorWarmUp as an algorithm setting named AutomaticIndicatorWarmUp
2024-06-26 17:02:48 -03:00
Jhonathan Abreu 8bd046a6b8 Add support for FTP notifications (#8097)
* Add support for FTP notifications

* Add optional parameters for SFTP notifications with private key

* Add optional "secure" parameter for FTP notifications.

Improve FTP notifications constructor and input checks.

* FTP notification improvements.

Add public key property.
Add multiple constructors and methods for FTP and SFTP notifications with either password or SSH keys.
Encode file contents.

* Address peer review

Add support for FTP notification with string contents

* Minor changes

* Minor changes

* Remove public key argument

* Fixes and minor changes
2024-06-26 10:03:35 -03:00
Ricardo Andrés Marino Rojas 5699fa48fd Fix 4/4 of CA2201 warnings (#8103)
* Fix 4/4 of CA2201

* Remove warnings
2024-06-25 11:13:32 -03:00
Ricardo Andrés Marino Rojas aa5ab68b47 Fix 3/4 of CA2201 warnings (#8102)
* Fix 2/4 of CA2201 Warnings

* Fix 3/4 of CA2201 warnings
2024-06-24 19:31:23 -03:00
Ricardo Andrés Marino Rojas f8b169aa51 Fix 2/4 of CA2201 Warnings (#8101) 2024-06-24 17:00:38 -03:00
Ricardo Andrés Marino Rojas b41df5b0f2 1/4 of the changes of RegressionTestException (#8100)
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / 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
Python Virtual Environments / build (push) Has been cancelled
2024-06-24 15:23:33 -03:00
Ricardo Andrés Marino Rojas 8c33536498 Add algorithm status statistic (#8095)
* First draft of the solution

* Fix bugs

* Fix bugs
2024-06-24 14:19:32 -03:00
Jhonathan Abreu f0d02feb13 Rename AlgorithmSettings.DailyStrictEndTimeEnabled (#8098)
* Rename AlgorithmSettings.DailyStrictEndTimeEnabled  to DailyPreciseEndTime

* Minor fix
2024-06-24 14:10:11 -03:00
Martin-Molinero 9ace77fb87 Fix consolidator scan determinism (#8074)
Benchmarks / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Build & Test Lean / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
- Make sure we can scan consolidators deterministically. Adding
  regression algorithm reproduce reported issue
2024-06-04 11:59:09 -03:00
Louis Szeto 39bfbccd44 Add Protective Collar to Option Strategies (#8025)
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
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Add Protective Collar Option Strategy

* Add buying power model for Protective Collar

* Add unit test for Protective Collar

* Add regression test for Protective Collar

* Add unit test on position group buying power

* allow same strike for later abstraction

* minor bug fix

* Set up conversion option strategy

* add margin requirement

* add unit tests

* Add regression test

* add reverse conversion definition

* add reverse conversion and refactor conversion/collar margin model

* added/modified unit tests for conversion/reverse conversion

* minor bug fix on unit test, add regression test

* Address peer review

* update new set of IB testing data
2024-06-03 12:38:52 -03:00
Louis Szeto 79a8c66b39 Box Spread Option Strategy (#8041)
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
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Add box spread definition

* Add box spread margin model

* Add unit tests

* Add regression tests

* minor nit peer review
2024-05-30 11:41:20 -03:00
Martin-Molinero 88d7380a53 Use SPY as default dividend yield for Index/Future greeks (#8056)
- Index and FOPs will use SPY as the default dividend providers, adding regression algorithms for them
2024-05-28 15:48:21 -03:00
Jhonathan Abreu b6e35468db Update pythonnet to 2.0.38 (#8052) 2024-05-24 14:38:53 -04:00
Martin-Molinero d3b5bbaa1b Avoid duplicate data on FF resolution change (#8053)
Report Generator Tests / 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
Research Regression Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
2024-05-24 11:58:27 -03:00