发布

  • 11409 2b0fd2e607

    Updates SPY Market Data (#5493)

    frostbyte_neo 发布于 2021-04-19 16:31:01 +00:00 | 2431 次提交 在此版本后已推送到 master

    • Fixes Double to Decimal Cast in GetAnnualPerformance

    GetAnnualPerformance raises an exception if the AnnualPerformance calculation returns a double that cannot be cast to decimal (smaller than decimal.MinValue or bigger than decimal.MaxValue).
    See ProbabilisticSharpeRatio where the same solution was applied.

    • Updates SPY Market Data

    SPY is a key asset since it is the default benchmark, and any change can lead to different Alpha and Beta

    • Updates Unit Tests to Reflect Data Update

    • Updates Regression Tests to Reflect Data Update I

    Most of the regression tests change because of updated data (market and factors) of SPY (default benchmark) while the total trade remain the same.

    • Updates Regression Tests to Reflect Data Update II

    The following regression tests were changed to adapt to adjusted prices and keep the total trades:

    • BacktestingBrokerageRegressionAlgorithm
    • LimitIfTouchedRegressionAlgorithm
    • PortfolioRebalanceOnCustomFuncRegressionAlgorithm
    • SetAccountCurrencySecurityMarginModelRegressionAlgorithm
    • StopLossOnOrderEventRegressionAlgorithm
    • TimeInForceAlgorithm

    The following regression tests have more trades since adjusted prices allowed more 1-2 shares trades that were rounded down to zero before:

    • FreePortfolioValueRegressionAlgorithm 2 -> 3
    • PortfolioRebalanceOnDateRulesRegressionAlgorithm 291 -> 298
    • TrailingStopRiskFrameworkAlgorithm 5 -> 7

    Especial cases:

    • AutoRegressiveIntegratedMovingAverageRegressionAlgorithm 65 -> 52
    • ARIMA model sensibility
    • BlackLittermanPortfolioOptimizationFrameworkAlgorithm 18 -> 19
    • BLM model sensibility
    • ExtendedMarketHoursHistoryRegressionAlgorithm 20 -> 18
    • Less minute bars before market opens
    • Addresses Peer-Review

    Fix BacktestingBrokerageRegressionAlgorithm to use CalculateOrderQuantity and round down quantity to an even number to pass a value assertion and update the expected value from 50 to 52.
    The quantity calculated by CalculateOrderQuantity has changed from 50 to 53 because of factor file update.

    下载附件