Re: [Quickfix-users] Newbie problem using QuickFIX and sending New Order signal
Brought to you by:
orenmnero
From: ka w. <ka...@gm...> - 2009-01-28 05:37:46
|
2009/1/27 ka wone <ka...@gm...> > Hi. > > You will find a code showing you how you can send a market order for buying > 100 shares of AAPL when the method OnNewMarketOrder (resulting from an > event) is called. > I am also pretty new to FIX... anyone who wants to make a comment on this > code is welcome! > > using System; > using System.Collections.Generic; > using System.Linq; > using System.Text; > using System.Threading; > using System.Windows.Forms; > using QuickFix; > > > namespace FixInitiator > { > class QuickFixWrapper : MessageCracker, QuickFix.Application > { > private SessionID sesID; > public delegate void Connected_EventHandler(); > public static event Connected_EventHandler OnConnected; > public delegate void > OrderReceived_EventHandler(QuickFix42.ExecutionReport order); > public static event OrderReceived_EventHandler OnOrderReceived; > > private QuickFix.SocketInitiator _socketInitiator; > private QuickFix.FileStoreFactory _messageStoreFactory; > private QuickFix.SessionSettings _settings; > private QuickFix.FileLogFactory _logFactory; > private QuickFix42.MessageFactory _messageFactory; > > > public void onCreate(QuickFix.SessionID pSessionID) > { > Console.WriteLine("Session created"); > } > public void onLogon(QuickFix.SessionID pSessionID) { > Console.WriteLine("logon"); } > public void onLogout(QuickFix.SessionID pSessionID) { > Console.WriteLine("logout"); } > public void toAdmin(QuickFix.Message pmessage, QuickFix.SessionID > pSessionID) > { > Console.WriteLine("Enter toAdmin"); > Console.WriteLine(pmessage.ToString()); > Console.WriteLine("Exit toAdmin"); > } > public void toApp(QuickFix.Message pMessage, QuickFix.SessionID > pSessionID) > { > Console.WriteLine("Enter toApp"); > Console.WriteLine(pMessage.ToString()); > Console.WriteLine("Exit toApp"); > } > public void fromAdmin(QuickFix.Message pMessage, QuickFix.SessionID > pSessionID) > { > crack(pMessage, pSessionID); > Console.WriteLine("Enter fromAdmin"); > Console.WriteLine(pMessage.ToString()); > Console.WriteLine("Exit fromAdmin"); > } > public void fromApp(QuickFix.Message pMessage, QuickFix.SessionID > pSessionID) > { > crack(pMessage, pSessionID); > Console.WriteLine("Enter fromApp"); > Console.WriteLine(pMessage.ToString()); > Console.WriteLine("Exit fromApp"); > } > > public override void onMessage(QuickFix42.Logon order, SessionID > psessionID) > { > sesID = psessionID; > } > > public void connect() > { > try > { > string settingfile = "initiator.cfg"; > > this._settings = new QuickFix.SessionSettings(settingfile); > this._messageStoreFactory = new > QuickFix.FileStoreFactory(this._settings); > this._logFactory = new > QuickFix.FileLogFactory(this._settings); > this._messageFactory = new QuickFix42.MessageFactory(); > this._socketInitiator = new QuickFix.SocketInitiator(this, > _messageStoreFactory, this._settings, this._logFactory, _messageFactory); > this._socketInitiator.start(); > > > } > catch (Exception ex) > { > Console.WriteLine(ex.Message); > } > } > > private void OnNewMarketOrder() > { > QuickFix42.NewOrderSingle message = new > QuickFix42.NewOrderSingle( > new ClOrdID(ClOrdIDGenerator()), > new HandlInst(HandlInst.AUTOMATED_EXECUTION_ORDER_PRIVATE), > new Symbol("AAPL"), > new Side(Side.Buy), > new TransactTime(DateTime.Now.ToUniversalTime()), > new OrdType(OrdType.MARKET)); > message.setField(new OrderQty(100)); > message.setField(new SecurityExchange("TSX")); > message.setField(new ExDestination("TSX")); > > send(message); > > } > > private string ClOrdIDGenerator() > { > string clOrIdGen = > Math.Abs(DateTime.Now.ToBinary()).ToString(); > return clOrIdGen; > } > > private void sendOrder(QuickFix42.Message order) > { > > try > { > Session.sendToTarget(order, sesID); > } > catch (Exception ex) > { > MessageBox.Show(ex.ToString()); > } > > } > > } > > > > |