private void listView_Click(object sender, EventArgs e)
        {
            try
            {
                ListViewItem item = listView.SelectedItems[0];
                var          name = item.SubItems[0].Name;

                chart.GraphPane.Title.Text = name;

                selectedPair = pairs.First(i => i.Name == name);

                var deltas = selectedPair.DeltaValues;

                chart.SetDeltaValues(deltas);
                chart.SetCurrentDeltaValue(deltas.Last());

                ShowValuesForPairInfo();

                SMAPeriod_ValueChanged(null, null);
                WMAPeriod_ValueChanged(null, null);
            }
            catch (Exception ex)
            {
                Console.WriteLine("listView1_Click(s,e) " + ex.Message);
            }
        }
示例#2
0
        private void OnMouseLeftDown(object sender, MouseButtonEventArgs e)
        {
            try
            {
                var info = dataGrid.SelectedItem as PairInfo;

                if (info != null)
                {
                    selectedPair = pairs.Find(i => i.Name == info.Name);

                    if (selectedPair != null)
                    {
                        var SMAValue = sma.GetInt32();

                        if (SMAValue < 0)
                        {
                            throw new Exception("SMA should be more or equal 0.");
                        }

                        chartModel.Update(selectedPair.DeltaValues, selectedPair.Name, SMAValue);
                        plot.InvalidatePlot();

                        ShowValuesForPairInfo();
                    }
                }
            }
            catch (Exception ex)
            {
                this.Display($"OnMouseLeftDown => {ex.Message}");
            }
        }
示例#3
0
        private void MainWindow_Load(object sender, EventArgs e)
        {
            AppStartWindow startWin = new AppStartWindow();

            startWin.ShowDialog();

            stocks = startWin.Stocks;

            if (stocks == null)
            {
                Close();
            }
            else if (stocks.Length == 0)
            {
                MessageBox.Show("No input data. App will be closed.");
                Close();
            }
            else
            {
                pairs = FinancialPair.CreateMany(stocks);
                listView.Items.Clear();
                listView.Update(pairs);
                CenterToScreen();
            }
        }
示例#4
0
        private void CheckStocks(FinancialPair pair)
        {
            Assert.IsNotNull(pair.X);
            Assert.IsNotNull(pair.Y);

            Assert.IsNotNull(pair.X.Prices);
            Assert.IsNotNull(pair.Y.Prices);
        }
        public void Update(FinancialPair selectedPair)
        {
            pairName.Text = selectedPair.Name.ToString();
            xName.Text    = selectedPair.X.Name;
            yName.Text    = selectedPair.Y.Name;

            pairsTradeBalance.Text = Math.Round(selectedPair.TradeVolume, 4).ToString();
            yTradeVolume.Text      = Math.Round(selectedPair.Y.TradeVolume, 4).ToString();
            xTradeVolume.Text      = Math.Round(selectedPair.X.TradeVolume, 4).ToString();
            riskLimit.Text         = Math.Round((selectedPair.TradeVolume * risk.GetDouble() / 100.0), 4).ToString();
        }
示例#6
0
        public void FinancialPairTest()
        {
            Stock aapl = CsvUtils.Read("csv-samples/AAPL.txt", 4, false);
            Stock xom  = CsvUtils.Read("csv-samples/XOM.txt", 4, false);

            FinancialPair pair = new FinancialPair(aapl, xom, DeltaType.Spread);

            CheckStocks(pair);
            CheckName(pair);
            CheckDeviations(pair);
            CheckDeltaValues(pair);
            CheckRegression(pair.Regression);
        }
示例#7
0
        public void CalculateTest()
        {
            Stock[] stocks = CsvUtils.ReadAllDataFrom("csv-samples/", 4, false);

            List <FinancialPair> pairs = FinancialPair.CreateMany(stocks);

            RiskManager rm = new RiskManager(pairs.ToArray(), 100000.00);

            rm.Calculate();

            pairs.ForEach(i => { Assert.AreNotEqual(0, i.TradeVolume); });

            Assert.AreEqual(100000.00, pairs.Select(i => i.TradeVolume).Sum());

            Assert.AreEqual(1, pairs.Select(i => i.Weight).Sum());
        }
示例#8
0
        static void Main(string[] args)
        {
            var marketData = CsvUtils.ReadAllDataFrom(MarketDataDirectory, 4, false);

            var selectedShares = marketData.ToList().FindAll(i => Symbols.Contains(i.Name));

            var financialPairs = FinancialPair.CreateMany(selectedShares);

            var riskManager = new RiskManager(financialPairs, Balance);

            riskManager.Calculate();

            DisplayResults(financialPairs);

            Console.WriteLine("PRESS 'ENTER' TO EXIT.");
            Console.ReadLine();
        }
        private void MainWindow_Load(object sender, EventArgs e)
        {
            AppStartWindow startWin = new AppStartWindow();

            startWin.ShowDialog();

            appData = startWin.AppData;

            if (appData.InputData == null)
            {
                MessageBox.Show("No input data. App will be closed.");
                Close();
            }

            DeltaType deltaType = (DeltaType)Enum.Parse(typeof(DeltaType), appData.DeltaTypeName);

            pairs = FinancialPair.CreateMany(appData.InputData, deltaType);

            listView.Items.Clear();
            listView.Update(pairs);
            CenterToScreen();
        }
示例#10
0
 private static void CheckName(FinancialPair pair)
 {
     Assert.AreEqual("XOM|AAPL", pair.Name);
 }
示例#11
0
 private void CheckDeviations(FinancialPair pair)
 {
     Assert.AreEqual(185.7958, pair.X.Deviation, 0.001);
     Assert.AreEqual(8.441, pair.Y.Deviation, 0.001);
 }
示例#12
0
 private void CheckDeltaValues(FinancialPair pair)
 {
     Assert.AreEqual(473, pair.DeltaValues.Length);
     Assert.AreEqual(-453.3799, pair.DeltaValues.First(), 0.001);
     Assert.AreEqual(-33.2799, pair.DeltaValues.Last(), 0.001);
 }
 private void CheckDeltaValues(FinancialPair pair)
 {
     Assert.AreEqual(473, pair.DeltaValues.Length);
     Assert.AreEqual(89.2855, pair.DeltaValues.First(), 0.001);
     Assert.AreEqual(78.7398, pair.DeltaValues.Last(), 0.001);
 }
示例#14
0
 private void InitPairs()
 {
     pairs = FinancialPair.CreateMany(stocks);
 }