示例#1
0
        public Algo(AlgoControlPanel algoControlPanel, string symbol, LiveConnectors variant)
        {
            DataManager dataManager = DataManager.getInstance();

            dataManager.subscribeForLiveConnection(symbol, this, variant);
            this.algoControlPanel             = algoControlPanel;
            algoControlPanel.lblKS_Saldo.Text = (Convert.ToString(kontostand));
        }
示例#2
0
        private PushWorker findWorker(string symbol, LiveConnectors variant)
        {
            //search for worker
            foreach (PushWorker worker in listOfPushWorkers)
            {
                if (worker.symbol == symbol && worker.variant == variant)
                {
                    //return found worker
                    return(worker);
                }
            }

            //if never found, return null
            return(null);
        }
        public PushWorker(LiveConnectors variant, String symbol)
        {
            this.symbol  = symbol;
            this.variant = variant;

            switch (variant)
            {
            case LiveConnectors.OnVista:
                liveConnector = new OnVistaConnector(symbol);
                break;

            case LiveConnectors.OnVistaDummy:
                liveConnector = new OnVistaDummyConnector(symbol);
                break;
            }
        }
示例#4
0
        private void onClickAusfuehren(object sender, RibbonControlEventArgs e)
        {
            if (CB_Ziel_NeuesTB.Enabled == false & CB_Ziel_AktuellesTB.Enabled == false & CB_Ziel_Cursor.Enabled == false)
            {
                BTN_Aktionen_Ausfuehren.Enabled = false;
            }
            if (selectedOptions == 3)
            {
                Konfigurator view = new Konfigurator();

                if (CB_Typ_Live.Checked)
                {
                    view.groupBox1.Visible = false;
                }

                view.ShowDialog();

                Workbook    workBook;
                Worksheet   workSheet = Globals.Factory.GetVstoObject(Globals.ThisAddIn.Application.ActiveWorkbook.ActiveSheet);
                Excel.Range position  = Globals.ThisAddIn.Application.Cells[1, 1];

                string   stockSymbol = view.comboBox1.SelectedItem.ToString();
                DateTime dateFrom    = view.dateTimePicker1.Value;
                DateTime dateTo      = view.dateTimePicker2.Value;

                DataManager    dataManager = DataManager.getInstance();
                TableObject    tableObject = null;
                LiveConnectors liveVariant = LiveConnectors.OnVistaDummy;

                List <int> columnsToDraw = null;
                List <StockDataTransferObject> listOfRecords = null;

                if (view.hasBeenCancelled == false)
                {
                    //************************* Position *************************************
                    //Aktive Zelle
                    if (CB_Ziel_Cursor.Checked)
                    {
                        position = Globals.ThisAddIn.Application.ActiveCell;
                    }

                    //Aktuelles Tabellenblatt
                    else if (CB_Ziel_AktuellesTB.Checked)
                    {
                        //nutze Standards
                    }

                    //Neues Tabellenblatt
                    else if (CB_Ziel_NeuesTB.Checked)
                    {
                        workBook = Globals.Factory.GetVstoObject(Globals.ThisAddIn.Application.ActiveWorkbook);
                        String tabellenblattName = Microsoft.VisualBasic.Interaction.InputBox("Bitte Tabellenblattnamen eingeben!", "Tabellenblattname eingeben", "");
                        foreach (Excel.Worksheet sheet in workBook.Worksheets)
                        {
                            if (sheet.Name.ToString() == tabellenblattName)
                            {
                                MessageBox.Show("Tabellenblattname bereits vorhanden! Bitte erneut ausführen!");
                                return;
                            }
                        }
                        workSheet      = Globals.Factory.GetVstoObject(Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets.Add());
                        workSheet.Name = tabellenblattName;
                    }
                    //************************* Position *************************************

                    //************************* Historisch ***********************************

                    //Yahoo API
                    if (CB_Quelle_Yahoo.Checked)
                    {
                        listOfRecords = dataManager.getHistoricalStockData(stockSymbol, dateFrom, dateTo, YahooFinanceAPI_Resolution.Daily);
                        columnsToDraw = dataManager.getColumnsToDraw_forYahooHistoricalData();
                    }

                    //Lokale Daten
                    else if (CB_Quelle_Lokal.Checked)
                    {
                        listOfRecords = dataManager.getLocallySavedStockData(stockSymbol, dateFrom, dateTo);
                        columnsToDraw = dataManager.getColumnsToDraw_Standard();
                    }

                    //************************* Historisch ***********************************

                    //************************* Live *****************************************

                    //OnVista Live
                    if (CB_Quelle_Onvista.Checked)
                    {
                        liveVariant = LiveConnectors.OnVista;
                    }

                    //Dummy Live
                    else if (CB_Quelle_Dummy.Checked)
                    {
                        liveVariant = LiveConnectors.OnVistaDummy;
                    }

                    //************************* Live *****************************************

                    //************************* Zusammenführung ******************************

                    //Zusammenführung für historische Variante
                    if (CB_Quelle_Yahoo.Checked || CB_Quelle_Lokal.Checked)
                    {
                        tableObject = new TableObject(workSheet, position, listOfRecords, columnsToDraw);
                        tableObject.drawAll();
                    }

                    //Zusammenführung für Live-Variante
                    else if (CB_Quelle_Onvista.Checked || CB_Quelle_Dummy.Checked)
                    {
                        tableObject = new TableObject(workSheet, position, dataManager.getColumnsToDraw_LiveStockData());
                        dataManager.subscribeForLiveConnection(stockSymbol, tableObject, liveVariant);
                        tableObject.drawAll();
                    }

                    //************************* Zusammenführung ******************************
                }
            }
            else
            {
                MessageBox.Show("Es sind nicht alle nötigen Optionen ausgefüllt! Bitte Auswahl überprüfen!");
            }
        }
示例#5
0
        private void findOrCreateWorker(String symbol, LiveConnectionSubscriber subscriber, LiveConnectors variant)
        {
            //search for worker which already loads the relevant data
            PushWorker worker = findWorker(symbol, variant);

            //create worker only in case of new symbol
            if (worker == null)
            {
                worker = new PushWorker(variant, symbol);
                DBUpdater dbUpdater = new DBUpdater();

                //stash objects for later use
                listOfPushWorkers.Add(worker);
                listOfDBUpdaters.Add(dbUpdater);

                //subscribe dedicated mySQL-Connector to keep DB up-to-date
                worker.subscribe(dbUpdater);
                //initialize worker, tell him to load
                worker.startWork();
            }

            //subscribe interested Object (e.g. table, chart, etc.)
            worker.subscribe(subscriber);
        }
示例#6
0
 public void subscribeForLiveConnection(String symbol, LiveConnectionSubscriber subscriber, LiveConnectors variant)
 {
     findOrCreateWorker(symbol, subscriber, variant);
 }