コード例 #1
0
        public void PlaceMarketOrder(DataTypess.Order order)
        {
            //Console.WriteLine("__(0)try send {0}", UserName);
            String datatToWrite = "";

            try
            {
                datatToWrite = "SendOrder;" + order.Symbol + ";" + Convert.ToString(order.Direction) + ";" + Convert.ToString(order.Lots, CultureInfo.InvariantCulture) + ";" + order.OrderID + ";" + username;
                writer.WriteLine(datatToWrite);
                //Console.WriteLine("__(1)sended {0}", UserName);
                String line = reader.ReadLine();
                //Console.WriteLine("**_(2)Readed {0} in {1}",line, username);
                if (line.Length != 0)
                {
                    if (line.Equals("OK"))
                    {
                        apiEventListener.Invoke(Presets.ORDER_FILLED, order);
                    }
                    else
                    {
                        order.Comment = line;
                        apiEventListener.Invoke(Presets.ORDER_NOT_FILLED, order);
                    }
                }
                else
                {
                    apiEventListener.Invoke(Presets.ORDER_REJECTED, order);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception in PlaceMarketOrder. Additional info : " + e.Message);
            }
        }
コード例 #2
0
 public void SendOrder(DataTypess.Order order)
 {
     lock (queueLock)
     {
         //Console.WriteLine("Add to queue in {0}",UserName);
         queue.Enqueue(order);
     }
 }
コード例 #3
0
 public void CloseOrder(DataTypess.Order order)
 {
     order.Direction = order.Direction == 0 ? 1 : 0;
     lock (queueLock)
     {
         //Console.WriteLine("Add to queue in {0}", UserName);
         queue.Enqueue(order);
     }
 }
コード例 #4
0
        private void ConnectionManager()
        {
            client = new TcpClient("192.168.2.80", 9001); //83
            String line;

            try
            {
                reader           = new StreamReader(client.GetStream(), new UTF8Encoding());
                writer           = new StreamWriter(client.GetStream(), new UTF8Encoding());
                writer.AutoFlush = true;
            }
            catch (Exception e)
            {
                Console.WriteLine("{0} : Error connection to stream", UserName);
                Console.WriteLine("Additional info : " + e.Message);
                return;
            }

            try
            {
                writer.WriteLine("Connect;" + UserName);

                line = "";
                line = reader.ReadLine();
                if (line.Equals("OK"))
                {
                    apiEventListener.Invoke(Presets.LOGGINED, new DataTypess.Order());
                }
                else
                {
                    apiEventListener.Invoke(Presets.DISCONNECTED, new DataTypess.Order());
                }
                //loop
                DataTypess.Order order = null;

                while (isLive)
                {
                    order = null;
                    lock (queueLock)
                    {
                        if (queue.Count != 0)
                        {
                            order = queue.Dequeue();
                            //Console.WriteLine("Dequeue an order in {0}", UserName);
                        }
                    }
                    if (order != null)
                    {
                        PlaceMarketOrder(order);
                    }
                    Thread.Sleep(500);
                }
                Console.WriteLine(getIdent() + " __ Exit from account");
            }
            catch (Exception e)
            {
                Console.WriteLine("{0} : Exception occured while try to send datat to server");
                Console.WriteLine("{0} : Exception detailis : " + e.Message);
                try
                {
                    client.Close();
                }
                catch (Exception e2)
                {
                    Console.WriteLine("{0} : Cannot close socket, so exit thread without closing socket");
                }
                return;
            }
        }