使用FIX50SP2版本。 在 Quickfix 存储库中,有 FIX50SP2 和 FIXT11 的消息: https://github.com/connamara/quickfixn/tree/master/Messages
ToAdmin
方法中实现身份验证?这是当前的片段:
public void ToAdmin(QuickFix.Message message, SessionID sessionId)
{
// Customize admin messages before sending
string msgType = message.Header.GetString(Tags.MsgType);
if (msgType == MsgType.LOGON)
{
// Coinbase-specific fields
string apiKey = _settings.Get(sessionId).GetString("SenderCompID"); // API Key
string secret = _settings.Get(sessionId).GetString("Secret"); // API Secret
string passphrase = _settings.Get(sessionId).GetString("Passphrase"); // API Passphrase
实现此 API:https://docs.cdp.coinbase.com/exchange/docs/fix-msg-order-entry-50#logon-35a
我不确定你读了什么文档,但你的做法是完全错误的。
创建和发送消息应该看起来有点类似,这是我直接从网站文档复制/粘贴的。
FIX44.NewOrderSingle order = new FIX44.NewOrderSingle(
new ClOrdID("1234"),
new Symbol("AAPL"),
new Side(Side.BUY),
new TransactTime(DateTime.Now),
new OrdType(OrdType.MARKET));
// add optional fields here if needed
Session.SendToTarget(order, sessionID);
您将使用
FIX50SP2
而不是 FIX44
。 你不用担心FIXT
。
ToAdmin
用于在传出管理消息发送给交易对手之前拦截它们,以防您需要调整它们。 最常见的是,它用于将用户名/密码字段注入登录消息中。 我不知道你想做什么,但看起来这是基于误解。
您看过 QF/n 示例吗? 我强烈建议在不同的终端中运行 TradeClient 和 Executor,然后检查代码。