{{Quickfixn}} FpML file

Ashutosh Mishra A.Mishra at ny.tr.mufg.jp
Fri Oct 25 10:16:33 PDT 2013


Hi Walter,
                 I tried everything but am still stuck with the same error: "Illegal characters in path. at System.IO.Path...."
Here is all my code and configuration files:

@@@@@Initiator@@@@
# default settings for sessions
[DEFAULT]
FileStorePath="C:\Tradeweb_Application_Ver_1.0.1\QuickFixFiles"
FileLogPath="C:\Tradeweb_Application_Ver_1.0.1\QuickFixFiles\log"
ConnectionType=initiator
ReconnectInterval=60
StartTime=12:30:00
EndTime=21:30:00
SocketConnectPort=900
SocketConnectHost=127.0.0.1
ResetOnLogon=Y

# session definition
[SESSION]
# inherit FileStorePath, FileLogPath, ConnectionType,
# ReconnectInterval and SenderCompID from default
BeginString=FIX.4.4
SenderCompID=JTR
TargetCompID=TRADEWEB
# overide default setting for RecconnectInterval
ReconnectInterval=30
HeartBtInt=30
DataDictionary="C:\Tradeweb_Application_Ver_1.0.1\QuickFixFiles\FIX44.xml"
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


@@@@@@@Program.cs@@@@@@
using System;
using System.IO;
using System.Xml;
using System.Xml.Schema;
using System.Xml.XPath;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Data;
using System.Xml.Linq;
using System.Xml.Serialization;
using QuickFix;
using QuickFix.Fields;
using System.Threading;


namespace MutbTradeweb_Application_Ver_1._0._1
{
   public class Program
   {
       static void Main(string[] args)
       {
           try
           {

               QuickFix.SessionSettings settings = new QuickFix.SessionSettings(@"C:\Tradeweb_Application_Ver_1.0.1\TradeWebClientInitiator.cfg");
               TradeClientApp application = new TradeClientApp();
               QuickFix.IMessageStoreFactory storeFactory = new QuickFix.FileStoreFactory(settings);
               QuickFix.ILogFactory logFactory = new QuickFix.ScreenLogFactory(settings);
               QuickFix.Transport.SocketInitiator initiator = new QuickFix.Transport.SocketInitiator(application, storeFactory, settings, logFactory);
               initiator.Start();
               application.Run();
               Thread.Sleep(3000);
               //SessionID sessionID = (SessionID)l;
               //QuickFix.FIX44.NewOrderSingle order = new QuickFix.FIX44.NewOrderSingle(new ClOrdID("DLF"),
               //     new HandlInst(HandlInst.MANUAL_ORDER), new Symbol("DLF"), new Side(Side.BUY),
               //     new TransactTime(DateTime.Now), new OrdType(OrdType.LIMIT));
               //order.Set(new OrderQty(45));
               //order.Set(new Price(25));
               //Session.SendToTarget(order, sessionID);
               Console.ReadLine();
               initiator.Stop();
           }
           catch (Exception e)
           {
               Console.WriteLine(e.Message);
               Console.WriteLine(e.StackTrace);
           }
           Environment.Exit(1);
       }
    }
}
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@@@@@@TradeClientApp.cs@@@@@@@@@@@@@@@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using QuickFix;
using QuickFix.Fields;
namespace MutbTradeweb_Application_Ver_1._0._1
{
    public class TradeClientApp : QuickFix.MessageCracker, QuickFix.IApplication
    {
        Session _session = null;

       //rivate string userName, password;
        //private SessionID settings;

        // This variable is a kludge for developer test purposes.  Don't do this on a production application.
        public IInitiator MyInitiator = null;

        #region IApplication interface overrides
        public void OnCreate(SessionID sessionID)
        {
            _session = Session.LookupSession(sessionID);
        }
        public void OnLogon(SessionID sessionID)
        {
            //Console.WriteLine("Logon - " + sessionID.ToString());
        }
        public void OnLogout(SessionID sessionID)
        {
            //Console.WriteLine("Logout - " + sessionID.ToString());
        }


