Esempio n. 1
0
        public PortfolioValueTimeSeriesViewModel(
            PortfolioTrackerContext dbContext,
            IMarketProvider provider)
        {
            DbContext = dbContext;
            Provider  = provider;

            LoadPortfolioValueTimeSeriesDataCommand = new DelegateCommand <int>(LoadPortfolioValueTimeSeriesData, CanLoadPortfolioValueTimeSeriesData);

            LoadPortfolioValueTimeSeriesDataCommand.Execute(30);

            XAxisFormatter = value =>
            {
                var days = (DateTime.Today - MinDate).Days;
                var date = new DateTime((long)(value * TimeSpan.FromHours(1).Ticks));

                if (days < 365)
                {
                    return(value < 0 ? "" : date.ToString("MMM dd"));
                }
                else
                {
                    return(value < 0 ? "" : date.ToString("MMM `yy"));
                }
            };
        }
Esempio n. 2
0
 public UmpaLumpaWorker(IMarketProvider providers, ICurrencyDAO currencyDAO, IStrategyDAO strategyDAO, ITransactionLayer transactionDAO)
 {
     this._providers      = providers;
     this._currencyDAO    = currencyDAO;
     this._strategyDAO    = strategyDAO;
     this._transactionDAO = transactionDAO;
 }
Esempio n. 3
0
        public void Yield_()
        {
            IMarketProvider moex = GetMoex();
            IMarketProvider cbr  = GetCbr();

            DataProvider.Input.CombinedProvider.Provider provider =
                new DataProvider.Input.CombinedProvider.Provider(
                    new List <IMarketProvider>()
            {
                moex,
                cbr
            });

            Core.Mir.Environment environment =
                new Core.Mir.Environment();
            environment.Market = new Core.Mir.MarketData(provider);

            CalculationOneData calculation =
                new Yield();

            calculation.Environment = environment;
            calculation.ReportDate  = new DateTime(2018, 05, 14);
            calculation.Run();

            foreach (var x in calculation.returnResultSet().TimeSeries)
            {
                if (x.Value.Series.ContainsKey(calculation.ReportDate))
                {
                    string message = string.Format("{0}\t{1}", x.Key.Ident, x.Value.Series[calculation.ReportDate]);
                    Console.WriteLine(message);
                }
            }
        }
Esempio n. 4
0
        public void TestVolatAll()
        {
            IMarketProvider moex = GetMoex();
            IMarketProvider cbr  = GetCbr();

            DataProvider.Input.CombinedProvider.Provider provider =
                new DataProvider.Input.CombinedProvider.Provider(new List <IMarketProvider>()
            {
                moex,
                cbr
            });

            Core.Mir.Environment environment =
                new Core.Mir.Environment();
            environment.Market = new MarketData(provider);

            CalculationOneData calculation = new CalculateVolat.Volat();

            calculation.ReportDate = new DateTime(2018, 05, 12);
            Dictionary <string, object> pars = new Dictionary <string, object>()
            {
                { CalculateVolat.Volat.WINDOW, 5 },
                { CalculateVolat.Volat.MINIMAL_AMOUT, 90 },
            };

            calculation.SetParams(pars);
            calculation.Environment = environment;

            calculation.Run();
        }
        public void TestGetOnlyBonds()
        {
            IMarketProvider marketProvider = TestConnection();
            var             result         = marketProvider.GetAllPositions(FinType.Bond);

            Assert.IsTrue(result != null && result.Count != 0 && result.Count(z => z.FinType != FinType.Default) != 0);
        }
