Ports 7003 / 7004 and DerivativeSecurityListRequest, SecurityDefinitionRequest

2 messages Options
Embed this post
Permalink
Matt Y

Ports 7003 / 7004 and DerivativeSecurityListRequest, SecurityDefinitionRequest

Reply Threaded More More options
Print post
Permalink
Dear all,

I am kind of new to Marketcetera and FIX. I am not 100% sure what are
/ how to use the following messages and would really appreciate it if
someone can provide me with a little info.

I am NOT using Marketcetera Platform. Rather, I am playing with the
exchange simulator using my own functions in an attempt to fully
understand sockets and FIX etc.


// Ports =================================================
I have some question regarding the Ports - in terms of what type of
messages I can actually send and what kind of information I can expect
from each of them.

As far as I can tell, I can:
- send SecurityListRequest(x) to 7003 and receive a list of Symbols as
show on http://exchange.marketcetera.com/marketDisplay/
- send MarketDataRequest(V) with SubscriptionRequestType(263) set to
0,1,2 to both 7003 and 7004

However, I noticed that I only receive Price updates from 7004 along
with bogus quantities (200 / 300) whereas I only received Quantity
updates from 7003 for the trades that I order (through 7001).  Is this
meant to be the case or am I missing something?

// MessageType =================================================
There are a few questions that I have relating to these messages
(DerivativeSecurityListRequest(z) and SecurityDefinitionRequest(c):

- I assume DerivativeSecurityListRequest is used to get information of
available derivatives for a specified underlying security. However, I
am a little confused as to what the minimal set of information is
required to obtain this list. It also seems that I can only send this
message to 7004;

- For SecurityDefinitionRequest, I have no idea what this message is
actually for nor the type of information I need to include in the
message for it to be a valid message.

Thank you all so much for your help in advance.

Matt
_______________________________________________
_______________________________________________
Marketcetera Users mailing list
Marketcetera Documentation: http://trac.marketcetera.org
To unsubscribe, go to
http://lists.marketcetera.org/cgi-bin/mailman/listinfo/m-etc-users or send an email to [hidden email].
toli

Re: Ports 7003 / 7004 and DerivativeSecurityListRequest, SecurityDefinitionRequest

Reply Threaded More More options
Print post
Permalink
Matt,

Just to set your expectations - the market data simulators that are
hosted on our site are by no means complete - we just have the minimum
amount of functionality to enable Photon scripting
(http://trac.marketcetera.org/trac.fcgi/wiki/0.5.0/Marketcetera/PhotonScripting
) and market data display in Photon.

> // Ports =================================================
> However, I noticed that I only receive Price updates from 7004 along
> with bogus quantities (200 / 300) whereas I only received Quantity
> updates from 7003 for the trades that I order (through 7001).  Is this
> meant to be the case or am I missing something?

That is correct. We have 2 market data simulators:
    * Port 7003: Quote feed tied to the Exchange Simulator, providing
real-time data for equities and options being traded on the simulator
    * Port 7004: Independent quote feed that always has simulated
quotes for any equity or option specified

http://trac.marketcetera.org/trac.fcgi/wiki/Marketcetera/Simulators

> // MessageType =================================================
> - I assume DerivativeSecurityListRequest is used to get information of
> available derivatives for a specified underlying security. However, I
> am a little confused as to what the minimal set of information is
> required to obtain this list. It also seems that I can only send this
> message to 7004;

Since the simulator running on 7003 is tied to what's in the exchange
simulator, and we only preload options in it, you won't be getting any
derivatives from that feed unless you manually enter some option
orders in there.

Here's the minimum code we use to test the
DerivativeSecurityListRequest functionality:
                String rootSymbol = "IBM";
                String reqID = "REQ-1";

                DerivativeSecurityListRequest requestMessage = new
DerivativeSecurityListRequest();
                requestMessage.setField(new SecurityReqID(reqID));
                requestMessage.setField(new SecurityListRequestType(1));// specifies
that the receiver should look in SecurityType field for more info
                requestMessage.setField(new SecurityType(SecurityType.OPTION));
                requestMessage.setField(new UnderlyingSymbol(rootSymbol));
                feed.handleDerivativeSecurityListRequest(requestMessage, SESSION_ID);

> - For SecurityDefinitionRequest, I have no idea what this message is
> actually for nor the type of information I need to include in the
> message for it to be a valid message.

This one is a bit harder to answer since we are not using it exactly
at it was intended. According to the spec, "Security Definition
Request message is used to define a security to the counterparty for
trading and to retrieve definitions for securities available for
trading with the counterparty. "

We are using it to solve a specific problem where you may have an
option contract but your don't know if it settles to a 100 shares or a
1000, for example. Or you may have a complex contract that has 2
underlying securities, etc. SecurityDefinitionRequest -->
SecurityDefinition can be used to find that out.

We are actually not using SecurityDefinitionRequest - it was intended
to be used from Photon on the MarketData screen but we ended up not
using it right now.
The default implementation always returns 1 underlying with the size of 100.

I'd love to hear what messages others are using to work around the
problem of discovering what the underlying parts and sizes of the
option contract are.

Here's the sample code to construct the message if that helps:
        String rootSymbol = "IBM";
        String reqID = "REQ-1";

        SecurityDefinitionRequest requestMessage = new SecurityDefinitionRequest();
        requestMessage.setField(new SecurityReqID(reqID));
        requestMessage.setField(new
SecurityRequestType(SecurityRequestType.REQUEST_SECURITY_IDENTITY_AND_SPECIFICATIONS));
        requestMessage.setField(new SecurityType(SecurityType.OPTION));
        requestMessage.setField(new Symbol(rootSymbol));
        feed.handleSecurityDefinitionRequest(requestMessage, SESSION_ID);


Hope this helps. Let me know if you have any other questions.

--
Toli Kuznets
http://www.marketcetera.com: Open-Source Trading Platform
download.run.trade.
_______________________________________________
_______________________________________________
Marketcetera Users mailing list
Marketcetera Documentation: http://trac.marketcetera.org
To unsubscribe, go to
http://lists.marketcetera.org/cgi-bin/mailman/listinfo/m-etc-users or send an email to [hidden email].