/// <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); }
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); }
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); }
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); } }
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); } }
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); }
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); }