Example #1
0
        public List <Signal> GenerateOnClose(DateTime ts, int leadingIndex, SystemState systemState)
        {
            List <Signal> result = new List <Signal>();

            SimplexFundsDataCalculator.Calculate(_fundsData, ts, _avgProfitRange, _avgChangeRange, _dataRange, _dataLoader);

            float portfolioValue = new SystemValueCalculator().Calc(systemState, ts, _dataLoader);

            float[] balance = SimplexExecutor.Execute(_fundsData,
                                                      portfolioValue, _acceptableSingleDD, _riskSigmaMultiplier, _maxSinglePositionSize, _maxPortfolioRisk, _truncateBalanceToNthPlace);
            result.Add(CreateSignal(balance, _dataRange, _fundsData));

            LogData(ts, balance);
            return(result);
        }
        public void SetUp()
        {
            _dataLoader = Substitute.For <ISystemDataLoader>();
            _testSys    = new SystemState()
            {
                Cash = CashValue
            };
            _stockPrices = new StockPricesData(1);
            _testObj     = new SystemValueCalculator();

            _stockPrices.TS[0] = CurrentTS;
            _stockPrices.C[0]  = PriceL;
            _dataLoader
            .Get(Arg.Compat.Any <string>(), Arg.Compat.Any <StockDataRange>(), Arg.Compat.Any <int>(), Arg.Compat.Any <DateTime>(), Arg.Compat.Any <DateTime>())
            .Returns(_stockPrices);
        }