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); } }
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}"); } }
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(); } }
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(); }
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); }
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()); }
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(); }
private static void CheckName(FinancialPair pair) { Assert.AreEqual("XOM|AAPL", pair.Name); }
private void CheckDeviations(FinancialPair pair) { Assert.AreEqual(185.7958, pair.X.Deviation, 0.001); Assert.AreEqual(8.441, pair.Y.Deviation, 0.001); }
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); }
private void InitPairs() { pairs = FinancialPair.CreateMany(stocks); }