trader  v0.1a
A framework to build trading applications
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
trader::BittrexProcessingConnection Class Reference

A bittrex processing connection. More...

#include <bittrexconnection.h>

Inheritance diagram for trader::BittrexProcessingConnection:
Inheritance graph
[legend]
Collaboration diagram for trader::BittrexProcessingConnection:
Collaboration graph
[legend]

Classes

struct  BittrexMarketData
 In-memory cache of marketdata. More...
 
struct  MarketDataRequestRetrievalData
 A market data request retrieval data. More...
 

Public Types

typedef std::unordered_map< std::string, BittrexMarketDataSymIDMap
 Defines an alias representing the symbol identifier map. More...
 
typedef std::unordered_map< std::string, MarketDataRequestRetrievalDataMarketDataUpdateMap
 Defines an alias representing the market data update map. More...
 

Public Member Functions

void SecurityListRequest (Poco::AutoPtr< Interface::SecurityListRequestData > securityListRequestData) override
 [Client-Side] Get a list of securities that can be traded on the exchange. More...
 
void MarketDataRequest (Poco::AutoPtr< Interface::MarketDataRequestData > marketDataRequestData) override
 [Client-Side] Subscribes the current session to a Market Data - Snapshot/Full Refresh followed by zero or more Market Data - Incremental Refresh messages. More...
 
void NewOrderSingle (Poco::AutoPtr< Interface::NewOrderSingleData > newOrderSingleData) override
 [Client-Side] Submit a new order to exchange More...
 
void OrderCancelRequest (Poco::AutoPtr< Interface::OrderCancelRequestData > orderCancelRequestData) override
 TODO: Documentation. More...
 
void TradeCaptureReportRequest (Poco::AutoPtr< Interface::TradeCaptureReportRequestData > tradeCaptureReportRequestData) override
 TODO: Documentation. More...
 
void SetConnectionId (const std::string &_connectionId)
 Sets connection identifier. More...
 
void SetExchange (Bittrex *_exchange)
 Sets an exchange. More...
 
void RunMore ()
 Executes the more operation. More...
 
- Public Member Functions inherited from trader::Interface::MessageReceivingConnection
void ProcessMessage (Poco::AutoPtr< IMessageData > _messageData)
 
virtual void IOI (Poco::AutoPtr< IOIData > iOIData) override
 
virtual void Advertisement (Poco::AutoPtr< AdvertisementData > advertisementData) override
 
virtual void ExecutionReport (Poco::AutoPtr< ExecutionReportData > executionReportData) override
 
virtual void OrderCancelReject (Poco::AutoPtr< OrderCancelRejectData > orderCancelRejectData) override
 
virtual void News (Poco::AutoPtr< NewsData > newsData) override
 
virtual void Email (Poco::AutoPtr< EmailData > emailData) override
 
virtual void NewOrderSingle (Poco::AutoPtr< NewOrderSingleData > newOrderSingleData) override
 
virtual void NewOrderList (Poco::AutoPtr< NewOrderListData > newOrderListData) override
 
virtual void OrderCancelRequest (Poco::AutoPtr< OrderCancelRequestData > orderCancelRequestData) override
 
virtual void OrderCancelReplaceRequest (Poco::AutoPtr< OrderCancelReplaceRequestData > orderCancelReplaceRequestData) override
 
virtual void OrderStatusRequest (Poco::AutoPtr< OrderStatusRequestData > orderStatusRequestData) override
 
virtual void AllocationInstruction (Poco::AutoPtr< AllocationInstructionData > allocationInstructionData) override
 
virtual void ListCancelRequest (Poco::AutoPtr< ListCancelRequestData > listCancelRequestData) override
 
virtual void ListExecute (Poco::AutoPtr< ListExecuteData > listExecuteData) override
 
virtual void ListStatusRequest (Poco::AutoPtr< ListStatusRequestData > listStatusRequestData) override
 
virtual void ListStatus (Poco::AutoPtr< ListStatusData > listStatusData) override
 
virtual void AllocationInstructionAck (Poco::AutoPtr< AllocationInstructionAckData > allocationInstructionAckData) override
 
virtual void DontKnowTrade (Poco::AutoPtr< DontKnowTradeData > dontKnowTradeData) override
 
virtual void QuoteRequest (Poco::AutoPtr< QuoteRequestData > quoteRequestData) override
 