        public void FromAdmin(QuickFix.Message value, SessionID sessionID)
        {
            var logon = (QuickFix.FIX44.Logon)value;
            if (logon != null)
            {
                string userName = logon.Username.getValue();
                //string expectedPassword = GetUserPassword[userName];
                string expectedPassword = "abc";
                string suppliedPassword = logon.Password.getValue();
                if (expectedPassword != suppliedPassword)
                throw new RejectLogon("Wrong Password");
            }

        }
        public void ToAdmin(QuickFix.Message value, QuickFix.SessionID sessionID)
        {
            if (value.Header.GetField(Tags.MsgType) == MsgType.LOGON)
            {
                if (!string.IsNullOrEmpty("a1234") && !string.IsNullOrEmpty("abc"))
                {
                    var logon = (QuickFix.FIX44.Logon)value;
                    logon.Set(new EncryptMethod(0));
                    logon.Set(new HeartBtInt(30));
                    logon.Set(new Password("acbd"));
                    logon.Set(new ResetSeqNumFlag(true));
                }

            }

        }
        public void FromApp(QuickFix.Message value, SessionID session)
        {

            if (value is QuickFix.FIX44.ExecutionReport)
            {

                Price price = new Price();
                value.GetField(price);

                ClOrdID clOrdID = new ClOrdID();
                value.GetField(clOrdID);


            }

            Console.WriteLine("Got message from App" + value.ToString());

        }
        //public void FromApp(Message message, SessionID sessionID)
        //{
        //    Console.WriteLine("IN:  " + message.ToString());
        //    try
        //    {
        //        Crack(message, sessionID);
        //    }
        //    catch (Exception ex)
        //    {
        //        Console.WriteLine("==Cracker exception==");
        //        Console.WriteLine(ex.ToString());
        //        Console.WriteLine(ex.StackTrace);
        //    }
        //}

        public void ToApp(Message message, SessionID sessionID)
        {
            try
            {
                bool possDupFlag = false;
                if (message.Header.IsSetField(QuickFix.Fields.Tags.PossDupFlag))
                {
                    possDupFlag = QuickFix.Fields.Converters.BoolConverter.Convert(
                        message.Header.GetField(QuickFix.Fields.Tags.PossDupFlag)); /// FIXME
                }
                if (possDupFlag)
                    throw new DoNotSend();
            }
            catch (FieldNotFoundException)
            { }


            Console.WriteLine();
            Console.WriteLine("OUT: " + message.ToString());
        }
        #endregion

        #region MessageCracker handlers
        public void OnMessage(QuickFix.FIX44.ExecutionReport m, SessionID s)
        {
            Console.WriteLine("Received execution report");
        }

        public void OnMessage(QuickFix.FIX44.OrderCancelReject m, SessionID s)
        {
            Console.WriteLine("Received order cancel reject");
        }
        #endregion

        public void Run()
        {
            while (true)
            {
                try
                {
                    char action = QueryAction();
                   if (action == '1')
                        QueryEnterOrder();
                    else if (action == '2')
                        QueryCancelOrder();
                    else if (action == '3')
                        QueryReplaceOrder();
                    else if (action == '4')
                        QueryMarketDataRequest();
                    else if (action == 'g')
                    {
                        if (this.MyInitiator.IsStopped)
                        {
                            Console.WriteLine("Restarting initiator...");
                            this.MyInitiator.Start();
                        }
                        else
                            Console.WriteLine("Already started.");
                    }
                    else if (action == 'x')
                    {
                        if (this.MyInitiator.IsStopped)
                            Console.WriteLine("Already stopped.");
                        else
                        {
                            Console.WriteLine("Stopping initiator...");
                            this.MyInitiator.Stop();
                        }
                    }
                    else if (action == 'q' || action == 'Q')
                        break;
                }
                catch (System.Exception e)
                {
                    Console.WriteLine("Message Not Sent: " + e.Message);
                    Console.WriteLine("StackTrace: " + e.StackTrace);
                }
            }
            Console.WriteLine("Program shutdown.");
        }

        private void SendMessage(Message m)
        {
            if (_session != null)
                _session.Send(m);
            else
            {
                // This probably won't ever happen.
                Console.WriteLine("Can't send message: session not created.");
            }
        }


        private char QueryAction()
        {
            // Commands 'g' and 'x' are intentionally hidden.
            Console.Write("\n"
                + "1) Enter Order\n"
                + "2) Cancel Order\n"
                + "3) Replace Order\n"
                + "4) Market data test\n"
                + "Q) Quit\n"
                + "Action: "
            );


            HashSet<string> validActions = new HashSet<string>("1,2,3,4,q,Q,g,x".Split(','));


            string cmd = Console.ReadLine().Trim();
            if (cmd.Length != 1 || validActions.Contains(cmd) == false)
                throw new System.Exception("Invalid action");


            return cmd.ToCharArray()[0];
        }


