MarketFactory 3.14.0 C# API
MFAdmin Class Reference

An API admin which contains a MFClient for function forwarding. More...

Inheritance diagram for MFAdmin:
MFBaseClient

Classes

class  RiskLimit
 Admin interface: group limit, optionally for a specific feed and market. More...
 
class  RiskMarketPosition
 Admin interface: Use this if interested in market position rather than RiskUsage's net open position. More...
 
class  RiskUsage
 Admin interface: user state. More...
 

Public Member Functions

 MFAdmin (string _username, string _password, string _hostname1, int _port1)
 Create a new admin object. More...
 
 MFAdmin (string _username, string _password, string _hostname1, int _port1, string _hostname2, int _port2)
 Create a new admin object (with failover). More...
 
APIResult allowClientsToConnect ()
 Admin interface: Call this method to allow non-admin API clients to connect. 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...
 
RiskLimit [] getRiskLimits ()
 Admin interface: limits registered by server process. More...
 
RiskMarketPosition [] getRiskMarketPositions ()
 Admin interface: Returns array of derived RiskMarketPositions rather than RiskUsage. More...
 
long getRiskTimestamp ()
 Admin interface: timestamp of last constraint update from server process. More...
 
RiskUsage [] getRiskUsage ()
 Admin interface: full risk usage view held by server process. More...
 
int getSequenceID (int feedID)
 Get the last received sequenceID after successful subscription. More...
 
string getSignature ()
 Get protocol api signature. More...
 
Dictionary< string, string[]> getUserGroupChains ()
 Admin interface: linear list of groups to which each user belongs. 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...
 
APIResult lockUser (string clRequestID, string username, bool locked)
 Admin interface: Lock / unlock user accounts. More...
 
void log (string message)
 Logs a debug message into the Whisperer server _log file. More...
 
void log (string message, LogLevel level)
 
APIResult replay (int feedID, int fromSequenceID, int toSequenceID)
 Request replay of order flow events in the range [fromSequenceID, toSequenceID=-1]. More...
 
APIResult run (MFAdminHandler handler)
 Run a loop that will continuously dispatch incoming messages to a _handler implementation. More...
 
void setDebug (bool debug)
 
APIResult setRisk (string clRequestID, RiskLimit[] limits, RiskUsage[] usages, bool isSnapshot)
 Admin interface: publish incremental/snapshot set of limits and usage. More...
 
APIResult setRisk (string clRequestID, RiskLimit[] limits, RiskUsage[] usages, bool isSnapshot, bool doReplace)
 
APIResult setRisk (string clRequestID, params RiskLimit[] limits)
 Admin interface: publish incremental set of limits. More...
 
APIResult setRisk (string clRequestID, params RiskUsage[] usages)
 Admin interface: publish incremental set of risk usage. More...
 
APIResult setRisk (string clRequestID, bool doReplace, params RiskUsage[] usages)
 
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...
 
new APIResult subscribeAllMD ()
 
new APIResult subscribeMD (int feedID, int marketID, string clSubID)
 
new APIResult subscribeMD (int feedID, int marketID)
 
new APIResult subscribeOF (int feedID, String clSubID)
 
new APIResult subscribeOF (int feedID)
 
void test (APITest test)
 Internal testing function. More...
 
APIResult unsubscribeAll ()
 Unsubscribe all market data and trading subscriptions. More...
 
new APIResult unsubscribeMD (int feedID, int marketID, String clSubID)
 
new APIResult unsubscribeMD (int feedID, int marketID)
 
new APIResult unsubscribeOF (int feedID, String clSubID)
 
new APIResult unsubscribeOF (int feedID)
 

Static Public Member Functions

static MFAdmin 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 MFAdmin 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...
 

Static Public Attributes

static readonly int FEED_ALL = -1
 
static readonly int FEED_NULL = 0
 Pair with marketID to reference individual currencies. More...
 
static readonly int MARKET_ALL = -1
 
static readonly long SETTL_DATE_CASH = (long)(-2 * (1e9 * 86400))
 
static readonly long SETTL_DATE_SUM = (long)(-1 * (1e9 * 86400))
 

Protected Member Functions

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'). 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. More...
 
APIResult cancelOrder (string cxlID, long orderID)
 Cancel a previously placed order by internal 'orderID'. Return false if the internal 'orderID' could not be provided. More...
 
