Stage 2: Instrument Resolution and Session Information

Successful Symbol Resolution

1.  Send Logon message with valid credentials.

2.  Receive LogonResult with result_code='SUCCESS'.

3.  Send InformationRequest with symbol_resolution_request for symbol=’F.US.ZUC’ and subscribe omitted.

4.  Receive InformationReport with status_code=’SUCCESS’ and SymbolResolutionReport with contract_metadata for the symbol.

5.  Send Logoff message.

Subscription and Contract Update

(Rare occurrence, but must be included to catch updates.  This is an untestable function)

1.  Send Logon message with valid credentials.

2.  Receive LogonResult with result_code='SUCCESS'.

3.  Send InformationRequest with SymbolResolutionRequest for symbol= ‘F.US.ZUI’ and subscribe=true.

4.  Receive InformationReport with SymbolResolutionReport with status_code=‘SUBSCRIBED’ and contract_metadata for the symbol.

5.  CQG specialist modifies the contract information.

6.  Receive InformationReport with status_code=’UPDATE’ and SymbolResolutionReport with contract_metadata for the updated symbol.

7.  Send InformationRequest with SymbolResolutionRequest for the symbol and subscribe=false.

8.  Receive InformationReport with SymbolResolutionReport with status_code=’DROPPED’.

9.  Send Logoff message.

10. Repeat the test for different instrument types: an option (e.g. C.EP, P.EP), some strategies (ZUCW1,).

Instrument Group Request

1.  Send Logon message with valid credentials.

2.  Receive LogonResult with result_code='SUCCESS'.

3.  Send InformationRequest with instrument_group_request with the instrument_group_id =’F.US.ZUC’ and subscribe omitted.

4.  Receive InformationReport with instrument_group_report with status_code='SUCCESS', the report has all available instruments for ’F.US.ZUC’ (with different month and year).

5.  Send Logoff message.

Instrument Group Request Subscription

1.  Send Logon message with valid credentials.

2.  Receive LogonResult with result_code='SUCCESS'.

3.  Send InformationRequest with instrument_group_request with the instrument_group_id =’F.US.ZUC’ and subscribe=true.

4.  Receive InformationReport with instrument_group_report with status_code='SUBSCRIBED', the report has all available instruments for ’F.US.ZUC’

5.  Send InformationRequest with with instrument_group_request with the instrument_group_id =’F.US.ZUC’ and subscribe=false

6.  Receive InformationReport with instrument_group_report with status_code=’DROPPED’.

7.  Send Logoff message.

Session Information

1.  Send Logon message with valid credentials.

2.  Receive LogonResult with result_code='SUCCESS'.

3.  Send InformationRequest with symbol_resolution_request for symbol=’F.US.ZUC’ and subscribe omitted.

4.  Receive InformationReport with SymbolResolutionReport with status_code= ‘SUCCESS’ and contract_metadata for the symbol.

5.  Send InformationRequest with session_information_request with the session_info_id taken from the contract_metadata.

6.  Receive InformationReport with status_code=’SUCCESS’, correct session_info_id and SessionInformationReport containing sessions effective at current date.

7.  Send Logoff message.

Session Information Subscription

1.  Send Logon message with valid credentials.

2.  Receive LogonResult with result_code='SUCCESS'.

3.  Send InformationRequest with symbol_resolution_request for symbol=’F.US.ZUI’.

4.  Receive InformationReport with SymbolResolutionReport with status_code=‘SUBSCRIBED’ and contract_metadata for the symbol.

5.  Send InformationRequest with session_information_request with the session_info_id and subscribe=true.

6.  Receive InformationReport with status_code=’SUBSCRIBED’, correct session_info_id and SessionInformationReport.

7.  Send a SessionInformationRequest with the session_info_id and subscribe=false.

8.  Receive InformationReport with status_code=’DROPPED’.

9.  Send Logoff message.

Symbols by Underlying and Child Symbols

1.  Send Logon message with valid credentials.

2.  Receive LogonResult with result_code='SUCCESS'.

3.  Send InformationRequest with symbol_resolution_request for symbol=’F.US.ZUC’ and subscribe omitted.

4.  Receive InformationReport with SymbolResolutionReport with status_code= ‘SUCCESS’ and contract_metadata for the symbol.