        private void QueryEnterOrder()
        {
            Console.WriteLine("\nNewOrderSingle");


            QuickFix.FIX44.NewOrderSingle m = QueryNewOrderSingle44();


            if (m != null && QueryConfirm("Send order"))
            {
                m.Header.GetField(Tags.BeginString);
                SendMessage(m);
            }
        }


        private void QueryCancelOrder()
        {
            Console.WriteLine("\nOrderCancelRequest");


            QuickFix.FIX44.OrderCancelRequest m = QueryOrderCancelRequest44();


            if (m != null && QueryConfirm("Cancel order"))
                SendMessage(m);
        }


        private void QueryReplaceOrder()
        {
            Console.WriteLine("\nCancelReplaceRequest");


            QuickFix.FIX44.OrderCancelReplaceRequest m = QueryCancelReplaceRequest44();


            if (m != null && QueryConfirm("Send replace"))
                SendMessage(m);
        }


        private void QueryMarketDataRequest()
        {
            Console.WriteLine("\nMarketDataRequest");


            QuickFix.FIX44.MarketDataRequest m = QueryMarketDataRequest44();


            if (m != null && QueryConfirm("Send market data request"))
                SendMessage(m);
        }


        private bool QueryConfirm(string query)
        {
            Console.WriteLine();
            Console.WriteLine(query + "?: ");
            string line = Console.ReadLine().Trim();
            return (line[0].Equals('y') || line[0].Equals('Y'));
        }


        #region Message creation functions
        private QuickFix.FIX44.NewOrderSingle QueryNewOrderSingle44()
        {
            QuickFix.Fields.OrdType ordType = null;


            QuickFix.FIX44.NewOrderSingle newOrderSingle = new QuickFix.FIX44.NewOrderSingle(
                QueryClOrdID(),
                QuerySymbol(),
                QuerySide(),
                new TransactTime(DateTime.Now),
                ordType = QueryOrdType());


            newOrderSingle.Set(new HandlInst('1'));
            newOrderSingle.Set(QueryOrderQty());
            newOrderSingle.Set(QueryTimeInForce());
            if (ordType.getValue() == OrdType.LIMIT || ordType.getValue() == OrdType.STOP_LIMIT)
                newOrderSingle.Set(QueryPrice());
            if (ordType.getValue() == OrdType.STOP || ordType.getValue() == OrdType.STOP_LIMIT)
                newOrderSingle.Set(QueryStopPx());


            return newOrderSingle;
        }


        private QuickFix.FIX44.OrderCancelRequest QueryOrderCancelRequest44()
        {
            QuickFix.FIX44.OrderCancelRequest orderCancelRequest = new QuickFix.FIX44.OrderCancelRequest(
                QueryOrigClOrdID(),
                QueryClOrdID(),
                QuerySymbol(),
                QuerySide(),
                new TransactTime(DateTime.Now));


            orderCancelRequest.Set(QueryOrderQty());
            return orderCancelRequest;
        }


        private QuickFix.FIX44.OrderCancelReplaceRequest QueryCancelReplaceRequest44()
        {
            QuickFix.FIX44.OrderCancelReplaceRequest ocrr = new QuickFix.FIX44.OrderCancelReplaceRequest(
                QueryOrigClOrdID(),
                QueryClOrdID(),
                QuerySymbol(),
                QuerySide(),
                new TransactTime(DateTime.Now),
                QueryOrdType());


            ocrr.Set(new HandlInst('1'));
            if (QueryConfirm("New price"))
                ocrr.Set(QueryPrice());
            if (QueryConfirm("New quantity"))
                ocrr.Set(QueryOrderQty());


            return ocrr;
        }


        private QuickFix.FIX44.MarketDataRequest QueryMarketDataRequest44()
        {
            MDReqID mdReqID = new MDReqID("MARKETDATAID");
            SubscriptionRequestType subType = new SubscriptionRequestType(SubscriptionRequestType.SNAPSHOT);
            MarketDepth marketDepth = new MarketDepth(0);


            QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup marketDataEntryGroup = new QuickFix.FIX44.MarketDataRequest.NoMDEntryTypesGroup();
            marketDataEntryGroup.Set(new MDEntryType(MDEntryType.BID));


            QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup symbolGroup = new QuickFix.FIX44.MarketDataRequest.NoRelatedSymGroup();
            symbolGroup.Set(new Symbol("LNUX"));


            QuickFix.FIX44.MarketDataRequest message = new QuickFix.FIX44.MarketDataRequest(mdReqID, subType, marketDepth);
            message.AddGroup(marketDataEntryGroup);
            message.AddGroup(symbolGroup);


            return message;
        }
        #endregion


