Ejemplo n.º 1
0
        private void buttonAdd_Click(object sender, EventArgs e)
        {
            if (dataGridViewResult.SelectedRows.Count == 0)
            {
                return;
            }

            try
            {
                Type   appType = Type.GetTypeFromProgID("Broker.Application");
                object abApp   = Activator.CreateInstance(appType);

                object abStocks   = appType.InvokeMember("Stocks", System.Reflection.BindingFlags.GetProperty, null, abApp, null);
                Type   stocksType = abStocks.GetType();

                for (int i = 0; i < dataGridViewResult.SelectedRows.Count; i++)
                {
                    SecurityData sd = (SecurityData)dataGridViewResult.SelectedRows[i].DataBoundItem;;

                    SymbolParts ibTicker = new SymbolParts(sd.LocalSymbol, sd.Exchange, sd.SecType, sd.Currency, "");

                    object stock = stocksType.InvokeMember("Add", System.Reflection.BindingFlags.InvokeMethod, null,
                                                           abStocks, new object[] { ibTicker.Ticker });
                    if (stock != null)
                    {
                        Type stockType = stock.GetType();
                        stockType.InvokeMember("Alias", System.Reflection.BindingFlags.SetProperty, null, stock,
                                               new object[] { sd.Symbol });
                        stockType.InvokeMember("Currency", System.Reflection.BindingFlags.SetProperty, null, stock,
                                               new object[] { sd.Currency });
                        stockType.InvokeMember("FullName", System.Reflection.BindingFlags.SetProperty, null, stock,
                                               new object[] { sd.LongName });
                        stockType.InvokeMember("PointValue", System.Reflection.BindingFlags.SetProperty, null, stock,
                                               new object[] { sd.PriceMagnifier });
                        stockType.InvokeMember("TickSize", System.Reflection.BindingFlags.SetProperty, null, stock,
                                               new object[] { sd.MinTick });
                        stockType.InvokeMember("WebID", System.Reflection.BindingFlags.SetProperty, null, stock,
                                               new object[] { sd.ContractId });
                    }

                    if (checkBoxAddContinuous.Checked && sd.SecType.ToUpper() == "FUT")
                    {
                        string      localNamePart = sd.LocalSymbol.Substring(0, sd.LocalSymbol.Length - 2);
                        SymbolParts contTicker    = new SymbolParts(localNamePart + "~/" + sd.Symbol, sd.Exchange, sd.SecType, sd.Currency, "");

                        stock = stocksType.InvokeMember("Add", System.Reflection.BindingFlags.InvokeMethod, null,
                                                        abStocks, new object[] { contTicker.Ticker });
                    }
                }
            }
            catch (Exception ex)
            {
                LogAndMessage.Log(MessageType.Error, "Search form could not add tickers: " + ex);
                MessageBox.Show("Error while adding tickers: " + ex, "Search form error", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
        }
Ejemplo n.º 2
0
        // callback (from controller) to store a matching contract
        private void ContractReady(ContractDetails contractDetails)
        {
            SecurityData sd = new SecurityData();

            sd.ContractId = contractDetails.Contract.ConId;
            sd.Currency   = contractDetails.Contract.Currency;
            sd.Exchange   = contractDetails.Contract.Exchange;
            sd.LastTradeDateOrContractMonth = contractDetails.Contract.LastTradeDateOrContractMonth;
            sd.LocalSymbol     = contractDetails.Contract.LocalSymbol;
            sd.PrimaryExchange = contractDetails.Contract.PrimaryExch;
            sd.Right           = contractDetails.Contract.Right;
            sd.SecType         = contractDetails.Contract.SecType;
            sd.Strike          = contractDetails.Contract.Strike;
            sd.Symbol          = contractDetails.Contract.Symbol;
            sd.LongName        = contractDetails.LongName;
            sd.MinTick         = (float)contractDetails.MinTick;
            sd.PriceMagnifier  = contractDetails.PriceMagnifier;

            securityDatas.Add(sd);
        }