quickfix-developers Mailing List for QuickFIX (Page 161)
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
|
| 2026 |
Jan
|
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Oren M. <or...@qu...> - 2006-03-10 19:21:30
|
You can do the same thing under windows. Using ssh is the better method because the public repository is on a delay, so it can be out of date by I believe up to 6 hours. Going through ssh will guarantee that you are seeing the latest. --oren Joerg Thoennes wrote: > QuickFIX Documentation: > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html > > Francis Gingras wrote: > >> QuickFIX Documentation: >> http://www.quickfixengine.org/quickfix/doc/html/index.html >> QuickFIX Support: http://www.quickfixengine.org/services.html >> >> I'm running WinXP. >> >> I tried my SF account login and even updated TortoiseCVS but nothing >> works. >> I guess I'll use the official release until I have time to try WinCVS as >> Toby suggested. > > > Most probably some issue with SF. Please open a trouble ticket there. > > Did you try "Developer CVS Access via SSH" as I suggested? It is > described here: > > http://sourceforge.net/cvs/?group_id=37535 > > You can check-out the code as usual, but you cannot commit anything > unless Oren gives you commit access. > > No idea how this could work with Windows... > > Cheers, Jörg > |
|
From: Joerg T. <Joe...@ma...> - 2006-03-10 19:10:03
|
Francis Gingras wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html= /index.html > QuickFIX Support: http://www.quickfixengine.org/services.html >=20 > I'm running WinXP. >=20 > I tried my SF account login and even updated TortoiseCVS but nothing wo= rks. > I guess I'll use the official release until I have time to try WinCVS a= s > Toby suggested. Most probably some issue with SF. Please open a trouble ticket there. Did you try "Developer CVS Access via SSH" as I suggested? It is describe= d here: http://sourceforge.net/cvs/?group_id=3D37535 You can check-out the code as usual, but you cannot commit anything unles= s Oren gives you=20 commit access. No idea how this could work with Windows... Cheers, J=F6rg --=20 Joerg Thoennes http://macd.com Tel.: +49 (0)241 44597-24 Macdonald Associates GmbH Fax : +49 (0)241 44597-10 Lothringer Str. 52, D-52070 Aachen |
|
From: Francis G. <fr...@at...> - 2006-03-10 18:52:45
|
I'm running WinXP. I tried my SF account login and even updated TortoiseCVS but nothing works. I guess I'll use the official release until I have time to try WinCVS as Toby suggested. But it used to work..weird. Thanks, Francis |
|
From: Fanshteyn, T. <tfa...@bo...> - 2006-03-10 17:54:51
|
Are there any plans to move to subversion tree?=20 Timur Fanshteyn Principal Banc of America Securities - Prime Brokerage 212-583-8624 -----Original Message----- From: qui...@li... = [mailto:qui...@li...] On Behalf Of = Joerg Thoennes Sent: Friday, March 10, 2006 12:29 PM To: Francis Gingras Cc: qui...@li... Subject: Re: [Quickfix-developers] CVS access problem QuickFIX Documentation: = http://www.quickfixengine.org/quickfix/doc/html/index.html QuickFIX Support: http://www.quickfixengine.org/services.html Francis Gingras wrote: > QuickFIX Documentation:=20 > http://www.quickfixengine.org/quickfix/doc/html/index.html > QuickFIX Support: http://www.quickfixengine.org/services.html >=20 > Is anonymous CVS checkout access disabled? > =20 > CVS keeps asking for a password and as instructed I just hit enter,=20 > but the login is then rejected. > =20 > I use TortoiseCVS with > :pserver:ano...@cv...:/cvsroot/quickfix co quickfix. = > Below is the complete log. No, SF site status does not show anything special. For Linux/UNIX, it also does not work as it should: $ cvs -d:pserver:ano...@cv...:/cvsroot/quickfix login = Logging in to = :pserver:ano...@cv...:2401/cvsroot/quickfix CVS password: cvs [login aborted]: unrecognized auth response from = cvs.sourceforge.net: M PserverBackend::PserverBackend() Connect (Connection refused) On the other hand, the cvs using a personal SF account works fine. Just = give it a try if you have a SF login. Cheers, J=F6rg -- Joerg Thoennes http://macd.com Tel.: +49 (0)241 44597-24 Macdonald Associates GmbH Fax : +49 (0)241 44597-10 Lothringer Str. 52, D-52070 Aachen ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting = language that extends applications into web and mobile media. Attend the live = webcast and join the prime developer group breaking into this new coding = territory! http://sel.as-us.falkag.net/sel?cmd=3Dk&kid=110944&bid$1720&dat=121642 _______________________________________________ Quickfix-developers mailing list Qui...@li... https://lists.sourceforge.net/lists/listinfo/quickfix-developers |
|
From: Joerg T. <Joe...@ma...> - 2006-03-10 17:29:00
|
Francis Gingras wrote: > QuickFIX Documentation: http://www.quickfixengine.org/quickfix/doc/html= /index.html > QuickFIX Support: http://www.quickfixengine.org/services.html >=20 > Is anonymous CVS checkout access disabled? > =20 > CVS keeps asking for a password and as instructed I just hit enter, but= the > login is then rejected. > =20 > I use TortoiseCVS with > :pserver:ano...@cv...:/cvsroot/quickfix co quickfix. = Below > is the complete log. No, SF site status does not show anything special. For Linux/UNIX, it also does not work as it should: $ cvs -d:pserver:ano...@cv...:/cvsroot/quickfix login Logging in to :pserver:ano...@cv...:2401/cvsroot/quickfi= x CVS password: cvs [login aborted]: unrecognized auth response from cvs.sourceforge.net:= M=20 PserverBackend::PserverBackend() Connect (Connection refused) On the other hand, the cvs using a personal SF account works fine. Just g= ive it a try if=20 you have a SF login. Cheers, J=F6rg --=20 Joerg Thoennes http://macd.com Tel.: +49 (0)241 44597-24 Macdonald Associates GmbH Fax : +49 (0)241 44597-10 Lothringer Str. 52, D-52070 Aachen |
|
From: Shepheard, T. \(London\) <Tob...@ml...> - 2006-03-10 17:27:41
|
My mistake, I use QF/J and was assuming the other versions worked similarly. Apologies for any confusion. -----Original Message----- From: Joerg Thoennes [mailto:Joe...@ma...]=20 Sent: 10 March 2006 17:16 To: Shepheard, Toby (London) Cc: Mike Smith; qui...@li... Subject: Re: [Quickfix-developers] Custom message Shepheard, Toby (London) wrote: > The "official" way to do it is to update the DataDictionary, and then it > becomes just another message type as far as quickfix is concerned. This > does mean that you'll have to do your own build though. Is the generation of the message objects from the data dictionary now part of the standard=20 QF build? This only applies for QF/J AFAIK. <snip> -------------------------------------------------------- If you are not an intended recipient of this e-mail, please notify the = sender, delete it and do not read, act upon, print, disclose, copy, = retain or redistribute it. Click here for important additional terms = relating to this e-mail. http://www.ml.com/email_terms/ -------------------------------------------------------- |
|
From: Joerg T. <Joe...@ma...> - 2006-03-10 17:22:08
|
Shepheard, Toby (London) wrote:
> The "official" way to do it is to update the DataDictionary, and then i=
t
> becomes just another message type as far as quickfix is concerned. This
> does mean that you'll have to do your own build though.
Is the generation of the message objects from the data dictionary now par=
t of the standard=20
QF build? This only applies for QF/J AFAIK.
My general feeling is that the core engine and the FIX version specific c=
ode (which=20
derives from core engine classes) should be put into separate jar files o=
r shared objects.
Together with a script which generates the code for such a package from t=
he XML file this=20
would be using custom messages and fields much easier.
Cheers, J=F6rg
--=20
Joerg Thoennes
http://macd.com
Tel.: +49 (0)241 44597-24 Macdonald Associates GmbH
Fax : +49 (0)241 44597-10 Lothringer Str. 52, D-52070 Aachen
|
|
From: Joerg T. <Joe...@ma...> - 2006-03-10 17:17:22
|
Hi Mike,
> I'm trying to connect to an exchange and they have a custom Trader Logi=
n
> message with a message type of CG. Has anybody created a custom messag=
e
> before? If so, could you send me a code sample or give me a few tips?
I assume this message is outbound, ie to be sent to the exchange.
The FIX messages for QF are generated by some XSLT and Ruby scripts from =
the FIX data=20
dictionary. You could use these scripts to generate your own messages fro=
m a modified=20
FIX4*.xml file, but I do not know how much tweaking is still needed to do=
this.
If you just need one message, just copy a small message, ie NewOrderSingl=
e and adapt it to=20
your needs. I.e. for java code in quickfix/src/java/src/quickfix/fix40/Ne=
wOrderSingle.java:
package quickfix.fix40;
import quickfix.FieldNotFound;
import quickfix.Group;
import quickfix.field.*;
public class NewOrderSingle extends Message
{
public NewOrderSingle()
{
getHeader().setField(new MsgType("D"));
}
public NewOrderSingle(
quickfix.field.ClOrdID aClOrdID,
quickfix.field.HandlInst aHandlInst,
quickfix.field.Symbol aSymbol,
quickfix.field.Side aSide,
quickfix.field.OrderQty aOrderQty,
quickfix.field.OrdType aOrdType ) {
getHeader().setField(new MsgType("D"));
set(aClOrdID);
set(aHandlInst);
set(aSymbol);
set(aSide);
set(aOrderQty);
set(aOrdType);
}
public void set(quickfix.field.ClOrdID value)
{ setField(value); }
public quickfix.field.ClOrdID get(quickfix.field.ClOrdID value)
throws FieldNotFound
{ getField(value); return value; }
...
Copy this to your code tree and adapt it, eg:
package smith.mike...;
import quickfix.FieldNotFound;
import quickfix.Group;
import quickfix.field.*;
public class CustomMessage extends Message
{
public CustomMessage()
{
getHeader().setField(new MsgType("CG"));
}
public CustomMessage(
quickfix.field.XXX field1, ... ) {
getHeader().setField(new MsgType("CG"));
set(field1);
...
}
public void set(quickfix.field.XXX value)
{ setField(value); }
public quickfix.field.XXX get(quickfix.field.XXX value)
throws FieldNotFound
{ getField(value); return value; }
...
If you have repeating group, this is a bit more complicated.
Now you can say
message =3D new CustomMessage( value1, .... );
Session.sendToTarget( message, sessionId ); ...
If you want to receive such message, you have to update your data diction=
ary to include it
and create your own MessageFactory to tell QF how to messages with MsgTyp=
e=3DCG to a Java=20
object.
Please apply this to C# or C++ analogeously.
Cheers, J=F6rg
--=20
Joerg Thoennes
http://macd.com
Tel.: +49 (0)241 44597-24 Macdonald Associates GmbH
Fax : +49 (0)241 44597-10 Lothringer Str. 52, D-52070 Aachen
|
|
From: Shepheard, T. \(London\) <Tob...@ml...> - 2006-03-10 17:08:26
|
The "official" way to do it is to update the DataDictionary, and then it
becomes just another message type as far as quickfix is concerned. This
does mean that you'll have to do your own build though.
=20
=20
-----Original Message-----
From: qui...@li...
[mailto:qui...@li...] On Behalf Of
Mike Smith
Sent: 10 March 2006 17:06
To: qui...@li...
Subject: RE: [Quickfix-developers] Custom message
I got it working, but it's definitely not the most elegant code.
=20
Message TraderLogin =3D new Message();
TraderLogin.getHeader().setField(new BeginString("FIX.4.2"));
TraderLogin.getHeader().setField(new StringField(35, "CG"));
TraderLogin.getHeader().setField(new
SenderCompID(sessionID.getSenderCompID()));
TraderLogin.getHeader().setField(new SenderSubID("2"));
TraderLogin.getHeader().setField(new
TargetCompID(sessionID.getTargetCompID()));
TraderLogin.setField(new FIX.UserName("abc"));
TraderLogin.setField(new RawData("abc"));
TraderLogin.setField(new RawDataLength(3));
Session.sendToTarget(TraderLogin, sessionID);
=20
=09
_____ =20
From: qui...@li...
[mailto:qui...@li...] On Behalf Of
Mike Smith
Sent: Friday, March 10, 2006 10:47 AM
To: qui...@li...
Subject: [Quickfix-developers] Custom message
=20
Hi,
=20
I'm trying to connect to an exchange and they have a custom
Trader Login message with a message type of CG. Has anybody created a
custom message before? If so, could you send me a code sample or give
me a few tips?
=20
Thanks,
=20
Mike
--------------------------------------------------------
If you are not an intended recipient of this e-mail, please notify the =
sender, delete it and do not read, act upon, print, disclose, copy, =
retain or redistribute it. Click here for important additional terms =
relating to this e-mail. http://www.ml.com/email_terms/
--------------------------------------------------------
|
|
From: Mike S. <MS...@rj...> - 2006-03-10 17:05:50
|
I got it working, but it's definitely not the most elegant code.
=20
Message TraderLogin =3D new Message();
TraderLogin.getHeader().setField(new BeginString("FIX.4.2"));
TraderLogin.getHeader().setField(new StringField(35, "CG"));
TraderLogin.getHeader().setField(new
SenderCompID(sessionID.getSenderCompID()));
TraderLogin.getHeader().setField(new SenderSubID("2"));
TraderLogin.getHeader().setField(new
TargetCompID(sessionID.getTargetCompID()));
TraderLogin.setField(new FIX.UserName("abc"));
TraderLogin.setField(new RawData("abc"));
TraderLogin.setField(new RawDataLength(3));
Session.sendToTarget(TraderLogin, sessionID);
=20
________________________________
From: qui...@li...
[mailto:qui...@li...] On Behalf Of
Mike Smith
Sent: Friday, March 10, 2006 10:47 AM
To: qui...@li...
Subject: [Quickfix-developers] Custom message
=20
Hi,
=20
I'm trying to connect to an exchange and they have a custom Trader Login
message with a message type of CG. Has anybody created a custom message
before? If so, could you send me a code sample or give me a few tips?
=20
Thanks,
=20
Mike
|
|
From: Francis G. <fr...@at...> - 2006-03-10 16:57:04
|
Is anonymous CVS checkout access disabled? CVS keeps asking for a password and as instructed I just hit enter, but the login is then rejected. I use TortoiseCVS with :pserver:ano...@cv...:/cvsroot/quickfix co quickfix. Below is the complete log. This used to work fine, any ideas? Thanks, Francis In C:\VS Projects: "C:\Program Files\TortoiseCVS\cvs.exe" "-q" "-z6" "checkout" "-P" "quickfix" CVSROOT=:pserver:ano...@cv...:/cvsroot/quickfix co quickfix cvs.exe [checkout aborted]: unrecognized auth response from cvs.sourceforge.net: M PserverBackend::PserverBackend() Connect (Connection refused) Error, CVS operation failed In C:\VS Projects: "C:\Program Files\TortoiseCVS\cvs.exe" "-q" "-z6" "login" CVSROOT=:pserver:ano...@cv...:/cvsroot/quickfix co quickfix Logging in to :pserver:ano...@cv...:2401:/cvsroot/quickfix co quickfix cvs.exe [login aborted]: authorization failed: server cvs.sourceforge.net rejected access to /cvsroot/quickfix co quickfix for user anonymous Error, CVS operation failed |
|
From: Mike S. <MS...@rj...> - 2006-03-10 16:46:48
|
Hi, =20 I'm trying to connect to an exchange and they have a custom Trader Login message with a message type of CG. Has anybody created a custom message before? If so, could you send me a code sample or give me a few tips? =20 Thanks, =20 Mike |
|
From: Oren M. <or...@qu...> - 2006-03-10 16:10:40
|
QuickFIX 1.11.1 is now available at http://www.quickfixengine.org You can get the release notes for all versions here: http://www.quickfixengine.org/NEWS This is a small release that fixes some bugs and adds some small functionality. Most of the bug fixes were related to the database and the build. If you are doing anything with logging or the database, you will probably want this release. FPL MEMBERSHIP --------------------- We are now members of the FPL. Specifically I am on the Global Technical Committee, Global Derivatives Committee, Repository Working Group, and the Web Services Working Group. I will be representing quickfixengine.org. |
|
From: Ashwini V. K. <Ash...@in...> - 2006-03-10 09:16:30
|
Hi,=0D I would like to know what is the throughout ie. no of fix messages (sent/received)/sec of a fix session created using Quickfix libraries. =0D Regards, Ashwini =0D **************** CAUTION - Disclaimer ***************** This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended= solely for the use of the addressee(s). If you are not the intended= recipient, please notify the sender by e-mail and delete the original= message. Further, you are not to copy, disclose, or distribute this e-mail= or its contents to any other person and any such actions are unlawful.= This e-mail may contain viruses. Infosys has taken every reasonable= precaution to minimize this risk, but is not liable for any damage you may= sustain as a result of any virus in this e-mail. You should carry out your= own virus checks before opening the e-mail or attachment. Infosys reserves= the right to monitor and review the content of all messages sent to or= from this e-mail address. Messages sent to or from this e-mail address may= be stored on the Infosys e-mail system. ***INFOSYS******** End of Disclaimer ********INFOSYS*** |
|
From: Yihu F. <Yih...@re...> - 2006-03-10 03:26:36
|
LS0tIFNlc3Npb25UaW1lLmNwcAkyMDA2LTAzLTA5IDIyOjA4OjQ5LjA2MDUyNTIwMCAtMDUwMAor KysgU2Vzc2lvblRpbWUuY3BwLm5ldwkyMDA2LTAzLTA5IDIxOjU4OjQ1LjU5ODgwNzIwMCAtMDUw MApAQCAtMTEyLDcgKzExMiwyMSBAQAogICAgIGlmKCBzdGFydCA8IGVuZCB8fCBzdGFydCA9PSBl bmQgKQogICAgICAgcmV0dXJuIHRpbWUxRGF0ZSA9PSB0aW1lMkRhdGU7CiAgICAgZWxzZSBpZigg c3RhcnQgPiBlbmQgKQotICAgICAgcmV0dXJuIGxhYnMoIHRpbWUxIC0gdGltZTIgKSA8IERhdGVU aW1lOjpTRUNPTkRTX1BFUl9EQVk7CisJeworCQlVdGNUaW1lT25seSB0aW1lMlRpbWVPbmx5ID0g VXRjVGltZU9ubHkodGltZTIpOw0KKwkJbG9uZyBkZWx0YSA9IHRpbWUyVGltZU9ubHkgLSBzdGFy dDsNCisJCWlmIChkZWx0YSA8IDApDQorCQkJZGVsdGEgPSBEYXRlVGltZTo6U0VDT05EU19QRVJf REFZICsgZGVsdGE7DQorDQorCQlpbnQgc2Vzc2lvbkxlbmd0aCA9IERhdGVUaW1lOjpTRUNPTkRT X1BFUl9EQVkgLSAoc3RhcnQgLSBlbmQpOw0KKwkJYm9vbCByZXN1bHQ7DQorCQlpZiAodGltZTEg PiB0aW1lMikNCisJCQlyZXN1bHQgPSAodGltZTEgLSB0aW1lMikgPCAoc2Vzc2lvbkxlbmd0aCAt IGRlbHRhKTsNCisJCWVsc2UNCisJCQlyZXN1bHQgPSAodGltZTIgLSB0aW1lMSkgPCBzZXNzaW9u TGVuZ3RoOw0KKwkJcmV0dXJuIHJlc3VsdDsKKyAgICAgIC8vIHJldHVybiBsYWJzKCB0aW1lMSAt IHRpbWUyICkgPCBEYXRlVGltZTo6U0VDT05EU19QRVJfREFZOworCX0KICAgICByZXR1cm4gZmFs c2U7CiAKICAgICBRRl9TVEFDS19QT1AK |
|
From: Steinberg, J. <Jon...@bo...> - 2006-03-08 18:37:50
|
I'll try giving it a shot.
In the meantime, tell me if this analysis is reasonable:
Assuming (according to your response) that it is checkSessionTime which
is responsible for triggering the reset:
bool checkSessionTime( const UtcTimeStamp& time )
{
UtcTimeStamp creationTime = m_state.getCreationTime();
return m_sessionTime.isSameSession(time, creationTime);
}
I see it depends on
m_sessionTime.isSameSession:
bool isSameSession( const UtcTimeStamp& time1, const UtcTimeStamp& time2
)
{
if( m_startDay < 0 && m_endDay < 0 )
return isSameSession( m_startTime, m_endTime, time1, time2 );
else
return isSameSession
( m_startTime, m_endTime, m_startDay, m_endDay, time1, time2 );
}
now since I am not using week-long sessions, the call to
isSameSession( m_startTime, m_endTime, time1, time2 );
is used.
My session start time is 10:00 (5 am est)
My session end time is 02:00:00 (9 pm est)
bool SessionTime::isSameSession( const UtcTimeOnly& start,
const UtcTimeOnly& end,
const UtcTimeStamp& time1,
const UtcTimeStamp& time2 )
{ QF_STACK_PUSH(SessionTime::isSameSession)
if( !isSessionTime( start, end, time1 ) ) return false;
if( !isSessionTime( start, end, time2 ) ) return false;
if( time1 == time2 ) return true;
UtcDate time1Date( time1 );
UtcDate time2Date( time2 );
if( start < end || start == end )
return time1Date == time2Date;
else if( start > end )
return labs( time1 - time2 ) < DateTime::SECONDS_PER_DAY;
return false;
QF_STACK_POP
}
Since start > end, the session will always restart when
return labs( time1 - time2 ) < DateTime::SECONDS_PER_DAY;
which means that the session will always get reset at exactly 24 hours
after the last session creation, but *not* at session start time., which
is a problem;
Day one, my session starts at 5:00:14.
Next day, the session starts up at 5:00:11. 3 sconds later it's
resetting itself, causing my problems.
Am I right, or am I left?
Assuming this is correct, I am going to work around it by changing the
session end time to 11:59:00,
thus having start<end in isSameSession and my session will not reset
during the same day (time1Date == time2Date) .
Please let me know if this is correct. My dropped sessions are driving
me nuts.
Thanks for the help
Jonathan Steinberg
-----Original Message-----
From: Oren Miller [mailto:or...@qu...]
Sent: Wednesday, March 08, 2006 9:40 AM
To: Steinberg, Jonathan
Cc: John Hensley; qui...@li...
Subject: Re: [Quickfix-developers] RE: Session *NOT* Resetting
Can you log what is going on in checkSessionTime?
--oren
Steinberg, Jonathan wrote:
> I think I fixed my original problem, but I'm still having issues with
> the reliability of my sessions.
>
> (QuckFix 1.11.0 C# application using quickfix_net wrapper dll, VS
> 2003, Windows 2003 server)
>
> Here's what happened today.
>
> When My session started up at 5 AM , apparently the session did not
> get reset;
>
> Here's the event log:
>
> 2006-03-06 05:00:11.290 Connecting to xx.xx.xx.xxx on port yyyy
>
> 2006-03-06 05:00:12.353 Connection succeeded
>
> 2006-03-06 05:00:15.050 PURGING MESSAGES
>
> 2006-03-06 05:00:15.067 Updating Session: Old Session creation time
> :Mar 3 2006 10:00AM
>
> 2006-03-06 05:00:15.067 UPDATING SESSION INFO: CreationTime Mar 6 2006
> 10:00AM incoming seq: 1 outgoing seq: 1
>
> 2006-03-06 05:00:16.993 Initiated logon request
>
> 2006-03-06 05:00:17.290 Received logon response
>
> 2006-03-06 18:00:01.097 Received logout request
>
> 2006-03-06 18:00:01.173 Sending logout response
>
> 2006-03-06 18:00:01.173 Disconnecting
>
> 2006-03-06 18:00:01.220 Socket Error
>
> 2006-03-06 18:00:11.000 Connecting to xx.xx.xx.xxx on port yyyy
>
> 2006-03-06 18:00:12.047 Connection failed
>
> (The Purging messages and updating session entries are the logging I
> added to diagnose my earlier problem (The 10:AM in the log msgs really
> is 5:AM ET- I left the UTC in the log message))
>
> Here are my incoming and outgoing logs (I'm BFPG the counterparty is
BOFA)
>
> 2006-03-07 05:00:12.803
>
8=FIX.4.09=6135=A34=78249=BFPG52=20060307-10:00:1256=BOFA98=0108=6010=20
3
>
> 2006-03-07 05:00:13.227
>
8=FIX.4.09=6435=A49=BOFA56=BFPG34=143=N52=20060307-10:00:1298=0108=6010=
081
>
> 2006-03-07 05:00:14.540
> 8=FIX.4.09=10035=534=78349=BFPG52=20060307-10:00:1456=BOFA58=MsgSeqNum
> too low, expecting 932 but received 110=211
>
> 2006-03-07 05:00:14.650
>
8=FIX.4.09=6335=249=BOFA56=BFPG34=243=N52=20060307-10:00:127=116=78110=0
17
>
> 2006-03-07 05:00:43.177
>
8=FIX.4.09=5935=A34=149=BFPG52=20060307-10:00:4356=BOFA98=0108=6010=102
>
> 2006-03-07 05:00:43.320
>
8=FIX.4.09=17635=549=BOFA56=BFPG34=343=N52=20060307-10:00:4358=Catastrop
ic
> Error: Incoming sequence number (1) is less than expected (784)
> without PossDupFlag being set. Logging out.10=051
>
> 2006-03-07 05:00:43.413
> 8=FIX.4.09=4749=35=534=2BFPG52=20060307-10:00:4356=BOFA10=060
>
> Here is how I read this:
>
> The session did not reset at 5, but rather tried to logon with the
> prior sequence numbers.
>
> This caused my session to reject the counter party's logon response,
> which had properly reset their sequence number 1.
>
> At the same time, the counter party sends a resend request.
>
> All this happens before 05:00:15
>
> Then suddenly at 05:00:15 the session does reset itself, causing the
> counter party to reject, as it's not expecting it now.
>
> Why is the session not resetting at the session start time?
>
> Any help would be much appreciated.
>
> Jonathan Steinberg
>
|
|
From: Scott R. <sri...@fo...> - 2006-03-08 15:54:34
|
Thanks both for the quick response. Looks like this'll fix my problem. I'm constantly impressed by the prompt, thorough helpfulness on this list, keep up the good work! =20 - Scott =20 ________________________________ From: Sean Kirkpatrick [mailto:sea...@pi...]=20 Sent: Wednesday, March 08, 2006 10:42 AM To: Scott Riopelle; qui...@li... Subject: RE: [Quickfix-developers] quickfix message flow question =20 Scott, =20 Are you validating against the data dictionaries? If so, it is most likely failing to validate based on the data dictionary before reaching the callback funcs... =20 --Sean -----Original Message----- From: qui...@li... [mailto:qui...@li...]On Behalf Of Scott Riopelle Sent: Wednesday, March 08, 2006 10:39 AM To: qui...@li... Subject: [Quickfix-developers] quickfix message flow question The counterparty I am dealing with decided they need to alter the FIX spec (added field here, changed field from required to conditional there). =20 My intent was to utilize the fromApp() method (java implementation) to add or subtract the required fields before cracking the message. Unfortunately, this method is never reached when I receive the offending messages. The log shows the messages received and my rejection messages sent, but the breakpoint in fromApp() never hits. Does quickfix just kick them out ahead of time (sending a reject message back to the counterparty) and if so, is there some way to access the message instead (my counterparty does not support reject messages.) Any help would be greatly appreciated. =09 -Scott |
|
From: Joerg T. <Joe...@ma...> - 2006-03-08 15:50:21
|
Hi Scott,
> The counterparty I am dealing with decided they need to alter the FIX
> spec (added field here, changed field from required to conditional
> there).
>=20
> My intent was to utilize the fromApp() method (java implementation) to
> add or subtract the required fields before cracking the message.
> Unfortunately, this method is never reached when I receive the offendin=
g
> messages. The log shows the messages received and my rejection message=
s
> sent, but the breakpoint in fromApp() never hits. Does quickfix just
> kick them out ahead of time (sending a reject message back to the
> counterparty) and if so, is there some way to access the message instea=
d
> (my counterparty does not support reject messages.) Any help would be
> greatly appreciated.
Incoming messages are validated against the data dictionary. So I would s=
uggest to adapt=20
the data dictionary to match your counterparty FIX spec.
Cheers, J=F6rg
--=20
Joerg Thoennes
http://macd.com
Tel.: +49 (0)241 44597-24 Macdonald Associates GmbH
Fax : +49 (0)241 44597-10 Lothringer Str. 52, D-52070 Aachen
|
|
From: Sean K. <sea...@pi...> - 2006-03-08 15:42:08
|
Scott,
=20
Are you validating against the data dictionaries? If so, it is most =
likely failing to validate based on the data dictionary before reaching =
the callback funcs...
=20
--Sean
-----Original Message-----
From: qui...@li... =
[mailto:qui...@li...]On Behalf Of =
Scott Riopelle
Sent: Wednesday, March 08, 2006 10:39 AM
To: qui...@li...
Subject: [Quickfix-developers] quickfix message flow question
The counterparty I am dealing with decided they need to alter the FIX =
spec (added field here, changed field from required to conditional =
there).
=20
My intent was to utilize the fromApp() method (java implementation) to =
add or subtract the required fields before cracking the message. =
Unfortunately, this method is never reached when I receive the offending =
messages. The log shows the messages received and my rejection messages =
sent, but the breakpoint in fromApp() never hits. Does quickfix just =
kick them out ahead of time (sending a reject message back to the =
counterparty) and if so, is there some way to access the message instead =
(my counterparty does not support reject messages.) Any help would be =
greatly appreciated.
=
=
-Scott
|
|
From: Scott R. <sri...@fo...> - 2006-03-08 15:39:26
|
The counterparty I am dealing with decided they need to alter the FIX spec (added field here, changed field from required to conditional there). =20 My intent was to utilize the fromApp() method (java implementation) to add or subtract the required fields before cracking the message. Unfortunately, this method is never reached when I receive the offending messages. The log shows the messages received and my rejection messages sent, but the breakpoint in fromApp() never hits. Does quickfix just kick them out ahead of time (sending a reject message back to the counterparty) and if so, is there some way to access the message instead (my counterparty does not support reject messages.) Any help would be greatly appreciated. =20 -Scott |
|
From: John D. <joh...@ch...> - 2006-03-08 14:41:17
|
Hi, Does QuickFIX have some pre-built method for replaying log files (.incoming, .outgoing, etc.) left around by previously run applications? Thanks, John |
|
From: Oren M. <or...@qu...> - 2006-03-08 14:40:00
|
Can you log what is going on in checkSessionTime? --oren Steinberg, Jonathan wrote: > I think I fixed my original problem, but I'm still having issues with > the reliability of my sessions. > > (QuckFix 1.11.0 C# application using quickfix_net wrapper dll, VS > 2003, Windows 2003 server) > > Here's what happened today. > > When My session started up at 5 AM , apparently the session did not > get reset; > > Here’s the event log: > > 2006-03-06 05:00:11.290 Connecting to xx.xx.xx.xxx on port yyyy > > 2006-03-06 05:00:12.353 Connection succeeded > > 2006-03-06 05:00:15.050 PURGING MESSAGES > > 2006-03-06 05:00:15.067 Updating Session: Old Session creation time > :Mar 3 2006 10:00AM > > 2006-03-06 05:00:15.067 UPDATING SESSION INFO: CreationTime Mar 6 2006 > 10:00AM incoming seq: 1 outgoing seq: 1 > > 2006-03-06 05:00:16.993 Initiated logon request > > 2006-03-06 05:00:17.290 Received logon response > > 2006-03-06 18:00:01.097 Received logout request > > 2006-03-06 18:00:01.173 Sending logout response > > 2006-03-06 18:00:01.173 Disconnecting > > 2006-03-06 18:00:01.220 Socket Error > > 2006-03-06 18:00:11.000 Connecting to xx.xx.xx.xxx on port yyyy > > 2006-03-06 18:00:12.047 Connection failed > > (The Purging messages and updating session entries are the logging I > added to diagnose my earlier problem (The 10:AM in the log msgs really > is 5:AM ET– I left the UTC in the log message)) > > Here are my incoming and outgoing logs (I’m BFPG the counterparty is BOFA) > > 2006-03-07 05:00:12.803 > 8=FIX.4.09=6135=A34=78249=BFPG52=20060307-10:00:1256=BOFA98=0108=6010=203 > > 2006-03-07 05:00:13.227 > 8=FIX.4.09=6435=A49=BOFA56=BFPG34=143=N52=20060307-10:00:1298=0108=6010=081 > > 2006-03-07 05:00:14.540 > 8=FIX.4.09=10035=534=78349=BFPG52=20060307-10:00:1456=BOFA58=MsgSeqNum > too low, expecting 932 but received 110=211 > > 2006-03-07 05:00:14.650 > 8=FIX.4.09=6335=249=BOFA56=BFPG34=243=N52=20060307-10:00:127=116=78110=017 > > 2006-03-07 05:00:43.177 > 8=FIX.4.09=5935=A34=149=BFPG52=20060307-10:00:4356=BOFA98=0108=6010=102 > > 2006-03-07 05:00:43.320 > 8=FIX.4.09=17635=549=BOFA56=BFPG34=343=N52=20060307-10:00:4358=Catastropic > Error: Incoming sequence number (1) is less than expected (784) > without PossDupFlag being set. Logging out.10=051 > > 2006-03-07 05:00:43.413 > 8=FIX.4.09=4749=35=534=2BFPG52=20060307-10:00:4356=BOFA10=060 > > Here is how I read this: > > The session did not reset at 5, but rather tried to logon with the > prior sequence numbers. > > This caused my session to reject the counter party’s logon response, > which had properly reset their sequence number 1. > > At the same time, the counter party sends a resend request. > > All this happens before 05:00:15 > > Then suddenly at 05:00:15 the session does reset itself, causing the > counter party to reject, as it’s not expecting it now. > > Why is the session not resetting at the session start time? > > Any help would be much appreciated. > > Jonathan Steinberg > |
|
From: Scott R. <sri...@fo...> - 2006-03-08 14:24:30
|
I'm not sure if anyone has got back to you, but you can check the actual composition of your sent messages in the log file (location configured in the <session>.settings file). You can ensure the fields you are intending to assign values to are actually being added. Furthermore, check the values in the '3' or 'j' messages you receive; they will contain a reason for rejection. If a field is missing, those messages will specify which one. Hope this helps. =20 -Scott =20 ________________________________ From: qui...@li... [mailto:qui...@li...] On Behalf Of rajesh rathore Sent: Tuesday, March 07, 2006 7:30 AM To: qui...@li... Subject: [Quickfix-developers] problem =20 hi sir, =20 i am rajesh rathore. working in QuickFIX4.2 Protocol. i am facing one problem related to New Order single initiator send successfly request to executor but executor either Reject(msg Type=3D'3') or Business=20 Message Reject(Msg Type=3D'j'). here i am using quickfix 1.11.0 which is download from quickfixengine.org side. and create initiator file in dot net environment with c# language. i am sending initiatior file to you with attachment. please give me respone , how to solve this problem. rajesh rathore (Bangalore) |
|
From: Steinberg, J. <Jon...@bo...> - 2006-03-07 23:38:14
|
I think I fixed my original problem, but I'm still having issues with the reliability of my sessions. (QuckFix 1.11.0 C# application using quickfix_net wrapper dll, VS 2003, Windows 2003 server) Here's what happened today. When My session started up at 5 AM , apparently the session did not get reset; Here's the event log: 2006-03-06 05:00:11.290 Connecting to xx.xx.xx.xxx on port yyyy 2006-03-06 05:00:12.353 Connection succeeded 2006-03-06 05:00:15.050 PURGING MESSAGES 2006-03-06 05:00:15.067 Updating Session: Old Session creation time :Mar 3 2006 10:00AM 2006-03-06 05:00:15.067 UPDATING SESSION INFO: CreationTime Mar 6 2006 10:00AM incoming seq: 1 outgoing seq: 1 2006-03-06 05:00:16.993 Initiated logon request 2006-03-06 05:00:17.290 Received logon response 2006-03-06 18:00:01.097 Received logout request 2006-03-06 18:00:01.173 Sending logout response 2006-03-06 18:00:01.173 Disconnecting 2006-03-06 18:00:01.220 Socket Error 2006-03-06 18:00:11.000 Connecting to xx.xx.xx.xxx on port yyyy 2006-03-06 18:00:12.047 Connection failed (The Purging messages and updating session entries are the logging I added to diagnose my earlier problem (The 10:AM in the log msgs really is 5:AM ET- I left the UTC in the log message)) Here are my incoming and outgoing logs (I'm BFPG the counterparty is BOFA) 2006-03-07 05:00:12.803 8=FIX.4.09=6135=A34=78249=BFPG52=20060307-10:00:1256=BOFA98=0108=6010=20 3 2006-03-07 05:00:13.227 8=FIX.4.09=6435=A49=BOFA56=BFPG34=143=N52=20060307-10:00:1298=0108=6010= 081 2006-03-07 05:00:14.540 8=FIX.4.09=10035=534=78349=BFPG52=20060307-10:00:1456=BOFA58=MsgSeqNum too low, expecting 932 but received 110=211 2006-03-07 05:00:14.650 8=FIX.4.09=6335=249=BOFA56=BFPG34=243=N52=20060307-10:00:127=116=78110=0 17 2006-03-07 05:00:43.177 8=FIX.4.09=5935=A34=149=BFPG52=20060307-10:00:4356=BOFA98=0108=6010=102 2006-03-07 05:00:43.320 8=FIX.4.09=17635=549=BOFA56=BFPG34=343=N52=20060307-10:00:4358=Catastrop ic Error: Incoming sequence number (1) is less than expected (784) without PossDupFlag being set. Logging out.10=051 2006-03-07 05:00:43.413 8=FIX.4.09=4749=35=534=2BFPG52=20060307-10:00:4356=BOFA10=060 Here is how I read this: The session did not reset at 5, but rather tried to logon with the prior sequence numbers. This caused my session to reject the counter party's logon response, which had properly reset their sequence number 1. At the same time, the counter party sends a resend request. All this happens before 05:00:15 Then suddenly at 05:00:15 the session does reset itself, causing the counter party to reject, as it's not expecting it now. Why is the session not resetting at the session start time? Any help would be much appreciated. Jonathan Steinberg |
|
From: rajesh r. <rat...@gm...> - 2006-03-07 12:37:15
|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using QuickFix;
namespace quickfixclient2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SocketInitiator initiator;
private void Form1_Load(object sender, EventArgs e)
{
String fileName = Environment.CurrentDirectory + @"\fixSeting.cfg";//args[0];
SessionSettings settings = new SessionSettings(fileName);
//Container for setting dictionaries mapped to session
QuickFix.Application application = new MyApplication();
//This interface must be implemented to define what your FIX application does.
FileStoreFactory storeFactory = new FileStoreFactory(settings);
//Creates a file based implementation of messagestore
FileLogFactory logFactory = new FileLogFactory(settings);
//Creates a file based implementation of log
MessageFactory messageFactory = new DefaultMessageFactory();
initiator = new SocketInitiator
(application, storeFactory, settings, logFactory /*optional*/, messageFactory);
//initiator.start();
//MessageBox.Show("Ready to Work");
}
private void button1_Click(object sender, EventArgs e)
{
initiator.start();
// MessageBox.Show("log on");
listMessage.Items.Add("log on");
}
private void button2_Click(object sender, EventArgs e)
{
try
{
TransactTime tt = new TransactTime(DateTime.Now.ToUniversalTime());
QuickFix42.NewOrderSingle message = new QuickFix42.NewOrderSingle(new ClOrdID(DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString()), new HandlInst('1'), new Symbol("AMLAK"), new Side(Side.SELL), tt, new OrdType(OrdType.LIMIT));
//message.set(new Text("Placing Order!"));
QuickFix.SessionID s = new SessionID("FIX.4.2", "CLIENT2", "EXECUTOR");
TransactTime st = new TransactTime(DateTime.Now);
// message.setField(60, "20051222-06:06:24.281");
// message.setField(167, "Services");
// message.setField(50, "CLIENT2");
//message.setField(142, "1");
//message.setField(38, "100");
// message.setField(386, "1");
// message.setField(336, "0510");
//message.setField(63, "0");
//message.setField(1, "45159816");
//message.setField(40, "2");
string plOrderID = message.getClOrdID().getValue();// .ToString();// (ClOrdID 11);
//plOrderType = message.getOrdType().ToString();
string plOrderSymbol = message.getSymbol().getValue();//.ToString();
string plOrderSide = message.getSide().getValue().ToString();
//listing the optional tagids
//message.setField(63, "0");
//message.setField(64, "20060202");
//message.setField(18, "G");
//message.setField(44, "145.00");
//message.setField(59, "0");
/* message.setField(8, "FIX.4.2");
message.setField(9, "127");
message.setField(35, "D");
message.setField(49, "CLIENT1");
message.setField(56, "EXECUTOR");
message.setField(34, "8");
message.setField(50, "CLIENT1");
message.setField(142, "234");
message.setField(52, "20060228-10:02:24.281");
message.setField(11, "E001");
message.setField(21, "1");
message.setField(386, "1");
message.setField(55, "AMLOCK");
message.setField(54, "1");
message.setField(60, "20060228-10:02:24.281");
message.setField(38, "15");
message.setField(40, "2");
*/
//message.setField(10, "097");
// message.setField(7300, "0");
// message.setField(44, "105");
// message.setField(453, "1");
// message.setField(448, "4501");
// message.setField(447, "D");
// message.setField(452, "29");
Session.sendToTarget(message, s);
//sendOrderStatusReq(plOrderSymbol, plOrderID);
listMessage.Items.Add("Order Status Request sent");
//MessageBox.Show("Order Status Request sent");
}
catch (SessionNotFound ex)
{
MessageBox.Show("Session not found");
}
catch (DoNotSend ex)
{
MessageBox.Show(ex.ToString());
}
catch (IncorrectDataFormat ex)
{
MessageBox.Show(ex.ToString());
}
catch (InvalidMessage ex)
{
MessageBox.Show(ex.ToString());
}
catch (IncorrectTagValue ex)
{
MessageBox.Show(ex.ToString());
}
# region comment
/* try
{
TransactTime tt = new TransactTime(DateTime.Now.ToUniversalTime());
QuickFix42.NewOrderSingle message = new QuickFix42.NewOrderSingle(new ClOrdID(DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString()), new HandlInst('1'), new Symbol("AMLAK"), new Side(Side.BUY), tt, new OrdType(OrdType.MARKET));
//message.set(new Text("Placing Order!"));
QuickFix.SessionID s = new SessionID("FIX.4.2", "CLIENT1", "EXECUTOR");
TransactTime st = new TransactTime(DateTime.Now);
string plOrderID = message.getClOrdID().getValue();// .ToString();// (ClOrdID 11);
//plOrderType = message.getOrdType().ToString();
string plOrderSymbol = message.getSymbol().getValue();//.ToString();
string plOrderSide = message.getSide().getValue().ToString();
// message.setField(58, "New Order");
// message.setField(49, "CLIENT1");
//message.setField(56, "EXECUTOR");
//message.setField(35, "D");
// message.setField(50, "CLIENT1");
// message.setField(142, "010");
// message.setField(52, "20051222-06:06:23.281");
// message.setField(11, plOrderID);
//message.setField(11, "106");
// message.setField(21, "1");
// message.setField(386, "1");
// message.setField(55, plOrderSymbol);
//message.setField(55, "RAJESH");
// message.setField(54, plOrderSide);
//message.setField(54, "1");
// message.setField(60, "20051222-06:06:24.281");
// message.setField(38, "10");
// message.setField(40, "2");
message.setField(40, "2");
message.setField(386, "1");
message.setField(142, "1");
message.setField(50, "CLIENT1");
message.setField(38, "10");
//message.setField(8, "FIX.4.2");
// message.setField(9, "146");
// message.setField(35, "D");
// message.setField(49, "CLIENT1");
// message.setField(56, "EXECUTOR");
// message.setField(34, "144");
// message.setField(50, "CLIENT1");
// message.setField(142, "010");
// message.setField(52, "20051222-06:06:23.281");
// message.setField(11, plOrderID);
// message.setField(1,"1233");
//message.setField(11, "106");
// message.setField(21, "1");
// message.setField(386, "1");
// message.setField(55, plOrderSymbol);
//message.setField(55, "RAJESH");
// message.setField(54, plOrderSide);
//message.setField(54, "1");
// message.setField(60, "20051222-06:06:24.281");
// message.setField(38, "10");
// message.setField(40, "2");
Session.sendToTarget(message, s);
//sendOrderStatusReq(plOrderSymbol, plOrderID);
MessageBox.Show("Order Status Request sent");
}
catch (SessionNotFound ex)
{
MessageBox.Show("Session not found");
}
catch (DoNotSend ex)
{
MessageBox.Show(ex.ToString());
}
catch (IncorrectDataFormat ex)
{
MessageBox.Show(ex.ToString());
}
catch (InvalidMessage ex)
{
MessageBox.Show(ex.ToString());
}
catch (IncorrectTagValue ex)
{
MessageBox.Show(ex.ToString());
}*/
#endregion
}
static void sendOrderStatusReq(string plOrderSymbol, string plOrderID)
{
try
{
TransactTime tt = new TransactTime(DateTime.Now.ToUniversalTime());
QuickFix42.OrderStatusRequest message = new QuickFix42.OrderStatusRequest(new ClOrdID(DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString()), new Symbol(plOrderSymbol), new Side(Side.BUY));
// message.set(new Text("Placing Order!"));
QuickFix.SessionID s = new SessionID("FIX.4.2", "CLIENT1", "EXECUTOR");
TransactTime st = new TransactTime(DateTime.Now);
//message.setField(60, "20051222-06:06:24.281");
//plOrderType = message.getOrdType();
// plOrderSide
//message.setField(11, plOrderID);
// message.setField(50, "CLIENT2");
// message.setField(142, "1");
//message.setField(38, "100");
//message.setField(386, "1");
//message.setField(336, "0510");
// // message.setField(336, "0510");
//- message.setField(63, "0");
//message.setField(1, "45159816");
//listing the optional tagids
//message.setField(63, "0");
//message.setField(64, "20060202");
//message.setField(18, "G");
//message.setField(44, "145.00");
//message.setField(59, "0");
// message.setField(58, "New Order");
// message.setField(7300, "0");
// message.setField(44, "105");
// message.setField(453, "1");
// message.setField(448, "4501");
// message.setField(447, "D");
// message.setField(452, "29");
Session.sendToTarget(message, s);
}
catch (SessionNotFound ex)
{
MessageBox.Show("Session not found");
}
catch (DoNotSend ex)
{
MessageBox.Show(ex.ToString());
}
catch (IncorrectDataFormat ex)
{
MessageBox.Show(ex.ToString());
}
catch (InvalidMessage ex)
{
MessageBox.Show(ex.ToString());
}
catch (IncorrectTagValue ex)
{
MessageBox.Show(ex.ToString());
}
}
}
} |