APIResult cancelOrder (string cxlID, long orderID, string clOrdID)
 Cancel a previously placed order by providing both internal 'orderID' and clOrdID. APIResult.INVALID_ORDERID if the internal 'orderID' could not be provided. More...
 
override APIResult connectOne (String host, int port)
 
KeyValuePair< APIResult, long > modifyOrder (string clOrdID, string clNewID, MFFloat amount, MFFloat price, OrderParameters parameters=null)
 Submit modification to an existing order. More...
 
override void onBatchComplete (int batchDefID)
 
override void onConnect ()
 
override void onDateRollover (DateRollover dateRollover)
 
override void onDisconnect ()
 
override void onDropCopy (DropCopy dropCopy)
 
override void onEventReport (EventReport eventReport)
 
override void onHeartbeat (Heartbeat heartbeat)
 
virtual void onJsonFromServer (JsonFromServer msg)
 
override void onLockResponse (LockResponse lockResponse)
 
override void onMarketData (MarketView marketData)
 
virtual void onMassQuoteAck (MassQuoteAck msg)
 
virtual void onNewOrder (NewOrder msg)
 
override void onOrderCanceled (OrderCanceled orderCanceled)
 
override void onOrderCancelRejected (OrderCancelRejected orderCancelRejected)
 
override void onOrderDone (OrderDone orderDone)
 
override void onOrderReceived (OrderReceived orderReceived)
 
override void onOrderRejected (OrderRejected orderRejected)
 
override void onOrderSubmitted (OrderSubmitted orderSubmitted)
 
virtual void onOrderTimeout (OrderTimeout msg)
 
virtual void onQuoteRequest (QuoteRequest msg)
 
override void onReplayDone (ReplayDone replayDone)
 
override void onRiskResponse (RiskResponse riskResponse)
 
override void onStart ()
 
override void onStop ()
 
override void onSubscriptionEvent (SubscriptionEvent subscriptionEvent)
 
override void onTradeCapture (TradeCapture tradeCapture)
 
virtual void onTradeCaptureAck (TradeCaptureAck msg)
 
KeyValuePair< APIResult, int > registerMarketComb (int feedID, int[] marketIds)
 
APIResult requestSnapshot (int feedID, int marketID)
 
APIResult run (MFBaseHandler _handler, bool loop)
 
APIResult send (IMessage msg)
 
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 subscribe (APIType apiType, int feedID, int marketID, String clSubID)
 
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. More...
 
APIResult unregisterMarketComb (int batchDefID)
 
APIResult unsubscribe (APIType apiType, int feedID, int marketID, String clSubID)
 

Protected Attributes

string _hostname1
 
string _hostname2
 
Logger _log = Logger.getLogger("com.marketfactory.api")
 
string _password
 
int _port1
 
int _port2
 
RiskLimit [] _riskLimits = new RiskLimit[0]
 
long _riskTimestamp
 
RiskUsage [] _riskUsages = new RiskUsage[0]
 
List< TradeLimitDataMessage > _tradeLimitDataQueue
 
Dictionary< String, String[]> _userGroupChains = new Dictionary<String, String[]>()
 
string _username
 

Detailed Description

An API admin which contains a MFClient for function forwarding.

Constructor & Destructor Documentation

◆ MFAdmin() [1/2]

MFAdmin ( string  _username,
string  _password,
string  _hostname1,
int  _port1 
)

Create a new admin object.

A new client still needs to be connected (see connect()).

◆ MFAdmin() [2/2]

MFAdmin ( string  _username,
string  _password,
string  _hostname1,
int  _port1,
string  _hostname2,
int  _port2 
)

Create a new admin object (with failover).

A new client still needs to be connected (see connect()).

Member Function Documentation

◆ connectOne()

override APIResult connectOne ( String  host,
int  port 
)
protectedvirtual

Reimplemented from MFBaseClient.

◆ run() [1/2]

APIResult run ( MFAdminHandler  handler)

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.

◆ open() [1/2]

static MFAdmin open ( string  user,
string  pass,
string  host,
int  port 
)
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;

◆ open() [2/2]

static MFAdmin open ( string  user,
string  pass,
string  _hostname1,
int  _port1,
string  _hostname2,
int  _port2 
)
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;

