public Option(int id, MarketSimulationMaof ms)
            {
                object o = ms.securities[id];

                if (o != null)
                {
                    exists = true;
                    md     = (K300MaofType)o;
                }
                else
                {
                    exists = false;
                }
            }
Beispiel #2
0
        protected void debugMarketSimulationMaofCallback(IWrite iWrite, string cmdName, object[] cmdArguments)
        {
            string cmd = "", arg1 = "", arg2 = "";

            switch (cmdArguments.Length)
            {
            case 0:
            case 1:
                iWrite.WriteLine("Usage: maof create <backlogfile> [speedup] | stop | start");
                break;

            case 2:
                cmd = cmdArguments[1].ToString().ToLower();
                break;

            case 3:
                cmd  = cmdArguments[1].ToString().ToLower();
                arg1 = cmdArguments[2].ToString();
                break;

            case 4:
                cmd  = cmdArguments[1].ToString().ToLower();
                arg1 = cmdArguments[2].ToString();
                arg2 = cmdArguments[3].ToString();
                break;
            }

            if (cmd == "stop")
            {
                if (dataMaofGenerator != default(MaofDataGeneratorLogFile))
                {
                    dataMaofGenerator.Stop();
                    // dataMaofGenerator.RemoveConsumer(marketSimulationMaof);
                    marketSimulationMaof.Dispose();
                    marketSimulationMaof = default(MarketSimulationMaof);
                    dataMaofGenerator    = default(MaofDataGeneratorLogFile);

                    iWrite.WriteLine("maof stop called");
                }
                else
                {
                    iWrite.WriteLine("No active simulation to stop.");
                }
            }
            else if (cmd == "start")             // log file name
            {
                if (this.dataMaofGenerator != default(MaofDataGeneratorLogFile))
                {
                    // call EventGenerator.Start() - start the data stream
                    dataMaofGenerator.Start();
                }
                else
                {
                    iWrite.WriteLine("Use 'create' first to create the market simulation");
                }
            }
            else if (cmd == "create")             // log file name
            {
                string logfile = arg1;
                double speedup = JQuant.Convert.StrToDouble(arg2, 1.0);

                //if K300Class instance is not already initilazed, do it now
                if (this.dataMaofGenerator == default(MaofDataGeneratorLogFile))
                {
                    this.dataMaofGenerator =
                        new MaofDataGeneratorLogFile(logfile, speedup, 0);

                    //I need a cast here, because MarketSimulationMaof expects parameter of type IProducer
                    marketSimulationMaof = new MarketSimulationMaof();
                    //                    dataMaofGenerator.AddConsumer(marketSimulationMaof);

                    //                  marketSimulationMaof.EnableTrace(80608128, true);
                    //                  marketSimulationMaof.EnableTrace(80616808, true);
                    iWrite.WriteLine("Use 'start' to start the market simulation");
                }
                else                    //for the moment I don't want the mess of running multiple simulations simultaneously.
                {
                    iWrite.WriteLine("Maof simulation " + dataMaofGenerator.Name + "is already running.");
                    iWrite.WriteLine("Only a single simulation at a time is possible.");
                }
            }
        }