5.  Send InformationRequest with option_maturity_list_request with the underlying_contract_id taken from the contract_metadata.contract_id.

6.  Receive InformationReport with status_code=’SUCCESS’, OptionMaturityListReport contains OptionMaturities list with option series (maturities) linked with underlying contract.

7.  Send InformationRequest with instrument_group_request with the instrument_group_id taken from the element OptionMaturityListReport OptionMaturities.id (in case of several Maturities in the report any can be taken).

8.  Receive InformationReport with status_code=’SUCCESS’, InstrumentGroupReport contains Symbol list with options linked with option series (maturity).

9.  Send Logoff message.

Symbols by Underlying and Child Symbols Subscriptions

1.  Send Logon message with valid credentials.

2.  Receive LogonResult with result_code='SUCCESS'.

3.  Send InformationRequest with symbol_resolution_request for symbol=’F.US.ZUC’.

4.  Receive InformationReport with SymbolResolutionReport with status_code= ‘SUCCESS’ and contract_metadata for the symbol.

5.  Send InformationRequest with option_maturity_list_request with the underlying_contract_id taken from the contract_metadata.contract_id and subscribe=true.

6.  Receive InformationReport with status_code=’SUBSCRIBED’, OptionMaturityListReport contains OptionMaturities list with option series (maturities) linked with underlying contract.

7.  Send InformationRequest with instrument_group_request with the instrument_group_id taken from the element OptionMaturityListReport OptionMaturities.id (in case of several Maturities in the report any can be taken) and subscribe=true.

8.  Receive InformationReport with status_code=’SUBSCRIBED’, InstrumentGroupReport contains OptionMaturities list with options linked with option series (maturity).

9.  Send InformationRequest with option_maturity_list_request with the underlying_contract_id and subscribe=false.

10. Receive InformationReport with status_code=’DROPPED’.

11. Send InformationRequest with instrument_group_request with the instrument_group_id and subscribe=false.

12. Receive InformationReport with status_code=’DROPPED’.

13. Send Logoff message.

At-the-Money Strike

1.  Send Logon message with valid credentials.

2.  Receive LogonResult with result_code='SUCCESS'.

3.  Send InformationRequest with symbol_resolution_request for symbol=’F.US.ZUC’ and subscribe omitted.

4.  Receive InformationReport with SymbolResolutionReport with status_code= ‘SUCCESS’ and contract_metadata for the symbol.

5.  Send InformationRequest with option_maturity_list_request with the underlying_contract_id taken from the contract_metadata.contract_id.

6.  Receive InformationReport with status_code=’SUCCESS’, OptionMaturityListReport contains OptionMaturities list with option series (maturities) linked with underlying contract.

7.  Send InformationRequest with at_the_money_strike_request with the option_maturity_id taken from the element OptionMaturityListReport OptionMaturities.id (in case of several OptionMaturities in the report any can be taken).

8.  Receive InformationReport with status_code=’SUCCESS’, AtTheMoneyStrikeReport contains actual strike.

9.  Send Logoff message.

At-the-Money Strike Subscription

1.  Send Logon message with valid credentials.

2.  Receive LogonResult with result_code='SUCCESS'.

3.  Send InformationRequest with symbol_resolution_request for symbol=’F.US.ZUC’.

4.  Receive InformationReport with SymbolResolutionReport with status_code= ‘SUCCESS’ and contract_metadata for the symbol.

5.  Send InformationRequest with option_maturity_list_request with the underlying_contract_id taken from the contract_metadata.contract_id.

6.  Receive InformationReport with status_code=’SUCCESS’, OptionMaturityListReport contains OptionMaturities list with option series (maturities) linked with underlying contract.

7.  Send InformationRequest with at_the_money_strike_request with the option_maturity_id taken from the element OptionMaturityListReport OptionMaturities.id (in case of several OptionMaturities in the report any can be taken) and subscribe=true.

8.  Receive InformationReport with status_code=’SUBSCRIBED’, AtTheMoneyStrikeReport contains actual strike.

9.  Wait until at-the-money-strike change.

10. Receive InformationReport with status_code=’UPDATE’, AtTheMoneyStrikeReport contains actual strike.

11. Send InformationRequest with at_the_money_strike_request with the option_maturity_symbol_id and subscribe=false.

12. Receive InformationReport with status_code=’DROPPED’.

13. Send Logoff message.