◆ subscribeMD() [1/3]

new APIResult subscribeMD ( int  feedID,
int  marketID,
string  clSubID 
)

◆ subscribeMD() [2/3]

new APIResult subscribeMD ( int  feedID,
int  marketID 
)

◆ subscribeOF() [1/2]

new APIResult subscribeOF ( int  feedID,
String  clSubID 
)

◆ subscribeOF() [2/2]

new APIResult subscribeOF ( int  feedID)

◆ subscribeAllMD()

new APIResult subscribeAllMD ( )

◆ unsubscribeMD() [1/2]

new APIResult unsubscribeMD ( int  feedID,
int  marketID,
String  clSubID 
)

◆ unsubscribeMD() [2/2]

new APIResult unsubscribeMD ( int  feedID,
int  marketID 
)

◆ unsubscribeOF() [1/2]

new APIResult unsubscribeOF ( int  feedID,
String  clSubID 
)

◆ unsubscribeOF() [2/2]

new APIResult unsubscribeOF ( int  feedID)

◆ allowClientsToConnect()

APIResult allowClientsToConnect ( )

Admin interface: Call this method to allow non-admin API clients to connect.

An MFAdmin must remain connected and have called this method for monitored clients to function.

◆ lockUser()

APIResult lockUser ( string  clRequestID,
string  username,
bool  locked 
)

Admin interface: Lock / unlock user accounts.

This is a more granular, subordinate, version of allowClientsToConnect().

◆ setRisk() [1/5]

APIResult setRisk ( string  clRequestID,
RiskLimit []  limits,
RiskUsage []  usages,
bool  isSnapshot 
)

Admin interface: publish incremental/snapshot set of limits and usage.

A full snapshot must be sent prior to allowClientsToConnect() so NOP calculations are not stale.

◆ setRisk() [2/5]

APIResult setRisk ( string  clRequestID,
RiskLimit []  limits,
RiskUsage []  usages,
bool  isSnapshot,
bool  doReplace 
)

◆ setRisk() [3/5]

APIResult setRisk ( string  clRequestID,
params RiskLimit []  limits 
)

Admin interface: publish incremental set of limits.

Group limits may be selectively updated, deferring to previous values/defaults if desired. If a group is subject to multiple limits, the most restrictive limit will always be preferred.

◆ setRisk() [4/5]

APIResult setRisk ( string  clRequestID,
params RiskUsage []  usages 
)

Admin interface: publish incremental set of risk usage.

User state may be selectively updated based on current activity. Users only have a single state, to which the server will incorporate unacknowledged/pending orders.

◆ setRisk() [5/5]

APIResult setRisk ( string  clRequestID,
bool  doReplace,
params RiskUsage []  usages 
)

◆ getRiskLimits()

RiskLimit [] getRiskLimits ( )

Admin interface: limits registered by server process.

May include server defaults and other limits not explicitly initialized from an admin instance.

◆ getRiskUsage()

RiskUsage [] getRiskUsage ( )

Admin interface: full risk usage view held by server process.

Will reflect the last set of usages received by the server, incorporating unacknowledged/pending orders. Will only include groups that have been modified by admin or trade activity.

◆ getRiskMarketPositions()

RiskMarketPosition [] getRiskMarketPositions ( )

Admin interface: Returns array of derived RiskMarketPositions rather than RiskUsage.

The results are abridged to show current position without being broken down by date.

◆ getRiskTimestamp()

long getRiskTimestamp ( )

Admin interface: timestamp of last constraint update from server process.

◆ getUserGroupChains()

Dictionary<string, string[]> getUserGroupChains ( )

Admin interface: linear list of groups to which each user belongs.

(each entry is a direct child of the next group in the list.) Ex: <ApiUser1: [ApiUser1, Client1, Root] GuiUser1: [GuiUser1, Client1, Root]>

◆ onStart()

override void onStart ( )
protectedvirtual

Reimplemented from MFBaseClient.

◆ onStop()

override void onStop ( )
protectedvirtual

Reimplemented from MFBaseClient.

◆ onDisconnect()

override void onDisconnect ( )
protectedvirtual

Reimplemented from MFBaseClient.

◆ onConnect()

override void onConnect ( )
protectedvirtual

Reimplemented from MFBaseClient.

◆ onHeartbeat()

