Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement FIX Group #1

Open
urv opened this issue Aug 25, 2011 · 5 comments
Open

Implement FIX Group #1

urv opened this issue Aug 25, 2011 · 5 comments
Assignees

Comments

@urv
Copy link
Owner

urv commented Aug 25, 2011

Define a FIX group specification data type and some transformers to get a parser out of it.

@ghost ghost assigned urv Aug 25, 2011
@urv
Copy link
Owner Author

urv commented Aug 28, 2011

FIX groups are added for FIX41/42. There is some problems with components in FIX43/44.

@urv urv closed this as completed Aug 28, 2011
@urv
Copy link
Owner Author

urv commented Aug 30, 2011

We are expanding FIX components to their full content of FIX tags. So FIX43 and FIX44 should also work now.
But we still need to test our FIX group implementation.

@cmahon
Copy link

cmahon commented Jul 20, 2013

First of all, fantastic library, thanks for making it available - I am a newbie to Haskell and have learned a lot by reviewing your code. I ran into a problem with repeating groups and I wanted to check whether you regard it as a defect. To provide a specific example, in a MarketDataRequest message, there is a group that begins with the NoRelatedSym field. The first field in the repeating section for this group in the FIX4.4 spec is Symbol - this is an optional field but is effectively mandatory for your parser as it is used as the separator between groups. Would it be better to determine the group separator dynamically at parse time rather than predetermine it in this way? I am using your library with an exchange that does not include the Symbol field - only the SecurityID and SecurityIDSource fields are included in the repeating section.

@cmahon
Copy link

cmahon commented Jul 21, 2013

I hacked together a fix in a fork of your repo (https://github.com/cmahon/fixhs) that I can use for the time being but it's not an elegant approach, partly because I'm a Haskell novice and the code is no doubt a bit amateurish but mainly because it doesn't address the main design issue mentioned in my earlier comment whereby the group separator is predetermined. What I did was add the predetermined separator tag to the list of group body tags and set the first tag encountered in the first group to be the group separator as long as it is present in the expanded list of group body tags. I need to test the fix properly - so far I've only run a few very basic checks.

@urv
Copy link
Owner Author

urv commented Jul 21, 2013

Thanks a lot for testing and providing a fix! You are completely right - Instrumt shouldn't bee declared as mandatory. I will have a look at your fix.

@urv urv reopened this Jul 21, 2013
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants