Esempio n. 1
0
 public PGenEntry(ShareEntry shareentry,
                  string buyprice,
                  string numbersharestobuy,
                  string sellprice,
                  string numbersharestosell,
                  IBSpecifics ibspecifics) : this(shareentry, buyprice, numbersharestobuy, sellprice, numbersharestosell,
                                                  ibspecifics._sectype, ibspecifics._exchange, ibspecifics._primaryexchange,
                                                  ibspecifics._currency, ibspecifics._localsymbol, ibspecifics._secidtype,
                                                  ibspecifics._secid, ibspecifics._genericticks)
 {
 }
Esempio n. 2
0
        PGenEntry [] CreatePGenSetRange(ShareEntry entry, decimal lower, decimal upper, decimal gap, decimal selloffset,
                                        int numbershares_buy, int numbershares_sell, IBSpecifics ibspecifics)
        {
            List <PGenEntry> pgens   = new List <PGenEntry> ();
            decimal          current = lower;

            while (current <= upper)
            {
                PGenEntry pgen = new PGenEntry(entry, current.DisplayMoney(), numbershares_buy.ToString(), (current + selloffset).DisplayMoney(), numbershares_sell.ToString(), ibspecifics);
                pgens.Add(pgen);
                if (gap == 0)
                {
                    break;
                }
                current += gap;
            }
            return(pgens.ToArray());
        }