virtual void Quote (Poco::AutoPtr< QuoteData > quoteData) override
 
virtual void SettlementInstructions (Poco::AutoPtr< SettlementInstructionsData > settlementInstructionsData) override
 
virtual void MarketDataRequest (Poco::AutoPtr< MarketDataRequestData > marketDataRequestData) override
 
virtual void MarketDataSnapshotFullRefresh (Poco::AutoPtr< MarketDataSnapshotFullRefreshData > marketDataSnapshotFullRefreshData) override
 
virtual void MarketDataIncrementalRefresh (Poco::AutoPtr< MarketDataIncrementalRefreshData > marketDataIncrementalRefreshData) override
 
virtual void MarketDataRequestReject (Poco::AutoPtr< MarketDataRequestRejectData > marketDataRequestRejectData) override
 
virtual void QuoteCancel (Poco::AutoPtr< QuoteCancelData > quoteCancelData) override
 
virtual void QuoteStatusRequest (Poco::AutoPtr< QuoteStatusRequestData > quoteStatusRequestData) override
 
virtual void MassQuoteAcknowledgement (Poco::AutoPtr< MassQuoteAcknowledgementData > massQuoteAcknowledgementData) override
 
virtual void SecurityDefinitionRequest (Poco::AutoPtr< SecurityDefinitionRequestData > securityDefinitionRequestData) override
 
virtual void SecurityDefinition (Poco::AutoPtr< SecurityDefinitionData > securityDefinitionData) override
 
virtual void SecurityStatusRequest (Poco::AutoPtr< SecurityStatusRequestData > securityStatusRequestData) override
 
virtual void SecurityStatus (Poco::AutoPtr< SecurityStatusData > securityStatusData) override
 
virtual void TradingSessionStatusRequest (Poco::AutoPtr< TradingSessionStatusRequestData > tradingSessionStatusRequestData) override
 
virtual void TradingSessionStatus (Poco::AutoPtr< TradingSessionStatusData > tradingSessionStatusData) override
 
virtual void MassQuote (Poco::AutoPtr< MassQuoteData > massQuoteData) override
 
virtual void BusinessMessageReject (Poco::AutoPtr< BusinessMessageRejectData > businessMessageRejectData) override
 
virtual void BidRequest (Poco::AutoPtr< BidRequestData > bidRequestData) override
 
virtual void BidResponse (Poco::AutoPtr< BidResponseData > bidResponseData) override
 
virtual void ListStrikePrice (Poco::AutoPtr< ListStrikePriceData > listStrikePriceData) override
 
virtual void RegistrationInstructions (Poco::AutoPtr< RegistrationInstructionsData > registrationInstructionsData) override
 
virtual void RegistrationInstructionsResponse (Poco::AutoPtr< RegistrationInstructionsResponseData > registrationInstructionsResponseData) override
 
virtual void OrderMassCancelRequest (Poco::AutoPtr< OrderMassCancelRequestData > orderMassCancelRequestData) override
 
virtual void OrderMassCancelReport (Poco::AutoPtr< OrderMassCancelReportData > orderMassCancelReportData) override
 
virtual void NewOrderCross (Poco::AutoPtr< NewOrderCrossData > newOrderCrossData) override
 
virtual void CrossOrderCancelReplaceRequest (Poco::AutoPtr< CrossOrderCancelReplaceRequestData > crossOrderCancelReplaceRequestData) override
 
virtual void CrossOrderCancelRequest (Poco::AutoPtr< CrossOrderCancelRequestData > crossOrderCancelRequestData) override
 
virtual void SecurityTypeRequest (Poco::AutoPtr< SecurityTypeRequestData > securityTypeRequestData) override
 
virtual void SecurityTypes (Poco::AutoPtr< SecurityTypesData > securityTypesData) override
 
virtual void SecurityListRequest (Poco::AutoPtr< SecurityListRequestData > securityListRequestData) override
 
virtual void SecurityList (Poco::AutoPtr< SecurityListData > securityListData) override
 
virtual void DerivativeSecurityListRequest (Poco::AutoPtr< DerivativeSecurityListRequestData > derivativeSecurityListRequestData) override
 
virtual void DerivativeSecurityList (Poco::AutoPtr< DerivativeSecurityListData > derivativeSecurityListData) override
 
virtual void NewOrderMultileg (Poco::AutoPtr< NewOrderMultilegData > newOrderMultilegData) override
 
