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); }