コード例 #1
0
        /// <summary>
        /// Initializes and registers required parametes and delagates
        /// </summary>
        private void InitializeStrategyListeners()
        {
            // Register TradeHUB Strategy's status (Running/Stopped) Event
            _tradeHubStrategy.OnStrategyStatusChanged += OnStrategyStatusChanged;

            // Initialze Utility Classes
            _orderExecutor = new OrderExecutor(_logger);
            //_marketDataListener = new MarketDataListener(_asyncClassLogger);
            _orderRequestListener = new OrderRequestListener(_orderExecutor, _logger);

            // Use MarketDataListener.cs as Event Handler to get data from DataHandler.cs
            //_dataHandler = new DataHandler(new IEventHandler<MarketDataObject>[] { _marketDataListener });
            _dataHandler = new DataHandler(true); // Set local persistance to true

            //_marketDataListener.BarSubscriptionList = _dataHandler.BarSubscriptionList;
            //_marketDataListener.TickSubscriptionList = _dataHandler.TickSubscriptionList;

            // Initialize MarketRequestListener.cs to manage incoming market data requests from strategy
            _marketRequestListener = new MarketRequestListener(_dataHandler, _logger);

            // Register Events to receive data
            RegisterMarketDataListenerEvents();
            // Register Events to receive order executions
            RegisterOrderExecutorEvents();
        }
コード例 #2
0
        /// <summary>
        /// Initializes necessary order execution components required for backtesting
        /// </summary>
        private void InitializeBacktestingOrderComponents()
        {
            // Initialze Utility Classes to manage backtesting order executions
            _orderExecutor        = ContextRegistry.GetContext()["OrderExecutor"] as IOrderExecutor;
            _orderRequestListener = new OrderRequestListener(_orderExecutor, _asyncClassLogger);

            //Register OrderExecutor Events
            RegisterOrderExecutorEvents();
        }
コード例 #3
0
        /// <summary>
        /// Argument Constructor
        /// </summary>
        /// <param name="strategyKey">Unique Key to Identify the Strategy Instance</param>
        /// <param name="strategyType">C# Class Type which implements TradeHubStrategy.cs</param>
        /// <param name="ctorArguments">Holds selected ctor arguments to execute strategy</param>
        public StrategyExecutor(string strategyKey, Type strategyType, object[] ctorArguments)
        {
            //_asyncClassLogger = ContextRegistry.GetContext()["StrategyRunnerLogger"] as AsyncClassLogger;
            _asyncClassLogger = new AsyncClassLogger("StrategyExecutor");
            {
                _asyncClassLogger.SetLoggingLevel();
                //set logging path
                string path = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) +
                              "\\TradeHub Logs\\Client";
                _asyncClassLogger.LogDirectory(path);
            }

            _tradeHubStrategy = null;
            _strategyKey      = strategyKey;
            _strategyType     = strategyType;
            _ctorArguments    = ctorArguments;
            _strategyStatus   = Infrastructure.Constants.StrategyStatus.None;

            // Initialize statistics
            _statistics = new Statistics(_strategyKey);

            // Initialze Utility Classes
            //_orderExecutor = new OrderExecutor(_asyncClassLogger);
            _orderExecutor        = new OrderExecutorGeneric();
            _marketDataListener   = new MarketDataListener(_asyncClassLogger);
            _orderRequestListener = new OrderRequestListener(_orderExecutor, _asyncClassLogger);

            // Use MarketDataListener.cs as Event Handler to get data from DataHandler.cs
            _dataHandler =
                new DataHandler(
                    new IEventHandler <TradeHub.Common.HistoricalDataProvider.ValueObjects.MarketDataObject>[]
                    { _marketDataListener });

            _marketDataListener.BarSubscriptionList  = _dataHandler.BarSubscriptionList;
            _marketDataListener.TickSubscriptionList = _dataHandler.TickSubscriptionList;

            // Initialize MarketRequestListener.cs to manage incoming market data requests from strategy
            _marketRequestListener = new MarketRequestListener(_dataHandler, _asyncClassLogger);

            //Register OrderExecutor Events
            RegisterOrderExecutorEvents();

            //Register Market Data Listener Events
            RegisterMarketDataListenerEvents();
        }