Version FIX50SP2.
In quickfix repo, there are messages for both FIX50SP2 and FIXT11: https://github.com/connamara/quickfixn/tree/master/Messages
ToAdmin
method?This is the current snippet to intercept ToAdmin so that to add credentials:
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
Implementing this API: https://docs.cdp.coinbase.com/exchange/docs/fix-msg-order-entry-50#logon-35a
I'm not sure what docs you read, but you are going about this quite wrong.
Creating and sending a message should look somewhat similar this, which I'm copy/pasting right from the web site docs.
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);
You will be using FIX50SP2
instead of FIX44
.
In FIX5, the consortium split "admin" messages (logon, logout, heartbeat, etc.) into their own dictionary, and that's what FIXT11 is. You probably won't be creating those messages manually.
ToAdmin
is for intercepting outgoing admin messages before they go out to the counterparty, in case you need to tweak them. Most often it's used to inject username/password fields into logon messages. I don't know what you are attempting to do, but it looks like it's based on a misunderstanding.
Have you looked at the QF/n examples? I highly recommend running the TradeClient and Executor against each other in different terminals, and then checking out the code.