virtual void MultilegOrderCancelReplace (Poco::AutoPtr< MultilegOrderCancelReplaceData > multilegOrderCancelReplaceData) override
 
virtual void TradeCaptureReportRequest (Poco::AutoPtr< TradeCaptureReportRequestData > tradeCaptureReportRequestData) override
 
virtual void TradeCaptureReport (Poco::AutoPtr< TradeCaptureReportData > tradeCaptureReportData) override
 
virtual void OrderMassStatusRequest (Poco::AutoPtr< OrderMassStatusRequestData > orderMassStatusRequestData) override
 
virtual void QuoteRequestReject (Poco::AutoPtr< QuoteRequestRejectData > quoteRequestRejectData) override
 
virtual void RFQRequest (Poco::AutoPtr< RFQRequestData > rFQRequestData) override
 
virtual void QuoteStatusReport (Poco::AutoPtr< QuoteStatusReportData > quoteStatusReportData) override
 
virtual void QuoteResponse (Poco::AutoPtr< QuoteResponseData > quoteResponseData) override
 
virtual void Confirmation (Poco::AutoPtr< ConfirmationData > confirmationData) override
 
virtual void PositionMaintenanceRequest (Poco::AutoPtr< PositionMaintenanceRequestData > positionMaintenanceRequestData) override
 
virtual void PositionMaintenanceReport (Poco::AutoPtr< PositionMaintenanceReportData > positionMaintenanceReportData) override
 
virtual void RequestForPositions (Poco::AutoPtr< RequestForPositionsData > requestForPositionsData) override
 
virtual void RequestForPositionsAck (Poco::AutoPtr< RequestForPositionsAckData > requestForPositionsAckData) override
 
virtual void PositionReport (Poco::AutoPtr< PositionReportData > positionReportData) override
 
virtual void TradeCaptureReportRequestAck (Poco::AutoPtr< TradeCaptureReportRequestAckData > tradeCaptureReportRequestAckData) override
 
virtual void TradeCaptureReportAck (Poco::AutoPtr< TradeCaptureReportAckData > tradeCaptureReportAckData) override
 
virtual void AllocationReport (Poco::AutoPtr< AllocationReportData > allocationReportData) override
 
virtual void AllocationReportAck (Poco::AutoPtr< AllocationReportAckData > allocationReportAckData) override
 
virtual void ConfirmationAck (Poco::AutoPtr< ConfirmationAckData > confirmationAckData) override
 
virtual void SettlementInstructionRequest (Poco::AutoPtr< SettlementInstructionRequestData > settlementInstructionRequestData) override
 
virtual void AssignmentReport (Poco::AutoPtr< AssignmentReportData > assignmentReportData) override
 
virtual void CollateralRequest (Poco::AutoPtr< CollateralRequestData > collateralRequestData) override
 
virtual void CollateralAssignment (Poco::AutoPtr< CollateralAssignmentData > collateralAssignmentData) override
 
virtual void CollateralResponse (Poco::AutoPtr< CollateralResponseData > collateralResponseData) override
 
virtual void CollateralReport (Poco::AutoPtr< CollateralReportData > collateralReportData) override
 
virtual void CollateralInquiry (Poco::AutoPtr< CollateralInquiryData > collateralInquiryData) override
 
virtual void NetworkCounterpartySystemStatusRequest (Poco::AutoPtr< NetworkCounterpartySystemStatusRequestData > networkCounterpartySystemStatusRequestData) override
 
virtual void NetworkCounterpartySystemStatusResponse (Poco::AutoPtr< NetworkCounterpartySystemStatusResponseData > networkCounterpartySystemStatusResponseData) override
 
virtual void UserRequest (Poco::AutoPtr< UserRequestData > userRequestData) override
 
virtual void UserResponse (Poco::AutoPtr< UserResponseData > userResponseData) override
 
virtual void CollateralInquiryAck (Poco::AutoPtr< CollateralInquiryAckData > collateralInquiryAckData) override
 
virtual void ConfirmationRequest (Poco::AutoPtr< ConfirmationRequestData > confirmationRequestData) override
 
virtual void ContraryIntentionReport (Poco::AutoPtr< ContraryIntentionReportData > contraryIntentionReportData) override
 
