Hello Chris,
Thanks for the reply.
I'll check out your code see what I can learn and proceed from there. I'm sure there will plenty to use and learn from. Thanks for creating the project.
Since this is for my personal project, I most definitely will persist until complete enough for use. I'm not sure about the FIXML stuff. I am not opposed to it, it just isn't a priority for me at this time, and isn't required for my trading. However, I would like it to become a full FIX Protocol engine at some point in time.
On 1/1/2011 3:12 PM, Chris Muller wrote:
http://www.fixprotocol.org/products/detail/4649
Thanks for this link. I wasn't aware of this service. That will be a valuable resource.
I am glad my post brought to surface unknown code. It will be a valuable resource.
Thanks again.
Jimmie
On 1/1/2011 3:06 PM, Chris Muller wrote:
Cool Jimmie! Hey, about 6 years ago I did an implementation of the FIX protocol; v41 and 42 IIRC. I is incomplete but I think it was able to pass the logon and heartbeat test at... that public FIX protocol testing facility (sorry, can't remember where it was at the moment).
It handles the FIX async protocol; sequence-numbers, gap-filling, etc. It was originally going to be for a pay job, but unfortunately the job didn't work out and so I abandoned the work.
But the work done to that point spans nearly a year and may provide a good starting point on which you could finish it or at least get ideas from it. I haven't been in the code since 2005, but I considered it a good design.
I've created a new project on Squeaksource called "Fix Protocol" with you and I as administrators.
I hope you find it useful. I'm really glad you are doing this which I was never able to get back and finish!
Regards, Chris
On Fri, Dec 31, 2010 at 4:24 PM, Jimmie Houchinjlhouchin@gmail.com wrote:
Hello,
I am porting the FIX protocol to Squeak/Pharo. http://www.fixprotocol.org/
It is the Financial Information eXchange protocol. It is used by many firms in the financial industries, stocks, forex, etc.
There is good documentation and also a semi-reference implementation in Java. http://www.quickfixj.org
I have a partial port started but I wanted a check with those who know more than I about proper Smalltalk coding.
In the Java implementation there are over 2000 classes. In the protocol there are approximately 90 message types and 956 field types.
I am initially creating the message classes as they form the basis of the protocol and the fields are simply instance variables and methods in the message classes.
I am not porting the Java library. I am implementing the protocol in Smalltalk from the documentation.
Initially I have created a Fix44Field class with its necessary variables. There are several versions of the Protocol and FIX 4.4 is the one required for my application.
With this Fix44Field class I am creating a Dictionary with the 956 different field types. I am planning on creating a constructor method which will create the desired field from the information in the dictionary about the field and its properties.
Am I way off base here? Should I really create the 956 classes necessary to for each field in addition to the 90 or so message classes, and then I don't know what else I haven't discovered yet. Having 1000+ classes just seems unwieldy and naively it just doesn't feel like the Smalltalk way. I could be wrong, but I haven't seen such an example to my memory. I don't know enough about Java to know if it is good Java form either.
When I have a reasonably fleshed out, tested and working solution, I will make the source available under a MIT license. I would love to see Squeak/Pharo become an out of the box viable option for trading applications.
Advise and wisdom greatly appreciated.
Thanks.
Jimmie