        #region field query private methods
        private ClOrdID QueryClOrdID()
        {
            Console.WriteLine();
            Console.Write("ClOrdID? ");
            return new ClOrdID(Console.ReadLine().Trim());
        }


        private OrigClOrdID QueryOrigClOrdID()
        {
            Console.WriteLine();
            Console.Write("OrigClOrdID? ");
            return new OrigClOrdID(Console.ReadLine().Trim());
        }


        private Symbol QuerySymbol()
        {
            Console.WriteLine();
            Console.Write("Symbol? ");
            return new Symbol(Console.ReadLine().Trim());
        }


        private Side QuerySide()
        {
            Console.WriteLine();
            Console.WriteLine("1) Buy");
            Console.WriteLine("2) Sell");
            Console.WriteLine("3) Sell Short");
            Console.WriteLine("4) Sell Short Exempt");
            Console.WriteLine("5) Cross");
            Console.WriteLine("6) Cross Short");
            Console.WriteLine("7) Cross Short Exempt");
            Console.Write("Side? ");
            string s = Console.ReadLine().Trim();


            char c = ' ';
            switch (s)
            {
                case "1": c = Side.BUY; break;
                case "2": c = Side.SELL; break;
                case "3": c = Side.SELL_SHORT; break;
                case "4": c = Side.SELL_SHORT_EXEMPT; break;
                case "5": c = Side.CROSS; break;
                case "6": c = Side.CROSS_SHORT; break;
                case "7": c = 'A'; break;
                default: throw new Exception("unsupported input");
            }
            return new Side(c);
        }


        private OrdType QueryOrdType()
        {
            Console.WriteLine();
            Console.WriteLine("1) Market");
            Console.WriteLine("2) Limit");
            Console.WriteLine("3) Stop");
            Console.WriteLine("4) Stop Limit");
            Console.Write("OrdType? ");
            string s = Console.ReadLine().Trim();


            char c = ' ';
            switch (s)
            {
                case "1": c = OrdType.MARKET; break;
                case "2": c = OrdType.LIMIT; break;
                case "3": c = OrdType.STOP; break;
                case "4": c = OrdType.STOP_LIMIT; break;
                default: throw new Exception("unsupported input");
            }
            return new OrdType(c);
        }


        private OrderQty QueryOrderQty()
        {
            Console.WriteLine();
            Console.Write("OrderQty? ");
            return new OrderQty(Convert.ToDecimal(Console.ReadLine().Trim()));
        }


        private TimeInForce QueryTimeInForce()
        {
            Console.WriteLine();
            Console.WriteLine("1) Day");
            Console.WriteLine("2) IOC");
            Console.WriteLine("3) OPG");
            Console.WriteLine("4) GTC");
            Console.WriteLine("5) GTX");
            Console.Write("TimeInForce? ");
            string s = Console.ReadLine().Trim();


            char c = ' ';
            switch (s)
            {
                case "1": c = TimeInForce.DAY; break;
                case "2": c = TimeInForce.IMMEDIATE_OR_CANCEL; break;
                case "3": c = TimeInForce.AT_THE_OPENING; break;
                case "4": c = TimeInForce.GOOD_TILL_CANCEL; break;
                case "5": c = TimeInForce.GOOD_TILL_CROSSING; break;
                default: throw new Exception("unsupported input");
            }
            return new TimeInForce(c);
        }


        private Price QueryPrice()
        {
            Console.WriteLine();
            Console.Write("Price? ");
            return new Price(Convert.ToDecimal(Console.ReadLine().Trim()));
        }


        private StopPx QueryStopPx()
        {
            Console.WriteLine();
            Console.Write("StopPx? ");
            return new StopPx(Convert.ToDecimal(Console.ReadLine().Trim()));
        }


        #endregion
    }

}
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Can you please help me with this?

Thanks & Regards,
Ashutosh Mishra