Esempio n. 3
0
        void Go(pcmdsupport.ParseDBCMDLine dbcmdline, pcmdsupport.ParseAccountsCMDLine accountscmdline, int startindex, string [] args)
        {
            try
            {
                _mysqlconnection = dbmanager.GetDBConnection(dbcmdline.UserName, dbcmdline.Pwd, dbcmdline.Schema, dbcmdline.Hostname);
                _shareentries.Reset();
                ReadDatabase_shares(accountscmdline);

                const string GENERICTICKS = "100,101,104,105,106,107,165,221,225,233,236,258";

                _usdmarket_isl    = new IBSpecifics("STK", "SMART", EXCHANGE_ISLAND, "USD", "", "", "", GENERICTICKS);
                _usdmarket_arca   = new IBSpecifics("STK", "SMART", EXCHANGE_ARCA, "USD", "", "", "", GENERICTICKS);
                _usdmarket_nyse   = new IBSpecifics("STK", "SMART", EXCHANGE_NYSE, "USD", "", "", "", GENERICTICKS);
                _cadmarket_tsx    = new IBSpecifics("STK", "SMART", EXCHANGE_TSE, "CAD", "", "", "", GENERICTICKS);
                _cadmarket_ven    = new IBSpecifics("STK", "SMART", EXCHANGE_VENTURE, "CAD", "", "", "", GENERICTICKS);
                _gbpmarket        = new IBSpecifics("STK", "SMART", EXCHANGE_LONDON, "GBP", "", "", "", GENERICTICKS);
                _usdmarket_nasdaq = new IBSpecifics("STK", "SMART", EXCHANGE_NASDAQ, "USD", "", "", "", GENERICTICKS);

                Dictionary <string, bool> _donetickers = new Dictionary <string, bool> ();
                List <string>             fields       = Fields.CollateFields(startindex, true, args);
                if (fields == null || fields.Count == 0)
                {
                    return;
                }

                // format is [tickerid,sharestartprice,shareendprice,gap,selloffset,numberbuyshares,pgenfilename] or [delete]
                bool deletepgenfields = false;
                foreach (string input in fields)
                {
                    string [] splits = input.Split(',');
                    if (splits.Length == 7)
                    {
                        #region "pgen"
                        string tickerid = splits [0];
                        if (!_donetickers.ContainsKey(tickerid))
                        {
                            List <string> allfields = new List <string> ();
                            _donetickers [tickerid] = true;
                            for (int i = 0; i < fields.Count; i++)
                            {
                                splits = fields [i].Split(',');
                                if (splits.Length == 7)
                                {
                                    if (splits [0] == tickerid)
                                    {
                                        allfields.Add(fields [i]);
                                    }
                                }
                            }
                            ShareEntry shareentry;
                            if (_shareentries._shareentries.TryGetValue(tickerid, out shareentry))
                            {
                                string xmlfile = null;
                                List <PGenEntry []> pgenentries = new List <PGenEntry []> ();
                                foreach (string allfield in allfields)
                                {
                                    try
                                    {
                                        splits = allfield.Split(',');
                                        IBSpecifics ibspecs = null;
                                        if (String.Compare(shareentry._primaryexchange, EXCHANGE_ISLAND, true) == 0)
                                        {
                                            ibspecs = _usdmarket_isl;
                                        }
                                        else if (String.Compare(shareentry._primaryexchange, EXCHANGE_ARCA, true) == 0)
                                        {
                                            ibspecs = _usdmarket_arca;
                                        }
                                        else if (String.Compare(shareentry._primaryexchange, EXCHANGE_NYSE, true) == 0)
                                        {
                                            ibspecs = _usdmarket_nyse;
                                        }
                                        else if (String.Compare(shareentry._primaryexchange, EXCHANGE_TSE, true) == 0)
                                        {
                                            ibspecs = _cadmarket_tsx;
                                        }
                                        else if (String.Compare(shareentry._primaryexchange, EXCHANGE_VENTURE, true) == 0)
                                        {
                                            ibspecs = _cadmarket_ven;
                                        }
                                        else if (String.Compare(shareentry._primaryexchange, EXCHANGE_LONDON, true) == 0)
                                        {
                                            ibspecs = _gbpmarket;
                                        }
                                        else if (String.Compare(shareentry._primaryexchange, EXCHANGE_NASDAQ, true) == 0)
                                        {
                                            ibspecs = _usdmarket_nasdaq;
                                        }
                                        if (ibspecs != null)
                                        {
                                            decimal      lower        = decimal.Parse(splits [1]);
                                            decimal      upper        = decimal.Parse(splits [2]);
                                            decimal      gap          = decimal.Parse(splits [3]);
                                            decimal      offset       = decimal.Parse(splits [4]);
                                            int          numbershares = int.Parse(splits [5]);
                                            PGenEntry [] pgenentry    = CreatePGenSetRange(shareentry, lower, upper, gap, offset, numbershares, numbershares, ibspecs);
                                            if (pgenentry != null)
                                            {
                                                pgenentries.Add(pgenentry);
                                                if (xmlfile == null)
                                                {
                                                    xmlfile = splits [6];
                                                }
                                            }
                                        }
                                    }
                                    catch (Exception)
                                    {
                                    }
                                }
                                if (xmlfile != null)
                                {
                                    shareentry._pgenfilename = xmlfile;
                                    CreatePGen(accountscmdline, shareentry, xmlfile,
                                               MergePGenSets(pgenentries.ToArray())
                                               );
                                }
                            }
                        }
                        #endregion
                    }
                    else if (splits.Length == 1)
                    {
                        #region "delete flag?"
                        if (string.Compare(splits [0], "delete", true) == 0)
                        {
                            deletepgenfields = true;
                        }
                        #endregion
                    }
                }

                UpdateDatabase_pgens(accountscmdline, deletepgenfields);
            }
            finally
            {
                dbmanager.CloseConnections();
            }
        }
Esempio n. 4
0
        PGenEntry [] CreatePGenSet(ShareEntry entry, decimal start, decimal decrement, int number, decimal selloffset, int numbershares_buy, int numbershares_sell, IBSpecifics ibspecifics)
        {
            List <PGenEntry> pgens   = new List <PGenEntry> ();
            decimal          current = start;

            for (int i = 0; i < number; i++)
            {
                PGenEntry pgen = new PGenEntry(entry, current.DisplayMoney(), numbershares_buy.ToString(), (current + selloffset).DisplayMoney(), numbershares_sell.ToString(), ibspecifics);
                pgens.Add(pgen);
                current += decrement;
            }
            return(pgens.ToArray());
        }