Esempio n. 6
0
        private void RunCalculation_Click(object sender, EventArgs e)
        {
            string commandExe = ConfigurationManager.AppSettings["run_program"];

            System.Diagnostics.Process.Start(commandExe);
            _provider.ClearCache();
            _provider.Dispose();

            curves           = new List <string>();
            subCurves        = new Dictionary <string, List <string> >();
            currencies       = new Dictionary <string, string>();
            _dbLink          = null;
            positions        = null;
            _cachedPositions = null;
            var iConnection = DataBaseLink.Fabricate.CreateConnection(_connection, DataBaseLink.ConnectionType.Npgsql);

            _dbLink = new DataBaseLink.DbLink(iConnection);
            IMarketProvider moex = GetMoex();
            IMarketProvider cbr  = GetCbr();

            _provider =
                new DataProvider.Input.CombinedProvider.Provider(new List <IMarketProvider>()
            {
                moex,
                cbr
            });

            LoadDataFinInstruments();
            Paint();
            LoadDataCurrencies();
            LoadAttributes();
            LoadDictionary();
            LoadPercentCurves();
            LoadCalculations();
        }
Esempio n. 7
0
        public Form1()
        {
            InitializeComponent();

            var iConnection = DataBaseLink.Fabricate.CreateConnection(_connection, DataBaseLink.ConnectionType.Npgsql);

            _dbLink = new DataBaseLink.DbLink(iConnection);
            IMarketProvider moex = GetMoex();
            IMarketProvider cbr  = GetCbr();

            _provider =
                new DataProvider.Input.CombinedProvider.Provider(new List <IMarketProvider>()
            {
                moex,
                cbr
            });

            LoadDataFinInstruments();
            Paint();
            LoadDataCurrencies();
            LoadAttributes();
            LoadDictionary();
            LoadPercentCurves();
            LoadCalculations();
        }
        public void TestQuotes()
        {
            string ident = "CH0317921671";

            position.Ident = ident;
            IMarketProvider marketProvider = TestConnection();
            var             result         = marketProvider.GetTimeSeries(position, TimeSeriesAttribute.Close);
        }
        public void TestScalarNum()
        {
            IMarketProvider marketProvider = TestConnection();
            var             result         = marketProvider.GetScalarNum(position, ScalarAttribute.Nominal);

            for (int i = 0; i < 100; ++i)
            {
                marketProvider.GetScalarNum(position, ScalarAttribute.Nominal);
            }
        }
        public void TestScalarEnum()
        {
            IMarketProvider marketProvider = TestConnection();
            var             result         = marketProvider.GetScalarEnum(position, ScalarAttribute.Currency);

            for (int i = 0; i < 100; ++i)
            {
                marketProvider.GetScalarDate(position, ScalarAttribute.MatDate);
            }
        }