virtual void SecurityDefinitionUpdateReport (Poco::AutoPtr< SecurityDefinitionUpdateReportData > securityDefinitionUpdateReportData) override
 
virtual void SecurityListUpdateReport (Poco::AutoPtr< SecurityListUpdateReportData > securityListUpdateReportData) override
 
virtual void AdjustedPositionReport (Poco::AutoPtr< AdjustedPositionReportData > adjustedPositionReportData) override
 
virtual void AllocationInstructionAlert (Poco::AutoPtr< AllocationInstructionAlertData > allocationInstructionAlertData) override
 
virtual void ExecutionAcknowledgement (Poco::AutoPtr< ExecutionAcknowledgementData > executionAcknowledgementData) override
 
virtual void TradingSessionList (Poco::AutoPtr< TradingSessionListData > tradingSessionListData) override
 
virtual void TradingSessionListRequest (Poco::AutoPtr< TradingSessionListRequestData > tradingSessionListRequestData) override
 
virtual void SettlementObligationReport (Poco::AutoPtr< SettlementObligationReportData > settlementObligationReportData) override
 
virtual void DerivativeSecurityListUpdateReport (Poco::AutoPtr< DerivativeSecurityListUpdateReportData > derivativeSecurityListUpdateReportData) override
 
virtual void TradingSessionListUpdateReport (Poco::AutoPtr< TradingSessionListUpdateReportData > tradingSessionListUpdateReportData) override
 
virtual void MarketDefinitionRequest (Poco::AutoPtr< MarketDefinitionRequestData > marketDefinitionRequestData) override
 
virtual void MarketDefinition (Poco::AutoPtr< MarketDefinitionData > marketDefinitionData) override
 
virtual void MarketDefinitionUpdateReport (Poco::AutoPtr< MarketDefinitionUpdateReportData > marketDefinitionUpdateReportData) override
 
virtual void ApplicationMessageRequest (Poco::AutoPtr< ApplicationMessageRequestData > applicationMessageRequestData) override
 
virtual void ApplicationMessageRequestAck (Poco::AutoPtr< ApplicationMessageRequestAckData > applicationMessageRequestAckData) override
 
virtual void ApplicationMessageReport (Poco::AutoPtr< ApplicationMessageReportData > applicationMessageReportData) override
 
virtual void OrderMassActionReport (Poco::AutoPtr< OrderMassActionReportData > orderMassActionReportData) override
 
virtual void OrderMassActionRequest (Poco::AutoPtr< OrderMassActionRequestData > orderMassActionRequestData) override
 
virtual void UserNotification (Poco::AutoPtr< UserNotificationData > userNotificationData) override
 
virtual void StreamAssignmentRequest (Poco::AutoPtr< StreamAssignmentRequestData > streamAssignmentRequestData) override
 
virtual void StreamAssignmentReport (Poco::AutoPtr< StreamAssignmentReportData > streamAssignmentReportData) override
 
virtual void StreamAssignmentReportACK (Poco::AutoPtr< StreamAssignmentReportACKData > streamAssignmentReportACKData) override
 
void DoOperation (Poco::Int32 operation)
 
- Public Member Functions inherited from trader::Interface::Connection
virtual void SetReceivingConnection (Poco::AutoPtr< Connection > _connection)
 
virtual void SetName (const std::string &_name)
 
virtual const std::string & GetName () const
 

Public Attributes

Bittrexexchange
 
std::string connectionId
 
SymIDMap marketToTradeHistoryMap
 The market to trade history map.
 
MarketDataUpdateMap marketDataUpdateMap
 The market data update map.
 
- Public Attributes inherited from trader::Interface::Connection
Poco::AutoPtr< ConnectionreceivingConnection
 
std::string name
 

Detailed Description

A bittrex processing connection.

Member Typedef Documentation

◆ MarketDataUpdateMap

Defines an alias representing the market data update map.

◆ SymIDMap

typedef std::unordered_map< std::string, BittrexMarketData > trader::BittrexProcessingConnection::SymIDMap

Defines an alias representing the symbol identifier map.

Member Function Documentation

◆ MarketDataRequest()

void trader::BittrexProcessingConnection::MarketDataRequest ( Poco::AutoPtr< Interface::MarketDataRequestData marketDataRequestData)
override

[Client-Side] Subscribes the current session to a Market Data - Snapshot/Full Refresh followed by zero or more Market Data - Incremental Refresh messages.

Market data request.

