4532 Commits

Author SHA1 Message Date
JosueNina 421d3c3448 Fix RollingWindow element order corruption on resize (#9449)
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
Build & Test Lean / build (push) Has been cancelled
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
* Fix RollingWindow resize

* Fix MarketImpactSlippageModel

* Reorder RollingWindow list in place
2026-05-07 10:41:05 -03:00
Alexandre Catarino e81cdf541d Allow SetAccountCurrency after SetCash without throwing (#9457)
* Allow SetAccountCurrency after SetCash without throwing

Previously, calling SetAccountCurrency after SetCash threw an
InvalidOperationException. The portfolio manager now switches the
base account currency in place: the previous Cash entry (and its
balance) is preserved in the CashBook, and a notice is logged. When
the new account currency matches the existing one, an optional
startingCash overrides the previously set amount and the override
is logged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Simplify SetAccountCurrency remarks and drop unused message

Tightens the XML remarks to two cases (different currency: keep previous
in its own entry; matching currency: override). Also removes the now
unused CannotChangeAccountCurrencyAfterSettingCash string since the
portfolio no longer throws.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Simplify in-line comment in SetAccountCurrency

Drops the "Undo that migration" wording (residue from a previous fix
attempt) and just describes what the branch does: keep the previous
balance in its own currency entry while the new account currency starts
at zero.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Differentiate implicit vs explicit SetCash on account currency switch

SetCash(decimal) is currency-agnostic: the amount is "this many units of
the (eventual) account currency". Switching the account currency now
re-labels the amount onto the new currency instead of preserving the
previous one. SetCash(symbol, ...) for the current account currency keeps
the old behaviour of preserving the balance in its own CashBook entry.

Splits the existing tests by overload and adds a starting-cash variant
for the explicit case.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Mark base cash explicit on any SetCash(symbol, ...) call

Broaden _baseCashSymbolSetExplicitly so any call to the explicit-currency
overload signals the user is committing to named currencies, not just
calls whose symbol matches the current account currency. SetAccountCurrency
then preserves the previous base-currency balance in its own CashBook
entry whenever the user has touched the explicit overload at all.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 09:54:20 -03:00
Alexandre Catarino 6035c1cf09 Add DateRules.QuarterStart and DateRules.QuarterEnd (#9454)
Closes #9453

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 19:07:05 -03:00
Martin-Molinero afd62cda32 Minor initialization weak (#9460)
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
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
2026-05-06 15:57:09 -03:00
JosueNina 779a7c06c5 Fix PortfolioStatistics WinRate/LossRate documentation (#9431)
* Fix PortfolioStatistics win/loss inconsistency

* Update regression algorithms

* Revert changes

* Fix PortfolioStatistics win rate XML documentation
2026-05-04 10:27:41 -03:00
Roman Yavnikov 870f96dcaf fix: add AJY/ANE/ECD future-option expiry definitions (#9448)
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
Python Virtual Environments / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
Syntax Tests / build (push) Has been cancelled
Build & Test Lean / build (push) Has been cancelled
* fix: add AJY future-option expiry definition

- map AJY (AUD/JPY) FOP to SecondFridayBeforeThirdWednesdayOfContractMonth
- prior fallback to the AJY HMUZ-only future expiry collapsed serial-month FOPs (e.g. AJYN6) into their underlying quarterly Symbol

* fix: add ANE and ECD future-option expiry definitions

- map ANE (AUD/NZD) and ECD (EUR/CAD) FOPs to SecondFridayBeforeThirdWednesdayOfContractMonth
- prior fallback to the HMUZ-only future expiry collapsed serial-month FOPs into their underlying quarterly Symbol
2026-05-01 18:47:06 +03:00
Roman Yavnikov daf0939e6c fix: add EAD future-option expiry definition (#9446)
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
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
- map EAD (EUR/AUD) FOP to SecondFridayBeforeThirdWednesdayOfContractMonth
- prior fallback to the EAD HMUZ-only future expiry collapsed serial-month FOPs (e.g. EADN6) into their underlying quarterly Symbol
2026-04-30 20:52:07 +03:00
Roman Yavnikov ed8e454f49 feature: recognise equity tape letters S/V/H/U and add NASDAQ_SC (#9422)
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
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* feature: add NASDAQ_SC and NASDAQ_INT equity exchanges

- map primary exchange codes S and T to new NASDAQ tier exchanges
- T was previously folded into NASDAQ, now returns NASDAQ_INT
- add V as alias for IEX in equity switch
- fix MEMX description (was copy of LTSE)

* feature: map equity exchange codes H and U to MIAX_PEARL and MEMX

* feature: consolidate NASDAQ_INT code T into NASDAQ_SC

Remove the separate NASDAQ_INT mapping in GetPrimaryExchange and map
exchange code "T" to NASDAQ_SC. Update ExchangeTest cases accordingly
and add coverage for IEX ("V") and MEMX ("U").

* feature: remove orphaned NASDAQ_INT exchange entry

Drop the NASDAQ_INT class entry from Exchange.cs. The "T" tape letter
already routes to Exchange.NASDAQ via GetPrimaryExchange, leaving the
class definition unreachable and inconsistent.
2026-04-21 23:27:16 +03:00
Alexandre Catarino 8205d005bf Configurable Map Zip Provider Lookup Date
Regression Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
Build & Test Lean / build (push) Has been cancelled
Benchmarks / build (push) Has been cancelled
Adds config `map-file-provider-lookup-date` to allow using a particular date.
2026-04-16 19:02:13 +01:00
Martin-Molinero 8321062cfd Remove email regex timeout validation (#9399)
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
Syntax Tests / build (push) Has been cancelled
Benchmarks / build (push) Has been cancelled
Build & Test Lean / build (push) Has been cancelled
2026-04-14 14:03:23 -03:00
Roman Yavnikov 9b2a793709 fix: support BNFCR alternative collateral in CryptoFutureMarginModel for Binance (#9373)
* fix: support BNFCR alternative collateral in CryptoFutureMarginModel for Binance (#9339)

* refactor: use classic switch in BinanceFuturesBrokerageModel.GetBuyingPowerModel

* fix: CryptoFutureMarginModel in BinanceCoinFuturesBrokerageModel

* refactor: simplify BinanceCryptoFutureMarginModel collateral conversion

* fix: restore IsCryptoCoinFuture guard in BinanceCryptoFutureMarginModel

* refactor: simplify BinanceCryptoFutureMarginModel to direct BNFCR lookup

Replace IsStableCoinWithoutPair foreach loop with a single TryGetValue
check for BNFCR. BNFCR is EU/EEA-only (MiCA Credits Trading Mode) so
the lookup is a no-op for all other users. Amount reflects availableBalance
from the Binance API — the total cross-margin pool already aggregated by
Binance — making the > 0 guard correct and avoiding CashBook iteration.

* feat: add regression algorithm for BNFCR as sole collateral on Binance USDⓈ-M futures

Asserts end-to-end that EU/MiCA accounts with zero USDT and BNFCR as
the only collateral can open ADAUSDT positions. Verifies buying power,
holdings AbsoluteHoldingsCost, TotalSaleVolume, TotalMarginUsed,
maintenance margin consistency and TotalUnrealizedProfit accuracy.

* refactor: BNFCR presence gate with CashBook iteration for supplementary collateral

Replace IsStableCoinWithoutPair and hardcoded asset list with CashBook
iteration gated by BNFCR presence. Binance controls which assets are in
the account — all with non-zero walletBalance are valid collateral.
Add tests for BNFCR zero balance and BTC collateral conversion.

* refactor: aggregate all collateral without reference equality check

* fix: shared collateral deduction across quote currencies for EU/MiCA BNFCR mode

- Extract virtual SharesCollateral in CryptoFutureMarginModel
- Override in BinanceCryptoFutureMarginModel: BNFCR present → all USDⓈ-M share pool
- Add BNFCRCurrency const
- Add SharedCollateralDeductsMaintenanceMarginAcrossQuoteCurrencies unit test
- Refactor regression algorithm to assert shared collateral across ADAUSDT/ETHUSDC

* refactor: remove dead IsCryptoCoinFuture guard from BinanceCryptoFutureMarginModel

- Remove IsCryptoCoinFuture() check (coin futures use BinanceCoinFuturesBrokerageModel, not this model)
- Call base.GetTotalCollateralAmount() instead of duplicating primaryCollateral.Amount
- Remove CoinFutureDoesNotIncludeBnfcrAsCollateral test (tested wrong margin model)

* refactor: make GetCollateralCash private in CryptoFutureMarginModel

- No longer accessed by subclasses after removing direct collateral checks from BinanceCryptoFutureMarginModel
2026-04-13 23:24:40 +03:00
Alexandre Catarino 1813a6008f Improves Null Key Handling in Python (#9368)
Build & Test Lean / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
Benchmarks / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Improves Null Key Handling in Python

We aim to mimic the following behavior:

```python
>>> d = {1:2}
>>> None in d
False
>>> d.get(None) is None
True
>>> d.pop(None)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: None
>>> d.pop(None, None) is None
True
```

* Reverts dispose change
2026-04-10 15:17:03 -03:00
Mithilesh Kumar 340f7ca60e Add Python dict headers overload to SubscriptionDataSource (#9363)
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
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Add PyObject headers overload for SubscriptionDataSource

* Fix ambiguous constructor chaining in SubscriptionDataSource

* Fix test using-scope for invalid python headers case

* Reuse ConvertToDictionary for PyObject headers

---------

Co-authored-by: stoicAI1776 <m.econyale@gmail.com>
2026-04-08 16:45:09 -03:00
JosueNina 9ccdbec8ee Add ContractMultiplier setter to Cfd via CfdSymbolProperties (#9328)
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
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Add ContractMultiplier setter to Cfd via CfdSymbolProperties

* Fix regression tests

* Solve review comments

* Address new review comments

* Fix regression tests

* Use ContractSymbolProperties as base class

* Minor fix

* Address review comment
2026-04-08 10:47:47 -03:00
Jhonathan Abreu 64b0ef386f Add Analysis to Backtest packet (#9375)
Regression Tests / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
Syntax 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
Python Virtual Environments / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
2026-04-07 18:13:15 -04:00
Jhonathan Abreu 8f2a23e97f Results analyzer (#9336)
* Initial backtest analyzer commit

* Changes for cleanup

* Minor fix

* Add class for analysis result context

* Fix more models

* More fixes

* More fixes

* More fixes

* More fixes

* Cleanup

* Cleanup

* Add documentation

* Cleanup and remove some classes

* Write backtest analysis to results file

* Cleanup

* Minor fixes

* Minor fix

* Minor cleanup

* Implement json deserialization for backtest analysis result

* Rename analyzer classes to generalize

Remove "backtest" references from names

* Add weight to analyses

* Run analyses in order by weight

* Cleanup

* Cleanup

* Update Issue text

* Set sub-test weights to 0

* Update test weights

* Add xml docs

* Disable result analysis on regression tests

* Refactor analysis naming

* Renaming cleanup

* Simplify analysis results context

* Log when analyzer reaches max tests or time limit

* Sample down equity curve to match daily benchmark

* Minor changes

* Minor fixes

---------

Co-authored-by: Derek Melchin <melchin.derek@gmail.com>
2026-04-07 17:41:12 -04:00
Jhonathan Abreu 09cd4408fa Add new "Idle" AlgorithmStatus (#9374) 2026-04-07 14:05:31 -03:00
JosueNina c8934d1188 Add GetSafeTheta to handle decimal overflow (#9348) 2026-04-07 13:09:42 -03:00
Alexandre Catarino 3b1352fba0 Fix OSI option ticker parsing for symbols containing dots (e.g. BRK.B) (#9343)
* Add failing test for BRK.B OSI option ticker parsing

Adds test case to ParseOptionTickerOSI to reproduce issue #9341 where
Symbol.ParseOptionTickerOSI throws on tickers containing a dot (e.g. BRK.B).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* Fix OSI option ticker regex to support dots in underlying symbol

Extends _optionTickerRegex from [A-Z0-9]+ to [A-Z0-9\.]+ so that
symbols like BRK.B are accepted by ParseOptionTickerOSI.

Fixes #9341

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-07 13:04:55 -03:00
Jhonathan Abreu 6ee468784d Add PendingInput algorithm status (#9367) 2026-04-07 12:09:07 -03:00
Jhonathan Abreu f00d02be83 Fix references not found in AlgorithmImports (#9352)
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
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
2026-03-25 13:51:00 -04:00
Jhonathan Abreu 4926a4f2cd Initialize and set realtime handler in QuantBook (#9338)
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
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
2026-03-24 11:18:31 -04:00
JosueNina d412fbbfc7 Fix InteractiveBrokersFixModel to reject FOP+Future combo orders (#9323)
* Only reject FOP+Future combos in InteractiveBrokersFixModel

* Address review comments
2026-03-09 17:01:43 -05:00
Jhonathan Abreu 04993e2e2a Add securities when trading non added securities (#9312)
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
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Add securities when trading non added securities

* Minor tests fixes

* Minor test fix

* Minor test fixes

* Minor fixes

* Minor test fix

* Minor fix
2026-03-03 17:09:21 -04:00
Jhonathan Abreu 9573eea52e Use universe settings when adding derivatives (#9309)
* Use universe settings when adding derivatives

Use resolution, fill forward and extended market hours settings from universe settings when adding derivative securities (options, index options, futures and future options)

* Minor python syntax check fix

* Minor change

* Default resolution from universe settings for common lean types securities

* Minor test fix

* Cleanup
2026-03-03 12:18:10 -04:00
Jhonathan Abreu 61b57dc4f3 Set OptionStrategy legs symbols on creation (#9304)
* Set OptionStrategy legs symbols on creation

* Address peer review

* Address peer review
2026-02-24 12:59:08 -04:00
JosueNina 4627168302 Fix invalid time on Session working bar (#9300)
* Use consolidated bar as reference for new working bar initialization

* Update ValidateAndScan method and unit tests

* Fix issues with syntax check

* Solve review comments

* Minor fix

* Minor fix
2026-02-24 11:57:35 -05:00
Ahmed Ali 36453d89f6 fix(InteractiveBrokers): Reject unsupported 4-leg ComboLegLimit orders (#9287) (#9301)
API Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Syntax 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
Python Virtual Environments / build (push) Has been cancelled
* Fix: Reject unsupported 4-leg ComboLegLimit orders in InteractiveBrokersBrokerageModel (#9287)

* Minor tweaks

---------

Co-authored-by: Ahmed Ali <ahmedalli79x@gmail.com>
Co-authored-by: Martin Molinero <martin.molinero1@gmail.com>
2026-02-24 11:02:49 -03:00
Jhonathan Abreu 150dac5086 Update Pythonnet version to 2.0.53 (#9303)
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
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Update Pythonnet version to 2.0.53

* Minor python syntax fix
2026-02-23 11:24:04 -04:00
JosueNina 7333dd3505 Ensure AdvanceTime() runs only after full algorithm initialization (#9284)
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
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Initial solution

* Add regression algorithm

* Solve review comments

* Fix failing unit tests

* Improve comments

* Solve review comments

* Update regression algo

* Minor fix
2026-02-20 16:12:03 -03:00
Jhonathan Abreu e68ee853db Implement indicator-based option price model (#9237)
API Tests / build (push) Has been cancelled
Benchmarks / build (push) Has been cancelled
Build & Test Lean / build (push) Has been cancelled
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / 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
* Implement indicator-based option price model

This model uses IV and Greeks indicators to implement Lean's own option pricing model

* Minor fixes

* Address peer review

* Minor tests fixes

* Make the indicator based price model the default for options

* Address peer review

* Cleanup and minor changes

* Support indicators configuration for new pricing model

* Some cleanup

* Add QL option price model example algorithm

* Return lean models from static helpers

* Minor tests fixes

* Minor test fixes

* Address peer review

* Cleanup

* Fix unit tests

* Move QL models to OptionPriceModels.QuantLib.*

* Add forward tree helper method
2026-02-19 15:15:25 -04:00
Adalyat Nazirov 192a093769 JsonConverter for decimal and decimal? types (#9291)
* Create universal JsonConverter for decimal and decimal? types

* use it only for read

* removed unused import
2026-02-16 11:29:19 -03:00
JosueNina 7fa3916baf Add generic DownloadData<T> extension methods for deserialization (#9286)
* Add new helper methods to deserialize to T

* Solve review comments

* Minor fix

* Add unit tests
2026-02-13 16:58:49 -03:00
Roman Yavnikov 0212acf927 Feat: support downloading single contract in DownloaderProvider (#9285)
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
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* feat: improve symbol parsing for futures/options in downloader

* refactor: symbol parsing and unify ticker handling

* refactor: symbol parsing and loading in BaseDataDownloadConfig
2026-02-13 13:45:10 -03:00
Martin-Molinero a52a580220 Update Packet.cs 2026-02-13 13:39:16 -03:00
Jhonathan Abreu 5e148a06af Add orders associated with closed trades on streaming (#9282)
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
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
2026-02-12 12:31:56 -03:00
JosueNina a25e041793 Follow up: Fix weights calculation in VBaseSignalExport (#9281)
* Fix weights calculation in VBaseSignalExport

* fix empty portfolio handling

* Refactored signal export to compute and export weights for all portfolio positions, not just update targets.

* Update BuildCsv XML doc to clarify CSV output details

* Clarify comments on portfolio value and empty weights

* Stamp targets as is; we expect that users send all the weights they want to stamp. Extended the demo algorithm to use two positions to better demonstrate the intended usage of the VBaseSignalExport class.

* Minor changes to address PR review comments.

* Minor fix

---------

Co-authored-by: vb-vlb <volodymyr@vbase.com>
Co-authored-by: Volodymyr <vb-vlb@users.noreply.github.com>
2026-02-12 09:42:45 -03:00
Roman Yavnikov dfa3fd3fab feat: warn on manual brokerage orders not tracked by Lean (#9278)
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
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* feat: warn on manual brokerage orders not tracked by Lean

Add a warning in DefaultBrokerageMessageHandler to notify users when orders are placed manually through the brokerage and are not observed by Lean. The warning is emitted only once per session and includes a message with documentation guidance.

* refactor: message for unrecognized order warning

* refactor: unrecognized order messaging with brokerage IDs

* refactor: unrecognized order msg
2026-02-11 17:32:45 +02:00
JosueNina 63209a3fd3 Add Python overload for OptionPriceModelResult (#9277)
Report Generator Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Syntax 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
* Add python overload for OptionPriceModelResult constructor

* Solve review comments

* Update regression algorithms
2026-02-10 16:48:57 -03:00
Martin-Molinero 769843b118 Update Packet.cs
Benchmarks / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
API Tests / 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
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
2026-02-10 12:35:42 -03:00
JosueNina 76e01bbc42 Adds support for custom option pricing models (#9270)
* Initial solution

* Made Greeks a non-abstract class

* Add regression algorithms

* Solve review comments

* Minor fix

* Minor fix

* Remove unnecessary imports

* Fix issues with regression algorithms

* Solve review comments
2026-02-09 12:46:15 -03:00
JosueNina 9e8c2203c1 OrderCommand should use default order properties (#9274)
API Tests / build (push) Has been cancelled
Syntax Tests / build (push) Has been cancelled
Python Virtual Environments / 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
2026-02-09 09:37:15 -03:00
Martin-Molinero e0db31dc08 Stop forcing full GC collection when reduced memory (#9267)
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
Report Generator Tests / build (push) Has been cancelled
Syntax Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
2026-02-04 13:54:27 -03:00
Jhonathan Abreu d329960e5f Enable trades results streaming (#9234)
Regression Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
API Tests / build (push) Has been cancelled
Report Generator Tests / build (push) Has been cancelled
Build & Test Lean / build (push) Has been cancelled
Syntax Tests / build (push) Has been cancelled
Benchmarks / build (push) Has been cancelled
Python Virtual Environments / build (push) Has been cancelled
* Add a temporary benchmark stats sample in live

Allow trades to be written to result file on first day of the deployment before the first daily sample is done

* Enable trades results streaming

* Minor changes

* Make Trade.Id a Guid

* Cleanup

* Sample temporary charts once per hour

* Minor change

* Minor fix

* Minor fix

* Minor fix

* Add fix for potential race condition
2026-02-03 18:46:06 -03:00
Martin-Molinero 9cd28a6236 Add WEX optional locate broker order property (#9264) 2026-02-03 16:57:14 -03:00
Adalyat Nazirov 20736c1e29 Bybit - Allow placing orders of min size (#9261)
* Allow placing orders of min size

* add unit tests
2026-02-03 14:55:38 -03:00
Martin-Molinero 31e247689f Allow specifying PositionSize wolverine order properties (#9257)
Regression Tests / build (push) Has been cancelled
Syntax 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
2026-01-30 16:56:17 -03:00
Jhonathan Abreu ecb8e8da41 Fix trades drawdown calculation (#9249)
* Fix trade drawdown calculation

* Cleanup

* Disable MAE. MFE and Drawdown calculation for FlatToFlat and FlatToReduced trade grouping methods

* Minor test fixes
2026-01-30 15:46:41 -04:00
Martin-Molinero c6c4c1edec Fix fundamental security direct access timestamp (#9255)
Report Generator Tests / build (push) Has been cancelled
Syntax 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
API Tests / build (push) Has been cancelled
- Fix the date used by fundamental data accessed directly through security.
  Updating regression algorithm asserting behavior
2026-01-30 11:41:24 -03:00
Martin-Molinero c02a8faedb Improve Wolverine brokerage model limitations (#9252)
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
Python Virtual Environments / build (push) Has been cancelled
Regression Tests / build (push) Has been cancelled
Research Regression Tests / build (push) Has been cancelled
Syntax Tests / build (push) Has been cancelled
2026-01-29 14:36:12 -03:00