Example #1
0
        public MarketResult Run(IPolicy policy)
        {
            MarketModelSimulation market = new MarketModelSimulation(initial_cash, price_set);

            double[] cash   = new double[price_set.Prices.Count];
            double[] equity = new double[price_set.Prices.Count];

            cash[0]   = market.Cash;
            equity[0] = market.Equity;
            for (int index = 1; index < price_set.Prices.Count - 1; index++)
            {
                market.StepSecond();
                policy.GetTradeOrderCommand(market);
                cash[index]   = market.Cash;
                equity[index] = market.Equity;
            }
            market.StepSecond();
            market.CloseAll();
            cash[price_set.Prices.Count - 1]   = market.Cash;
            equity[price_set.Prices.Count - 1] = market.Equity;

            return(new MarketResult(market.Cash, price_set, market, cash, equity));
        }