Parameters
marketDataRequestDataMarket Data Request Params
marketDataRequestData.MDReqIDUnique identifier of the market data request.Uniqueness must be guaranteed by the institution for the duration of the connection to the market data channel.
marketDataRequestData.SubscriptionRequestTypeIndicates what type of response is expected. Valid Value: 1 = Snapshot + Updates(Subscribe)
marketDataRequestData.MarketDepthDepth of the book to receive snapshot and updates for.

Valid Value: 0 = Full Book, 1 = Top of Book

Parameters
marketDataRequestData.NoMDEntryTypesNumber of MDEntryType fields requested
marketDataRequestData.MDEntryTypeType of market data entry to receive snapshots and updates for.

Valid values : 0 = Bid 1 = Offer 2 = Trade Q = Auction Clearing Price

Parameters
marketDataRequestData.NoRelatedSymNumber of symbols requested.
marketDataRequestData.SymbolMarket data symbol requested. Valid Values : See Security List for a list of supported symbols.
Parameters
marketDataRequestDataInformation describing the market data request.

◆ NewOrderSingle()

void trader::BittrexProcessingConnection::NewOrderSingle ( Poco::AutoPtr< Interface::NewOrderSingleData newOrderSingleData)
override

[Client-Side] Submit a new order to exchange

Creates a new order single.

Parameters
newOrderSingleDataNew Order Single Data Params
newOrderSingleData.ClOrdIDUnique identifier of the order as assigned by the institution. Uniqueness must be guaranteed by the institution for the duration of the connection to the order entry channel.
newOrderSingleData.ExecInst[Optional]Specifies that an order should be Maker-or-Cancel, TimeInForce must be 1 (Good Till Cancel) Valid Value: 6 = Participate don't initiate (maker-or-cancel)
newOrderSingleData.OrderQtyDecimal amount of security to purchase. Full quantity will be visible on the book.
newOrderSingleData.OrdTypeOrder Type, Valid Value: 2 = Limit
newOrderSingleData.Price[Optional]Decimal amount of USD to spend per Security.

Price is required when OrdTyp is 2 = Limit.

Parameters
newOrderSingleData.SideSide of the order. Valid Value: 1 = Buy, 2 = Sell
newOrderSingleData.SymbolMarket data symbol requested. Valid Values : See Security List for a list of supported symbols.
newOrderSingleData.TimeInForceSpecifies how long the order remains in effect. Use 7 (At the close) for Auction orders Valid Values : 1 = Good Till Cancel (GTC) 3 = Immediate Or Cancel (IOC)
newOrderSingleData.TransactTimeTime of order creation(expressed in UTC).
Parameters
newOrderSingleDataInformation describing the new order single.

◆ OrderCancelRequest()

void trader::BittrexProcessingConnection::OrderCancelRequest ( Poco::AutoPtr< Interface::OrderCancelRequestData orderCancelRequestData)
override

TODO: Documentation.

Order cancel request.

Parameters
orderCancelRequestDataInformation describing the order cancel request.

◆ RunMore()

void trader::BittrexProcessingConnection::RunMore ( )

Executes the more operation.

◆ SecurityListRequest()

void trader::BittrexProcessingConnection::SecurityListRequest ( Poco::AutoPtr< Interface::SecurityListRequestData securityListRequestData)
override

[Client-Side] Get a list of securities that can be traded on the exchange.

Security list request.

Parameters
securityListRequestDataRequest Data
securityListRequestData.SecurityReqIDUnique identifier of this request.
Parameters
securityListRequestDataInformation describing the security list request.

◆ SetConnectionId()

void trader::BittrexProcessingConnection::SetConnectionId ( const std::string &  _connectionId)
inline

Sets connection identifier.

Parameters
_connectionIdIdentifier for the connection.

◆ SetExchange()

void trader::BittrexProcessingConnection::SetExchange ( Bittrex _exchange)
inline

Sets an exchange.

Parameters
_exchange[in,out] If non-null, the exchange.

◆ TradeCaptureReportRequest()

void trader::BittrexProcessingConnection::TradeCaptureReportRequest ( Poco::AutoPtr< Interface::TradeCaptureReportRequestData tradeCaptureReportRequestData)
override

TODO: Documentation.

Parameters
tradeCaptureReportRequestDataInformation describing the trade capture report request.

The documentation for this class was generated from the following files: