Ejemplo n.º 1
0
        private static void Main(string[] args)
        {
            AppDomain.CurrentDomain.ProcessExit += new EventHandler(ProgramExit);

            HistoricalDataService dataService = new HistoricalDataService();

            HttpIGAccountService igService = new HttpIGAccountService(ConfigurationService.LoadAccountDetails(), true);

            Console.WriteLine($"Bank Balance: {igService.AccountDetails.AccountInfo.Balance} {igService.AccountDetails.CurrencyIsoCode}");

            IGTradeService tradeService = new IGTradeService();

            tradeService.SetAccountServiceToMain();
            streamer = new IGMarketDataStreamer(igService.AccountDetails, igService.Account);

            dataService.LoadIGHistoricalData("IX.D.OMX.IFM.IP", "MINUTE_15", 51);

            decimal[] values = dataService.OhlcListToArray(51, dataService.HistoricalDataIG);

            var SMA = new SimpleMovingAverage(values, 50).Sma();
            var EMA = new ExponentialMovingAverage(values, 12).Ema();

            //igService.PlaceOrder("IX.D.OMX.IFM.IP", "BUY", 10, "SEK");

            Console.ReadKey();
            Console.WriteLine($"Order Size: {tradeService.CalculateBuyOrderSize("SEK", 0.0075m, 0.25m, 100)}");

            Console.ReadKey();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Argument Constructor
        /// </summary>
        /// <param name="responseHandler"></param>
        /// <param name="marketDataService"></param>
        /// <param name="historicalDataService"></param>
        public ApplicationControl(MarketDataResponseHandler responseHandler, MarketDataService marketDataService, HistoricalDataService historicalDataService)
        {
            try
            {
                #region Initialization of BlockingCollection
                _barsQueue                         = new ConcurrentQueue <Bar>();
                _blockingCollectionBar             = new BlockingCollection <Bar>(_barsQueue);
                _ticksQueue                        = new ConcurrentQueue <Tick>();
                _blockingCollectionTick            = new BlockingCollection <Tick>(_ticksQueue);
                _historicBarsQueue                 = new ConcurrentQueue <HistoricBarData>();
                _blockingCollectionHistoricBarData = new BlockingCollection <HistoricBarData>(_historicBarsQueue);
                #endregion

                _responseHandler       = responseHandler;
                _marketDataService     = marketDataService;
                _historicalDataService = historicalDataService;

                #region MarketDataEngine Events

                _marketDataService.LogonArrived  += MarketDataEngineClientLogonArrived;
                _marketDataService.LogoutArrived += MarketDataEngineClientLogoutArrived;

                _marketDataService.TickArrived += MarketDataEngineClientTickArrived;
                _marketDataService.BarArrived  += MarketDataEngineClientBarArrived;

                _historicalDataService.HistoricalDataArrived += MarketDataEngineClientHistoricBarsArrived;

                #endregion

                _marketDataService.StartService();
                _historicalDataService.StartService();

                #region Event Aggregator

                EventSystem.Subscribe <Login>(SendLogonRequest);
                EventSystem.Subscribe <SecurityPermissions>(RequestDataFromMarketDataEngine);
                EventSystem.Subscribe <Unsubscribe>(UnsubscribeSecurity);
                EventSystem.Subscribe <ProviderPermission>(ChangeInProiderPermission);
                EventSystem.Subscribe <ChangeSecurityPermissionsMessage>(UpdateSecurityPermissions);
                EventSystem.Subscribe <Logout>(Logout);
                EventSystem.Subscribe <BarDataRequest>(RequestBarData);
                EventSystem.Subscribe <UnsubscribeBars>(UnsubscribeBarRequest);
                EventSystem.Subscribe <HistoricDataRequest>(RequestHistoricalData);
                EventSystem.Subscribe <string>(OnApplicationClose);
                #endregion

                #region Queue Initialization

                Task.Factory.StartNew(ReadTicksFromQueue);
                Task.Factory.StartNew(ReadBarsFromQueue);
                Task.Factory.StartNew(ReadHistoricBarFromQueue);

                #endregion
            }
            catch (Exception exception)
            {
                Logger.Error(exception, _oType.FullName, "ApplicationControl");
            }
        }
Ejemplo n.º 3
0
 public void StartUp()
 {
     _applicationController = ContextRegistry.GetContext()["ApplicationController"] as ApplicationController;
     if (_applicationController != null)
     {
         _applicationController.StartServer();
     }
     _service = new HistoricalDataService(new MarketDataEngineClient());
 }
Ejemplo n.º 4
0
        public ActionResult Index()
        {
            HistoricalDataService histDataService = new HistoricalDataService();
            List <HistoricalData> histDataList    = histDataService.getHistDataBySymbolanDuration("fb", "1m");

            Debug.WriteLine(histDataList.Count);
            ViewData["histData"] = histDataList;

            return(View());
        }
Ejemplo n.º 5
0
 public async Task GetHistoricalDataAsync_ThrowNoException()
 {
     var messageHandlerMock = new Mock<HttpMessageHandler>()
         .SetupSendAsyncMethod(HttpStatusCode.OK, Content);
     var sourceKeyResponseMock = new Mock<SourceKeyResponse>();
     using (var httpClient = new HttpClient(messageHandlerMock.Object))
     {
         var service = new HistoricalDataService(httpClient, _standardTokenProviderMock.Object);
         Func<Task<HistoricalDataResponse>> action = () => service.GetHistoricalDataAsync(CancellationToken.None, sourceKeyResponseMock.Object.MachineId, new HistoricalDataRequest());
         await action.Should().NotThrowAsync();
     }
 }
Ejemplo n.º 6
0
 public async Task GetSourceKeysAsync_ThrowHttpExceptionBecauseOfUnauthorized()
 {
     var messageHandlerMock = new Mock<HttpMessageHandler>()
         .SetupSendAsyncMethod(HttpStatusCode.Unauthorized, "{}");
     var sourceKeyResponseMock = new Mock<SourceKeyResponse>();
     using (var httpClient = new HttpClient(messageHandlerMock.Object))
     {
         var service = new HistoricalDataService(httpClient, _standardTokenProviderMock.Object);
         Func<Task<SourceKeyResponse>> action = () => service.GetSourceKeysAsync(CancellationToken.None, sourceKeyResponseMock.Object.MachineId);
         await action.Should().ThrowAsync<HttpException>();
     }
 }
Ejemplo n.º 7
0
        /// <summary>
        /// Argument Constructor
        /// </summary>
        /// <param name="marketDataService">Provides communication access with Market Data Server for live data</param>
        /// <param name="historicalDataService">Provider communication access with Market Data for historical data</param>
        public MarketDataManager(MarketDataService marketDataService, HistoricalDataService historicalDataService)
        {
            // Save Instance
            _marketDataService     = marketDataService;
            _historicalDataService = historicalDataService;

            // Initialize
            _idGenerator      = new MarketDataIdGenerator();
            _barParametersMap = new Dictionary <string, BarParameters>();

            SubscribeDataServiceEvents();

            //_marketDataService.StartService();
            //_historicalDataService.StartService();
        }
        /// <summary>
        /// Argument Constructor
        /// </summary>
        /// <param name="marketDataService">Provides communication access with Market Data Server for live data</param>
        /// <param name="historicalDataService">Provides communication access with Market Data Server for historical data</param>
        public MarketDataController(MarketDataService marketDataService, HistoricalDataService historicalDataService)
        {
            this._currentDispatcher = Dispatcher.CurrentDispatcher;

            // Initialize Manager
            _marketDataManager = new MarketDataManager(marketDataService, historicalDataService);

            // Intialize local maps
            _providersMap = new Dictionary <string, MarketDataProvider>();

            // Subscribe Application events
            SubscribeEvents();

            // Subscribe Market Data Manager events
            SubscribeManagerEvents();
        }