*********************************************************************************
This communication (including any attachments) is intended only or the use of the individual whom it is addressed and may contain information that is privileged, confidential or legally protected.  If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by replying to the message.  Please also delete the message and its attachments, if any, from your computer and destroy any hard copies you may have created.  Thank you for your cooperation.
*********************************************************************************

From: quickfixn-bounces at lists.quickfixn.com [mailto:quickfixn-bounces at lists.quickfixn.com] On Behalf Of Walter Robert Ditzler
Sent: Thursday, October 24, 2013 2:44 PM
To: 'Mailing list for QuickFIX/n'
Subject: Re: {{Quickfixn}} FpML file

Hi,


var file = @"C:\Initiator.cfg";

QuickFix.SessionSettings settings = new QuickFix.SessionSettings(file);

or

System.IO.Path.Combine("C:","Initiator.cfg");

System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(),"Initiator.cfg");


Thanks,

Walter


From: quickfixn-bounces at lists.quickfixn.com<mailto:quickfixn-bounces at lists.quickfixn.com> [mailto:quickfixn-bounces at lists.quickfixn.com] On Behalf Of Ashutosh Mishra
Sent: Donnerstag, 24. Oktober 2013 20:23
To: Mailing list for QuickFIX/n
Subject: Re: {{Quickfixn}} FpML file

Tried the way you said, but It did not work either...

string file = "C:\\Initiator.cfg";

QuickFix.SessionSettings settings = new QuickFix.SessionSettings(@file);

TradeClientApp application = new TradeClientApp();

QuickFix.IMessageStoreFactory storeFactory = new QuickFix.FileStoreFactory(settings);

QuickFix.ILogFactory logFactory = new QuickFix.ScreenLogFactory(settings);

QuickFix.Transport.SocketInitiator initiator = new QuickFix.Transport.SocketInitiator(application, storeFactory, settings, logFactory);

I realized the code breaks when it goes to "QuickFix.Transport.SocketInitiator initiator = new QuickFix.Transport.SocketInitiator(application, storeFactory, settings, logFactory);"

and it directly  goes to catch block after this and gives error. I tries lot of things before posting my probem .. I am aware of C# and command line but as I tried lot of things which did not work, so thought something tricky might be involved. But I am certainly ner wto QuickFix.

Thanks & Regards,
Ashutosh Mishra

*********************************************************************************
This communication (including any attachments) is intended only or the use of the individual whom it is addressed and may contain information that is privileged, confidential or legally protected.  If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by replying to the message.  Please also delete the message and its attachments, if any, from your computer and destroy any hard copies you may have created.  Thank you for your cooperation.
*********************************************************************************

From: quickfixn-bounces at lists.quickfixn.com<mailto:quickfixn-bounces at lists.quickfixn.com> [mailto:quickfixn-bounces at lists.quickfixn.com] On Behalf Of Grant Birchmeier
Sent: Thursday, October 24, 2013 2:05 PM
To: Mailing list for QuickFIX/n
Subject: Re: {{Quickfixn}} FpML file

I think you need to use "\Initiator.cfg" instead of "C:\Initiator.cfg".  It's a windows thing.  Better get, use a relative path instead of an absolute path.

As far as "args[]", that's just command-line arguments, which is a very basic C# feature.  It comes from the "Main" declaration:
   static void Main(string[] args)
I highly recommend that you learn about
C# command-line args
.  It's something
that is taught
quite early in any intro programming class.
 Have a look at this tutorial:
http://msdn.microsoft.com/en-us/library/aa288457(v=vs.71).aspx

Forgive me if I'm mistaken, but I'm getting the impression that you are a beginner to C#.  That's totally okay, but please try to make sure your questions are for QF/n problems and not for general C# help.  There are many other (and better!) places to get general C# help.

Thanks
-Grant



On Thu, Oct 24, 2013 at 12:47 PM, Ashutosh Mishra <A.Mishra at ny.tr.mufg.jp<mailto:A.Mishra at ny.tr.mufg.jp>> wrote:
The file is stored in "C:". Get the following error:
"Configuration Failed: File Initiator.cfg not found(Could not find file...)"
Further, if I intend to use the code that is mentioned on official site:
if (args.Length != 1)
            {  System.Console.WriteLine("usage: TradeClient.exe CONFIG_FILENAME");
                System.Environment.Exit(2);
            }
            string file = args[0];
Where should I place the config file as I am not getting the concept of arg[0]?
Thanks & Regards,
Ashutosh Mishra

