Exemple #1
0
 public Reader()
 {
     lock (readerListLocker) {
         readerList.Add(this);
     }
     tickFile = Factory.TickUtil.TickFile();
 }
Exemple #2
0
        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;
 }
Exemple #4
0
 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);
     }
 }
Exemple #5
0
        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++;
        }