public void SendSecurityDefinition() { HeaderMessage msHeader = new HeaderMessage(ApplicationLevel.SecurityDefinitionRequest, _messageCount++); SecurityDefinition msSecurityDefinition = new SecurityDefinition(); msHeader.BodyLength = msHeader.GetHeaderSize() + msSecurityDefinition.GetMessageSize(); TrailerMessage msTrailer = new TrailerMessage(msHeader.ToString() + msSecurityDefinition.ToString()); //Формируем полное готовое сообщение string fullMessage = msHeader.ToString() + msSecurityDefinition.ToString() + msTrailer.ToString(); SendMessage(fullMessage); }
public void SendRequestPosition() { HeaderMessage msHeader = new HeaderMessage("AN", _messageCount++); RequestPositions msRequestPositions = new RequestPositions(); msHeader.BodyLength = msHeader.GetHeaderSize() + msRequestPositions.GetMessageSize(); TrailerMessage msTrailer = new TrailerMessage(msHeader.ToString() + msRequestPositions.ToString()); //Формируем полное готовое сообщение string fullMessage = msHeader.ToString() + msRequestPositions.ToString() + msTrailer.ToString(); SendMessage(fullMessage); }
public void Order(string price, string operation, OrdType ordType) { HeaderMessage msHeader = new HeaderMessage(ApplicationLevel.NewOrderSingle, _messageCount++); OrderMessage msOrder = new OrderMessage(price, operation, ordType); TrailerMessage msTrailer = new TrailerMessage(msHeader.ToString() + msOrder.ToString()); msHeader.BodyLength = msHeader.MessageSize + msOrder.MessageSize; // GetMessageSize() //Формируем полное готовое сообщение string fullMessage = msHeader.MessageString + msOrder.MessageString + msTrailer.ToString(); // ToString() SendMessage(fullMessage); }
public void HeartBeat() { HeaderMessage msHeader = new HeaderMessage(SessionLevel.HeartBeat, _messageCount++); HeartBeatMessage msHeartBeat = new HeartBeatMessage("CRT"); // ??? msHeader.BodyLength = msHeader.GetHeaderSize() + msHeartBeat.GetMessageSize(); TrailerMessage msTrailer = new TrailerMessage(msHeader.ToString() + msHeartBeat.ToString()); //Формируем полное готовое сообщение string fullMessage = msHeader.ToString() + msHeartBeat.ToString() + msTrailer.ToString(); SendMessage(fullMessage); }
public void TestRequest() { //Создаем заголовок HeaderMessage msHeader = new HeaderMessage(SessionLevel.TestRequest, _messageCount++); TestRequest msTestRequest = new TestRequest(); msHeader.BodyLength = msHeader.GetHeaderSize() + msTestRequest.GetMessageSize(); TrailerMessage msTrailer = new TrailerMessage(msHeader.ToString() + msTestRequest.ToString()); //Формируем полное готовое сообщение string fullMessage = msHeader.ToString() + msTestRequest.ToString() + msTrailer.ToString(); SendMessage(fullMessage); }
public void Logon(int encryptMethod = 0, int heartBtInt = 5, bool resetSeqNumFlag = true) // 108=3000 это слишком много, обычно используется 90. Часто меньше. { //Создаем заголовок HeaderMessage msHeader = new HeaderMessage(SessionLevel.Logon, _messageCount++); //Тип сообщения на установку сессии "A" //Создаем сообщение на подключение onLogon LogonMessage msLogon = new LogonMessage(encryptMethod, heartBtInt, resetSeqNumFlag); //Вычисляем длину сообщения msHeader.BodyLength = msHeader.GetHeaderSize() + msLogon.GetMessageSize(); // было msLogon.GetMessageSize() ? MessageSize //Создаем концовку сообщения TrailerMessage msTrailer = new TrailerMessage(msHeader.ToString() + msLogon.ToString()); // ??? MessageString //Формируем полное готовое сообщение string fullMessage = msHeader.ToString() + msLogon.ToString() + msTrailer.ToString(); // ??? ToString() SendMessage(fullMessage); }
internal void OnLogoutCall(HeaderMessage header) { OnLogout?.Invoke((header)); }
public static void fw_onLogout(HeaderMessage hm) { Console.WriteLine("{0}: Принято сообщение на отключение.\n{1},{2},{3},{4}", DateTime.Now.ToString("HH:mm:ss.fff"), hm.SenderCompID, hm.TargetCompID, hm.MsgSeqNum, hm.SendingTime); }