发布

  • 9899 a4f66628fd

    Lean Optimization interface in QCAlgorithm (#4923)

    frostbyte_neo 发布于 2020-12-02 23:10:40 +00:00 | 2692 次提交 在此版本后已推送到 master

    • initial commit

    • run parametrized algorithm with command line parameters

    • skeleton: top level structure

    • OptimizationNodePacket scheme

    • pass parameters as HashSet

    • run Lean and read results

    • call method on optimization completion

    • refactor public interfaces

    • close ParameterSet collection; allow only get operations
    • explicit method to start LeanOptimizer
    • synchronize RunLean method; the result could come in before the backtest id is set in the collections

    • another portion of refactoring and interface changes

    • comments

    • comments & tests for Extremum, Minimization and Maximization classes

    • unify optimization paramater values (min, max, step) & mode GridSearch tests

    • swap min&max if necessary
    • iterate left => right (negate step value if necessary) & provide default step value if step == 0
    • no StackOverflow Exception
    • parameterSet Id should be global for current generator and retain between steps
    • test signle point boundary (min == max)
    • BruteForceStrategy tests

    • more comments

    • Update Optimizer assembly information

    • Update Optimizer projects assembly information to match behavior of
      the other projects
    • Tweaks
    • Adding comments
    • Replace OnComplete for Ended event
    • Replace Abort for Dispose
    • ConsoleLeanOptimizer will keep track of running processes
    • Each backtest will store results in a separated directory, so they
      don't fight for the log.txt file.
    • Adding cmdline option for lean to close automatically
    • Adding concurrent execution backtest limit
    • Console optimizer will start Lean minimized
    • Escape spaces in Json path
    • remove parameter set generator abstraction layer

    we don't need this flexibility now.

    • refactor public methods; Step shouldn't be public

    • constraints: wip

    • define contract

    • comparison operators and tests

    • specify JsonProperty values

    • Move SafeMultiply100 to extensions

    • Throw exception on failed Optimizer.Start

    • constraints: wip

    • change finish & dispose process

    • minor fixes

    • handle force lean abort
    • notify consumer if target has been reached
    • target & constraints; adapt unit tests

    • Minor Tweaks and fixes

    • Some logging improvements
    • Remove Public since not required
    • Ignore empty ParameterValue

    • simplify condition

    • avoid reinitialization

    • reduce type; force immutable

    • unit tests for constraints and target value

    • parse & normalize percent values, i.e. 20% => 0.2

    • fixup

    • Target & Constraint & OptimizationNodePacket unit tests

    • Add more json unit tests

    • Adding more json conversion unit tests. Fix bug for Extremum which
      wasn't using the converter.
    • LeanOptimizer tests

    • Estimation results

    • User thread safe counters

    • LeanOptimizer unit tests; push OptimizationResult on Ended event

    • more unit tests

    • Minor tweaks

    -Estimate ToString in a single line.
    -Typos and missing header file

    • Add base SendUpdate method
    • Add base SendUpdate method for LeanOptimizer
    • fix LeanOptimizer test; rely on internal Update rather than timer

    • Add OptimizationStatus

    • Add missing commments and OptimizationStatus
    • EulerSearch implementation: wip

    • OptimizationParameter custom converter

    • change the type

    • make step optional

    • change folder structure

    • enumerate optimization parameter using IEnumerable & IEnumerator

    • unit tests: parameters & objectives

    • unit tests: strategies

    • remove redundant TODO

    • change Euler search boundaries

    • more Euler tests

    • prevent race condition

    • Add account/read endpoint

    • Adding account/read endpoint. Adding unit test
    • Add status check before running lean

    • Minor self review

    • Adding missing comments, minor changes
    • remove array parameters

    • minor changes

    • tidy up config file, rename variable
    • accept min less or equal than max
    • move OptimizationParameter methods to strategies

    • Minor improvements for BaseResultHandler derivates

    • minor changes

    • strict requirements for Step and MinStep values
    • strategy specific settigs
    • Add TotalRuntime to estimate

    Co-authored-by: Martin Molinero martin.molinero1@gmail.com

    下载附件