![]() |
MarketFactory C# API 3.0
|
An API client, which processes a single network connection. More...
Public Member Functions | |
| MFClient (string _username, string _password, string _hostname1, int _port1) | |
| Create a new client object. More... | |
| MFClient (string _username, string _password, string _hostname1, int _port1, string _hostname2, int _port2) | |
| Create a new client object (with failover). More... | |
| APIResult | cancelAll (int feedID, string cxlID) |
| Cancel all the orders on a feed. More... | |
| APIResult | cancelAll (string cxlID) |
| Cancel all the orders, on all _feeds. More... | |
| APIResult | cancelOrder (string cxlID, string clOrdID) |
| Cancel a previously placed order by client order id ('clOrdID'). More... | |
| APIResult | cancelOrder (string cxlID, long orderID) |
| Cancel a previously placed order by internal 'orderID'. More... | |
| APIResult | close () |
| Close the connection. More... | |
| APIResult | connect () |
| Connect to the first available server with user credentials. More... | |
| APIFeed | getFeedByID (int id) |
| After a successful connection is established, you may access the server's list of _feeds, markets. More... | |
| APIFeed | getFeedByName (string name) |
| After a successful connection is established, you may access the server's list of _feeds, markets. More... | |
| APIFeed [] | getFeeds () |
| After a successful connection is established, you may access the server's list of _feeds, markets. More... | |
| string | getHostname () |
| Returns the primary/secondary server hostname (whichever one is being used). More... | |
| Queue< PingTime > | getLastPingTimes () |
| APIMarket | getMarketByID (APIFeed feed, int marketID) |
| After a successful connection is established, you may access the server's list of _feeds, markets. More... | |
| APIMarket | getMarketByName (APIFeed feed, string name) |
| After a successful connection is established, you may access the server's list of _feeds, markets. More... | |
| int | getPort () |
| Returns the primary/secondary server port (whichever one is being used). More... | |
| int | getSequenceID (int feedID) |
| Get the last received sequenceID after successful subscription. More... | |
| string | getSignature () |
| Get protocol api signature. More... | |
| bool | isConnected () |
| Return true if the _channel is _connected. More... | |
| bool | isRunning () |
| Returns true if the client is currently dispatching events (i.e., you called run()). More... | |
| bool | isStopRequested () |
| APIResult | join () |
| Block until the client has exited the dispatch loop. More... | |
| void | log (string message) |
| Logs a debug message into the Whisperer server _log file. More... | |
| void | log (string message, LogLevel level) |
| KeyValuePair< APIResult, long > | modifyOrder (string clOrdID, string clNewID, MFFloat amount, MFFloat price) |
| Submit modification to an existing order. More... | |
| APIResult | processEvents (MFHandler _handler) |
| Process all pending events in the reactor, and return as soon as reads/writes have been flushed. More... | |
| KeyValuePair< APIResult, int > | registerMarketComb (int feedID, int[] marketIds) |
| Register for a given list of markets on a given feed. More... | |
| APIResult | replay (int feedID, int fromSequenceID, int toSequenceID) |
| Request replay of order flow events in the range [fromSequenceID, toSequenceID=-1]. More... | |
| APIResult | requestSnapshot (int feedID, int marketID) |
| Request a market data snapshot for the feed and market ID. More... | |
| virtual APIResult | run (MFHandler _handler) |
| Run a loop that will continuously dispatch incoming messages to a _handler implementation. More... | |
| void | setDebug (bool debug) |
| void | setStickySubscriptions (bool sticky) |
| Enable/Disable sticky subscriptions. More... | |
| void | setStickySubscriptions (bool sticky, bool clearSubscriptionsOnStop) |
| void | setUseHeartbeat (bool use) |
| APIResult | stop () |
| Request to stop the event dispatch loop, does not disconnect the client from the server. More... | |
| KeyValuePair< APIResult, long > | submitOrder (string clOrdID, int feedID, int marketID, Side side, MFFloat amount, MFFloat price, OrderType ordType, TimeInForce tif) |
| Submit an order. More... | |
| KeyValuePair< APIResult, long > | submitOrder (string clOrdID, int feedID, int marketID, Side side, MFFloat amount, MFFloat price, MFFloat stopPrice, MFFloat maxShowAmt, OrderType ordType, TimeInForce tif) |
| Submit an order without minAmount (kept for backward compatibility). More... | |
| KeyValuePair< APIResult, long > | submitOrder (string clOrdID, int feedID, int marketID, Side side, MFFloat amount, MFFloat price, MFFloat stopPrice, MFFloat maxShowAmt, MFFloat minFillAmt, OrderType ordType, TimeInForce tif, List< KeyValuePair< string, string >> parameters) |
| KeyValuePair< APIResult, long > | submitOrder (string clOrdID, int feedID, int marketID, Side side, MFFloat amount, MFFloat price, MFFloat stopPrice, MFFloat maxShowAmt, MFFloat minFillAmt, OrderType ordType, TimeInForce tif, OrderParameters parameters=null) |
| Submits the order. Use an OrderParametersBuilder to construct a reusable OrderParameters object. Offers better performance if the you want to reuse the same order parameters for multiple submitOrder calls. More... | |
| APIResult | subscribeAllMD () |
| Subscribe to all the market data feeds. More... | |
| APIResult | subscribeMD (int feedID, int marketID, String clSubID) |
| Subscribe to market data updates for a specific feed. More... | |
| APIResult | subscribeMD (int feedID, int marketID) |
| Subscribe to market data updates for a specific feed. More... | |
| APIResult | subscribeOF (int feedID, String clSubID) |
| Subscribe to trading for a specific feed. More... | |
| APIResult | subscribeOF (int feedID) |
| Subscribe to trading for a specific feed. More... | |
| void | test (APITest test) |
| Internal testing function. More... | |
| APIResult | unregisterMarketComb (int batchDefID) |
| Unregister for a given list of markets on a given feed using id. More... | |
| APIResult | unsubscribeAll () |
| Unsubscribe all market data and trading subscriptions. More... | |
| APIResult | unsubscribeMD (int feedID, int marketID, String clSubID) |
| Unsubscribe to market data updates for a specific feed. More... | |
| APIResult | unsubscribeMD (int feedID, int marketID) |
| Unsubscribe to market data updates for a specific feed. More... | |
| APIResult | unsubscribeOF (int feedID, String clSubID) |
| Unsubscribe to trading for a specific feed. More... | |
| APIResult | unsubscribeOF (int feedID) |
| Unsubscribe to trading for a specific feed. More... | |
Static Public Member Functions | |
| static MFClient | open (string user, string pass, string host, int port) |
| A convenience method which creates a new client object, attempts to connect to Whisperer, and cleans up and throws an exception if we could not connect. More... | |
| static MFClient | open (string user, string pass, string _hostname1, int _port1, string _hostname2, int _port2) |
| A convenience method which creates a new client object, attempts to connect to Whisperer, and cleans up and throws an exception if we could not connect. More... | |
Protected Member Functions | |
| virtual APIResult | connectOne (String host, int port) |
| APIResult | send (IMessage msg) |
Protected Attributes | |
| string | _hostname1 |
| string | _hostname2 |
| Logger | _log = Logger.getLogger("com.marketfactory.api") |
| string | _password |
| int | _port1 |
| int | _port2 |
| string | _username |
An API client, which processes a single network connection.
There may be more than one client instance, one for each network connection. A client dispatches callbacks on a _handler interface which the client implements.
NOTE: Converted from MFClient.java.
| MFClient | ( | string | _username, |
| string | _password, | ||
| string | _hostname1, | ||
| int | _port1 | ||
| ) |
Create a new client object.
A new client still needs to be connected (see connect()).
| MFClient | ( | string | _username, |
| string | _password, | ||
| string | _hostname1, | ||
| int | _port1, | ||
| string | _hostname2, | ||
| int | _port2 | ||
| ) |
Create a new client object (with failover).
A new client still needs to be connected (see connect()).
| void setUseHeartbeat | ( | bool | use | ) |
| void setDebug | ( | bool | debug | ) |
| void setStickySubscriptions | ( | bool | sticky | ) |
Enable/Disable sticky subscriptions.
Set clearSubscriptionsOnStop=false if subscriptions should persist on disconnect/stop/start.
| void setStickySubscriptions | ( | bool | sticky, |
| bool | clearSubscriptionsOnStop | ||
| ) |
| bool isConnected | ( | ) |
Return true if the _channel is _connected.
| APIResult connect | ( | ) |
Connect to the first available server with user credentials.
Returns 0 if the connection attempt succeeded; returns a negative number if on failure.
Note: this should not be invoked by _handler.
|
protectedvirtual |
Reimplemented in MFAdmin.
| APIResult close | ( | ) |
Close the connection.
(This can only be called this when you're not dispatching.)
Note: this should not be invoked by _handler.
| bool isRunning | ( | ) |
Returns true if the client is currently dispatching events (i.e., you called run()).
| APIResult stop | ( | ) |
Request to stop the event dispatch loop, does not disconnect the client from the server.
| bool isStopRequested | ( | ) |
| APIResult join | ( | ) |
Block until the client has exited the dispatch loop.
Note: this should not be invoked by _handler.
|
virtual |
Run a loop that will continuously dispatch incoming messages to a _handler implementation.
This method returns some time after a request to stop is made using stop(), or if an error occurs (e.g. the connection is broken). A zero return value indicates a normal exit via a stop request.
If the connection is broken and the client succesfully fails over to a secondary server, this dispatcher does not return; onDisconnect() and onConnect() are invoked to let the handler know that this occurred. If the reconnection attempt is not successful, the dispatcher will return an error code.
Every call to run() must be preceded by a successful connect() – this call is made for you, but only once, when a client is obtained via open().
Note: this should not be invoked by _handler.
Reimplemented in MFAdmin.
| APIResult processEvents | ( | MFHandler | _handler | ) |
Process all pending events in the reactor, and return as soon as reads/writes have been flushed.
This can be used to integrate our API within a GUI toolkit's event processing loop without having to create a secondary thread.
|
protected |
| string getSignature | ( | ) |
Get protocol api signature.
| int getSequenceID | ( | int | feedID | ) |
Get the last received sequenceID after successful subscription.
Returns -2 if not subscribed. Returns -1 if there are no OF messages for the client on the feed.
| APIFeed [] getFeeds | ( | ) |
After a successful connection is established, you may access the server's list of _feeds, markets.
If you have not yet _connected to the server this will return empty.
| APIFeed getFeedByName | ( | string | name | ) |
After a successful connection is established, you may access the server's list of _feeds, markets.
This method will return a pointer to the feed of a given name if it exists and NULL if it does not. (this class maintains ownership to the object so do not delete it).
| APIFeed getFeedByID | ( | int | id | ) |
After a successful connection is established, you may access the server's list of _feeds, markets.
This method will return a pointer to the feed of a given id if it exists and NULL if it does not. (this class maintains ownership to the object so do not delete it).
| APIMarket getMarketByName | ( | APIFeed | feed, |
| string | name | ||
| ) |
After a successful connection is established, you may access the server's list of _feeds, markets.
This method will return a pointer to the market with a given name within the specified feed if such market exists or NULL if there is no market with the same name.
| APIMarket getMarketByID | ( | APIFeed | feed, |
| int | marketID | ||
| ) |
After a successful connection is established, you may access the server's list of _feeds, markets.
This method will return a pointer to the market with a given id within the specified feed if such market exists or NULL if there is no market with the same id.
| string getHostname | ( | ) |
Returns the primary/secondary server hostname (whichever one is being used).
Does not indicate whether a connection is in progress or successfully established.
| int getPort | ( | ) |
Returns the primary/secondary server port (whichever one is being used).
Does not indicate whether a connection is in progress or successfully established.
| Queue<PingTime> getLastPingTimes | ( | ) |
| APIResult replay | ( | int | feedID, |
| int | fromSequenceID, | ||
| int | toSequenceID | ||
| ) |
Request replay of order flow events in the range [fromSequenceID, toSequenceID=-1].
Only open-ended requests are accepted by the server.
| APIResult subscribeMD | ( | int | feedID, |
| int | marketID, | ||
| String | clSubID | ||
| ) |
Subscribe to market data updates for a specific feed.
onSubscriptionEvent() will be called to notify that the flow of updates is ready. If the subscription is valid, onMarketData() will be called later on. The client subscription ID allows one-to-one message matching.
| APIResult subscribeMD | ( | int | feedID, |
| int | marketID | ||
| ) |
Subscribe to market data updates for a specific feed.
onSubscriptionEvent() will be called to notify that the flow of updates is ready. If the subscription is valid, onMarketData() will be called later on.
| APIResult subscribeOF | ( | int | feedID, |
| String | clSubID | ||
| ) |
Subscribe to trading for a specific feed.
onSubscriptionEvent() will be called to notify that the order gateway is ready. If the subscription is valid, it will be possible to submit and cancel orders and receive trading events.
| APIResult subscribeOF | ( | int | feedID | ) |
Subscribe to trading for a specific feed.
onSubscriptionEvent() will be called to notify that the order gateway is ready. If the subscription is valid, it will be possible to submit and cancel orders and receive trading events.
| APIResult subscribeAllMD | ( | ) |
Subscribe to all the market data feeds.
This is intended as a test utility; ideally you control which feeds and markets you connect to.
| APIResult unsubscribeMD | ( | int | feedID, |
| int | marketID, | ||
| String | clSubID | ||
| ) |
Unsubscribe to market data updates for a specific feed.
| APIResult unsubscribeMD | ( | int | feedID, |
| int | marketID | ||
| ) |
Unsubscribe to market data updates for a specific feed.
| APIResult unsubscribeOF | ( | int | feedID, |
| String | clSubID | ||
| ) |
Unsubscribe to trading for a specific feed.
| APIResult unsubscribeOF | ( | int | feedID | ) |
Unsubscribe to trading for a specific feed.
| APIResult unsubscribeAll | ( | ) |
Unsubscribe all market data and trading subscriptions.
Call this if you want to stop receiving callbacks but don't want to disconnect.
| KeyValuePair<APIResult,int> registerMarketComb | ( | int | feedID, |
| int [] | marketIds | ||
| ) |
Register for a given list of markets on a given feed.
| APIResult unregisterMarketComb | ( | int | batchDefID | ) |
Unregister for a given list of markets on a given feed using id.
| APIResult requestSnapshot | ( | int | feedID, |
| int | marketID | ||
| ) |
Request a market data snapshot for the feed and market ID.
(Note that after connecting you should get a snapshot automatically, so this should be used rarely.)
| KeyValuePair<APIResult,long> submitOrder | ( | string | clOrdID, |
| int | feedID, | ||
| int | marketID, | ||
| Side | side, | ||
| MFFloat | amount, | ||
| MFFloat | price, | ||
| OrderType | ordType, | ||
| TimeInForce | tif | ||
| ) |
Submit an order.
| KeyValuePair<APIResult,long> submitOrder | ( | string | clOrdID, |
| int | feedID, | ||
| int | marketID, | ||
| Side | side, | ||
| MFFloat | amount, | ||
| MFFloat | price, | ||
| MFFloat | stopPrice, | ||
| MFFloat | maxShowAmt, | ||
| OrderType | ordType, | ||
| TimeInForce | tif | ||
| ) |
Submit an order without minAmount (kept for backward compatibility).
| KeyValuePair<APIResult,long> submitOrder | ( | string | clOrdID, |
| int | feedID, | ||
| int | marketID, | ||
| Side | side, | ||
| MFFloat | amount, | ||
| MFFloat | price, | ||
| MFFloat | stopPrice, | ||
| MFFloat | maxShowAmt, | ||
| MFFloat | minFillAmt, | ||
| OrderType | ordType, | ||
| TimeInForce | tif, | ||
| List< KeyValuePair< string, string >> | parameters | ||
| ) |
| KeyValuePair<APIResult, long> submitOrder | ( | string | clOrdID, |
| int | feedID, | ||
| int | marketID, | ||
| Side | side, | ||
| MFFloat | amount, | ||
| MFFloat | price, | ||
| MFFloat | stopPrice, | ||
| MFFloat | maxShowAmt, | ||
| MFFloat | minFillAmt, | ||
| OrderType | ordType, | ||
| TimeInForce | tif, | ||
| OrderParameters | parameters = null |
||
| ) |
Submits the order. Use an OrderParametersBuilder to construct a reusable OrderParameters object. Offers better performance if the you want to reuse the same order parameters for multiple submitOrder calls.
| clOrdID | client order identifier. |
| feedID | Feed identifier. |
| marketID | market identifier. |
| side | side |
| amount | amount |
| price | price |
| stopPrice | stop price |
| maxShowAmt | max show amount |
| minFillAmt | minimum fill amount |
| ordType | order type |
| tif | time in force |
| parameters | optional OrderParameters |
| KeyValuePair<APIResult,long> modifyOrder | ( | string | clOrdID, |
| string | clNewID, | ||
| MFFloat | amount, | ||
| MFFloat | price | ||
| ) |
Submit modification to an existing order.
| APIResult cancelOrder | ( | string | cxlID, |
| string | clOrdID | ||
| ) |
Cancel a previously placed order by client order id ('clOrdID').
Return false if the order cannot be found locally, i.e., if the 'clOrdID' does not correspond to any previously placed order on this client interface.
| APIResult cancelOrder | ( | string | cxlID, |
| long | orderID | ||
| ) |
Cancel a previously placed order by internal 'orderID'.
Return false if the internal 'orderID' could not be provided.
| APIResult cancelAll | ( | int | feedID, |
| string | cxlID | ||
| ) |
Cancel all the orders on a feed.
| APIResult cancelAll | ( | string | cxlID | ) |
Cancel all the orders, on all _feeds.
| void log | ( | string | message | ) |
Logs a debug message into the Whisperer server _log file.
(We use this for inserting markers for automated testing and debugging.)
| void log | ( | string | message, |
| LogLevel | level | ||
| ) |
| void test | ( | APITest | test | ) |
Internal testing function.
Do not use this.
|
static |
A convenience method which creates a new client object, attempts to connect to Whisperer, and cleans up and throws an exception if we could not connect.
Otherwise the new client object is returned;
|
static |
A convenience method which creates a new client object, attempts to connect to Whisperer, and cleans up and throws an exception if we could not connect.
Otherwise the new client object is returned;
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |