我是FIX协议的新手。我们使用TCP网络流建立连接,然后我们读取并向此流写入FIX消息。但是当我发送登录消息时,我得到的只是0。
如果有人可以共享一段工作代码,那将会很有帮助。
NetworkStream stm = openStream();
ASCIIEncoding asen = new ASCIIEncoding();
byte[] ba = asen.GetBytes(data);
Console.WriteLine("Transmitting.....");
stm.Write(ba, 0, ba.Length);
byte[] bb = new byte[1024];
while (true)
{
int k = stm.Read(bb, 0, 1024);
if (k != 0)
{
for (int i = 0; i < k; i++)
Console.Write(Convert.ToChar(bb[i]));
Console.Write(k);
}
}
答案 0 :(得分:0)
在您发送LOGON (35=A)
消息后,我假设您是发起人方。
要登录FIX服务器,您需要
LOGON message (35=A)
LOGON message (35=A)
Heartbeat messages (35=0)
我建议您使用FIX库来处理FIX消息。 FIX协议有几条消息(session messages
,application messages
等),有些是非常复杂的消息。
我已将http://quickfixengine.org/用于dotnet和c ++,将quickfix/j用于java。
如果您使用图书馆,它会处理所有"session messages"
,您只需处理"application messages"
,例如NewOrderSingle(35=D)
,ExecutionReport(35=8)
等
要使FIX Connection保持运行,您(或库)需要交换多个"session messages"
来同步ID。 ID(双方)非常重要,请正确接收消息。