Esempio n. 1
0
        /// <summary>
        /// Instantiates a new instance.
        /// </summary>
        /// <param name="bars">The list of Bar instances to use during the backtest.</param>
        public StrategyBacktester(IEnumerable <Bar> bars)
        {
            var orderCreator = new OrderCreator();

            orderCreator.OrderSent += (order) => OrderSent.SafeTrigger(order);

            var manager = new StrategyManager(orderCreator);

            StrategyInfo = manager.StrategyInfo;

            playableBars = new PlayableBars(bars);

            runner = new StrategyRunner <T>(
                playableBars.ToSingleDataStream(),
                orderCreator: orderCreator,
                strategyInfo: StrategyInfo);
            Strategy = runner.Strategy;
        }
Esempio n. 2
0
        /// <summary>
        /// Instantiates a new runner.
        /// </summary>
        /// <param name="barsData">Optional IList<IInstrument> instance to use. If not
        /// provided then the StrategyRunner will be loaded with an empty chart.</param>
        /// <param name="orderCreator">Optional IOrderCreator instance to use. If not
        /// provided a new OrderCreator instance will be created.</param>
        /// <param name="output">Optional IOutput instance to use. If not provided a new
        /// ConsoleOutput instance will be created.</param>
        /// <param name="strategyInfo">Optional IStrategyPerformance instance to use. If
        /// not provided a new StrategyPerformance instance will be created.</param>
        public StrategyRunner(
            IEnumerable <IInstrument> barsData = null,
            IOrderCreator orderCreator         = null,
            IOutput output = null,
            IStrategyPerformance strategyInfo = null)
        {
            Strategy = (T)Activator.CreateInstance(type, "");

            if (barsData is null)
            {
                SetProtectedProperty("BarsData", new List <IInstrument>());
            }
            else
            {
                SetProtectedProperty("BarsData", new List <IInstrument>(barsData));
            }

            if (orderCreator is null)
            {
                orderCreator = new OrderCreator();
            }

            if (output is null)
            {
                output = new ConsoleOutput();
            }

            if (strategyInfo is null)
            {
                strategyInfo = new StrategyPerformance();
            }

            SetProtectedProperty("OrderCreator", orderCreator);
            SetProtectedProperty("Output", output);
            SetProtectedProperty("StrategyInfo", strategyInfo);
        }