Ejemplo n.º 1
0
        private double getSymbolPrice(string secType)
        {
            dbm.WriteLine(clientID, "Obtaining undelying price ...", true);

            // get Underlying Contract
            Contract underlying = new Contract();

            underlying.Symbol  = this_symbol;
            underlying.SecType = secType;
            underlying         = ibClient.reqContractDetails(1, underlying)[0].contractDetails.Summary;

            // Request Price
            do
            {
                ibClient.SetMarketDataType(IntBrokerSocket.MarketDataType.Delayed);
                CompleteTick_Struct mymkt = ibClient.GetMktSnapShotData(new List <Contract>(new Contract[] { underlying }))[0];
                symbolPrice = mymkt.getTick(tickPreference.LastPreference);
            } while (symbolPrice <= 0);

            return(symbolPrice);
        }
Ejemplo n.º 2
0
        private void FillInPrices()
        {
            dbm.WriteLine(clientID, "Obtaining contract price info ...", true);
            int                        cnt          = 0;
            List <Contract>            ContractList = new List <Contract>();
            List <CompleteTick_Struct> ReturnedTickList;


            // Initiate option list
            foreach (DataRow dr in outputDataTable.Rows)
            {
                string _Expiry = dr["Expiry"].ToString();
                double _Strike = Convert.ToDouble(dr["Strike"].ToString());
                ContractList.Add(UniqueOptChain[new ExpiryStrikePair(_Expiry, _Strike)]);
            }


            //  Request snapshot
            ibClient.SetMarketDataType(IntBrokerSocket.MarketDataType.DelayedFrozen);
            ReturnedTickList = ibClient.GetMktSnapShotData(ContractList);


            // Consolidate data to datatable
            foreach (DataRow dr in outputDataTable.Rows)
            {
                string _Expiry = dr["Expiry"].ToString();
                double _Strike = Convert.ToDouble(dr["Strike"].ToString());

                CompleteTick_Struct mymkt = ReturnedTickList[ContractList.IndexOf(UniqueOptChain[new ExpiryStrikePair(_Expiry, _Strike)])];

                dr[colnames[3]] = mymkt.getTick(tickPreference.BidPreference);
                dr[colnames[4]] = mymkt.getTick(tickPreference.AskPreference);
                dr[colnames[5]] = mymkt.getTick(tickPreference.LastPreference);

                cnt++;
                //Console.WriteLine("{0}: {1}", cnt, string.Join(",",dr.ItemArray.Select(field=>field.ToString())));
                dbm.WriteLine(clientID, string.Format("\r {0:0%} Done", ((double)cnt) / outputDataTable.Rows.Count), false);
            }
            dbm.WriteLine(clientID, "", true);
        }