Exemplo n.º 1
0
        public void ExtractData()
        {
            Random rand = new Random();

            var pairs     = new[] { "EUR/GBP", "EUR/USD", "EUR/CHF", "GBP/USD", "USD/CHF", "USD/HUF", "EUR/HUF" };
            var customers = new[] { "CUST1", "CUST2", "CUST3", "CUST4", "CUST5", "CUST6", "CUST7" };

            long TradeIdnum = 0;

            for (int i = 0; i < 7; i++)
            {
                var newquote = new Quote
                {
                    Pair = pairs[i],
                    Ask  = Math.Round(rand.NextDouble(), 5),
                    Bid  = Math.Round(rand.NextDouble(), 5),
                    Cur1 = pairs[i].Substring(0, 3),
                    Cur2 = pairs[i].Substring(pairs[i].Length - 3, 3),
                };
                ////Console.WriteLine(newquote);
                LogInfo(newquote.ToString());
                quotes.AddOrUpdate(newquote);
            }

            for (int i = 0; i < 6; i++)
            {
                //var newcustomer = new Balance(i, rand.Next(100), rand.Next(100));
                var newcustomer = new BalancePerClient(i, 100, 0, 0);

                clientBalances.AddOrUpdate(newcustomer);
                /////Console.WriteLine("added customer: " + newcustomer);
                //appendlog("added customer: " + newcustomer);
            }

            while (true)
            {
                var pair = pairs[rand.Next(6)];

                var newquote = new Quote
                {
                    Pair = pair,
                    Ask  = Math.Round(rand.NextDouble(), 5),
                    Bid  = Math.Round(rand.NextDouble(), 5),
                    Cur1 = pair.Substring(0, 3),
                    Cur2 = pair.Substring(pair.Length - 3, 3)
                };
                ////Console.WriteLine(newquote);
                LogInfo(newquote.ToString());
                quotes.AddOrUpdate(newquote);

                var currentprice = Math.Round(rand.NextDouble(), 5);
                var amount       = rand.Next(-100, 100);
                if (amount == 0)
                {
                    amount = 1;
                }
                var Pair = pairs[rand.Next(6)];

                var newtrade = new Trade
                {
                    Id       = myTrades.Count,
                    ClientId = rand.Next(6),
                    Pair     = Pair,
                    Status   = Status.Open,
                    Amount1  = amount,
                    Amount2  = amount * currentprice * (-1),
                    Cur1     = Pair.Substring(0, 3),
                    Cur2     = Pair.Substring(Pair.Length - 3, 3),
                };

                if (newtrade.Amount1 > 0)
                {
                    newtrade.OpenPrice    = quotes.Items.Where(r => r.Pair == newtrade.Pair).First().Ask;
                    newtrade.CurrentPrice = quotes.Items.Where(r => r.Pair == newtrade.Pair).First().Bid;
                }
                else
                {
                    newtrade.OpenPrice    = quotes.Items.Where(r => r.Pair == newtrade.Pair).First().Bid;
                    newtrade.CurrentPrice = quotes.Items.Where(r => r.Pair == newtrade.Pair).First().Ask;
                }


                if (TradeIdnum < 20000)
                {
                    TradeIdnum = TradeIdnum + 1;
                    string printtext = newtrade.ToString();

                    LogInfo(printtext);
                    tradesModifierService.AddMyTrade(newtrade);
                }
                Thread.Sleep(10);
            }
        }
 public void PushClientBalanceRemove(BalancePerClient clientBalance)
 {
     Console.WriteLine(clientBalance);
 }