public IMarketProvider GetMoex() { string connection = ConfigurationManager.AppSettings["mirconnection"]; #region mapping mir_moex DataProvider.Input.MirReader.Mapping mapping = new DataProvider.Input.MirReader.Mapping(); mapping.AI = new Dictionary <Enum, string>() { #region Финансовые инструменты { FinType.Equity, "12" }, { FinType.Bond, "13" }, { FinType.Fund, "14" }, { FinType.Certificate, "15" }, { FinType.DepositaryReceipt, "16" }, { FinType.Default, "20" }, { TimeSeriesAttribute.Close, "3" }, { ScalarAttribute.Name, "4" }, { ScalarAttribute.Nominal, "9" }, { ScalarAttribute.MatDate, "11" }, { ScalarAttribute.Currency, "8" }, #endregion }; mapping.TKE = new Dictionary <KeyValuePair <Type, string>, Enum>() { #region Валюта { new KeyValuePair <Type, string>(typeof(Currencies), "CHF"), Currencies.CHF }, { new KeyValuePair <Type, string>(typeof(Currencies), "EUR"), Currencies.EUR }, { new KeyValuePair <Type, string>(typeof(Currencies), "GBP"), Currencies.GBP }, { new KeyValuePair <Type, string>(typeof(Currencies), "RUB"), Currencies.RUB }, { new KeyValuePair <Type, string>(typeof(Currencies), "RUR"), Currencies.RUB }, { new KeyValuePair <Type, string>(typeof(Currencies), "USD"), Currencies.USD }, #endregion #region Фин.инструменты { new KeyValuePair <Type, string>(typeof(FinType), "CERTIFICATE"), FinType.Certificate }, { new KeyValuePair <Type, string>(typeof(FinType), "DEPOSITARY RECEIPT"), FinType.DepositaryReceipt }, { new KeyValuePair <Type, string>(typeof(FinType), "BOND"), FinType.Bond }, { new KeyValuePair <Type, string>(typeof(FinType), "EQUITY"), FinType.Equity }, { new KeyValuePair <Type, string>(typeof(FinType), "FUND"), FinType.Fund }, { new KeyValuePair <Type, string>(typeof(FinType), "FX_RATE"), FinType.FxRate }, { new KeyValuePair <Type, string>(typeof(FinType), "PERCENT_CURVE"), FinType.PercentCurve }, #endregion }; mapping.ET = new Dictionary <Enum, Type>() { { ScalarAttribute.DetailedType, typeof(FinTypeDetailedLevel) }, { ScalarAttribute.Currency, typeof(Currencies) }, { ScalarAttribute.FinType, typeof(FinType) }, }; Dictionary <string, object> sq = new Dictionary <string, object>() { { DataProvider.Input.MirReader.Provider.QUOTE, "MOEX" }, { DataProvider.Input.MirReader.Provider.SCALAR, "MOEX" }, }; #endregion DataProvider.Input.MirReader.Provider MoexProvider = new DataProvider.Input.MirReader.Provider(connection, mapping); MoexProvider.SetParams(sq); return(MoexProvider); }
public IMarketProvider GetCbr() { string connection = "Host = localhost; Username =postgres; Password =roman; Database =MIR"; #region mapping mir_cbr DataProvider.Input.MirReader.Mapping mapping2 = new DataProvider.Input.MirReader.Mapping(); mapping2.AI = new Dictionary <Enum, string>() { #region Финансовые инструменты { FinType.Equity, "12" }, { FinType.Bond, "13" }, { FinType.Fund, "14" }, { FinType.Certificate, "15" }, { FinType.DepositaryReceipt, "16" }, { FinType.Default, "20" }, { TimeSeriesAttribute.Close, "3" }, { ScalarAttribute.Name, "4" }, { ScalarAttribute.Nominal, "9" }, { ScalarAttribute.MatDate, "11" }, { ScalarAttribute.Currency, "8" }, { Currencies.CHF, "CHF" }, { Currencies.EUR, "EUR" }, { Currencies.USD, "USD" } #endregion }; mapping2.TKE = new Dictionary <KeyValuePair <Type, string>, Enum>() { #region Валюта { new KeyValuePair <Type, string>(typeof(Currencies), "CHF"), Currencies.CHF }, { new KeyValuePair <Type, string>(typeof(Currencies), "EUR"), Currencies.EUR }, { new KeyValuePair <Type, string>(typeof(Currencies), "GBP"), Currencies.GBP }, { new KeyValuePair <Type, string>(typeof(Currencies), "RUB"), Currencies.RUB }, { new KeyValuePair <Type, string>(typeof(Currencies), "RUR"), Currencies.RUB }, { new KeyValuePair <Type, string>(typeof(Currencies), "USD"), Currencies.USD }, #endregion #region Фин.инструменты { new KeyValuePair <Type, string>(typeof(FinType), "CERTIFICATE"), FinType.Certificate }, { new KeyValuePair <Type, string>(typeof(FinType), "DEPOSITARY RECEIPT"), FinType.DepositaryReceipt }, { new KeyValuePair <Type, string>(typeof(FinType), "BOND"), FinType.Bond }, { new KeyValuePair <Type, string>(typeof(FinType), "EQUITY"), FinType.Equity }, { new KeyValuePair <Type, string>(typeof(FinType), "FUND"), FinType.Fund }, { new KeyValuePair <Type, string>(typeof(FinType), "FX_RATE"), FinType.FxRate }, { new KeyValuePair <Type, string>(typeof(FinType), "PERCENT_CURVE"), FinType.PercentCurve }, #endregion }; mapping2.ET = new Dictionary <Enum, Type>() { { ScalarAttribute.DetailedType, typeof(FinTypeDetailedLevel) }, { ScalarAttribute.Currency, typeof(Currencies) }, { ScalarAttribute.FinType, typeof(FinType) }, }; Dictionary <string, object> sq2 = new Dictionary <string, object>() { { DataProvider.Input.MirReader.Provider.QUOTE, "CBR" }, { DataProvider.Input.MirReader.Provider.SCALAR, "CBR" }, }; #endregion DataProvider.Input.MirReader.Provider CbrProvider = new DataProvider.Input.MirReader.Provider(connection, mapping2); CbrProvider.SetParams(sq2); return(CbrProvider); }
public void ReadDataFromMoexAndCbr() { #region mapping mir_moex DataProvider.Input.MirReader.Mapping mapping = new DataProvider.Input.MirReader.Mapping(); mapping.AI = new Dictionary <Enum, string>() { #region Финансовые инструменты { FinType.Equity, "12" }, { FinType.Bond, "13" }, { FinType.Fund, "14" }, { FinType.Certificate, "15" }, { FinType.DepositaryReceipt, "16" }, { FinType.Default, "20" }, { TimeSeriesAttribute.Close, "3" }, { ScalarAttribute.Name, "4" }, { ScalarAttribute.Nominal, "9" }, { ScalarAttribute.MatDate, "11" }, { ScalarAttribute.Currency, "8" }, #endregion }; mapping.TKE = new Dictionary <KeyValuePair <Type, string>, Enum>() { #region Валюта { new KeyValuePair <Type, string>(typeof(Currencies), "CHF"), Currencies.CHF }, { new KeyValuePair <Type, string>(typeof(Currencies), "EUR"), Currencies.EUR }, { new KeyValuePair <Type, string>(typeof(Currencies), "GBP"), Currencies.GBP }, { new KeyValuePair <Type, string>(typeof(Currencies), "RUB"), Currencies.RUB }, { new KeyValuePair <Type, string>(typeof(Currencies), "RUR"), Currencies.RUB }, { new KeyValuePair <Type, string>(typeof(Currencies), "USD"), Currencies.USD }, #endregion #region Фин.инструменты { new KeyValuePair <Type, string>(typeof(FinType), "CERTIFICATE"), FinType.Certificate }, { new KeyValuePair <Type, string>(typeof(FinType), "DEPOSITARY RECEIPT"), FinType.DepositaryReceipt }, { new KeyValuePair <Type, string>(typeof(FinType), "BOND"), FinType.Bond }, { new KeyValuePair <Type, string>(typeof(FinType), "EQUITY"), FinType.Equity }, { new KeyValuePair <Type, string>(typeof(FinType), "FUND"), FinType.Fund }, { new KeyValuePair <Type, string>(typeof(FinType), "FX_RATE"), FinType.FxRate }, { new KeyValuePair <Type, string>(typeof(FinType), "PERCENT_CURVE"), FinType.PercentCurve }, #endregion }; mapping.ET = new Dictionary <Enum, Type>() { { ScalarAttribute.DetailedType, typeof(FinTypeDetailedLevel) }, { ScalarAttribute.Currency, typeof(Currencies) }, { ScalarAttribute.FinType, typeof(FinType) }, }; Dictionary <string, object> sq = new Dictionary <string, object>() { { DataProvider.Input.MirReader.Provider.QUOTE, "MOEX" }, { DataProvider.Input.MirReader.Provider.SCALAR, "MOEX" }, }; #endregion DataProvider.Input.MirReader.Provider MoexProvider = new DataProvider.Input.MirReader.Provider(connection, mapping); MoexProvider.SetParams(sq); #region mapping mir_cbr DataProvider.Input.MirReader.Mapping mapping2 = new DataProvider.Input.MirReader.Mapping(); mapping2.AI = new Dictionary <Enum, string>() { #region Финансовые инструменты { FinType.Equity, "12" }, { FinType.Bond, "13" }, { FinType.Fund, "14" }, { FinType.Certificate, "15" }, { FinType.DepositaryReceipt, "16" }, { FinType.Default, "20" }, { TimeSeriesAttribute.Close, "3" }, { ScalarAttribute.Name, "4" }, { ScalarAttribute.Nominal, "9" }, { ScalarAttribute.MatDate, "11" }, { ScalarAttribute.Currency, "8" }, { Currencies.CHF, "CHF" }, { Currencies.EUR, "EUR" }, { Currencies.USD, "USD" } #endregion }; mapping2.TKE = new Dictionary <KeyValuePair <Type, string>, Enum>() { #region Валюта { new KeyValuePair <Type, string>(typeof(Currencies), "CHF"), Currencies.CHF }, { new KeyValuePair <Type, string>(typeof(Currencies), "EUR"), Currencies.EUR }, { new KeyValuePair <Type, string>(typeof(Currencies), "GBP"), Currencies.GBP }, { new KeyValuePair <Type, string>(typeof(Currencies), "RUB"), Currencies.RUB }, { new KeyValuePair <Type, string>(typeof(Currencies), "RUR"), Currencies.RUB }, { new KeyValuePair <Type, string>(typeof(Currencies), "USD"), Currencies.USD }, #endregion #region Фин.инструменты { new KeyValuePair <Type, string>(typeof(FinType), "CERTIFICATE"), FinType.Certificate }, { new KeyValuePair <Type, string>(typeof(FinType), "DEPOSITARY RECEIPT"), FinType.DepositaryReceipt }, { new KeyValuePair <Type, string>(typeof(FinType), "BOND"), FinType.Bond }, { new KeyValuePair <Type, string>(typeof(FinType), "EQUITY"), FinType.Equity }, { new KeyValuePair <Type, string>(typeof(FinType), "FUND"), FinType.Fund }, { new KeyValuePair <Type, string>(typeof(FinType), "FX_RATE"), FinType.FxRate }, { new KeyValuePair <Type, string>(typeof(FinType), "PERCENT_CURVE"), FinType.PercentCurve }, #endregion }; mapping2.ET = new Dictionary <Enum, Type>() { { ScalarAttribute.DetailedType, typeof(FinTypeDetailedLevel) }, { ScalarAttribute.Currency, typeof(Currencies) }, { ScalarAttribute.FinType, typeof(FinType) }, }; Dictionary <string, object> sq2 = new Dictionary <string, object>() { { DataProvider.Input.MirReader.Provider.QUOTE, "CBR" }, { DataProvider.Input.MirReader.Provider.SCALAR, "CBR" }, }; #endregion DataProvider.Input.MirReader.Provider CbrProvider = new DataProvider.Input.MirReader.Provider(connection, mapping2); CbrProvider.SetParams(sq2); DataProvider.Input.CombinedProvider.Provider combinedProvider = new DataProvider.Input.CombinedProvider.Provider(new List <IMarketProvider>() { MoexProvider, CbrProvider }); var positionTS = combinedProvider.GetTimeSeries(position, TimeSeriesAttribute.Close); var currencyTS = combinedProvider.GetTimeSeries(Currencies.USD, TimeSeriesAttribute.Close); Assert.IsTrue(positionTS != null && positionTS.Series.Count != 0 && currencyTS != null && currencyTS.Series.Count != 0); Console.WriteLine(positionTS.Series.Count); Console.WriteLine(currencyTS.Series.Count); }