Documentation
¶
Index ¶
- func Authenticate()
- func KeepAlive()
- func Schedule(callback func(), interval time.Duration) chan struct{}
- func SetBaseURL(baseURL string)
- type AssetClass
- type BrokerAccount
- type BrokerAccounts
- type Historical
- type HistoricalDataFrame
- type MarketDataField
- type Portfolio
- type PortfoliosResponse
- type Position
- type Positions
- type Security
- type Snapshot
- type Snapshots
- type TimeUnit
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func KeepAlive ¶
func KeepAlive()
KeepAlive keeps the authenticated session active. Inactive sessions are timed out within a few minutes. By calling /tickle the client portal keeps the session alive.
Types ¶
type AssetClass ¶
type AssetClass string
AssetClass represents the type of asset
const ( // Futures are contracts that allow assets to be purchased at a market price for delivery and payment in the future. Futures AssetClass = "FUT" // Stocks represent a fractional ownership of a business and entitles the holder to dividends. Stocks AssetClass = "STK" )
type BrokerAccount ¶
type BrokerAccount struct {
ID string
}
BrokerAccount stores the id of a brokerage account
func (BrokerAccount) Security ¶
func (ba BrokerAccount) Security(p Position) Security
Security creates a security object from a position
type BrokerAccounts ¶
type BrokerAccounts struct {
Accounts []string `json:"accounts"`
ChartPeriods struct {
STK []string `json:"STK"`
CFD []string `json:"CFD"`
OPT []string `json:"OPT"`
FOP []string `json:"FOP"`
WAR []string `json:"WAR"`
IOPT []string `json:"IOPT"`
FUT []string `json:"FUT"`
CASH []string `json:"CASH"`
IND []string `json:"IND"`
BOND []string `json:"BOND"`
FUND []string `json:"FUND"`
CMDTY []string `json:"CMDTY"`
PHYSS []string `json:"PHYSS"`
} `json:"chartPeriods"`
SelectedAccount string `json:"selectedAccount"`
AllowFeatures struct {
ShowGFIS bool `json:"showGFIS"`
AllowFXConv bool `json:"allowFXConv"`
AllowTypeAhead bool `json:"allowTypeAhead"`
SnapshotRefreshTimeout int `json:"snapshotRefreshTimeout"`
LiteUser bool `json:"liteUser"`
ShowWebNews bool `json:"showWebNews"`
Research bool `json:"research"`
DebugPnl bool `json:"debugPnl"`
ShowTaxOpt bool `json:"showTaxOpt"`
} `json:"allowFeatures"`
}
BrokerAccounts stores information about a users available brokerage accounts
func Brokers ¶
func Brokers() BrokerAccounts
Brokers retrieves all of an accounts brokerage accounts
func (BrokerAccounts) Selected ¶
func (ba BrokerAccounts) Selected() BrokerAccount
Selected returns the default/active brokerage account
type Historical ¶
type Historical struct {
Symbol string `json:"symbol"`
Text string `json:"text"`
PriceFactor int `json:"priceFactor"`
StartTime string `json:"startTime"`
High string `json:"high"`
Low string `json:"low"`
TimePeriod string `json:"timePeriod"`
BarLength int `json:"barLength"`
MdAvailability string `json:"mdAvailability"`
MktDataDelay int `json:"mktDataDelay"`
OutsideRth bool `json:"outsideRth"`
VolumeFactor int `json:"volumeFactor"`
PriceDisplayRule int `json:"priceDisplayRule"`
PriceDisplayValue string `json:"priceDisplayValue"`
NegativeCapable bool `json:"negativeCapable"`
MessageVersion int `json:"messageVersion"`
Data []HistoricalDataFrame `json:"data"`
Points int `json:"points"`
TravelTime int `json:"travelTime"`
}
Historical stores historical market data returned from the brokerage server.
func (Historical) ToDataFrame ¶
func (hd Historical) ToDataFrame() *dataframe.DataFrame
ToDataFrame converts historical market data to dataframes for technical analysis.
type HistoricalDataFrame ¶
type HistoricalDataFrame struct {
O float64 `json:"o"`
C float64 `json:"c"`
H float64 `json:"h"`
L float64 `json:"l"`
V int `json:"v"`
T int64 `json:"t"`
}
HistoricalDataFrame stores the OCHL, Volume and Time of a security for a single frame of historical market data.
type MarketDataField ¶
type MarketDataField string
MarketDataField represents a field to request market data for. IB decided it was a fun idea to assign each field a number instead of a name. So now I must resort to this horrific mess
const ( LastPrice MarketDataField = "31" Symbol MarketDataField = "55" Text MarketDataField = "58" High MarketDataField = "70" Low MarketDataField = "71" Pos MarketDataField = "72" MarketValue MarketDataField = "73" AveragePrice MarketDataField = "74" UnrealizedPnL MarketDataField = "75" FormattedPosition MarketDataField = "76" FormattedUnrealizedPnL MarketDataField = "77" DailyPnL MarketDataField = "78" ChangePrice MarketDataField = "82" ChangePercent MarketDataField = "83" BidPrice MarketDataField = "84" AskSize MarketDataField = "85" AskPrice MarketDataField = "86" Volume MarketDataField = "87" BidSize MarketDataField = "88" Exchange MarketDataField = "6004" Conid MarketDataField = "6008" SecurityType MarketDataField = "6070" Months MarketDataField = "6072" RegularExpiry MarketDataField = "6073" MarketDataDeliveryMethodMarker MarketDataField = "6119" UnderlyingConid MarketDataField = "6457" MarketDataAvailability MarketDataField = "6509" CompanyName MarketDataField = "7051" LastSize MarketDataField = "7059" ConidExchange MarketDataField = "7094" ContractDescription MarketDataField = "7219" ContractDescriptionAlt MarketDataField = "7220" ListingExchange MarketDataField = "7221" Industry MarketDataField = "7280" Category MarketDataField = "7281" AverageDailyVolume MarketDataField = "7282" HistoricVolume30D MarketDataField = "7284" PutCallRatio MarketDataField = "7285" DividendAmount MarketDataField = "7286" DividendYieldPercentage MarketDataField = "7287" DividendExDate MarketDataField = "7288" MarketCap MarketDataField = "7289" PE MarketDataField = "7290" EPS MarketDataField = "7291" CostBasis MarketDataField = "7292" WeekHigh52 MarketDataField = "7293" WeekLow52 MarketDataField = "7294" OpenPrice MarketDataField = "7295" ClosePrice MarketDataField = "7296" Delta MarketDataField = "7308" Gamma MarketDataField = "7309" Theta MarketDataField = "7310" Vega MarketDataField = "7311" ImpliedVolatilityOption MarketDataField = "7633" )
type Portfolio ¶
type Portfolio struct {
ID string `json:"id"`
AccountID string `json:"accountId"`
AccountVan string `json:"accountVan"`
AccountTitle string `json:"accountTitle"`
DisplayName string `json:"displayName"`
AccountAlias interface{} `json:"accountAlias"`
AccountStatus int64 `json:"accountStatus"`
Currency string `json:"currency"`
Type string `json:"type"`
TradingType string `json:"tradingType"`
Faclient bool `json:"faclient"`
ClearingStatus string `json:"clearingStatus"`
Parent interface{} `json:"parent"`
Desc string `json:"desc"`
Covestor bool `json:"covestor"`
}
Portfolio stores information about a specific account portfolio
type PortfoliosResponse ¶
type PortfoliosResponse []Portfolio
PortfoliosResponse is an array of portfolio accounts
func Portfolios ¶
func Portfolios() PortfoliosResponse
Portfolios retrieves portfolios attached to the account
type Position ¶
type Position struct {
AcctID string `json:"acctId"`
Conid int `json:"conid"`
ContractDesc string `json:"contractDesc"`
Position float64 `json:"position"`
MktPrice float64 `json:"mktPrice"`
MktValue float64 `json:"mktValue"`
Currency string `json:"currency"`
AvgCost float64 `json:"avgCost"`
AvgPrice float64 `json:"avgPrice"`
RealizedPnl float64 `json:"realizedPnl"`
UnrealizedPnl float64 `json:"unrealizedPnl"`
Exchs interface{} `json:"exchs"`
Expiry string `json:"expiry"`
PutOrCall interface{} `json:"putOrCall"`
Multiplier string `json:"multiplier"`
Strike float64 `json:"strike"`
ExerciseStyle interface{} `json:"exerciseStyle"`
ConExchMap []interface{} `json:"conExchMap"`
AssetClass string `json:"assetClass"`
UndConid int `json:"undConid"`
Model string `json:"model"`
BaseMktValue float64 `json:"baseMktValue"`
BaseMktPrice float64 `json:"baseMktPrice"`
BaseAvgCost float64 `json:"baseAvgCost"`
BaseAvgPrice float64 `json:"baseAvgPrice"`
BaseRealizedPnl float64 `json:"baseRealizedPnl"`
BaseUnrealizedPnl float64 `json:"baseUnrealizedPnl"`
Time int `json:"time"`
Name string `json:"name"`
LastTradingDay string `json:"lastTradingDay"`
Group interface{} `json:"group"`
Sector interface{} `json:"sector"`
SectorGroup interface{} `json:"sectorGroup"`
Ticker string `json:"ticker"`
Type string `json:"type"`
UndComp string `json:"undComp,omitempty"`
UndSym string `json:"undSym,omitempty"`
FullName string `json:"fullName"`
PageSize int `json:"pageSize"`
ChineseName string `json:"chineseName,omitempty"`
}
Position stores information about a position
type Positions ¶
type Positions []Position
Positions is an array of positions
func (Positions) FilterAssets ¶
func (p Positions) FilterAssets(a AssetClass) Positions
FilterAssets filters positions by asset class
type Security ¶
type Security struct {
Broker BrokerAccount
Conid int
}
Security stores information about a security
func (Security) Historical ¶
Historical retrieves historical market data for a security.
func (Security) Snapshot ¶
func (s Security) Snapshot(fields ...MarketDataField) Snapshots
Snapshot retrieves a market data snapshot by fields
type Snapshot ¶
type Snapshot struct {
LastPrice float64 `json:"31,string,omitempty"`
Symbol string `json:"55,omitempty"`
Text string `json:"58,omitempty"`
High float64 `json:"70,string,omitempty"`
Low float64 `json:"71,string,omitempty"`
Position float64 `json:"72,omitempty"`
MarketValue string `json:"73,omitempty"`
AveragePrice float64 `json:"74,string,omitempty"`
UnrealizedPnL float64 `json:"75,omitempty"`
FormattedPosition string `json:"76,omitempty"`
FormattedUnrealizedPnL string `json:"77,omitempty"`
DailyPnL float64 `json:"78_raw,omitempty"`
ChangePrice float64 `json:"82,string,omitempty"`
ChangePercent float64 `json:"83,omitempty"`
BidPrice float64 `json:"84,string,omitempty"`
AskSize int `json:"85,string,omitempty"`
AskPrice float64 `json:"86,string,omitempty"`
Volume float64 `json:"87_raw,omitempty"`
BidSize int `json:"88,string,omitempty"`
SecurityType string `json:"6070,omitempty"`
MarketDataDeliveryMethodMarker string `json:"6119,omitempty"`
UnderlyingConid int `json:"6457,string,omitempty"`
MarketDataAvailability string `json:"6509,omitempty"`
CompanyName string `json:"7051,omitempty"`
LastSize int `json:"7059,string,omitempty"`
ContractDescription string `json:"7219,omitempty"`
ListingExchange string `json:"7221,omitempty"`
Industry string `json:"7280,omitempty"`
Category string `json:"7281,omitempty"`
AverageDailyVolume string `json:"7282,omitempty"`
HistoricVolume30D string `json:"7284,omitempty"`
DividendAmount float64 `json:"7286,string,omitempty"`
DividendYieldPercentage string `json:"7287,omitempty"`
DividendExDate string `json:"7288,omitempty"`
MarketCap string `json:"7289,omitempty"`
PE float64 `json:"7290,string,omitempty"`
EPS float64 `json:"7291,string,omitempty"`
CostBasis float64 `json:"7292_raw,omitempty"`
WeekHigh52 float64 `json:"7293,string,omitempty"`
WeekLow52 float64 `json:"7294,string,omitempty"`
OpenPrice float64 `json:"7295,string,omitempty"`
Conid int `json:"conid"`
ServerID string `json:"server_id,omitempty"`
Updated int64 `json:"_updated,omitempty"`
}