Esempio n. 11
0
        public AccountSummaryViewModel(
            EF.PortfolioTrackerContext dbContext,
            IMarketProvider provider,
            PortfolioValueTimeSeriesViewModel portfolioValueTimeSeriesViewModel)
        {
            DbContext = dbContext;
            Provider  = provider;
            PortfolioValueTimeSeriesViewModel = portfolioValueTimeSeriesViewModel;

            PortfolioValueTimeSeriesViewModel.IsBusyChanged += ChildIsBusyChangedEventHandler;
        }
        public void LoadData()
        {
            treeView1.Nodes.Clear();

            var iConnection = DataBaseLink.Fabricate.CreateConnection(_connection, DataBaseLink.ConnectionType.Npgsql);

            DataBaseLink.DbLink _dbLink = new DataBaseLink.DbLink(iConnection);
            //достаем финансовые инструменты и сортируем по папкам

            IMarketProvider moex = GetMoex();
            IMarketProvider cbr  = GetCbr();

            DataProvider.Input.CombinedProvider.Provider provider =
                new DataProvider.Input.CombinedProvider.Provider(new List <IMarketProvider>()
            {
                moex,
                cbr
            });

            List <FinType> finTypes = new List <FinType>()
            {
                FinType.Bond,
                FinType.Certificate,
                FinType.DepositaryReceipt,
                FinType.Equity,
                FinType.Fund
            };

            Dictionary <FinType, string> types = new Dictionary <FinType, string>()
            {
                { FinType.Bond, "Облигации" },
                { FinType.Certificate, "Сертификаты" },
                { FinType.DepositaryReceipt, "Депозитарные распискы" },
                { FinType.Equity, "Акции" },
                { FinType.Fund, "Фонды" },
            };

            List <PortfolioPosition> positions = provider.GetAllPositions(finTypes);

            foreach (var x in types)
            {
                TreeNode root = treeView1.Nodes.Add(x.Value, x.Value);
                foreach (var z in positions.Where(p => p.FinType == x.Key))
                {
                    root.Nodes.Add(z.Ident, z.Ident);
                }
            }
        }
        public void TestCalculateVar()
        {
            IMarketProvider moex = GetMoex();
            IMarketProvider cbr  = GetCbr();

            DataProvider.Input.CombinedProvider.Provider provider =
                new DataProvider.Input.CombinedProvider.Provider(new List <IMarketProvider>()
            {
                moex,
                cbr
            });

            Core.Mir.Environment environment =
                new Core.Mir.Environment();
            environment.Market = new MarketData(provider);

            CalculationOneData calculation = new Var();

            calculation.ReportDate = new DateTime(2018, 05, 04);
            Dictionary <string, object> pars = new Dictionary <string, object>()
            {
                { Var.WINDOW, 5 },
                { Var.QUANTILE, 0.9m },
            };

            calculation.SetParams(pars);
            calculation.Environment = environment;
            bool result = false;

            try
            {
                result = calculation.Run();
            }
            catch
            {
                result = false;
            }
            #region Settings Output
            #region Выгрузка данных в мир
            if (result)
            {
                #region Settings outputProvider
                string mirConnection = ConfigurationManager.AppSettings["mirconnection"];
                DataProvider.Output.Mir.Mapping outMapping = new DataProvider.Output.Mir.Mapping();

                outMapping.AI = new Dictionary <Enum, string>()
                {
                    #region Финансовые инструменты
                    { FinType.Equity, "12" },
                    { FinType.Bond, "13" },
                    { FinType.Fund, "14" },
                    { FinType.Certificate, "15" },
                    { FinType.DepositaryReceipt, "16" },
                    { FinType.FxRate, "20" },
                    { TimeSeriesAttribute.Var, "21675" },
                    #endregion
                };

                outMapping.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
                };


                outMapping.ET = new Dictionary <Enum, Type>()
                {
                    { ScalarAttribute.DetailedType, typeof(FinTypeDetailedLevel) },
                    { ScalarAttribute.Currency, typeof(Currencies) },
                    { ScalarAttribute.FinType, typeof(FinType) },
                };

                mirConnection = "Host = localhost; Username =postgres; Password =roman; Database =MIR";
                using (var outProvider = new DataProvider.Output.Mir.Provider(mirConnection, outMapping))
                {
                    outProvider.SetParams(new Dictionary <string, object>()
                    {
                        { DataProvider.Output.Mir.Provider.SCALAR, "CALCULATED" },
                        { DataProvider.Output.Mir.Provider.QUOTE, "CALCULATED" }
                    });

                    outProvider.Save(calculation.returnResultSet());
                }



                #endregion
            }
            #endregion

            #region Выгрузка данных в Excel
            string excelPath     = @"C:\Users\RomanBushuev\YandexDisk\MarketData\Reports\Var\";
            string excelFileName = string.Format("{0}.xlsx",
                                                 calculation.ReportDate.ToString("yyyy.MM.dd"));

            DataProvider.Output.Excel.Provider excelProvider =
                new DataProvider.Output.Excel.Provider(excelPath + excelFileName);

            excelProvider.Save(calculation.returnResultSet());
            #endregion
            #endregion
        }
 public void TestGetEnum()
 {
     IMarketProvider marketProvider = TestConnection();
     var             result         = marketProvider.Get <Currencies>(position, ScalarAttribute.Currency, DateTime.Today, Currencies.Default);
 }
Esempio n. 15
0
 public MarketData(IMarketProvider dataProvider)
 {
     _dataProvider = dataProvider;
 }