override void onHeartbeat ( Heartbeat  heartbeat)
protectedvirtual

Reimplemented from MFBaseClient.

◆ onSubscriptionEvent()

override void onSubscriptionEvent ( SubscriptionEvent  subscriptionEvent)
protectedvirtual

Reimplemented from MFBaseClient.

◆ onMarketData()

override void onMarketData ( MarketView  marketData)
protectedvirtual

Reimplemented from MFBaseClient.

◆ onEventReport()

override void onEventReport ( EventReport  eventReport)
protectedvirtual

Reimplemented from MFBaseClient.

◆ onDateRollover()

override void onDateRollover ( DateRollover  dateRollover)
protectedvirtual

Reimplemented from MFBaseClient.

◆ onBatchComplete()

override void onBatchComplete ( int  batchDefID)
protectedvirtual

Reimplemented from MFBaseClient.

◆ onOrderReceived()

override void onOrderReceived ( OrderReceived  orderReceived)
protectedvirtual

Reimplemented from MFBaseClient.

◆ onOrderRejected()

override void onOrderRejected ( OrderRejected  orderRejected)
protectedvirtual

Reimplemented from MFBaseClient.

◆ onOrderSubmitted()

override void onOrderSubmitted ( OrderSubmitted  orderSubmitted)
protectedvirtual

Reimplemented from MFBaseClient.

◆ onOrderCanceled()

override void onOrderCanceled ( OrderCanceled  orderCanceled)
protectedvirtual

Reimplemented from MFBaseClient.

◆ onOrderCancelRejected()

override void onOrderCancelRejected ( OrderCancelRejected  orderCancelRejected)
protectedvirtual

Reimplemented from MFBaseClient.

◆ onTradeCapture()

override void onTradeCapture ( TradeCapture  tradeCapture)
protectedvirtual

Reimplemented from MFBaseClient.

◆ onOrderDone()

override void onOrderDone ( OrderDone  orderDone)
protectedvirtual

Reimplemented from MFBaseClient.

◆ onDropCopy()

override void onDropCopy ( DropCopy  dropCopy)
protectedvirtual

Reimplemented from MFBaseClient.

◆ onReplayDone()

override void onReplayDone ( ReplayDone  replayDone)
protectedvirtual

Reimplemented from MFBaseClient.

◆ onLockResponse()

override void onLockResponse ( LockResponse  lockResponse)
protectedvirtual

Reimplemented from MFBaseClient.

◆ onRiskResponse()

override void onRiskResponse ( RiskResponse  riskResponse)
protectedvirtual

Reimplemented from MFBaseClient.

◆ setUseHeartbeat()

void setUseHeartbeat ( bool  use)
inherited

◆ setDebug()

void setDebug ( bool  debug)
inherited

◆ setStickySubscriptions() [1/2]

void setStickySubscriptions ( bool  sticky)
inherited

Enable/Disable sticky subscriptions.

Set clearSubscriptionsOnStop=false if subscriptions should persist on disconnect/stop/start.

◆ setStickySubscriptions() [2/2]

void setStickySubscriptions ( bool  sticky,
bool  clearSubscriptionsOnStop 
)
inherited

◆ isConnected()

bool isConnected ( )
inherited

Return true if the _channel is _connected.

◆ connect()

APIResult connect ( )
inherited

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.

◆ close()

APIResult close ( )
inherited

Close the connection.

(This can only be called this when you're not dispatching.)

Note: this should not be invoked by _handler.

◆ isRunning()

bool isRunning ( )
inherited

Returns true if the client is currently dispatching events (i.e., you called run()).

◆ stop()

APIResult stop ( )
inherited

Request to stop the event dispatch loop, does not disconnect the client from the server.

◆ isStopRequested()

bool isStopRequested ( )
inherited

◆ join()

APIResult join ( )
inherited

Block until the client has exited the dispatch loop.

Note: this should not be invoked by _handler.

◆ run() [2/2]

APIResult run ( MFBaseHandler  _handler,
bool  loop 
)
protectedinherited

_log.info("Attempting reconnect...");

◆ send()

APIResult send ( IMessage  msg)
protectedinherited

◆ getSignature()

string getSignature ( )
inherited

Get protocol api signature.

◆ getSequenceID()

int getSequenceID ( int  feedID)
inherited

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.

◆ getFeeds()

APIFeed [] getFeeds ( )
inherited

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.

◆ getFeedByName()

APIFeed getFeedByName ( string  name)
inherited

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).

