public Reader() { lock (readerListLocker) { readerList.Add(this); } tickFile = Factory.TickUtil.TickFile(); }
public TickWriterDefault(bool eraseFileToStart) { this.eraseFileToStart = eraseFileToStart; tickFile = Factory.TickUtil.TickFile(); writeQueue = Factory.Parallel.TickQueue(typeof(TickWriter)); writeQueue.StartEnqueue = Start; var property = "PriceDataFolder"; priceDataFolder = Factory.Settings[property]; if (priceDataFolder == null) { throw new ApplicationException("Must set " + property + " property in app.config"); } property = "AppDataFolder"; appDataFolder = Factory.Settings[property]; if (appDataFolder == null) { throw new ApplicationException("Must set " + property + " property in app.config"); } }
public SimulateSymbolPlayback(FIXSimulatorSupport fixSimulatorSupport, QuoteSimulatorSupport quoteSimulatorSupport, string symbolString, Action <Message, SymbolInfo, Tick> onTick, Action <PhysicalFill, CreateOrChangeOrder> onPhysicalFill, Action <CreateOrChangeOrder, string> onRejectOrder) { log.Register(this); this.fixSimulatorSupport = fixSimulatorSupport; this.quoteSimulatorSupport = quoteSimulatorSupport; this.onTick = onTick; this.symbol = Factory.Symbol.LookupSymbol(symbolString); reader = Factory.TickUtil.TickFile(); this.symbolString = symbolString; reader.Initialize("Test\\MockProviderData", symbolString, TickFileMode.Read); fillSimulator = Factory.Utility.FillSimulator("FIX", Symbol, false, true, null); fillSimulator.EnableSyncTicks = SyncTicks.Enabled; FillSimulator.OnPhysicalFill = onPhysicalFill; FillSimulator.OnRejectOrder = onRejectOrder; }
public SimulateSymbolSyncTicks(FIXSimulatorSupport fixSimulatorSupport, QuoteSimulatorSupport quoteSimulatorSupport, string symbolString, PartialFillSimulation partialFillSimulation, TimeStamp endTime, long id) { log.Register(this); this.id = id; this.fixSimulatorSupport = fixSimulatorSupport; this.quoteSimulatorSupport = quoteSimulatorSupport; this.onTick = quoteSimulatorSupport.OnTick; this.onEndTick = quoteSimulatorSupport.OnEndTick; this.PartialFillSimulation = partialFillSimulation; this.symbolString = symbolString; this.symbol = Factory.Symbol.LookupSymbol(symbolString); fillSimulator = Factory.Utility.FillSimulator("FIX", Symbol, false, true, null); fillSimulator.EnableSyncTicks = SyncTicks.Enabled; FillSimulator.OnPhysicalFill = fixSimulatorSupport.OnPhysicalFill; FillSimulator.OnRejectOrder = fixSimulatorSupport.OnRejectOrder; fillSimulator.PartialFillSimulation = partialFillSimulation; tickSync = SyncTicks.GetTickSync(Symbol.BinaryIdentifier); latency = new LatencyMetric("SimulateSymbolSyncTicks-" + symbolString.StripInvalidPathChars()); diagnoseMetric = Diagnose.RegisterMetric("Simulator"); if (debug) { log.Debug("Opening tick file for reading."); } reader = Factory.TickUtil.TickFile(); try { reader.Initialize("Test\\MockProviderData", symbolString, TickFileMode.Read); reader.EndTime = endTime; } catch (FileNotFoundException ex) { log.Info("File for symbol " + symbolString + " not found: " + ex.Message); } }
private void writeATick(double insertPrice, int volume) { if (tsBits[1].Length <= 3) { tickTime = new TimeStamp(tsBits[0] + " " + tsBits[1] + ":00"); } else { tickTime = new TimeStamp(tsBits[0] + " " + tsBits[1]); } utcTime = tickTime; utcTime.AddSeconds(-GetUtcOffset(tickTime)); double price = insertPrice; tickIO.SetTime(utcTime); if (volume >= 1) { tickIO.SetTrade(price, volume); } else { // tickIO.SetQuote(price, price); tickIO.SetTrade(price, volume); } if (tickWriter == null) { tickWriter = Factory.TickUtil.TickFile(); string folder = "DataCache"; tickWriter.EraseFileToStart = true; tickWriter.Initialize(folder, symbol.Symbol, TickFileMode.Write); } // Console.WriteLine(tickIO); tickWriter.WriteTick(tickIO); countTicksOut++; }