Пример #1
0
        internal void GivenInstrumentsRequest_WithNoInstruments_ReturnsQueryFailedMessage()
        {
            // Arrange
            var provider = new InstrumentProvider(
                this.container,
                this.messagingAdapter,
                this.repository,
                this.dataSerializer);

            provider.Start().Wait();

            var query = new Dictionary <string, string>
            {
                { "DataType", "Instrument[]" },
                { "Venue", "FXCM" },
            };

            var request = new DataRequest(
                query,
                Guid.NewGuid(),
                StubZonedDateTime.UnixEpoch());

            // Act
            var response = (QueryFailure)provider.FindData(request);

            // Assert
            Assert.Equal(typeof(QueryFailure), response.Type);
        }
Пример #2
0
        internal void GivenInstrumentRequest_WithInstrument_ReturnsValidInstrumentResponse()
        {
            // Arrange
            var provider = new InstrumentProvider(
                this.container,
                this.messagingAdapter,
                this.repository,
                this.dataSerializer);

            provider.Start().Wait();

            var instrument = StubInstrumentProvider.AUDUSD();

            this.repository.Add(instrument);

            var query = new Dictionary <string, string>
            {
                { "DataType", "Instrument[]" },
                { "Symbol", instrument.Symbol.Value },
            };

            var request = new DataRequest(
                query,
                Guid.NewGuid(),
                StubZonedDateTime.UnixEpoch());

            // Act
            var response = (DataResponse)provider.FindData(request);
            var data     = this.dataSerializer.DeserializeBlob(response.Data);

            // Assert
            Assert.Equal(typeof(DataResponse), response.Type);
            Assert.Equal(instrument, data[0]);
        }
Пример #3
0
        static FutureMasterAndCorrelation GetSingleContractCorrelation(CurrencyType baseCurrency, CurrencyType quoteCurrency)
        {
            var item = _futuresMap.SingleOrDefault(m => m.CurrencyPairBase == baseCurrency.ToForexCode() && m.CurrencyPairQuote == quoteCurrency.ToForexCode());

            if (null != item)
            {
                return new FutureMasterAndCorrelation {
                           FutureMaster = InstrumentProvider.GetFutureMaster(SymbolProviderType.Generic, item.FutureMasterName),
                           Correlation  = 1,
                }
            }
            ;
            item = _futuresMap.SingleOrDefault(m => m.CurrencyPairBase == quoteCurrency.ToForexCode() && m.CurrencyPairQuote == baseCurrency.ToForexCode());
            if (null != item)
            {
                return new FutureMasterAndCorrelation {
                           FutureMaster = InstrumentProvider.GetFutureMaster(SymbolProviderType.Generic, item.FutureMasterName),
                           Correlation  = -1,
                }
            }
            ;
            return(null);
        }
Пример #4
0
        public IFutureContract[] GetContinuousFutureContracts(ICurrencyPair currencyPair)
        {
            var futureMasters = GetCurrencyFuturesCorrelations(currencyPair).FutureMastersCorrelations.Select(c => c.FutureMaster);

            return(futureMasters.Select(fm => InstrumentProvider.GetContinuousFutureContract(fm)).ToArray());
        }