Returns
a pointer to the Feed of the given name or NULL if it does not exist.

◆ getFeedByID()

APIFeed getFeedByID ( int  id)
inherited

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).

Returns
a pointer to the Feed of the given id or NULL if it does not exist.

◆ getMarketByName()

APIMarket getMarketByName ( APIFeed  feed,
string  name 
)
inherited

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.

Returns
a pointer to the Market with the given name within the given feed or NULL if it does not exist.

◆ getMarketByID()

APIMarket getMarketByID ( APIFeed  feed,
int  marketID 
)
inherited

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.

Returns
a pointer to the Market with the given market id within the given feed or NULL if it does not exist.

◆ getHostname()

string getHostname ( )
inherited

Returns the primary/secondary server hostname (whichever one is being used).

Does not indicate whether a connection is in progress or successfully established.

◆ getPort()

int getPort ( )
inherited

Returns the primary/secondary server port (whichever one is being used).

Does not indicate whether a connection is in progress or successfully established.

◆ getLastPingTimes()

Queue<PingTime> getLastPingTimes ( )
inherited

◆ replay()

APIResult replay ( int  feedID,
int  fromSequenceID,
int  toSequenceID 
)
inherited

Request replay of order flow events in the range [fromSequenceID, toSequenceID=-1].

Only open-ended requests are accepted by the server.

Returns
0 if the replay request has been sent, -1 on error.

◆ subscribeMD() [3/3]

APIResult subscribeMD ( int  feedID,
int  marketID,
String  clSubID 
)
protectedinherited

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.

Returns
APIResult.OK if the subscription request has been sent, APIResult.SOCKERR_WRITING on error.

summary> 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.

Returns
APIResult.OK if the subscription request has been sent, APIResult.SOCKERR_WRITING on error.

◆ subscribe()

APIResult subscribe ( APIType  apiType,
int  feedID,
int  marketID,
String  clSubID 
)
protectedinherited

◆ unsubscribe()

APIResult unsubscribe ( APIType  apiType,
int  feedID,
int  marketID,
String  clSubID 
)
protectedinherited

◆ unsubscribeAll()

APIResult unsubscribeAll ( )
inherited

Unsubscribe all market data and trading subscriptions.

Call this if you want to stop receiving callbacks but don't want to disconnect.

Returns
APIResult.OK if the unsubscription request has been sent, APIResult.SOCKERR_WRITING on error.

◆ registerMarketComb()

KeyValuePair<APIResult, int> registerMarketComb ( int  feedID,
int []  marketIds 
)
protectedinherited

◆ unregisterMarketComb()

APIResult unregisterMarketComb ( int  batchDefID)
protectedinherited

◆ requestSnapshot()

APIResult requestSnapshot ( int  feedID,
int  marketID 
)
protectedinherited

◆ submitOrder() [1/4]

KeyValuePair<APIResult, long> submitOrder ( string  clOrdID,
int  feedID,
int  marketID,
Side  side,
MFFloat  amount,
MFFloat  price,
OrderType  ordType,
TimeInForce  tif 
)
protectedinherited

Submit an order.

Returns
-1 if the order could not be placed because it is redundant.

◆ submitOrder() [2/4]

KeyValuePair<APIResult, long> submitOrder ( string  clOrdID,
int  feedID,
int  marketID,
Side  side,
MFFloat  amount,
MFFloat  price,
MFFloat  stopPrice,
MFFloat  maxShowAmt,
OrderType  ordType,
TimeInForce  tif 
)
protectedinherited

Submit an order without minAmount (kept for backward compatibility).

Returns
-1 if the order could not be placed because it is redundant.

◆ submitOrder() [3/4]

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 
)
protectedinherited

◆ submitOrder() [4/4]

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 
)
protectedinherited

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.

Returns
APIResult describing the success or failure; and the orderid or 0 if the action failed.
Parameters
clOrdIDclient order identifier.
feedIDFeed identifier.
marketIDmarket identifier.
sideside
amountamount
priceprice
stopPricestop price
maxShowAmtmax show amount
minFillAmtminimum fill amount
ordTypeorder type
tiftime in force
parametersoptional OrderParameters

