The class provides access to open position information.
Method/Use |
Prerequisites |
O2GTradesTableResponseReader .getRow
This method is used to get the initial open position information after a session with the trading server is established.
This method provides access to a single open position. If you have multiple open positions, call this method in a loop. |
Depending on the trading server settings, the Trades table may or may not be loaded by the server automatically during a login process.
To determine whether the table is loaded or not and what follow-up action is required to get the open position information,
use the returned value of the O2GLoginRules .isTableLoadedByDefault method:
If the table is loaded, you can get the open position information by using the O2GLoginRules .getTableRefreshResponse method;
Otherwise, you must create a request to load the table by using the O2GRequestFactory .createRefreshTableRequest method.
You must obtain a response to this request by implementing of the IO2GResponseListener .onRequestCompleted method.
Both the methods use the O2GResponse object of the O2GResponseType .GET_TRADES type.
You must parse this object by using the O2GTradesTableResponseReader object.
For details, see the example below. |
O2GTablesUpdatesReader .getTradeRow
This method is used to get open position information updates.
This method provides access to a single open position. If you have multiple open positions, call this method in a loop. |
To receive the open position information updates, you must implement the IO2GResponseListener .onTablesUpdates method.
The received O2GResponse object is of the O2GResponseType .TABLES_UPDATES type.
You must parse this object by using the O2GTablesUpdatesReader object.
For details, see the example below. |
Get Trade ID, Offer ID and Amount [hide]
// Get trades information
public static void getTrades(O2GSession session, ResponseListener responseListener) {
try {
O2GLoginRules loginRules = session.getLoginRules();
// Check if Trades table is loaded automatically
if (loginRules != null && loginRules.isTableLoadedByDefault(O2GTableType.TRADES)) {
// If table is loaded, use getTableRefreshResponse method
O2GResponse tradesResponse = loginRules.getTableRefreshResponse(O2GTableType.TRADES);
O2GResponseReaderFactory responseFactory = session.getResponseReaderFactory();
if (responseFactory == null) {
return;
}
O2GTradesTableResponseReader tradesReader = responseFactory.createTradesTableReader(tradesResponse);
for (int i = 0; i < tradesReader.size(); i++) {
O2GTradeRow trade = tradesReader.getRow(i);
System.out.println("TradeID = " + trade.getTradeID() +
" OfferID = " + trade.getOfferID() +
" Amount= " + trade.getAmount());
}
} else {
// If table is not loaded, use createRefreshTableRequest method
O2GRequestFactory requestFactory = session.getRequestFactory();
if (requestFactory != null) {
O2GRequest request = requestFactory.createRefreshTableRequest(O2GTableType.TRADES);
responseListener.setRequest(request.getRequestId());
session.sendRequest(request);
Thread.sleep(1000);
}
}
} catch (Exception e) {
System.out.println("Exception in getTrades().\n\t " + e.getMessage());
}
}
// Implementation of IO2GResponseListener interface public method onRequestCompleted
public void onRequestCompleted(String requestID, O2GResponse response) {
if (requestID.equals(mRequestID)) {
O2GResponseReaderFactory readerFactory = mSession.getResponseReaderFactory();
if (readerFactory == null) {
return;
}
O2GTradesTableResponseReader reader = readerFactory.createTradesTableReader(response);
for (int i = 0; i < reader.size(); i++) {
O2GTradeRow trade = reader.getRow(i);
System.out.println(" This is a response to your request: \nTradeID = " + trade.getTradeID() +
" OfferID = " + trade.getOfferID() +
" Amount= " + trade.getAmount());
}
}
}
// Implementation of IO2GResponseListener interface public method onTablesUpdates
public void onTablesUpdates(O2GResponse response) {
O2GResponseReaderFactory factory = mSession.getResponseReaderFactory();
if (factory == null) {
return;
}
O2GTablesUpdatesReader updatesReader = factory.createTablesUpdatesReader(response);
for (int i = 0; i < updatesReader.size(); i++) {
O2GTableType tableType = updatesReader.getUpdateTable(i);
if (tableType == O2GTableType.TRADES) {
O2GTradeRow trade = updatesReader.getTradeRow(i);
System.out.println(" This is a live update: \nTradeID = " + trade.getTradeID() +
" OfferID = " + trade.getOfferID() +
" Amount= " + trade.getAmount());
}
}
}
Public Methods |
getAccountID
|
Gets the unique identification number of the account the position is opened on.
|
getAccountKind
|
Gets the type of the account the position is opened on.
|
getAccountName
|
Gets the unique name of the account the position is opened on.
|
getAmount
|
Gets the amount of the position.
|
getBuySell
|
Gets the trade operation the position is opened by.
|
getCell
|
Gets a cell of the table.
|
getColumns
|
Gets the columns of the table.
|
getCommission
|
Gets the amount of funds subtracted from the account balance to pay for the broker's service in accordance with the terms and conditions of the account trading agreement.
|
getOfferID
|
Gets the unique identification number of the instrument traded.
|
getOpenOrderID
|
Gets the unique identification number of the order the position is opened by.
|
getOpenOrderReqID
|
Gets the identifier of the order request the position is opened by.
|
getOpenOrderRequestTXT
|
Gets the custom identifier of the order the position is opened by.
|
getOpenQuoteID
|
Gets the unique identifier of the pair of prices (bid and ask) the position is opened at.
|
getOpenRate
|
Gets the price the position is opened at.
|
getOpenTime
|
Gets the date and time when the position is opened.
|
getParties
|
Gets the unique identifier of the environment what has been used to open the position.
|
getRolloverInterest
|
Gets the cumulative amount of funds that is added to the account balance for holding the position opened overnight.
|
getTableType
|
Gets the type of the table.
|
getTradeID
|
Gets the unique identification number of the open position.
|
getTradeIDOrigin
|
Gets the unique identification number of the position, the partial closing of which has resulted in the opening of the current position.
|
getUsedMargin
|
Gets the amount of funds currently committed to maintain the position.
|
getValueDate
|
Gets the simulated delivery date.
|
isCellChanged
|
Gets a flag indicating whether the value of the cell is changed.
|