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); } }
public void SendOrder(DataTypess.Order order) { lock (queueLock) { //Console.WriteLine("Add to queue in {0}",UserName); queue.Enqueue(order); } }
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); } }
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; } }