◆ modifyOrder()

KeyValuePair<APIResult, long> modifyOrder ( string  clOrdID,
string  clNewID,
MFFloat  amount,
MFFloat  price,
OrderParameters  parameters = null 
)
protectedinherited

Submit modification to an existing order.

Returns
Pair The first member is APIResult.OK if the order has been sent. The second member is the orderID.

◆ cancelOrder() [1/3]

APIResult cancelOrder ( string  cxlID,
string  clOrdID 
)
protectedinherited

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.

◆ cancelOrder() [2/3]

APIResult cancelOrder ( string  cxlID,
long  orderID 
)
protectedinherited

Cancel a previously placed order by internal 'orderID'. Return false if the internal 'orderID' could not be provided.

◆ cancelOrder() [3/3]

APIResult cancelOrder ( string  cxlID,
long  orderID,
string  clOrdID 
)
protectedinherited

Cancel a previously placed order by providing both internal 'orderID' and clOrdID. APIResult.INVALID_ORDERID if the internal 'orderID' could not be provided.

◆ cancelAll() [1/2]

APIResult cancelAll ( int  feedID,
string  cxlID 
)
protectedinherited

Cancel all the orders on a feed.

◆ cancelAll() [2/2]

APIResult cancelAll ( string  cxlID)
protectedinherited

Cancel all the orders, on all feeds.

◆ onQuoteRequest()

virtual void onQuoteRequest ( QuoteRequest  msg)
protectedvirtualinherited

Reimplemented in MFMarketMaker.

◆ onMassQuoteAck()

virtual void onMassQuoteAck ( MassQuoteAck  msg)
protectedvirtualinherited

Reimplemented in MFMarketMaker.

◆ onNewOrder()

virtual void onNewOrder ( NewOrder  msg)
protectedvirtualinherited

Reimplemented in MFMarketMaker.

◆ onOrderTimeout()

virtual void onOrderTimeout ( OrderTimeout  msg)
protectedvirtualinherited

Reimplemented in MFMarketMaker.

◆ onTradeCaptureAck()

virtual void onTradeCaptureAck ( TradeCaptureAck  msg)
protectedvirtualinherited

Reimplemented in MFMarketMaker.

◆ onJsonFromServer()

virtual void onJsonFromServer ( JsonFromServer  msg)
protectedvirtualinherited

◆ log() [1/2]

void log ( string  message)
inherited

Logs a debug message into the Whisperer server _log file.

(We use this for inserting markers for automated testing and debugging.)

◆ log() [2/2]

void log ( string  message,
LogLevel  level 
)
inherited

◆ test()

void test ( APITest  test)
inherited

Internal testing function.

Do not use this.

Member Data Documentation

◆ _userGroupChains

Dictionary<String, String[]> _userGroupChains = new Dictionary<String, String[]>()
protected

◆ _riskLimits

RiskLimit [] _riskLimits = new RiskLimit[0]
protected

◆ _riskUsages

RiskUsage [] _riskUsages = new RiskUsage[0]
protected

◆ _riskTimestamp

long _riskTimestamp
protected

◆ _tradeLimitDataQueue

List<TradeLimitDataMessage> _tradeLimitDataQueue
protected
Initial value:
=
new List<TradeLimitDataMessage>()

◆ FEED_NULL

readonly int FEED_NULL = 0
static

Pair with marketID to reference individual currencies.

◆ FEED_ALL

readonly int FEED_ALL = -1
static

◆ MARKET_ALL

readonly int MARKET_ALL = -1
static

◆ SETTL_DATE_SUM

readonly long SETTL_DATE_SUM = (long)(-1 * (1e9 * 86400))
static

◆ SETTL_DATE_CASH

readonly long SETTL_DATE_CASH = (long)(-2 * (1e9 * 86400))
static

◆ _username

string _username
protectedinherited

◆ _password

string _password
protectedinherited

◆ _hostname1

string _hostname1
protectedinherited

◆ _port1

int _port1
protectedinherited

◆ _hostname2

string _hostname2
protectedinherited

◆ _port2

int _port2
protectedinherited

◆ _log

Logger _log = Logger.getLogger("com.marketfactory.api")
protectedinherited
Confidential. Copyright © 2011 MarketFactory, Inc.