quickfix-developers Mailing List for QuickFIX (Page 89)
Brought to you by:
orenmnero
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
|
Feb
(5) |
Mar
(16) |
Apr
(15) |
May
(17) |
Jun
(33) |
Jul
(35) |
Aug
(34) |
Sep
(19) |
Oct
(40) |
Nov
(51) |
Dec
(43) |
2003 |
Jan
(45) |
Feb
(79) |
Mar
(124) |
Apr
(121) |
May
(132) |
Jun
(77) |
Jul
(110) |
Aug
(57) |
Sep
(48) |
Oct
(83) |
Nov
(60) |
Dec
(40) |
2004 |
Jan
(67) |
Feb
(72) |
Mar
(74) |
Apr
(87) |
May
(70) |
Jun
(96) |
Jul
(75) |
Aug
(147) |
Sep
(128) |
Oct
(83) |
Nov
(67) |
Dec
(42) |
2005 |
Jan
(110) |
Feb
(84) |
Mar
(68) |
Apr
(55) |
May
(51) |
Jun
(192) |
Jul
(111) |
Aug
(100) |
Sep
(79) |
Oct
(127) |
Nov
(73) |
Dec
(112) |
2006 |
Jan
(95) |
Feb
(120) |
Mar
(138) |
Apr
(127) |
May
(124) |
Jun
(97) |
Jul
(103) |
Aug
(88) |
Sep
(138) |
Oct
(91) |
Nov
(112) |
Dec
(57) |
2007 |
Jan
(55) |
Feb
(35) |
Mar
(56) |
Apr
(16) |
May
(20) |
Jun
(77) |
Jul
(43) |
Aug
(47) |
Sep
(29) |
Oct
(54) |
Nov
(39) |
Dec
(40) |
2008 |
Jan
(69) |
Feb
(79) |
Mar
(122) |
Apr
(106) |
May
(114) |
Jun
(76) |
Jul
(83) |
Aug
(71) |
Sep
(53) |
Oct
(75) |
Nov
(54) |
Dec
(43) |
2009 |
Jan
(32) |
Feb
(31) |
Mar
(64) |
Apr
(48) |
May
(38) |
Jun
(43) |
Jul
(35) |
Aug
(15) |
Sep
(52) |
Oct
(62) |
Nov
(62) |
Dec
(21) |
2010 |
Jan
(44) |
Feb
(10) |
Mar
(47) |
Apr
(22) |
May
(5) |
Jun
(54) |
Jul
(19) |
Aug
(54) |
Sep
(16) |
Oct
(15) |
Nov
(7) |
Dec
(8) |
2011 |
Jan
(18) |
Feb
(9) |
Mar
(5) |
Apr
(5) |
May
(41) |
Jun
(40) |
Jul
(29) |
Aug
(17) |
Sep
(12) |
Oct
(23) |
Nov
(22) |
Dec
(11) |
2012 |
Jan
(8) |
Feb
(24) |
Mar
(5) |
Apr
(5) |
May
(6) |
Jun
(5) |
Jul
(5) |
Aug
(5) |
Sep
(2) |
Oct
(9) |
Nov
(2) |
Dec
(18) |
2013 |
Jan
(25) |
Feb
(16) |
Mar
(8) |
Apr
(2) |
May
(16) |
Jun
(17) |
Jul
(2) |
Aug
(13) |
Sep
(3) |
Oct
(4) |
Nov
(1) |
Dec
|
2014 |
Jan
(2) |
Feb
|
Mar
(22) |
Apr
(9) |
May
(3) |
Jun
(1) |
Jul
(5) |
Aug
(11) |
Sep
(18) |
Oct
(4) |
Nov
(4) |
Dec
(3) |
2015 |
Jan
(2) |
Feb
|
Mar
|
Apr
(3) |
May
(4) |
Jun
(37) |
Jul
|
Aug
(4) |
Sep
(6) |
Oct
(1) |
Nov
(4) |
Dec
(2) |
2016 |
Jan
(9) |
Feb
(3) |
Mar
(7) |
Apr
(1) |
May
(8) |
Jun
|
Jul
|
Aug
|
Sep
(7) |
Oct
(3) |
Nov
(16) |
Dec
|
2017 |
Jan
(1) |
Feb
(15) |
Mar
(2) |
Apr
(12) |
May
(4) |
Jun
(7) |
Jul
(5) |
Aug
|
Sep
|
Oct
|
Nov
(23) |
Dec
(8) |
2018 |
Jan
(2) |
Feb
(4) |
Mar
(2) |
Apr
(8) |
May
(3) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
(5) |
Nov
(3) |
Dec
|
2020 |
Jan
|
Feb
(4) |
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
(12) |
Aug
(5) |
Sep
(3) |
Oct
(1) |
Nov
|
Dec
(1) |
2021 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
2022 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2025 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Mike P. <mic...@ya...> - 2008-04-08 21:46:53
|
Below is a portion of the ExecInst field class in the Java API. Shouldn't the fields be Strings? or Shouldn't the constructor take a 'char' instead of a String? Mike public static final char NOT_HELD = '1'; public static final char WORK = '2'; public static final char GO_ALONG = '3'; public static final char OVER_THE_DAY = '4'; public static final char HELD = '5'; public ExecInst(String data) { super(18, data); } ____________________________________________________________________________________ You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost. http://tc.deals.yahoo.com/tc/blockbuster/text5.com |
From: <or...@qu...> - 2008-04-07 20:30:50
|
<html><body>Yes, we can add these.<BR><BR> <BLOCKQUOTE style="PADDING-LEFT: 8px; MARGIN-LEFT: 8px; BORDER-LEFT: blue 2px solid" webmail="1">-------- Original Message --------<BR>Subject: Re: [Quickfix-developers] How to create Message from String in<BR>Java<BR>From: Mike Perik <mic...@ya...><BR>Date: Mon, April 07, 2008 2:55 pm<BR>To: <a href="mailto:qui...@li...">qui...@li...</a><BR><BR>QuickFIX Documentation: <A href="http://www.quickfixengine.org/quickfix/doc/html/index.html" target=_blank><a href="http://www.quickfixengine.org/quickfix/doc/html/index.html">http://www.quickfixengine.org/quickfix/doc/html/index.html</a></A><BR>QuickFIX Support: <A href="http://www.quickfixengine.org/services.html" target=_blank><a href="http://www.quickfixengine.org/services.html">http://www.quickfixengine.org/services.html</a></A><BR><BR>I've figured out a way to do this but I had to add a<BR>constructor to all of the fix4?.Message classes:<BR><BR>For example:<BR><BR>public Message(String msg) throws<BR>quickfix.InvalidMessage {<BR>super(msg);<BR>header = new Header( this );<BR>trailer = new Trailer( this );<BR>}<BR><BR>Any chance that a constructor could be added to the<BR>version specific Message classes?<BR><BR>Mike<BR><BR><BR><BR>--- Mike Perik <<A onclick="Popup.composeWindow('pcompose.php?sendto=michaelperik%40yahoo.com'); return false;" href="#Compose">michaelperik<B></B>@yahoo.com</A>> wrote:<BR><BR>> QuickFIX Documentation:<BR>><BR><A href="http://www.quickfixengine.org/quickfix/doc/html/index.html" target=_blank><a href="http://www.quickfixengine.org/quickfix/doc/html/index.html">http://www.quickfixengine.org/quickfix/doc/html/index.html</a></A><BR>> QuickFIX Support:<BR>> <A href="http://www.quickfixengine.org/services.html" target=_blank><a href="http://www.quickfixengine.org/services.html">http://www.quickfixengine.org/services.html</a></A><BR>> <BR>> The Java API allows you to create a quickfix.Message<BR>> from a string but none of the quickfix.fix4?.Message<BR>> classes allow that to happen. I need to be able to<BR>> create a FIX version specific Message from a<BR>> quickfix.Message. I guess I could iterate over the<BR>> generic Message objects fields and set them in the<BR>> fix<BR>> version specific object but that's not very<BR>> efficient.<BR>> <BR>> What I'm trying to do is take a FIX message string<BR>> and<BR>> create a Message object from it and then pass it to<BR>> a<BR>> cracker. <BR>> <BR>> The C++ API allows the creation of a FIX version<BR>> specific Message object (FIX4?.Message) from a<BR>> FIX::Message object but the Java API doesn't have<BR>> this<BR>> same functionality.<BR>> <BR>> Is there another way to do that?<BR>> <BR>> <BR>> <BR>> <BR>> <BR>><BR>____________________________________________________________________________________<BR>> You rock. That's why Blockbuster's offering you one<BR>> month of Blockbuster Total Access, No Cost. <BR>> <A href="http://tc.deals.yahoo.com/tc/blockbuster/text5.com" target=_blank><a href="http://tc.deals.yahoo.com/tc/blockbuster/text5.com">http://tc.deals.yahoo.com/tc/blockbuster/text5.com</a></A><BR>> <BR>><BR>-------------------------------------------------------------------------<BR>> This <a href="http://SF.net">SF.net</a> email is sponsored by the 2008<BR>> JavaOne(SM) Conference <BR>> Register now and save $200. Hurry, offer ends at<BR>> 11:59 p.m., <BR>> Monday, April 7! Use priority code J8TLD2. <BR>><BR><A href="http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone" target=_blank><a href="http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone">http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone</a></A><BR>> _______________________________________________<BR>> Quickfix-developers mailing list<BR>> <A onclick="Popup.composeWindow('pcompose.php?sendto=Quickfix-developers%40lists.sourceforge.net'); return false;" href="#Compose">Quickfix-developers<B></B>@lists.sourceforge.net</A><BR>><BR><A href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers" target=_blank><a href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers">https://lists.sourceforge.net/lists/listinfo/quickfix-developers</a></A><BR>> <BR><BR><BR><BR>____________________________________________________________________________________<BR>You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost. <BR><A href="http://tc.deals.yahoo.com/tc/blockbuster/text5.com" target=_blank><a href="http://tc.deals.yahoo.com/tc/blockbuster/text5.com">http://tc.deals.yahoo.com/tc/blockbuster/text5.com</a></A><BR><BR>-------------------------------------------------------------------------<BR>This <a href="http://SF.net">SF.net</a> email is sponsored by the 2008 JavaOne(SM) Conference <BR>Register now and save $200. Hurry, offer ends at 11:59 p.m., <BR>Monday, April 7! Use priority code J8TLD2. <BR><A href="http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone" target=_blank><a href="http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone">http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone</a></A><BR>_______________________________________________<BR>Quickfix-developers mailing list<BR><A onclick="Popup.composeWindow('pcompose.php?sendto=Quickfix-developers%40lists.sourceforge.net'); return false;" href="#Compose">Quickfix-developers<B></B>@lists.sourceforge.net</A><BR><A href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers" target=_blank><a href="https://lists.sourceforge.net/lists/listinfo/quickfix-developers">https://lists.sourceforge.net/lists/listinfo/quickfix-developers</a></A><BR></BLOCKQUOTE></body></html> |
From: Mike P. <mic...@ya...> - 2008-04-07 19:55:49
|
I've figured out a way to do this but I had to add a constructor to all of the fix4?.Message classes: For example: public Message(String msg) throws quickfix.InvalidMessage { super(msg); header = new Header( this ); trailer = new Trailer( this ); } Any chance that a constructor could be added to the version specific Message classes? Mike --- Mike Perik <mic...@ya...> wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: > http://www.quickfixengine.org/services.html > > The Java API allows you to create a quickfix.Message > from a string but none of the quickfix.fix4?.Message > classes allow that to happen. I need to be able to > create a FIX version specific Message from a > quickfix.Message. I guess I could iterate over the > generic Message objects fields and set them in the > fix > version specific object but that's not very > efficient. > > What I'm trying to do is take a FIX message string > and > create a Message object from it and then pass it to > a > cracker. > > The C++ API allows the creation of a FIX version > specific Message object (FIX4?.Message) from a > FIX::Message object but the Java API doesn't have > this > same functionality. > > Is there another way to do that? > > > > > > ____________________________________________________________________________________ > You rock. That's why Blockbuster's offering you one > month of Blockbuster Total Access, No Cost. > http://tc.deals.yahoo.com/tc/blockbuster/text5.com > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 > JavaOne(SM) Conference > Register now and save $200. Hurry, offer ends at > 11:59 p.m., > Monday, April 7! Use priority code J8TLD2. > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > ____________________________________________________________________________________ You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost. http://tc.deals.yahoo.com/tc/blockbuster/text5.com |
From: Mike P. <mic...@ya...> - 2008-04-07 18:21:46
|
The Java API allows you to create a quickfix.Message from a string but none of the quickfix.fix4?.Message classes allow that to happen. I need to be able to create a FIX version specific Message from a quickfix.Message. I guess I could iterate over the generic Message objects fields and set them in the fix version specific object but that's not very efficient. What I'm trying to do is take a FIX message string and create a Message object from it and then pass it to a cracker. The C++ API allows the creation of a FIX version specific Message object (FIX4?.Message) from a FIX::Message object but the Java API doesn't have this same functionality. Is there another way to do that? ____________________________________________________________________________________ You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost. http://tc.deals.yahoo.com/tc/blockbuster/text5.com |
From: Mark R. <mr...@pr...> - 2008-04-07 09:43:22
|
Hi, What would be the preferred way of rotating the FIX message logs in QuickFIX? Currently we have a situation where the message logs are growing indefinitely and the only way to rotate them is to bring down the application. Is there a way of having QF open a new message log each session? Or is there some signal I can send to the application that will re-open the logs? On another (although related) note, why is it when I set PersistMessages=N, the messages are still persisted... have I misunderstood this setting? Regards, Mark |
From: Shane T. <str...@co...> - 2008-04-04 14:00:21
|
Errors are logged in the event log as specified in the configuration file as "FileLogPath" You can also manually reconfigure sequence numbers by using the "HttpAcceptPort" in the configuration file. When this is set, QuickFIX will listen for web browser requests which you can use to set sequence numbers without having to take anything down. But why is it failing? Why would you need to reset for it to be successful? Is there an error message or exception in the QuickFIX event log (as specified above)? -- Shane Trotter Connamara Systems, LLC On Fri, Apr 4, 2008 at 1:29 AM, Parjeet Singh <par...@oa...> wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > Thanks for the previous helps you guys have provided. There is more to > learn in this QuickFIX and FIX environment. > > This is may be a horrible way of resetting the session but it is serving > my purpose. > > I have set of currency pairs AUD/USD, EUR/USD, AUD/SGD etc, I pass one > e.g. AUD/USD currency pair into my sendToTarget session and receive a > message which I manipulate in to xml file. > > All my currency pairs is in datatable > > Then it goes back to my fromApp procedure and now I have to send new > currency pair e.g. EUR/USD. To make this successful I have to reset the > session that is by sTest.reset: > > crack(Param, Param1) > Try > > Dim sTest As QuickFix.Session = > QuickFix.Session.lookupSession(Param1) > If (sTest.isLoggedOn = True) Then > If (sTest.receivedLogon = True) Then > Param.clear() > sTest.reset() > Exit Sub > End If > End If > > The reset takes me back to the OnLogon function and start with new set > of currency e.g. EUR/USD. > > Every time I see the message in console..."existing session was > forcefully closed by host". > > At the moment this is working fine but if you have better way of doing, > please do share with me. > > Another issue, I want to log errors in error log file. Is there a way to > do in QuickFix. > > Thanks for your help. > > PS > > > > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > |
From: Parjeet S. <par...@oa...> - 2008-04-04 06:30:47
|
Thanks for the previous helps you guys have provided. There is more to learn in this QuickFIX and FIX environment. This is may be a horrible way of resetting the session but it is serving my purpose. I have set of currency pairs AUD/USD, EUR/USD, AUD/SGD etc, I pass one e.g. AUD/USD currency pair into my sendToTarget session and receive a message which I manipulate in to xml file. All my currency pairs is in datatable Then it goes back to my fromApp procedure and now I have to send new currency pair e.g. EUR/USD. To make this successful I have to reset the session that is by sTest.reset: crack(Param, Param1) Try Dim sTest As QuickFix.Session = QuickFix.Session.lookupSession(Param1) If (sTest.isLoggedOn = True) Then If (sTest.receivedLogon = True) Then Param.clear() sTest.reset() Exit Sub End If End If The reset takes me back to the OnLogon function and start with new set of currency e.g. EUR/USD. Every time I see the message in console..."existing session was forcefully closed by host". At the moment this is working fine but if you have better way of doing, please do share with me. Another issue, I want to log errors in error log file. Is there a way to do in QuickFix. Thanks for your help. PS |
From: Shane T. <str...@co...> - 2008-04-03 15:37:09
|
Alex, Yes, QuickFIX will automatically attempt to login based on that interval. -- Shane Trotter Connamara Systems, LLC On Thu, Apr 3, 2008 at 10:35 AM, Alex McFerron <ale...@gm...> wrote: > > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > I'm thinking that I just set the ReconnectInterval to something low. > > > On Thu, Apr 3, 2008 at 10:12 AM, Alex McFerron <ale...@gm...> wrote: > > > > > How does one code for auto logon using quick fix? > > > > > > > > cheers, > > alex > > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > |
From: Alex M. <ale...@gm...> - 2008-04-03 15:35:50
|
I'm thinking that I just set the ReconnectInterval to something low. On Thu, Apr 3, 2008 at 10:12 AM, Alex McFerron <ale...@gm...> wrote: > How does one code for auto logon using quick fix? > > > > cheers, > alex > |
From: Alex M. <ale...@gm...> - 2008-04-03 15:18:34
|
How does one code for auto logon using quick fix? cheers, alex |
From: Shane T. <str...@co...> - 2008-04-02 21:10:08
|
Mark, They are not multithreaded. Unless you have multiple sessions using the ThreadedSocketInitiator which both point to the same method that alters your data, you should be fine. -- Shane Trotter Connamara Systems, LLC On Wed, Apr 2, 2008 at 3:58 PM, fopguy <ma...@tr...> wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > > Hi everyone, > > I was wondering if the "onMessage()" callbacks are multithreaded. > > The reason I'm asking is that I have certain shared variables that I need to > update, and I was wondering if I need to lock them. > > Eg. > > onMessage(FIX::executionReport& report) { > sharedDataStructure.process() > } > > > What if I get 2 execution reports from the server at the same time? Would I > have 2 threads running "onmessage" at the same time? If so, i need to lock > my shared data. > > How does everyone else deal with this issue? > > thanks > > mark > -- > View this message in context: http://www.nabble.com/are-onMessage-callbacks-multithreaded--tp16451428p16451428.html > Sent from the QuickFIX - Dev mailing list archive at Nabble.com. > > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace > _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers > |
From: fopguy <ma...@tr...> - 2008-04-02 20:58:47
|
Hi everyone, I was wondering if the "onMessage()" callbacks are multithreaded. The reason I'm asking is that I have certain shared variables that I need to update, and I was wondering if I need to lock them. Eg. onMessage(FIX::executionReport& report) { sharedDataStructure.process() } What if I get 2 execution reports from the server at the same time? Would I have 2 threads running "onmessage" at the same time? If so, i need to lock my shared data. How does everyone else deal with this issue? thanks mark -- View this message in context: http://www.nabble.com/are-onMessage-callbacks-multithreaded--tp16451428p16451428.html Sent from the QuickFIX - Dev mailing list archive at Nabble.com. |
From: Mark T. K. <mke...@di...> - 2008-04-02 17:34:02
|
if a quickfix initiator: 1) receives and acks a logout (in sequence) 2) logs back in 3) detects a gap in the in-bound sequence numbers 4) sends a resend request to fill in the gap 5) and then receives another logout message (out of sequence) it will immediately process the out-of-sequence logout and increment the expected in-bound sequence number (in FIX::Session::nextLogout), even though no new in-sequence message has been (logically) received. it should only increment the in-bound sequence number if the logout was received in-sequence. this causes a sequence number to be skipped and a message to be lost. i think this can also happen with session-level reject messages. thoughts/comments? /mark kennedy cto, quant group diamondback capital management This communication and any attachments may contain confidential/proprietary information and is intended for information purposes only. It is not an invitation or offer to purchase interests from Diamondback. Any representation to the contrary is unintentional. This communication is intended only for the person(s) to whom it is addressed. If you are not the intended recipient you are hereby notified that you have received this document in error and that any review, dissemination, distribution, or copying of this message or any attachments is not permitted. If you have received this in error, please notify the sender immediately by e-mail and delete this message. All e-mails sent to or received from this address will be received by Diamondback's company e-mail system and is subject to archival and possible review by someone other than the recipient. This notice is automatically appended to each e-mail message leaving Diamondback. |
From: Mark T. K. <mke...@di...> - 2008-04-01 17:01:53
|
if i do the following... % svn ls https://quickfix.svn.sourceforge.net/svnroot/quickfix/tags INITIAL/ RELEASE_1_10_2/ RELEASE_1_11_0/ RELEASE_1_11_1/ RELEASE_1_12_0/ RELEASE_1_12_1/ RELEASE_1_12_2/ RELEASE_1_12_3/ RELEASE_1_4_0/ RELEASE_1_4_1/ RELEASE_1_5_0/ RELEASE_1_6_0/ RELEASE_1_7_0/ RELEASE_1_7_1/ RELEASE_1_8_0/ RELEASE_1_9_0/ RELEASE_1_9_2/ RELEASE_1_9_3/ RELEASE_1_9_4/ start/ ... there is no tag for the 12.4 release. is 12.4 just https://quickfix.svn.sourceforge.net/svnroot/quickfix/trunk/quickfix (as suggested by the developer's page)? and does that mean that https://quickfix.svn.sourceforge.net/svnroot/quickfix/branches/quickfix/quickfix is the dev tree (proto 12.5 release)? /mark This communication and any attachments may contain confidential/proprietary information and is intended for information purposes only. It is not an invitation or offer to purchase interests from Diamondback. Any representation to the contrary is unintentional. This communication is intended only for the person(s) to whom it is addressed. If you are not the intended recipient you are hereby notified that you have received this document in error and that any review, dissemination, distribution, or copying of this message or any attachments is not permitted. If you have received this in error, please notify the sender immediately by e-mail and delete this message. All e-mails sent to or received from this address will be received by Diamondback's company e-mail system and is subject to archival and possible review by someone other than the recipient. This notice is automatically appended to each e-mail message leaving Diamondback. |
From: sumation <ev...@On...> - 2008-03-31 15:59:36
|
1)Namespace QuickFix Public Interface Application Public Sub onCreate(ByVal sessionID As SessionID) Public Sub onLogon(ByVal sessionID As SessionID) Public Sub onLogout(ByVal sessionID As SessionID) Public Sub toAdmin(ByVal message As Message, ByVal sessionID As SessionID) Public Sub toApp(ByVal message As Message, ByVal sessionID As SessionID) Public Sub fromAdmin(ByVal message As Message, ByVal sessionID As SessionID) Public Sub fromApp(ByVal message As Message, ByVal sessionID As SessionID) End Interface End Namespace This are the errors: 'Public' is not valid on an interface method declaration Type 'SessionID' is not defined Can you give me the Solution of the problem? 2)Sub Main(ByVal CmdArgs() As String) If (CmdArgs <> 1) Then Return Error 2 Operator '<>' is not defined for types '1-dimensional array of String' and 'Integer' Can you give me the Solution of the problem? Thanks and Best Regards, Allen -- View this message in context: http://www.nabble.com/Visual-Basic.net-Error-tp16396516p16396516.html Sent from the QuickFIX - Dev mailing list archive at Nabble.com. |
From: open h. <ope...@ya...> - 2008-03-31 13:48:28
|
Thanks Mike for the reply. I am using this method of sessionID but what to do with my own MarketDataRequest object. I mean I make up this object by putting all tags including sender and target headers, but every time I try to send it using Session::sendToTarget(mktDataRequest) or any overloaded version of it, I get "Session not found " exception thrown. I even hardcoded the sessionqualifier value in sendToTarget, but this exception wont stop. Please guide me how to pass proper sessionid ? Thanks! Mike Perik <mic...@ya...> wrote: The SessionID will have the session qualifier set to what is in the config file. Look at the SessionID object methods, I think there is a getSessionQualifier() method. Mike --- open hash wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: > http://www.quickfixengine.org/services.html > > > > Please help me out with this issue, I am stuck here. > I don't know how to get tell my application layer to > differentiate between the two sessions for sending > market data request and trading orders. Any help > will be greatly appreciated. > > Thanks! > > open hash wrote: QuickFIX > Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: > http://www.quickfixengine.org/services.html > > > > Note: forwarded message attached. > > --------------------------------- > Never miss a thing. Make Yahoo your homepage. > Date: Mon, 17 Mar 2008 04:37:45 -0700 (PDT) > From: open hash > Subject: Re: [Quickfix-developers] Market Data > Request > To: Hozaifa Akber Ali > > Hi, > > I have created two seperate sessions, one for > streaming and other for trading with different > sessiona qualifier like this: > > [SESSION] > BeginString=FIX.4.4 > SenderCompID=test1 > SenderSubID=streaming > TargetCompID=target > TargetSubID=tstream > SocketConnectPort=8000 > SessionQualifier=stream > > [SESSION] > BeginString=FIX.4.4 > SenderCompID=test1 > SenderSubID=trading > TargetCompID=target > TargetSubID=ttrade > SessionQualifier=trade > SocketConnectPort=5001 > > With this I am able to logon and get hearbeats for > both sessions, but the problem is sending a > MarketDataRequest message. When I set all the fields > and send order, I get a "Session not found" > exception. How can I send streaming and trading > messages using this settings. > > Regards, > > > Hozaifa Akber Ali > wrote: QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: > http://www.quickfixengine.org/services.html > > > > This is for others knowledge.. > > What I have done is created 2 different session > initiators with different > session settings and also given both of them > SessionQualifier. This way I am > able to get Market data and also process order. > > I thank all of u above for the replies. > > > > Hozaifa Akber Ali wrote: > > > > > > Oren, > > > > Here is the info the broker has sent for the > connection where only port is > > different: > > > > API Access Information > > > > Market logins > > ------------------ > > IP address: 66.238.4.59 > > Port number: 6200 > > SenderCompID: ANDYSTAP (tag 49 on login) > > TargetCompID: CAX (tag 56 on login) > > password : ******** (tag 96 on login) > > > > Orders Login > > ââââââââââ > > IP address: 66.238.4.59 > > Port number: 17200 > > SenderCompID: ANDYSTAP (tag 49 on login) > > TargetCompID: CAX (tag 56 on login) > > Password: ******** (tag 96 on login) > > > > New order Entry/Cxl: > > ââââââââââââ > > Account : andys (tag 1 on new order) > > Sender SubID : 001 (tag 50 on new order) > > > > Regards > > Hozaifa > > > > > > Oren Miller wrote: > >> > >> QuickFIX Documentation: > >> > http://www.quickfixengine.org/quickfix/doc/html/index.html > >> QuickFIX Support: > http://www.quickfixengine.org/services.html > >> > >> Hoazifa, > >> > >> Why do the two sessions have the same compids and > connect > >> information. This doesn't seem right. Is this > the information the > >> counterparty gave you? > >> > >> --oren > >> > >> On Feb 6, 2008, at 11:50 PM, Hozaifa Akber Ali > wrote: > >> > >>> QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/ > >>> html/index.html > >>> QuickFIX Support: > http://www.quickfixengine.org/services.html > >>> > >>> > >>> Hi Azmat and Oren, > >>> > >>> I Have created this config and send to > ThreadedSocketInitiator > >>> > >>> [DEFAULT] > >>> ConnectionType=initiator > >>> HeartBtInt=30 > >>> ReconnectInterval=1 > >>> FileStorePath=store > >>> FileLogPath=log > >>> StartTime=00:00:00 > >>> EndTime=00:00:00 > >>> UseDataDictionary=N > >>> > >>> [SESSION]\n" > >>> BeginString=FIX.4.2 > >>> SenderCompID=CID > >>> TargetCompID=CAX > >>> SocketConnectHost66.238.4.59 > >>> SocketConnectPort=6200 > >>> DataDictionary=spec/FIX42.xml > >>> > >>> [SESSION] > >>> BeginString=FIX.4.2 > >>> SenderCompID=CID > >>> TargetCompID=CAX > >>> SocketConnectHost=66.238.4.59 > >>> SocketConnectPort=17200 > >>> DataDictionary=spec/FIX42.xml > >>> > >>> Port 6200 is for Market Data Server and > >>> Port 17200 is for Order Processing Data Server > >>> > >>> When I start the initiator I connect to Market > data server and setting > >>> object uses Default block and > >>> Session block number 2 with 17200 port. > >>> > >>> how do I manage the session for the market data > and order processing?? > >>> Azmat can I have your msn id or direct email > address ?? > >>> mine is hozaifa_99 @ hotmail . com > >>> > >>> Thanks Azmat for ur reply and forwarding me to > this post. > >>> > >>> > >>> azmat wrote: > >>>> > >>>> QuickFIX Documentation: > >>>> > http://www.quickfixengine.org/quickfix/doc/html/index.html > >>>> QuickFIX Support: > http://www.quickfixengine.org/services.html > === message truncated ===> ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace> _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers ____________________________________________________________________________________ Like movies? Here's a limited-time offer: Blockbuster Total Access for one month at no cost. http://tc.deals.yahoo.com/tc/blockbuster/text4.com --------------------------------- OMG, Sweet deal for Yahoo! users/friends: Get A Month of Blockbuster Total Access, No Cost. W00t |
From: Mike P. <mic...@ya...> - 2008-03-31 12:09:37
|
The SessionID will have the session qualifier set to what is in the config file. Look at the SessionID object methods, I think there is a getSessionQualifier() method. Mike --- open hash <ope...@ya...> wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: > http://www.quickfixengine.org/services.html > > > > Please help me out with this issue, I am stuck here. > I don't know how to get tell my application layer to > differentiate between the two sessions for sending > market data request and trading orders. Any help > will be greatly appreciated. > > Thanks! > > open hash <ope...@ya...> wrote: QuickFIX > Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: > http://www.quickfixengine.org/services.html > > > > Note: forwarded message attached. > > --------------------------------- > Never miss a thing. Make Yahoo your homepage. > Date: Mon, 17 Mar 2008 04:37:45 -0700 (PDT) > From: open hash <ope...@ya...> > Subject: Re: [Quickfix-developers] Market Data > Request > To: Hozaifa Akber Ali <hoz...@ve...> > > Hi, > > I have created two seperate sessions, one for > streaming and other for trading with different > sessiona qualifier like this: > > [SESSION] > BeginString=FIX.4.4 > SenderCompID=test1 > SenderSubID=streaming > TargetCompID=target > TargetSubID=tstream > SocketConnectPort=8000 > SessionQualifier=stream > > [SESSION] > BeginString=FIX.4.4 > SenderCompID=test1 > SenderSubID=trading > TargetCompID=target > TargetSubID=ttrade > SessionQualifier=trade > SocketConnectPort=5001 > > With this I am able to logon and get hearbeats for > both sessions, but the problem is sending a > MarketDataRequest message. When I set all the fields > and send order, I get a "Session not found" > exception. How can I send streaming and trading > messages using this settings. > > Regards, > > > Hozaifa Akber Ali <hoz...@ve...> > wrote: QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: > http://www.quickfixengine.org/services.html > > > > This is for others knowledge.. > > What I have done is created 2 different session > initiators with different > session settings and also given both of them > SessionQualifier. This way I am > able to get Market data and also process order. > > I thank all of u above for the replies. > > > > Hozaifa Akber Ali wrote: > > > > > > Oren, > > > > Here is the info the broker has sent for the > connection where only port is > > different: > > > > API Access Information > > > > Market logins > > ------------------ > > IP address: 66.238.4.59 > > Port number: 6200 > > SenderCompID: ANDYSTAP (tag 49 on login) > > TargetCompID: CAX (tag 56 on login) > > password : ******** (tag 96 on login) > > > > Orders Login > > ââââââââââ > > IP address: 66.238.4.59 > > Port number: 17200 > > SenderCompID: ANDYSTAP (tag 49 on login) > > TargetCompID: CAX (tag 56 on login) > > Password: ******** (tag 96 on login) > > > > New order Entry/Cxl: > > ââââââââââââ > > Account : andys (tag 1 on new order) > > Sender SubID : 001 (tag 50 on new order) > > > > Regards > > Hozaifa > > > > > > Oren Miller wrote: > >> > >> QuickFIX Documentation: > >> > http://www.quickfixengine.org/quickfix/doc/html/index.html > >> QuickFIX Support: > http://www.quickfixengine.org/services.html > >> > >> Hoazifa, > >> > >> Why do the two sessions have the same compids and > connect > >> information. This doesn't seem right. Is this > the information the > >> counterparty gave you? > >> > >> --oren > >> > >> On Feb 6, 2008, at 11:50 PM, Hozaifa Akber Ali > wrote: > >> > >>> QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/ > >>> html/index.html > >>> QuickFIX Support: > http://www.quickfixengine.org/services.html > >>> > >>> > >>> Hi Azmat and Oren, > >>> > >>> I Have created this config and send to > ThreadedSocketInitiator > >>> > >>> [DEFAULT] > >>> ConnectionType=initiator > >>> HeartBtInt=30 > >>> ReconnectInterval=1 > >>> FileStorePath=store > >>> FileLogPath=log > >>> StartTime=00:00:00 > >>> EndTime=00:00:00 > >>> UseDataDictionary=N > >>> > >>> [SESSION]\n" > >>> BeginString=FIX.4.2 > >>> SenderCompID=CID > >>> TargetCompID=CAX > >>> SocketConnectHost66.238.4.59 > >>> SocketConnectPort=6200 > >>> DataDictionary=spec/FIX42.xml > >>> > >>> [SESSION] > >>> BeginString=FIX.4.2 > >>> SenderCompID=CID > >>> TargetCompID=CAX > >>> SocketConnectHost=66.238.4.59 > >>> SocketConnectPort=17200 > >>> DataDictionary=spec/FIX42.xml > >>> > >>> Port 6200 is for Market Data Server and > >>> Port 17200 is for Order Processing Data Server > >>> > >>> When I start the initiator I connect to Market > data server and setting > >>> object uses Default block and > >>> Session block number 2 with 17200 port. > >>> > >>> how do I manage the session for the market data > and order processing?? > >>> Azmat can I have your msn id or direct email > address ?? > >>> mine is hozaifa_99 @ hotmail . com > >>> > >>> Thanks Azmat for ur reply and forwarding me to > this post. > >>> > >>> > >>> azmat wrote: > >>>> > >>>> QuickFIX Documentation: > >>>> > http://www.quickfixengine.org/quickfix/doc/html/index.html > >>>> QuickFIX Support: > http://www.quickfixengine.org/services.html > === message truncated ===> ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace> _______________________________________________ > Quickfix-developers mailing list > Qui...@li... > https://lists.sourceforge.net/lists/listinfo/quickfix-developers ____________________________________________________________________________________ Like movies? Here's a limited-time offer: Blockbuster Total Access for one month at no cost. http://tc.deals.yahoo.com/tc/blockbuster/text4.com |
From: open h. <ope...@ya...> - 2008-03-31 10:07:33
|
Please help me out with this issue, I am stuck here. I don't know how to get tell my application layer to differentiate between the two sessions for sending market data request and trading orders. Any help will be greatly appreciated. Thanks! open hash <ope...@ya...> wrote: QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html Note: forwarded message attached. --------------------------------- Never miss a thing. Make Yahoo your homepage. Date: Mon, 17 Mar 2008 04:37:45 -0700 (PDT) From: open hash <ope...@ya...> Subject: Re: [Quickfix-developers] Market Data Request To: Hozaifa Akber Ali <hoz...@ve...> Hi, I have created two seperate sessions, one for streaming and other for trading with different sessiona qualifier like this: [SESSION] BeginString=FIX.4.4 SenderCompID=test1 SenderSubID=streaming TargetCompID=target TargetSubID=tstream SocketConnectPort=8000 SessionQualifier=stream [SESSION] BeginString=FIX.4.4 SenderCompID=test1 SenderSubID=trading TargetCompID=target TargetSubID=ttrade SessionQualifier=trade SocketConnectPort=5001 With this I am able to logon and get hearbeats for both sessions, but the problem is sending a MarketDataRequest message. When I set all the fields and send order, I get a "Session not found" exception. How can I send streaming and trading messages using this settings. Regards, Hozaifa Akber Ali <hoz...@ve...> wrote: QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html This is for others knowledge.. What I have done is created 2 different session initiators with different session settings and also given both of them SessionQualifier. This way I am able to get Market data and also process order. I thank all of u above for the replies. Hozaifa Akber Ali wrote: > > > Oren, > > Here is the info the broker has sent for the connection where only port is > different: > > API Access Information > > Market logins > ------------------ > IP address: 66.238.4.59 > Port number: 6200 > SenderCompID: ANDYSTAP (tag 49 on login) > TargetCompID: CAX (tag 56 on login) > password : ******** (tag 96 on login) > > Orders Login > ââââââââââ > IP address: 66.238.4.59 > Port number: 17200 > SenderCompID: ANDYSTAP (tag 49 on login) > TargetCompID: CAX (tag 56 on login) > Password: ******** (tag 96 on login) > > New order Entry/Cxl: > ââââââââââââ > Account : andys (tag 1 on new order) > Sender SubID : 001 (tag 50 on new order) > > Regards > Hozaifa > > > Oren Miller wrote: >> >> QuickFIX Documentation: >> http://www.quickfixengine.org/quickfix/doc/html/index.html >> QuickFIX Support: http://www.quickfixengine.org/services.html >> >> Hoazifa, >> >> Why do the two sessions have the same compids and connect >> information. This doesn't seem right. Is this the information the >> counterparty gave you? >> >> --oren >> >> On Feb 6, 2008, at 11:50 PM, Hozaifa Akber Ali wrote: >> >>> QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/ >>> html/index.html >>> QuickFIX Support: http://www.quickfixengine.org/services.html >>> >>> >>> Hi Azmat and Oren, >>> >>> I Have created this config and send to ThreadedSocketInitiator >>> >>> [DEFAULT] >>> ConnectionType=initiator >>> HeartBtInt=30 >>> ReconnectInterval=1 >>> FileStorePath=store >>> FileLogPath=log >>> StartTime=00:00:00 >>> EndTime=00:00:00 >>> UseDataDictionary=N >>> >>> [SESSION]\n" >>> BeginString=FIX.4.2 >>> SenderCompID=CID >>> TargetCompID=CAX >>> SocketConnectHost66.238.4.59 >>> SocketConnectPort=6200 >>> DataDictionary=spec/FIX42.xml >>> >>> [SESSION] >>> BeginString=FIX.4.2 >>> SenderCompID=CID >>> TargetCompID=CAX >>> SocketConnectHost=66.238.4.59 >>> SocketConnectPort=17200 >>> DataDictionary=spec/FIX42.xml >>> >>> Port 6200 is for Market Data Server and >>> Port 17200 is for Order Processing Data Server >>> >>> When I start the initiator I connect to Market data server and setting >>> object uses Default block and >>> Session block number 2 with 17200 port. >>> >>> how do I manage the session for the market data and order processing?? >>> Azmat can I have your msn id or direct email address ?? >>> mine is hozaifa_99 @ hotmail . com >>> >>> Thanks Azmat for ur reply and forwarding me to this post. >>> >>> >>> azmat wrote: >>>> >>>> QuickFIX Documentation: >>>> http://www.quickfixengine.org/quickfix/doc/html/index.html >>>> QuickFIX Support: http://www.quickfixengine.org/services.html >>>> >>>> >>>> Nice! I am using the ThreadedSocketInitiator. The data from each >>>> session >>>> will not need to interact with one another. Basically, I am sending >>>> requests (orders and market data) and then repackaging the >>>> responses (FIX >>>> Messages) into our own proprietary objects and passing them along >>>> to our >>>> internal financial subsystem. >>>> >>>> I think this will work! Beautiful job! >>>> >>>> thanks! >>>> Azmat >>>> >>>> >>>> On Feb 5, 2008 12:02 PM, Oren Miller wrote: >>>> >>>>> Depends on which initiator you use. The SocketInitiator will >>>>> keep them >>>>> both in the same thread, while the ThreadedSocketInitiator will >>>>> provide a >>>>> thread for each session. Whether they should be the same or >>>>> different >>>>> apps >>>>> I guess depends on whether the session data needs to interact >>>>> with each >>>>> other. >>>>> --oren >>>>> >>>>> On Feb 5, 2008, at 11:48 AM, mr azmat wrote: >>>>> >>>>> QuickFIX Documentation: >>>>> http://www.quickfixengine.org/quickfix/doc/html/index.html >>>>> QuickFIX Support: http://www.quickfixengine.org/services.html >>>>> >>>>> Oren- >>>>> >>>>> That sounds good. Now the question is if I get two requests from >>>>> our OMS >>>>> (1 requesting Market Data and 1 order submission), and I send >>>>> them both >>>>> out >>>>> (1 through the Market Data session and 1 through the Order >>>>> Management >>>>> session), would quickfix use two 'threads' to handle both >>>>> requests OR >>>>> should >>>>> I create a separate application to handle Market Data Requests/ >>>>> Responses >>>>> that works on its own thread? >>>>> >>>>> thanks! >>>>> Azmat >>>>> >>>>> On Feb 5, 2008 11:19 AM, Oren Miller >>>>> wrote: >>>>> >>>>>> It's pretty typical to separate market data and order management >>>>>> into >>>>>> different sessions. The will probably just create a new session >>>>>> for >>>>>> you with a different set of comp ids. You will need to add this >>>>>> new >>>>>> session to your configuration file. Then you will need to target >>>>>> your market data messages to that sessions comp ids. >>>>>> >>>>>> --oren >>>>>> >>>>>> On Feb 5, 2008, at 11:07 AM, mr azmat wrote: >>>>>> >>>>>>> Oren- >>>>>>> >>>>>>> I did speak to the representative at the brokerage firm, and they >>>>>>> said that they needed to setup a separate connection on their FIX >>>>>>> server for us. Someone told me that typically Market Data >>>>>>> Requests/ >>>>>>> Responses are over a separate IP. Is this true? And if so, how >>>>>>> will quickfix handle sending multiple messages over two different >>>>>>> connections? Is there another line in the settings file for >>>>>>> Market >>>>>>> Data connections? >>>>>>> >>>>>>> thanks! >>>>>>> Azmat >>>>>> >>>>>> >>>>> -------------------------------------------------------------------- >>>>> ----- >>>>> This SF.net email is sponsored by: Microsoft >>>>> Defy all challenges. Microsoft(R) Visual Studio 2008. >>>>> >>>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>>> _______________________________________________ >>>>> Quickfix-developers mailing list >>>>> Qui...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/quickfix-developers >>>>> >>>>> >>>>> >>>> >>>> --------------------------------------------------------------------- >>>> ---- >>>> This SF.net email is sponsored by: Microsoft >>>> Defy all challenges. Microsoft(R) Visual Studio 2008. >>>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>>> _______________________________________________ >>>> Quickfix-developers mailing list >>>> Qui...@li... >>>> https://lists.sourceforge.net/lists/listinfo/quickfix-developers >>>> >>> >>> -- >>> View this message in context: http://www.nabble.com/Market-Data- >>> Request-tp15279801p15327848.html >>> Sent from the QuickFIX - Dev mailing list archive at Nabble.com. >>> >>> >>> ---------------------------------------------------------------------- >>> --- >>> This SF.net email is sponsored by: Microsoft >>> Defy all challenges. Microsoft(R) Visual Studio 2008. >>> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >>> _______________________________________________ >>> Quickfix-developers mailing list >>> Qui...@li... >>> https://lists.sourceforge.net/lists/listinfo/quickfix-developers >>> >> >> >> ------------------------------------------------------------------------- >> This SF.net email is sponsored by: Microsoft >> Defy all challenges. Microsoft(R) Visual Studio 2008. >> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ >> _______________________________________________ >> Quickfix-developers mailing list >> Qui...@li... >> https://lists.sourceforge.net/lists/listinfo/quickfix-developers >> >> > > -- View this message in context: http://www.nabble.com/Market-Data-Request-tp15279801p15449955.html Sent from the QuickFIX - Dev mailing list archive at Nabble.com. ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers --------------------------------- Never miss a thing. Make Yahoo your homepage. ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/_______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers --------------------------------- OMG, Sweet deal for Yahoo! users/friends: Get A Month of Blockbuster Total Access, No Cost. W00t |
From: Dale W. <wil...@oc...> - 2008-03-28 15:11:49
|
Hi Eddie, I didn't see any reply to this message you sent a while ago so: Edde wrote: > Is it possible to propagate log events to the application layer? > The cleanest way to do this is is to provide your own logger by extending the existing FileLog (as you mention below). > What I need is a way to propagate low level problems (for example > connection problems) to the application so that users have a way of > knowing what's going on. My current solution is to customize QuickFix > by overriding the onEvent(String message) method in FileLog to capture > the relevant messages and then passing them on to my application. > However, in the future I'd rather not have build my own version of > QuickFix everytime there is a new version so is there a different way > to do what I want? > The other option is to create my own subclass of FileLog but from what > I can understand this also means I need to override the FileLogFactory > to actually create my own instance of FileLog. > Yep. You need to provide your own factory in order to provide your own logger, but it's no big deal. The required code is dead-simple. Dale > Cheers, > /Eddie > |
From: Mangalore, C. <cha...@cr...> - 2008-03-27 02:20:06
|
Hi, I was doing some R&d with the quickfix library, I have a quickfix simulator implemented which acts as an exchange. When I ran my application I see a 2-3ms of difference between the two 'fromApp' calls. P.S: I am just print a messge "fromApp invoked" in fromApp() Couple of doubts below: 1) How is the 'fromApp' callback invoked from the quickfix library? Why I am seeing a delay? 2) Is the invocation of 'fromApp' is multithreaded or single threaded? Any details would be vey much appriciated. Thanks -Channa ============================================================================== Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html ============================================================================== |
From: Ahmed, M. <ma...@ve...> - 2008-03-26 15:43:06
|
Hi, I have created a Trade capture report request program and it is working fine when I subscribe only one security i.e. when I send msgType = AD only for one security at a time. Now I am trying to subscribe multiple securities. I have a hash table that hold SecurityTypeId and I iterate through that hash table and send messages per securityTypeId. I do get the Acknowledge message (msgType = "AQ") back from the server for the messages i.e. one Acknowledge message per security , but the problem is that quick fix only capture the last security that was in hash table when I loop through the hash table. To be on the safe side I create a new instance of QuickFix44.Message for each security. I don't know if this is the right approch or there is something else that I need to do in order to subcribe multiple securities. Any help would be appreciated. Regards, Mobashir Ahmed |
From: Parjeet S. <par...@oa...> - 2008-03-26 06:37:16
|
Thanks Patrick, I do get QuoteRequest Acknowledgement, this is what is happening: I can see the correct Quote coming from the broker and confirm with broker but I need bit of clarification on this part of the code. >From the fromApp, I am calling crack (param, param1)........below is the example. I am not sure about the SendMessageRequest() function that I am call from fromApp is in the correct place because it retains the old message. How can I call my SendMessageRequest() function and then go back to fromApp. At the moment this is my major hurdle. I will appreciate your help. Public Sub fromApp(ByVal Param As QuickFix.Message, ByVal Param1 As QuickFix.SessionID) Implements QuickFix.Application.fromApp System.Console.WriteLine("IN: " & Param.GetType.FullName) crack(Param, Param1) System.Threading.Thread.Sleep(30000) Try Dim sTest As QuickFix.Session = QuickFix.Session.lookupSession(Param1) If (sTest.isLoggedOn = True) Then If (sTest.receivedLogon = True) Then Param.clear() SendMessageRequest(intQuoteReqID, marketCodeThirdParty) Exit Sub End If End If Catch ex As FieldNotFound MsgBox(ex.Message) End Try Param.Dispose() End Sub -----Original Message----- From: Patrick Wright [mailto:pw...@ka...] Sent: Wednesday, 26 March 2008 1:54 PM To: Parjeet Singh; qui...@li... Subject: RE: [Quickfix-developers] Currency Pairs Not really sure - but some things to check. Did you get a QuoteRequest Acknowledgement back? Are you setting the dealt currency correctly? Maybe you are not permissioned by your broker for that pair. Or they could just be not sending prices for that pair right now. Sometimes they need to turn them on. Cheers, Patrick -----Original Message----- From: Parjeet Singh [mailto:par...@oa...] Sent: Wednesday, 26 March 2008 12:53 PM To: Patrick Wright; qui...@li... Subject: RE: [Quickfix-developers] Currency Pairs Thanks Patrick for your help. When I pass the currency pairs e.g. "EUR/USD", I am able to receive the message from the Broker, but when I am passing second set of currency pairs e.g. "AUD/USD", I am still receiving "EUR/USD" with different prices. Do I have to refresh the message when I send new set of currency pairs? Thanks PS -----Original Message----- From: Patrick Wright [mailto:pw...@ka...] Sent: Tuesday, 25 March 2008 11:29 AM To: Parjeet Singh; qui...@li... Subject: RE: [Quickfix-developers] Currency Pairs After you have put your currency pairs into a config file you need to call your own function once for each pair and keep a track of the quote request ids. This will allow you to subscribe, unsubscribe and check whether your subscription request was accepted. Here is some example c# code. Sorry for formatting //example marketCodeThirdParty is USD/JPY, marketId is my internal ID for the same market protected override void SendSubscribePermanent(int marketId, string marketCodeThirdParty, int qty) { QuickFix42.QuoteRequest mdRequest = new QuickFix42.QuoteRequest(); //_lastQuoteIdentifier is just an int which is incremented for each request QuoteReqID requestId = new QuoteReqID((++_lastQuoteIdentifier).ToString()); mdRequest.set(requestId); QuickFix42.QuoteRequest.NoRelatedSym noRelatedSymbols = new QuickFix42.QuoteRequest.NoRelatedSym(); noRelatedSymbols.set(new Symbol(marketCodeThirdParty)); //returns USD etc Currency currency = new Currency(GetDealtCurrency(marketCodeThirdParty)); noRelatedSymbols.set(currency); OrderQty qty = new OrderQty(quantity); noRelatedSymbols.set(qty); FutSettDate settDate = new FutSettDate("SP"); noRelatedSymbols.set(settDate); TransactTime transactTime = new TransactTime(DateTime.Now.ToUniversalTime()); noRelatedSymbols.set(transactTime); OrdType orderType = new OrdType('C'); noRelatedSymbols.set(orderType); SecurityType secType = new SecurityType("FOR"); noRelatedSymbols.set(secType); // quote duration field noRelatedSymbols.setField(new IntField(6065, 0)); mdRequest.addGroup(noRelatedSymbols); if (Session.doesSessionExist(_currentSessionID)) { //update our collections mapping my marketid to quote request id if (_marketIdToQuote.ContainsKey(marketId)) { _marketIdToQuote[marketId] = requestId.getValue(); } else { _marketIdToQuote.Add(marketId, requestId.getValue()); } if (_quoteRequestToMarket.ContainsKey(requestId.getValue())) { _quoteRequestToMarket[requestId.getValue()] = marketId; } else { _quoteRequestToMarket.Add(requestId.getValue(), marketId); } Session.sendToTarget(mdRequest, _currentSessionID); } } protected override void CancelSubscribePermanent(int marketId , string marketCodeThirdParty, int quantity) { QuickFix42.QuoteRequest mdRequest = new QuickFix42.QuoteRequest(); QuoteReqID requestId = new QuoteReqID(DateTime.Now.Ticks.ToString()); mdRequest.set(requestId); QuickFix42.QuoteRequest.NoRelatedSym noRelatedSymbols = new QuickFix42.QuoteRequest.NoRelatedSym(); noRelatedSymbols.set(new Symbol(marketCodeThirdParty)); Currency currency = new Currency(GetDealtCurrency(marketCodeThirdParty)); noRelatedSymbols.set(currency); OrderQty qty = new OrderQty(quantity); noRelatedSymbols.set(qty); FutSettDate settDate = new FutSettDate("SP"); noRelatedSymbols.set(settDate); TransactTime transactTime = new TransactTime(DateTime.Now.ToUniversalTime()); noRelatedSymbols.set(transactTime); OrdType orderType = new OrdType('C'); noRelatedSymbols.set(orderType); SecurityType secType = new SecurityType("FOR"); noRelatedSymbols.set(secType); // quote duration field noRelatedSymbols.setField(new IntField(6065, -1)); mdRequest.addGroup(noRelatedSymbols); if (_currentSessionID != null && Session.doesSessionExist(_currentSessionID)) { //update our collections if (_marketIdToQuote.ContainsKey(marketId)) { string quoteId = _marketIdToQuote[marketId]; _marketIdToQuote.Remove(marketId); if (_quoteRequestToMarket.ContainsKey(quoteId)) { _quoteRequestToMarket.Remove(quoteId); } } Session.sendToTarget(mdRequest, _currentSessionID); } } public override void onMessage(QuickFix42.QuoteAcknowledgement message_, SessionID session) { QuoteAckStatus ack = message_.getQuoteAckStatus(); //quote request was rejected if (ack.getValue() == 5) { QuoteReqID reqId = message_.getQuoteReqID(); int marketId = 0; if (_quoteRequestToMarket.ContainsKey(reqId.getValue())) { marketId = _quoteRequestToMarket[reqId.getValue()]; } string description = " QuoteAck Reject. Market:" + marketId + " Reason:"; Text text = new Text(); QuoteRejectReason reject = new QuoteRejectReason(); if (message_.isSet(reject)) { reject = message_.getQuoteRejectReason(); description += GetQuoteRejectDescription(reject.getValue()); } if (message_.isSet(text)) { description += " Text: "; text = message_.getText(); description += text.getValue(); } //Log the error ...omitted //update our collections if (_marketIdToQuote.ContainsKey(marketId)) { string quoteId = _marketIdToQuote[marketId]; _marketIdToQuote.Remove(marketId); if (_quoteRequestToMarket.ContainsKey(quoteId)) { _quoteRequestToMarket.Remove(quoteId); } } } } -----Original Message----- From: qui...@li... [mailto:qui...@li...] On Behalf Of Parjeet Singh Sent: Wednesday, 19 March 2008 4:53 PM To: qui...@li... Subject: [Quickfix-developers] Currency Pairs QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html |
From: Patrick W. <pw...@ka...> - 2008-03-26 02:54:17
|
Not really sure - but some things to check. Did you get a QuoteRequest Acknowledgement back? Are you setting the dealt currency correctly? Maybe you are not permissioned by your broker for that pair. Or they could just be not sending prices for that pair right now. Sometimes they need to turn them on. Cheers, Patrick -----Original Message----- From: Parjeet Singh [mailto:par...@oa...] Sent: Wednesday, 26 March 2008 12:53 PM To: Patrick Wright; qui...@li... Subject: RE: [Quickfix-developers] Currency Pairs Thanks Patrick for your help. When I pass the currency pairs e.g. "EUR/USD", I am able to receive the message from the Broker, but when I am passing second set of currency pairs e.g. "AUD/USD", I am still receiving "EUR/USD" with different prices. Do I have to refresh the message when I send new set of currency pairs? Thanks PS -----Original Message----- From: Patrick Wright [mailto:pw...@ka...] Sent: Tuesday, 25 March 2008 11:29 AM To: Parjeet Singh; qui...@li... Subject: RE: [Quickfix-developers] Currency Pairs After you have put your currency pairs into a config file you need to call your own function once for each pair and keep a track of the quote request ids. This will allow you to subscribe, unsubscribe and check whether your subscription request was accepted. Here is some example c# code. Sorry for formatting //example marketCodeThirdParty is USD/JPY, marketId is my internal ID for the same market protected override void SendSubscribePermanent(int marketId, string marketCodeThirdParty, int qty) { QuickFix42.QuoteRequest mdRequest = new QuickFix42.QuoteRequest(); //_lastQuoteIdentifier is just an int which is incremented for each request QuoteReqID requestId = new QuoteReqID((++_lastQuoteIdentifier).ToString()); mdRequest.set(requestId); QuickFix42.QuoteRequest.NoRelatedSym noRelatedSymbols = new QuickFix42.QuoteRequest.NoRelatedSym(); noRelatedSymbols.set(new Symbol(marketCodeThirdParty)); //returns USD etc Currency currency = new Currency(GetDealtCurrency(marketCodeThirdParty)); noRelatedSymbols.set(currency); OrderQty qty = new OrderQty(quantity); noRelatedSymbols.set(qty); FutSettDate settDate = new FutSettDate("SP"); noRelatedSymbols.set(settDate); TransactTime transactTime = new TransactTime(DateTime.Now.ToUniversalTime()); noRelatedSymbols.set(transactTime); OrdType orderType = new OrdType('C'); noRelatedSymbols.set(orderType); SecurityType secType = new SecurityType("FOR"); noRelatedSymbols.set(secType); // quote duration field noRelatedSymbols.setField(new IntField(6065, 0)); mdRequest.addGroup(noRelatedSymbols); if (Session.doesSessionExist(_currentSessionID)) { //update our collections mapping my marketid to quote request id if (_marketIdToQuote.ContainsKey(marketId)) { _marketIdToQuote[marketId] = requestId.getValue(); } else { _marketIdToQuote.Add(marketId, requestId.getValue()); } if (_quoteRequestToMarket.ContainsKey(requestId.getValue())) { _quoteRequestToMarket[requestId.getValue()] = marketId; } else { _quoteRequestToMarket.Add(requestId.getValue(), marketId); } Session.sendToTarget(mdRequest, _currentSessionID); } } protected override void CancelSubscribePermanent(int marketId , string marketCodeThirdParty, int quantity) { QuickFix42.QuoteRequest mdRequest = new QuickFix42.QuoteRequest(); QuoteReqID requestId = new QuoteReqID(DateTime.Now.Ticks.ToString()); mdRequest.set(requestId); QuickFix42.QuoteRequest.NoRelatedSym noRelatedSymbols = new QuickFix42.QuoteRequest.NoRelatedSym(); noRelatedSymbols.set(new Symbol(marketCodeThirdParty)); Currency currency = new Currency(GetDealtCurrency(marketCodeThirdParty)); noRelatedSymbols.set(currency); OrderQty qty = new OrderQty(quantity); noRelatedSymbols.set(qty); FutSettDate settDate = new FutSettDate("SP"); noRelatedSymbols.set(settDate); TransactTime transactTime = new TransactTime(DateTime.Now.ToUniversalTime()); noRelatedSymbols.set(transactTime); OrdType orderType = new OrdType('C'); noRelatedSymbols.set(orderType); SecurityType secType = new SecurityType("FOR"); noRelatedSymbols.set(secType); // quote duration field noRelatedSymbols.setField(new IntField(6065, -1)); mdRequest.addGroup(noRelatedSymbols); if (_currentSessionID != null && Session.doesSessionExist(_currentSessionID)) { //update our collections if (_marketIdToQuote.ContainsKey(marketId)) { string quoteId = _marketIdToQuote[marketId]; _marketIdToQuote.Remove(marketId); if (_quoteRequestToMarket.ContainsKey(quoteId)) { _quoteRequestToMarket.Remove(quoteId); } } Session.sendToTarget(mdRequest, _currentSessionID); } } public override void onMessage(QuickFix42.QuoteAcknowledgement message_, SessionID session) { QuoteAckStatus ack = message_.getQuoteAckStatus(); //quote request was rejected if (ack.getValue() == 5) { QuoteReqID reqId = message_.getQuoteReqID(); int marketId = 0; if (_quoteRequestToMarket.ContainsKey(reqId.getValue())) { marketId = _quoteRequestToMarket[reqId.getValue()]; } string description = " QuoteAck Reject. Market:" + marketId + " Reason:"; Text text = new Text(); QuoteRejectReason reject = new QuoteRejectReason(); if (message_.isSet(reject)) { reject = message_.getQuoteRejectReason(); description += GetQuoteRejectDescription(reject.getValue()); } if (message_.isSet(text)) { description += " Text: "; text = message_.getText(); description += text.getValue(); } //Log the error ...omitted //update our collections if (_marketIdToQuote.ContainsKey(marketId)) { string quoteId = _marketIdToQuote[marketId]; _marketIdToQuote.Remove(marketId); if (_quoteRequestToMarket.ContainsKey(quoteId)) { _quoteRequestToMarket.Remove(quoteId); } } } } -----Original Message----- From: qui...@li... [mailto:qui...@li...] On Behalf Of Parjeet Singh Sent: Wednesday, 19 March 2008 4:53 PM To: qui...@li... Subject: [Quickfix-developers] Currency Pairs QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html |
From: Parjeet S. <par...@oa...> - 2008-03-26 01:54:15
|
Thanks Patrick for your help. When I pass the currency pairs e.g. "EUR/USD", I am able to receive the message from the Broker, but when I am passing second set of currency pairs e.g. "AUD/USD", I am still receiving "EUR/USD" with different prices. Do I have to refresh the message when I send new set of currency pairs? Thanks PS -----Original Message----- From: Patrick Wright [mailto:pw...@ka...] Sent: Tuesday, 25 March 2008 11:29 AM To: Parjeet Singh; qui...@li... Subject: RE: [Quickfix-developers] Currency Pairs After you have put your currency pairs into a config file you need to call your own function once for each pair and keep a track of the quote request ids. This will allow you to subscribe, unsubscribe and check whether your subscription request was accepted. Here is some example c# code. Sorry for formatting //example marketCodeThirdParty is USD/JPY, marketId is my internal ID for the same market protected override void SendSubscribePermanent(int marketId, string marketCodeThirdParty, int qty) { QuickFix42.QuoteRequest mdRequest = new QuickFix42.QuoteRequest(); //_lastQuoteIdentifier is just an int which is incremented for each request QuoteReqID requestId = new QuoteReqID((++_lastQuoteIdentifier).ToString()); mdRequest.set(requestId); QuickFix42.QuoteRequest.NoRelatedSym noRelatedSymbols = new QuickFix42.QuoteRequest.NoRelatedSym(); noRelatedSymbols.set(new Symbol(marketCodeThirdParty)); //returns USD etc Currency currency = new Currency(GetDealtCurrency(marketCodeThirdParty)); noRelatedSymbols.set(currency); OrderQty qty = new OrderQty(quantity); noRelatedSymbols.set(qty); FutSettDate settDate = new FutSettDate("SP"); noRelatedSymbols.set(settDate); TransactTime transactTime = new TransactTime(DateTime.Now.ToUniversalTime()); noRelatedSymbols.set(transactTime); OrdType orderType = new OrdType('C'); noRelatedSymbols.set(orderType); SecurityType secType = new SecurityType("FOR"); noRelatedSymbols.set(secType); // quote duration field noRelatedSymbols.setField(new IntField(6065, 0)); mdRequest.addGroup(noRelatedSymbols); if (Session.doesSessionExist(_currentSessionID)) { //update our collections mapping my marketid to quote request id if (_marketIdToQuote.ContainsKey(marketId)) { _marketIdToQuote[marketId] = requestId.getValue(); } else { _marketIdToQuote.Add(marketId, requestId.getValue()); } if (_quoteRequestToMarket.ContainsKey(requestId.getValue())) { _quoteRequestToMarket[requestId.getValue()] = marketId; } else { _quoteRequestToMarket.Add(requestId.getValue(), marketId); } Session.sendToTarget(mdRequest, _currentSessionID); } } protected override void CancelSubscribePermanent(int marketId , string marketCodeThirdParty, int quantity) { QuickFix42.QuoteRequest mdRequest = new QuickFix42.QuoteRequest(); QuoteReqID requestId = new QuoteReqID(DateTime.Now.Ticks.ToString()); mdRequest.set(requestId); QuickFix42.QuoteRequest.NoRelatedSym noRelatedSymbols = new QuickFix42.QuoteRequest.NoRelatedSym(); noRelatedSymbols.set(new Symbol(marketCodeThirdParty)); Currency currency = new Currency(GetDealtCurrency(marketCodeThirdParty)); noRelatedSymbols.set(currency); OrderQty qty = new OrderQty(quantity); noRelatedSymbols.set(qty); FutSettDate settDate = new FutSettDate("SP"); noRelatedSymbols.set(settDate); TransactTime transactTime = new TransactTime(DateTime.Now.ToUniversalTime()); noRelatedSymbols.set(transactTime); OrdType orderType = new OrdType('C'); noRelatedSymbols.set(orderType); SecurityType secType = new SecurityType("FOR"); noRelatedSymbols.set(secType); // quote duration field noRelatedSymbols.setField(new IntField(6065, -1)); mdRequest.addGroup(noRelatedSymbols); if (_currentSessionID != null && Session.doesSessionExist(_currentSessionID)) { //update our collections if (_marketIdToQuote.ContainsKey(marketId)) { string quoteId = _marketIdToQuote[marketId]; _marketIdToQuote.Remove(marketId); if (_quoteRequestToMarket.ContainsKey(quoteId)) { _quoteRequestToMarket.Remove(quoteId); } } Session.sendToTarget(mdRequest, _currentSessionID); } } public override void onMessage(QuickFix42.QuoteAcknowledgement message_, SessionID session) { QuoteAckStatus ack = message_.getQuoteAckStatus(); //quote request was rejected if (ack.getValue() == 5) { QuoteReqID reqId = message_.getQuoteReqID(); int marketId = 0; if (_quoteRequestToMarket.ContainsKey(reqId.getValue())) { marketId = _quoteRequestToMarket[reqId.getValue()]; } string description = " QuoteAck Reject. Market:" + marketId + " Reason:"; Text text = new Text(); QuoteRejectReason reject = new QuoteRejectReason(); if (message_.isSet(reject)) { reject = message_.getQuoteRejectReason(); description += GetQuoteRejectDescription(reject.getValue()); } if (message_.isSet(text)) { description += " Text: "; text = message_.getText(); description += text.getValue(); } //Log the error ...omitted //update our collections if (_marketIdToQuote.ContainsKey(marketId)) { string quoteId = _marketIdToQuote[marketId]; _marketIdToQuote.Remove(marketId); if (_quoteRequestToMarket.ContainsKey(quoteId)) { _quoteRequestToMarket.Remove(quoteId); } } } } -----Original Message----- From: qui...@li... [mailto:qui...@li...] On Behalf Of Parjeet Singh Sent: Wednesday, 19 March 2008 4:53 PM To: qui...@li... Subject: [Quickfix-developers] Currency Pairs QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html |
From: Patrick W. <pw...@ka...> - 2008-03-25 00:29:23
|
After you have put your currency pairs into a config file you need to call your own function once for each pair and keep a track of the quote request ids. This will allow you to subscribe, unsubscribe and check whether your subscription request was accepted. Here is some example c# code. Sorry for formatting //example marketCodeThirdParty is USD/JPY, marketId is my internal ID for the same market protected override void SendSubscribePermanent(int marketId, string marketCodeThirdParty, int qty) { QuickFix42.QuoteRequest mdRequest = new QuickFix42.QuoteRequest(); //_lastQuoteIdentifier is just an int which is incremented for each request QuoteReqID requestId = new QuoteReqID((++_lastQuoteIdentifier).ToString()); mdRequest.set(requestId); QuickFix42.QuoteRequest.NoRelatedSym noRelatedSymbols = new QuickFix42.QuoteRequest.NoRelatedSym(); noRelatedSymbols.set(new Symbol(marketCodeThirdParty)); //returns USD etc Currency currency = new Currency(GetDealtCurrency(marketCodeThirdParty)); noRelatedSymbols.set(currency); OrderQty qty = new OrderQty(quantity); noRelatedSymbols.set(qty); FutSettDate settDate = new FutSettDate("SP"); noRelatedSymbols.set(settDate); TransactTime transactTime = new TransactTime(DateTime.Now.ToUniversalTime()); noRelatedSymbols.set(transactTime); OrdType orderType = new OrdType('C'); noRelatedSymbols.set(orderType); SecurityType secType = new SecurityType("FOR"); noRelatedSymbols.set(secType); // quote duration field noRelatedSymbols.setField(new IntField(6065, 0)); mdRequest.addGroup(noRelatedSymbols); if (Session.doesSessionExist(_currentSessionID)) { //update our collections mapping my marketid to quote request id if (_marketIdToQuote.ContainsKey(marketId)) { _marketIdToQuote[marketId] = requestId.getValue(); } else { _marketIdToQuote.Add(marketId, requestId.getValue()); } if (_quoteRequestToMarket.ContainsKey(requestId.getValue())) { _quoteRequestToMarket[requestId.getValue()] = marketId; } else { _quoteRequestToMarket.Add(requestId.getValue(), marketId); } Session.sendToTarget(mdRequest, _currentSessionID); } } protected override void CancelSubscribePermanent(int marketId , string marketCodeThirdParty, int quantity) { QuickFix42.QuoteRequest mdRequest = new QuickFix42.QuoteRequest(); QuoteReqID requestId = new QuoteReqID(DateTime.Now.Ticks.ToString()); mdRequest.set(requestId); QuickFix42.QuoteRequest.NoRelatedSym noRelatedSymbols = new QuickFix42.QuoteRequest.NoRelatedSym(); noRelatedSymbols.set(new Symbol(marketCodeThirdParty)); Currency currency = new Currency(GetDealtCurrency(marketCodeThirdParty)); noRelatedSymbols.set(currency); OrderQty qty = new OrderQty(quantity); noRelatedSymbols.set(qty); FutSettDate settDate = new FutSettDate("SP"); noRelatedSymbols.set(settDate); TransactTime transactTime = new TransactTime(DateTime.Now.ToUniversalTime()); noRelatedSymbols.set(transactTime); OrdType orderType = new OrdType('C'); noRelatedSymbols.set(orderType); SecurityType secType = new SecurityType("FOR"); noRelatedSymbols.set(secType); // quote duration field noRelatedSymbols.setField(new IntField(6065, -1)); mdRequest.addGroup(noRelatedSymbols); if (_currentSessionID != null && Session.doesSessionExist(_currentSessionID)) { //update our collections if (_marketIdToQuote.ContainsKey(marketId)) { string quoteId = _marketIdToQuote[marketId]; _marketIdToQuote.Remove(marketId); if (_quoteRequestToMarket.ContainsKey(quoteId)) { _quoteRequestToMarket.Remove(quoteId); } } Session.sendToTarget(mdRequest, _currentSessionID); } } public override void onMessage(QuickFix42.QuoteAcknowledgement message_, SessionID session) { QuoteAckStatus ack = message_.getQuoteAckStatus(); //quote request was rejected if (ack.getValue() == 5) { QuoteReqID reqId = message_.getQuoteReqID(); int marketId = 0; if (_quoteRequestToMarket.ContainsKey(reqId.getValue())) { marketId = _quoteRequestToMarket[reqId.getValue()]; } string description = " QuoteAck Reject. Market:" + marketId + " Reason:"; Text text = new Text(); QuoteRejectReason reject = new QuoteRejectReason(); if (message_.isSet(reject)) { reject = message_.getQuoteRejectReason(); description += GetQuoteRejectDescription(reject.getValue()); } if (message_.isSet(text)) { description += " Text: "; text = message_.getText(); description += text.getValue(); } //Log the error ...omitted //update our collections if (_marketIdToQuote.ContainsKey(marketId)) { string quoteId = _marketIdToQuote[marketId]; _marketIdToQuote.Remove(marketId); if (_quoteRequestToMarket.ContainsKey(quoteId)) { _quoteRequestToMarket.Remove(quoteId); } } } } -----Original Message----- From: qui...@li... [mailto:qui...@li...] On Behalf Of Parjeet Singh Sent: Wednesday, 19 March 2008 4:53 PM To: qui...@li... Subject: [Quickfix-developers] Currency Pairs QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html |