Esempio n. 1
0
        /// <summary>
        /// Load a security from a zipfile containing a historical tick file
        /// </summary>
        /// <param name="zipfile"></param>
        /// <param name="tikfile"></param>
        /// <returns></returns>
        public static SecurityImpl FromZip(string zipfile, string tikfile)
        {
            TikReader    tr = new TikReader(zipfile, tikfile);
            SecurityImpl s  = (SecurityImpl)tr.ToSecurity();

            if (s.IsValid && tr.IsValid)
            {
                s.HasHistorical = true;
                s.HistSource    = tr;
                s.ApproxTicks   = s.HistSource.ApproxTicks;
            }
            return(s);
        }
Esempio n. 2
0
        double writeandread(Tick[] data, int date, bool printperf, bool clearreadbuffer)
        {
            // clear out the read buffer
            if (clearreadbuffer)
            {
                readdata.Clear();
            }
            // keep track of time
            double elapms;

            System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
            // write new file from data
            TikWriter tw   = new TikWriter(PATH, data[0].symbol, date == 0 ? data[0].date: date);
            string    FILE = tw.Filepath;

            sw.Start();
            foreach (Tick k in data)
            {
                tw.newTick(k);
            }
            sw.Stop();
            tw.Close();
            elapms = (double)sw.ElapsedMilliseconds;
            if (printperf)
            {
                Console.WriteLine("write speed (ticks/sec): " + (data.Length / (elapms / 1000)).ToString("n0"));
            }

            // read file back in from file
            TikReader tr = new TikReader(FILE);

            tr.gotTick += new TickDelegate(tr_gotTick);
            sw.Reset();
            sw.Start();
            while (tr.NextTick())
            {
                ;
            }
            sw.Stop();
            tr.Close();
            elapms = (double)sw.ElapsedMilliseconds;
            if (printperf)
            {
                Console.WriteLine("read speed (ticks/sec): " + (data.Length / (elapms / 1000)).ToString("n0"));
            }

            // remove file
            removefile(FILE);

            return(elapms);
        }
Esempio n. 3
0
        public void TikFromZip()
        {
            _readdata = new List <Tick>();
            //Get ZIP
            string zipfile = @"Common\AUDJPY.zip";
            string tikfile = "AUDJPY20070511.TIK";

            //Get reader
            TikReader zr = new TikReader(zipfile, tikfile);

            //Get tikcs
            zr.GotTick += tr_gotTick;

            while (zr.NextTick())
            {
            }

            //Check results
            Assert.Equal(4656, _readdata.Count);
        }
Esempio n. 4
0
        public void CreateRead()
        {
            readdata.Clear();
            readdata2.Clear();
            FILE = TikWriter.SafeFilename(SYM, PATH, DATE);
            TestTikWriterReader.removefile(FILE);
            {
                Tick[] data = RandomTicks.GenerateSymbol(SYM, MAXTICKS);

                TickArchiver ta = new TickArchiver(Environment.CurrentDirectory);
                for (int i = 0; i < data.Length; i++)
                {
                    data[i].date = DATE;
                    data[i].time = Util.DT2FT(DateTime.Now);
                    ta.newTick(data[i]);
                }
                ta.Stop();

                // read file back in from file
                TikReader tr = new TikReader(FILE);
                tr.gotTick += new TickDelegate(tr_gotTick);
                while (tr.NextTick())
                {
                    ;
                }

                // verify length
                Assert.AreEqual(data.Length, readdata.Count);
                // verify content
                bool equal = true;
                for (int i = 0; i < MAXTICKS; i++)
                {
                    equal &= data[i].trade == readdata[i].trade;
                }
                tr.Close();

                readdata.Clear();
                Assert.IsTrue(equal, "ticks did not matched archive.");
                TestTikWriterReader.removefile(FILE);
            }
        }
Esempio n. 5
0
        public void CreateRead()
        {
            _readdata.Clear();
            _readdata2.Clear();
            _file = TikWriter.SafeFilename(Sym, _path, Date);
            TestTikWriterReader.Removefile(_file);
            {
                TickImpl[] data = RandomTicks.GenerateSymbol(Sym, Maxticks).Select(x => (TickImpl)x).ToArray();

                TickArchiver ta = new TickArchiver(Environment.CurrentDirectory);
                for (int i = 0; i < data.Length; i++)
                {
                    data[i].Date = Date;
                    data[i].Time = Util.DT2FT(DateTime.Now);
                    ta.NewTick(data[i]);
                }
                ta.Stop();

                // read file back in from file
                TikReader tr = new TikReader(_file);
                tr.GotTick += tr_gotTick;
                while (tr.NextTick())
                {
                }

                // verify length
                Assert.Equal(data.Length, _readdata.Count);
                // verify content
                bool equal = true;
                for (int i = 0; i < Maxticks; i++)
                {
                    equal &= data[i].Trade == _readdata[i].Trade;
                }
                tr.Close();

                _readdata.Clear();
                Assert.True(equal, "ticks did not matched archive.");
                TestTikWriterReader.Removefile(_file);
            }
        }
