177 lines
7.8 KiB
C++
177 lines
7.8 KiB
C++
/* Copyright (C) 2013 Interactive Brokers LLC. All rights reserved. This code is subject to the terms
|
|
* and conditions of the IB API Non-Commercial License or the IB API Commercial License, as applicable. */
|
|
|
|
#pragma once
|
|
#ifndef ewrapper_def
|
|
#define ewrapper_def
|
|
|
|
#include "CommonDefs.h"
|
|
#include "SoftDollarTier.h"
|
|
#include <string>
|
|
#include <set>
|
|
|
|
enum TickType { BID_SIZE, BID, ASK, ASK_SIZE, LAST, LAST_SIZE,
|
|
HIGH, LOW, VOLUME, CLOSE,
|
|
BID_OPTION_COMPUTATION,
|
|
ASK_OPTION_COMPUTATION,
|
|
LAST_OPTION_COMPUTATION,
|
|
MODEL_OPTION,
|
|
OPEN,
|
|
LOW_13_WEEK,
|
|
HIGH_13_WEEK,
|
|
LOW_26_WEEK,
|
|
HIGH_26_WEEK,
|
|
LOW_52_WEEK,
|
|
HIGH_52_WEEK,
|
|
AVG_VOLUME,
|
|
OPEN_INTEREST,
|
|
OPTION_HISTORICAL_VOL,
|
|
OPTION_IMPLIED_VOL,
|
|
OPTION_BID_EXCH,
|
|
OPTION_ASK_EXCH,
|
|
OPTION_CALL_OPEN_INTEREST,
|
|
OPTION_PUT_OPEN_INTEREST,
|
|
OPTION_CALL_VOLUME,
|
|
OPTION_PUT_VOLUME,
|
|
INDEX_FUTURE_PREMIUM,
|
|
BID_EXCH,
|
|
ASK_EXCH,
|
|
AUCTION_VOLUME,
|
|
AUCTION_PRICE,
|
|
AUCTION_IMBALANCE,
|
|
MARK_PRICE,
|
|
BID_EFP_COMPUTATION,
|
|
ASK_EFP_COMPUTATION,
|
|
LAST_EFP_COMPUTATION,
|
|
OPEN_EFP_COMPUTATION,
|
|
HIGH_EFP_COMPUTATION,
|
|
LOW_EFP_COMPUTATION,
|
|
CLOSE_EFP_COMPUTATION,
|
|
LAST_TIMESTAMP,
|
|
SHORTABLE,
|
|
FUNDAMENTAL_RATIOS,
|
|
RT_VOLUME,
|
|
HALTED,
|
|
BID_YIELD,
|
|
ASK_YIELD,
|
|
LAST_YIELD,
|
|
CUST_OPTION_COMPUTATION,
|
|
TRADE_COUNT,
|
|
TRADE_RATE,
|
|
VOLUME_RATE,
|
|
LAST_RTH_TRADE,
|
|
RT_HISTORICAL_VOL,
|
|
IB_DIVIDENDS,
|
|
BOND_FACTOR_MULTIPLIER,
|
|
REGULATORY_IMBALANCE,
|
|
NEWS_TICK,
|
|
SHORT_TERM_VOLUME_3_MIN,
|
|
SHORT_TERM_VOLUME_5_MIN,
|
|
SHORT_TERM_VOLUME_10_MIN,
|
|
DELAYED_BID,
|
|
DELAYED_ASK,
|
|
DELAYED_LAST,
|
|
DELAYED_BID_SIZE,
|
|
DELAYED_ASK_SIZE,
|
|
DELAYED_LAST_SIZE,
|
|
DELAYED_HIGH,
|
|
DELAYED_LOW,
|
|
DELAYED_VOLUME,
|
|
DELAYED_CLOSE,
|
|
DELAYED_OPEN,
|
|
RT_TRD_VOLUME,
|
|
CREDITMAN_MARK_PRICE,
|
|
CREDITMAN_SLOW_MARK_PRICE,
|
|
NOT_SET };
|
|
|
|
inline bool isPrice( TickType tickType) {
|
|
return tickType == BID || tickType == ASK || tickType == LAST;
|
|
}
|
|
|
|
struct Contract;
|
|
struct ContractDetails;
|
|
struct Order;
|
|
struct OrderState;
|
|
struct Execution;
|
|
struct UnderComp;
|
|
struct CommissionReport;
|
|
|
|
class EWrapper
|
|
{
|
|
public:
|
|
virtual ~EWrapper() {};
|
|
|
|
virtual void tickPrice( TickerId tickerId, TickType field, double price, int canAutoExecute) = 0;
|
|
virtual void tickSize( TickerId tickerId, TickType field, int size) = 0;
|
|
virtual void tickOptionComputation( TickerId tickerId, TickType tickType, double impliedVol, double delta,
|
|
double optPrice, double pvDividend, double gamma, double vega, double theta, double undPrice) = 0;
|
|
virtual void tickGeneric(TickerId tickerId, TickType tickType, double value) = 0;
|
|
virtual void tickString(TickerId tickerId, TickType tickType, const std::string& value) = 0;
|
|
virtual void tickEFP(TickerId tickerId, TickType tickType, double basisPoints, const std::string& formattedBasisPoints,
|
|
double totalDividends, int holdDays, const std::string& futureLastTradeDate, double dividendImpact, double dividendsToLastTradeDate) = 0;
|
|
virtual void orderStatus( OrderId orderId, const std::string& status, double filled,
|
|
double remaining, double avgFillPrice, int permId, int parentId,
|
|
double lastFillPrice, int clientId, const std::string& whyHeld) = 0;
|
|
virtual void openOrder( OrderId orderId, const Contract&, const Order&, const OrderState&) = 0;
|
|
virtual void openOrderEnd() = 0;
|
|
virtual void winError( const std::string& str, int lastError) = 0;
|
|
virtual void connectionClosed() = 0;
|
|
virtual void updateAccountValue(const std::string& key, const std::string& val,
|
|
const std::string& currency, const std::string& accountName) = 0;
|
|
virtual void updatePortfolio( const Contract& contract, double position,
|
|
double marketPrice, double marketValue, double averageCost,
|
|
double unrealizedPNL, double realizedPNL, const std::string& accountName) = 0;
|
|
virtual void updateAccountTime(const std::string& timeStamp) = 0;
|
|
virtual void accountDownloadEnd(const std::string& accountName) = 0;
|
|
virtual void nextValidId( OrderId orderId) = 0;
|
|
virtual void contractDetails( int reqId, const ContractDetails& contractDetails) = 0;
|
|
virtual void bondContractDetails( int reqId, const ContractDetails& contractDetails) = 0;
|
|
virtual void contractDetailsEnd( int reqId) = 0;
|
|
virtual void execDetails( int reqId, const Contract& contract, const Execution& execution) =0;
|
|
virtual void execDetailsEnd( int reqId) =0;
|
|
virtual void error(const int id, const int errorCode, const std::string errorString) = 0;
|
|
virtual void updateMktDepth(TickerId id, int position, int operation, int side,
|
|
double price, int size) = 0;
|
|
virtual void updateMktDepthL2(TickerId id, int position, std::string marketMaker, int operation,
|
|
int side, double price, int size) = 0;
|
|
virtual void updateNewsBulletin(int msgId, int msgType, const std::string& newsMessage, const std::string& originExch) = 0;
|
|
virtual void managedAccounts( const std::string& accountsList) = 0;
|
|
virtual void receiveFA(faDataType pFaDataType, const std::string& cxml) = 0;
|
|
virtual void historicalData(TickerId reqId, const std::string& date, double open, double high,
|
|
double low, double close, int volume, int barCount, double WAP, int hasGaps) = 0;
|
|
virtual void scannerParameters(const std::string& xml) = 0;
|
|
virtual void scannerData(int reqId, int rank, const ContractDetails& contractDetails,
|
|
const std::string& distance, const std::string& benchmark, const std::string& projection,
|
|
const std::string& legsStr) = 0;
|
|
virtual void scannerDataEnd(int reqId) = 0;
|
|
virtual void realtimeBar(TickerId reqId, long time, double open, double high, double low, double close,
|
|
long volume, double wap, int count) = 0;
|
|
virtual void currentTime(long time) = 0;
|
|
virtual void fundamentalData(TickerId reqId, const std::string& data) = 0;
|
|
virtual void deltaNeutralValidation(int reqId, const UnderComp& underComp) = 0;
|
|
virtual void tickSnapshotEnd( int reqId) = 0;
|
|
virtual void marketDataType( TickerId reqId, int marketDataType) = 0;
|
|
virtual void commissionReport( const CommissionReport& commissionReport) = 0;
|
|
virtual void position( const std::string& account, const Contract& contract, double position, double avgCost) = 0;
|
|
virtual void positionEnd() = 0;
|
|
virtual void accountSummary( int reqId, const std::string& account, const std::string& tag, const std::string& value, const std::string& curency) = 0;
|
|
virtual void accountSummaryEnd( int reqId) = 0;
|
|
virtual void verifyMessageAPI( const std::string& apiData) = 0;
|
|
virtual void verifyCompleted( bool isSuccessful, const std::string& errorText) = 0;
|
|
virtual void displayGroupList( int reqId, const std::string& groups) = 0;
|
|
virtual void displayGroupUpdated( int reqId, const std::string& contractInfo) = 0;
|
|
virtual void verifyAndAuthMessageAPI( const std::string& apiData, const std::string& xyzChallange) = 0;
|
|
virtual void verifyAndAuthCompleted( bool isSuccessful, const std::string& errorText) = 0;
|
|
virtual void connectAck() = 0;
|
|
virtual void positionMulti( int reqId, const std::string& account,const std::string& modelCode, const Contract& contract, double pos, double avgCost) = 0;
|
|
virtual void positionMultiEnd( int reqId) = 0;
|
|
virtual void accountUpdateMulti( int reqId, const std::string& account, const std::string& modelCode, const std::string& key, const std::string& value, const std::string& currency) = 0;
|
|
virtual void accountUpdateMultiEnd( int reqId) = 0;
|
|
virtual void securityDefinitionOptionalParameter(int reqId, const std::string& exchange, int underlyingConId, const std::string& tradingClass, const std::string& multiplier, std::set<std::string> expirations, std::set<double> strikes) = 0;
|
|
virtual void securityDefinitionOptionalParameterEnd(int reqId) = 0;
|
|
virtual void softDollarTiers(int reqId, const std::vector<SoftDollarTier> &tiers) = 0;
|
|
};
|
|
|
|
|
|
#endif
|