Пример #1
0
        public void EntropyStrategyTest()
        {
            var data       = CreateMarketData();
            var parameters = new EntropyParameters();

            var target = SimulateStrategy(data, x => x.Create(parameters));
            var actual = ToApprovedString(target);

            Approvals.Verify(actual);
        }
Пример #2
0
 public EntropyStrategy(
     IMarketDataCache marketDataCache,
     ISearcher searcher,
     IStakingService stakingService,
     EntropyParameters parameters)
 {
     _searcher        = searcher;
     _stakingService  = stakingService;
     _marketDataCache = marketDataCache;
     _parameters      = parameters;
 }
Пример #3
0
        public void Optimise(DateTime fromDate, DateTime endDate)
        {
            _stakingService.Evaluate(fromDate, endDate);

            var potentials = Enumerable.Range(1, 30).SelectMany(w =>
            {
                return(Enumerable.Range(1, 100).Select(e =>
                {
                    var threshold = (double)e / 10;
                    return new EntropyParameters {
                        Window = w, Threshold = threshold
                    };
                }));
            });

            var optimum = _searcher.Maximum(potentials, fromDate, endDate);

            _parameters = (EntropyParameters)optimum;
        }
Пример #4
0
 public IStrategy Create(IParameters parameters)
 {
     return(parameters switch
     {
         LinearRegressionParameters p => Create(p),
         RelativeStrengthParameters p => Create(p),
         DeltaParameters p => Create(p),
         VolumeParameters p => Create(p),
         GradientParameters p => Create(p),
         EntropyParameters p => Create(p),
         StaticDatesParameters p => Create(p),
         MovingAverageParameters p => Create(p),
         HolidayEffectParameters p => Create(p),
         WeightedParameters p => Create(p),
         OptimalStoppingParameters p => Create(p),
         ProbabilityParameters p => Create(p),
         SpreadParameters p => Create(p),
         ClusteringParameters p => Create(p),
         _ => throw new NotImplementedException(),
     });