*********************************************************************************
This communication (including any attachments) is intended only or the use of the individual whom it is addressed and may contain information that is privileged, confidential or legally protected.  If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by replying to the message.  Please also delete the message and its attachments, if any, from your computer and destroy any hard copies you may have created.  Thank you for your cooperation.
*********************************************************************************

From: quickfixn-bounces at lists.quickfixn.com<mailto:quickfixn-bounces at lists.quickfixn.com> [mailto:quickfixn-bounces at lists.quickfixn.com<mailto:quickfixn-bounces at lists.quickfixn.com>] On Behalf Of Grant Birchmeier
Sent: Thursday, October 24, 2013 1:41 PM

To: Mailing list for QuickFIX/n
Subject: Re: {{Quickfixn}} FpML file

Whereever you want.  The code you used looks fine, assuming that the file really is in "C:".  Is it?  You didn't say what the failure was.

The TradeClient lets you supply the path as a command-line argument.  There's nothing clever happening there.

On Thu, Oct 24, 2013 at 12:29 PM, Ashutosh Mishra <A.Mishra at ny.tr.mufg.jp<mailto:A.Mishra at ny.tr.mufg.jp>> wrote:
Now I know that I have to use the Initiator..Where do I need to put the Initiator.config file?
As if I use it like this : QuickFix.SessionSettings settings = new QuickFix.SessionSettings(@"C:\Initiator.cfg") -- It gives error.
On the official website, the following code :
if (args.Length != 1)
            {
                System.Console.WriteLine("usage: TradeClient.exe CONFIG_FILENAME");
                System.Environment.Exit(2);
            }

            string file = args[0];

Where do I need to define the "file"?

Thanks & Regards,
Ashutosh Mishra

*********************************************************************************
This communication (including any attachments) is intended only or the use of the individual whom it is addressed and may contain information that is privileged, confidential or legally protected.  If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by replying to the message.  Please also delete the message and its attachments, if any, from your computer and destroy any hard copies you may have created.  Thank you for your cooperation.
*********************************************************************************

From: quickfixn-bounces at lists.quickfixn.com<mailto:quickfixn-bounces at lists.quickfixn.com> [mailto:quickfixn-bounces at lists.quickfixn.com<mailto:quickfixn-bounces at lists.quickfixn.com>] On Behalf Of Grant Birchmeier
Sent: Wednesday, October 23, 2013 1:12 PM

To: Mailing list for QuickFIX/n
Subject: Re: {{Quickfixn}} FpML file

"Acceptor"/"Initiator" are just fancy FIX words that mean "server"/"client".

If you are connecting to someone else's FIX server, you need to write an Initiator program.

TradeClient is just one of the example apps.  You can look at it to see how to implement an initiator app.  (A lot of TradeClient's code is actually just command-line processing; the QF-specific parts are actually pretty simple.)

-Grant


On Wed, Oct 23, 2013 at 12:03 PM, Ashutosh Mishra <A.Mishra at ny.tr.mufg.jp<mailto:A.Mishra at ny.tr.mufg.jp>> wrote:
Hi Walter,
                   went into the official website of quckFIX/n -- its very helpful. In my scenario I need to pick up the execution report, so will have to implement the Trade Client? Further, I do I need both the acceptor and initiator config files? Can you please help me into it?


Thanks & Regards,
Ashutosh Mishra


--
Grant Birchmeier
Connamara Systems, LLC
Made-To-Measure Trading Solutions.
Exactly what you need. No more. No less.
http://connamara.com

_______________________________________________
Quickfixn mailing list
Quickfixn at lists.quickfixn.com<mailto:Quickfixn at lists.quickfixn.com>
http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com



--
Grant Birchmeier
Connamara Systems, LLC
Made-To-Measure Trading Solutions.
Exactly what you need. No more. No less.
http://connamara.com

_______________________________________________
Quickfixn mailing list
Quickfixn at lists.quickfixn.com<mailto:Quickfixn at lists.quickfixn.com>
http://lists.quickfixn.com/listinfo.cgi/quickfixn-quickfixn.com



--
Grant Birchmeier
Connamara Systems, LLC
Made-To-Measure Trading Solutions.
Exactly what you need. No more. No less.
http://connamara.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quickfixn.com/pipermail/quickfixn-quickfixn.com/attachments/20131025/6b4818e7/attachment-0002.htm>


More information about the Quickfixn mailing list