예제 #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Market App");

            using (ServiceHost host = new ServiceHost(typeof(MarketService)))
            {
                // Init Market Service
                host.Open();
                Console.WriteLine("The service is ready at: {0}", host.BaseAddresses.FirstOrDefault().ToString());

                // Init MarketData Publisher
                InstanceContext      site      = new InstanceContext(new MarketPublisher());
                MarketContractClient publisher = new MarketContractClient(site);

                // Evolve for MarketTickInterval
                var      config     = new MarketConfiguration();
                var      logNormal  = new LogNormalMarket(config);
                TimeSpan evolveTime = TimeSpan.FromHours(0);
                var      myTimer    = new System.Timers.Timer();
                myTimer.Elapsed += (sender, e) => EvolveAndPublish(sender, logNormal, evolveTime, publisher);
                myTimer.Interval = config.MarketTickInterval.TotalMilliseconds;
                myTimer.Enabled  = true;

                //Publish MarketData
                Console.ReadKey();


                host.Close();
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="LogNormalMarket"/> class.
 /// </summary>
 /// <param name="marketConfiguration">The market configuration.</param>
 public LogNormalMarket(MarketConfiguration marketConfiguration)
 {
     _drift      = marketConfiguration.Drift;
     _volatility = marketConfiguration.Volatility;
     _random     = new Random();
     Time        = marketConfiguration.StartTime;
     StockPrice  = marketConfiguration.InitialStockPrice;
     VolSurface  = new FlatVolSurface(marketConfiguration.Volatility);
 }