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

Custom FIX Fields #4

Closed
aisfell opened this issue Feb 24, 2020 · 4 comments
Closed

Custom FIX Fields #4

aisfell opened this issue Feb 24, 2020 · 4 comments

Comments

@aisfell
Copy link

aisfell commented Feb 24, 2020

I would like to add FIX4..4. MarketDataRequests with a custom optional field NoQuantityLevels:8000 and a subsequent group field Quantity:53 repeating itself up to #NoQuantityLevels

I tried to work with https://github.com/TimelordUK/jspurefix#dictionary-definitions but could not get it to work. Could you elaborate on this part a bit more?

Thanks!

@TimelordUK
Copy link
Owner

I will try to add a little example explaining how things are done.

@aisfell
Copy link
Author

aisfell commented Feb 25, 2020

Great, thanks for the effort, looking forward to it!

@TimelordUK
Copy link
Owner

TimelordUK commented Feb 25, 2020

it is still in early stages but this demo switches to using quick fix notation with a local dictionary file - its easier to work with this imho. From here we can compile the definitions based on changes to the dictionary definitions in data\FIX44-MD.xml. Then we can add your new repeated group.

https://github.com/TimelordUK/jspf-md-demo

if you clone and install and then run

npm run generate
# npm run generate

> jspf-md-demo@1.0.0 generate C:\Users\Stephen\dev\ts\jspf-md-demo
> cd node_modules/jspurefix/dist && node jsfix-cmd "--dict=../../data/FIX44-MD.xml" "--compile" "--output=../../src/types/"

you will create definitions in src\types

then build the code

tsc

then run

# npm run md-app

> jspf-md-demo@1.0.0 md-app C:\Users\Stephen\dev\ts\jspf-md-demo
> cd dist/app && node app
2020-02-25T21:36:05.264Z [test_server:FixSession] info: [0] 8 (BeginString) = FIX4.4, [1] 9 (BodyLength) = 0000123
[2] 35 (MsgType) = V[MarketDataRequest], [3] 49 (SenderCompID) = init-comp
[4] 56 (TargetCompID) = accept-comp, [5] 34 (MsgSeqNum) = 2
[6] 57 (TargetSubID) = fix, [7] 52 (SendingTime) = 20200225-21:36:05.262
[8] 262 (MDReqID) = 1, [9] 263 (SubscriptionRequestType) = 1[SnapshotPlusUpdates]
[10] 264 (MarketDepth) = 0, [11] 267 (NoMDEntryTypes) = 2
[12] 269 (MDEntryType) = 0[Bid], [13] 269 (MDEntryType) = 0[Bid]
[14] 146 (NoRelatedSym) = 1, [15] 55 (Symbol) = EUR/USD
[16] 10 (CheckSum) = 132
2020-02-25T21:36:05.265Z [test_server:FixSession] info: forwarding msgType = 'V' to application
2020-02-25T21:36:05.266Z [test_server:MDServer] info: {
    "MDReqID": "1",
    "SubscriptionRequestType": "1",
    "MarketDepth": 0,
    "MDReqGrp": {
        "NoMDEntryTypes": [
            {
                "MDEntryType": "0"
            },
            {
                "MDEntryType": "1"
            }
        ]
    },
    "InstrmtMDReqGrp": {
        "NoRelatedSym": [
            {
                "Instrument": {
                    "Symbol": "EUR/USD"
                }
            }
        ]
    }
}

@aisfell
Copy link
Author

aisfell commented Feb 26, 2020

@TimelordUK that's fantastic! Thanks! I will need to do some changes but I will get there with this demo.

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