Esempio n. 6
0
        public void Multiday()
        {
            readdata.Clear();
            readdata2.Clear();
            int           d  = 20100223;
            int           t  = 235900;
            int           t1 = 0;
            const decimal p  = 50;
            int           s  = 100;

            string FILE1 = TikWriter.SafeFilename(SYM, PATH, d);

            TestTikWriterReader.removefile(FILE1);
            string FILE2 = TikWriter.SafeFilename(SYM, PATH, d + 1);

            TestTikWriterReader.removefile(FILE2);


            Tick[] data = new Tick[]
            {
                TickImpl.NewTrade(SYM, d, t++, p, s, string.Empty),
                TickImpl.NewTrade(SYM, d, t++, p, s, string.Empty),
                TickImpl.NewTrade(SYM, d, t++, p, s, string.Empty),
                TickImpl.NewTrade(SYM, d, t++, p, s, string.Empty),
                TickImpl.NewTrade(SYM, d, t++, p, s, string.Empty),
                // day two
                TickImpl.NewTrade(SYM, ++d, t1++, p, s, string.Empty),
                TickImpl.NewTrade(SYM, d, t1++, p, s, string.Empty),
                TickImpl.NewTrade(SYM, d, t1++, p, s, string.Empty),
                TickImpl.NewTrade(SYM, d, t1++, p, s, string.Empty),
                TickImpl.NewTrade(SYM, d, t1++, p, s, string.Empty),
            };


            TickArchiver ta = new TickArchiver(Environment.CurrentDirectory);

            for (int i = 0; i < data.Length; i++)
            {
                ta.newTick(data[i]);
            }
            ta.Stop();

            // read file back in from files
            if (System.IO.File.Exists(FILE1))
            {
                TikReader tr = new TikReader(FILE1);
                tr.gotTick += new TickDelegate(tr_gotTick);
                while (tr.NextTick())
                {
                    ;
                }
                tr.Close();
            }

            if (System.IO.File.Exists(FILE2))
            {
                TikReader tr2 = new TikReader(FILE2);
                tr2.gotTick += new TickDelegate(tr2_gotTick);
                while (tr2.NextTick())
                {
                    ;
                }
                tr2.Close();
            }

            // verify length
            Assert.AreEqual(5, readdata2.Count);
            Assert.AreEqual(5, readdata.Count);

            TestTikWriterReader.removefile(FILE1);
            TestTikWriterReader.removefile(FILE2);
        }
Esempio n. 7
0
        public void Multiday()
        {
            _readdata.Clear();
            _readdata2.Clear();
            int           d  = 20100223;
            int           t  = 235900;
            int           t1 = 0;
            const decimal p  = 50;
            int           s  = 100;

            string file1 = TikWriter.SafeFilename(Sym, _path, d);

            TestTikWriterReader.Removefile(file1);
            string file2 = TikWriter.SafeFilename(Sym, _path, d + 1);

            TestTikWriterReader.Removefile(file2);

            Tick[] data =
            {
                TickImpl.NewTrade(Sym, d,   t++,  p, s, string.Empty),
                TickImpl.NewTrade(Sym, d,   t++,  p, s, string.Empty),
                TickImpl.NewTrade(Sym, d,   t++,  p, s, string.Empty),
                TickImpl.NewTrade(Sym, d,   t++,  p, s, string.Empty),
                TickImpl.NewTrade(Sym, d,   t++,  p, s, string.Empty),
                // day two
                TickImpl.NewTrade(Sym, ++d, t1++, p, s, string.Empty),
                TickImpl.NewTrade(Sym, d,   t1++, p, s, string.Empty),
                TickImpl.NewTrade(Sym, d,   t1++, p, s, string.Empty),
                TickImpl.NewTrade(Sym, d,   t1++, p, s, string.Empty),
                TickImpl.NewTrade(Sym, d,   t1++, p, s, string.Empty),
            };

            TickArchiver ta = new TickArchiver(Environment.CurrentDirectory);

            for (int i = 0; i < data.Length; i++)
            {
                ta.NewTick(data[i]);
            }
            ta.Stop();

            // read file back in from files
            if (System.IO.File.Exists(file1))
            {
                TikReader tr = new TikReader(file1);
                tr.GotTick += tr_gotTick;
                while (tr.NextTick())
                {
                    ;
                }
                tr.Close();
            }

            if (System.IO.File.Exists(file2))
            {
                TikReader tr2 = new TikReader(file2);
                tr2.GotTick += tr2_gotTick;
                while (tr2.NextTick())
                {
                    ;
                }
                tr2.Close();
            }

            // verify length
            Assert.Equal(5, _readdata2.Count);
            Assert.Equal(5, _readdata.Count);

            TestTikWriterReader.Removefile(file1);
            TestTikWriterReader.Removefile(file2);
        }