The risk management model is intended to check the algorithm's positions
at the end of each time step to potentially exit positions that are losing
too much.
This change includes a check to prevent users from overriding methods required
by the framework. This is non-ideal and we should perhaps look into alternatives
to this approach, which could involve additional methods on IAlgorithm. In order
to not lose access to these events at the algorithm level, we could expose them
as C# events (not sure python compatibility?)
This algorithm had a couple of issues:
- it was using a coarse universe with no data files available, so it has been changed to use a custom universe
- it was using algorithm time instead of selection time in the selector function
The regression stats have also been updated to match the new algorithm code.
The previous version was using unexisting data. At the moment, we only have hour and daily-resolution data for forex volume.
Once the resolution is changed, we have to modify the resolution of the indicator since both indicators in WeightedBy must have the same resolution.
This change will make it easier to add other planned brokerage features:
for Interactive Brokers, besides Financial Advisor support, we will be adding IB algorithmic orders soon (PR #1203).
In order to test the GDAX FillModel and FeeModel that respects both lot size, the fractionalQuantityRegressionModel was changed to use the GDAX Brokerage. This drastically changed the regression statistics for the regression test. These statistics have been updated
Decreasing the fractional quantity of the gdax lot sizes required test corrections for BrokerageTransactionHandlerTests specifically RoundOff_LessThanLotSize_Fractional_Orders, RoundOff_Short_Fractional_Orders, RoundOff_Long_Fractional_Orders order. The quantity of the test orders needed to be reduced in order to comply with the updated lot order sizes
Also needed to change the FractionalQuantityRegressionAlgorithm - which is supposed to have one order fail because the quantity is too small. This order needed a smaller quantity in order to fail with the new lot sizes
Updated FactionionalQuantityRegressionAlgorithm tests
This algorithm serves as an example for the SetSecurityInilializer for python feature
The date range for the C# version is changed to match existing data
Since the Bitcoin type derives directly from BaseData and BaseData
uses the same storage space for both the Time and EndTime properties,
the 'coin.Time =' line was constantly rewinding the EndTime far enough
into the past such that the FastForwardEnumerator would attempt to
skip and fast forward to more current data. This caused a never ending
loop of rewinding the time in Bitcoin and fast forwarding the time
from the live trading enumerator stack.
In this new nuget package, we have included two versions Python.Runtime.dll for macOS
We also add the instructions to compile pythonnet for different operational systems
Adds support for fee, fill and slippage custom modelling.
Adds CustomModelsAlgorithm to showcase the new feature
Modifies C# version of CustomModelsAlgorithm to match existing data in github
The previous version has an uneccessary Linq operation to order the results from a Historical Data request.
Also changes the algorithm period to match locally available data.