Documentation ¶
Index ¶
- Constants
- Variables
- func CancelOrder(orderID string) error
- func ListBars(symbols []string, opts ListBarParams) (map[string][]Bar, error)
- func SetBaseUrl(baseUrl string)
- type APIError
- type Account
- type AccountActivitiesRequest
- type AccountActivity
- type AccountConfigurations
- type AccountConfigurationsRequest
- type AggV2
- type Aggregates
- type Asset
- type Bar
- type CalendarDay
- type Client
- func (c *Client) CancelAllOrders() error
- func (c *Client) CancelOrder(orderID string) error
- func (c *Client) CloseAllPositions() error
- func (c *Client) ClosePosition(symbol string) error
- func (c *Client) GetAccount() (*Account, error)
- func (c *Client) GetAccountActivities(activityType *string, opts *AccountActivitiesRequest) ([]AccountActivity, error)
- func (c *Client) GetAccountConfigurations() (*AccountConfigurations, error)
- func (c *Client) GetAggregates(symbol, timespan, from, to string) (*Aggregates, error)
- func (c *Client) GetAsset(symbol string) (*Asset, error)
- func (c *Client) GetCalendar(start, end *string) ([]CalendarDay, error)
- func (c *Client) GetClock() (*Clock, error)
- func (c *Client) GetLastQuote(symbol string) (*LastQuoteResponse, error)
- func (c *Client) GetLastTrade(symbol string) (*LastTradeResponse, error)
- func (c *Client) GetOrder(orderID string) (*Order, error)
- func (c *Client) GetPortfolioHistory(period *string, timeframe *RangeFreq, dateEnd *time.Time, extendedHours bool) (*PortfolioHistory, error)
- func (c *Client) GetPosition(symbol string) (*Position, error)
- func (c *Client) GetSymbolBars(symbol string, opts ListBarParams) ([]Bar, error)
- func (c *Client) ListAssets(status *string) ([]Asset, error)
- func (c *Client) ListBars(symbols []string, opts ListBarParams) (map[string][]Bar, error)
- func (c *Client) ListOrders(status *string, until *time.Time, limit *int, nested *bool) ([]Order, error)
- func (c *Client) ListPositions() ([]Position, error)
- func (c *Client) PlaceOrder(req PlaceOrderRequest) (*Order, error)
- func (c *Client) ReplaceOrder(orderID string, req ReplaceOrderRequest) (*Order, error)
- func (c *Client) UpdateAccountConfigurations(newConfigs AccountConfigurationsRequest) (*AccountConfigurations, error)
- type ClientMsg
- type Clock
- type DtbpCheck
- type Fundamental
- type LastQuote
- type LastQuoteResponse
- type LastTrade
- type LastTradeResponse
- type ListBarParams
- type Order
- type OrderAttributes
- type OrderClass
- type OrderType
- type PlaceOrderRequest
- type PortfolioHistory
- type Position
- type RangeFreq
- type ReplaceOrderRequest
- type ServerMsg
- type Side
- type StopLoss
- type Stream
- type StreamAgg
- type StreamQuote
- type StreamTrade
- type TakeProfit
- type TimeInForce
- type TradeConfirmEmail
- type TradeUpdate
Constants ¶
const ( TradeUpdates = "trade_updates" AccountUpdates = "account_updates" )
const (
MaxConnectionAttempts = 3
)
Variables ¶
var ( // DefaultClient is the default Alpaca client using the // environment variable set credentials DefaultClient = NewClient(common.Credentials()) )
Functions ¶
func CancelOrder ¶
CancelOrder submits a request to cancel an open order with the default Alpaca client.
func ListBars ¶
func ListBars(symbols []string, opts ListBarParams) (map[string][]Bar, error)
ListBars returns a map of bar lists corresponding to the provided symbol list that is filtered by the provided parameters with the default Alpaca client.
func SetBaseUrl ¶
func SetBaseUrl(baseUrl string)
Types ¶
type APIError ¶
APIError wraps the detailed code and message supplied by Alpaca's API for debugging purposes
type Account ¶
type Account struct { ID string `json:"id"` AccountNumber string `json:"account_number"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` DeletedAt *time.Time `json:"deleted_at"` Status string `json:"status"` Currency string `json:"currency"` Cash decimal.Decimal `json:"cash"` CashWithdrawable decimal.Decimal `json:"cash_withdrawable"` TradingBlocked bool `json:"trading_blocked"` TransfersBlocked bool `json:"transfers_blocked"` AccountBlocked bool `json:"account_blocked"` ShortingEnabled bool `json:"shorting_enabled"` BuyingPower decimal.Decimal `json:"buying_power"` PatternDayTrader bool `json:"pattern_day_trader"` DaytradeCount int64 `json:"daytrade_count"` DaytradingBuyingPower decimal.Decimal `json:"daytrading_buying_power"` RegTBuyingPower decimal.Decimal `json:"regt_buying_power"` Equity decimal.Decimal `json:"equity"` LastEquity decimal.Decimal `json:"last_equity"` Multiplier string `json:"multiplier"` InitialMargin decimal.Decimal `json:"initial_margin"` MaintenanceMargin decimal.Decimal `json:"maintenance_margin"` LastMaintenanceMargin decimal.Decimal `json:"last_maintenance_margin"` LongMarketValue decimal.Decimal `json:"long_market_value"` ShortMarketValue decimal.Decimal `json:"short_market_value"` PortfolioValue decimal.Decimal `json:"portfolio_value"` }
func GetAccount ¶
GetAccount returns the user's account information using the default Alpaca client.
type AccountActivity ¶
type AccountActivity struct { ID string `json:"id"` ActivityType string `json:"activity_type"` TransactionTime time.Time `json:"transaction_time"` Type string `json:"type"` Price decimal.Decimal `json:"price"` Qty decimal.Decimal `json:"qty"` Side string `json:"side"` Symbol string `json:"symbol"` LeavesQty decimal.Decimal `json:"leaves_qty"` CumQty decimal.Decimal `json:"cum_qty"` Date time.Time `json:"date"` NetAmount decimal.Decimal `json:"net_amount"` Description string `json:"description"` }
func GetAccountActivities ¶
func GetAccountActivities(activityType *string, opts *AccountActivitiesRequest) ([]AccountActivity, error)
type AccountConfigurations ¶
type AccountConfigurations struct { DtbpCheck DtbpCheck `json:"dtbp_check"` NoShorting bool `json:"no_shorting"` TradeConfirmEmail TradeConfirmEmail `json:"trade_confirm_email"` TradeSuspendedByUser bool `json:"trade_suspended_by_user"` }
func GetAccountConfigurations ¶
func GetAccountConfigurations() (*AccountConfigurations, error)
GetAccountConfigurations returns the account configs using the default Alpaca client.
func UpdateAccountConfigurations ¶
func UpdateAccountConfigurations(newConfigs AccountConfigurationsRequest) (*AccountConfigurations, error)
UpdateAccountConfigurations changes the account configs and returns the new configs using the default Alpaca client
type Aggregates ¶
type Aggregates struct { Ticker string `json:"ticker"` Status string `json:"status"` Adjusted bool `json:"adjusted"` QueryCount int `json:"queryCount"` ResultsCount int `json:"resultsCount"` Results []AggV2 `json:"results"` }
func GetAggregates ¶
func GetAggregates(symbol, timespan, from, to string) (*Aggregates, error)
GetAggregates returns the bars for the given symbol, timespan and date-range
type Asset ¶
type Asset struct { ID string `json:"id"` Name string `json:"name"` Exchange string `json:"exchange"` Class string `json:"asset_class"` Symbol string `json:"symbol"` Status string `json:"status"` Tradable bool `json:"tradable"` Marginable bool `json:"marginable"` Shortable bool `json:"shortable"` EasyToBorrow bool `json:"easy_to_borrow"` }
func ListAssets ¶
ListAssets returns the list of assets, filtered by the input parameters with the default Alpaca client.
type Bar ¶
type Bar struct { Time int64 `json:"t"` Open float32 `json:"o"` High float32 `json:"h"` Low float32 `json:"l"` Close float32 `json:"c"` Volume int32 `json:"v"` }
func GetSymbolBars ¶
func GetSymbolBars(symbol string, opts ListBarParams) ([]Bar, error)
GetSymbolBars returns a list of bars corresponding to the provided symbol that is filtered by the provided parameters with the default Alpaca client.
type CalendarDay ¶
type CalendarDay struct { Date string `json:"date"` Open string `json:"open"` Close string `json:"close"` }
func GetCalendar ¶
func GetCalendar(start, end *string) ([]CalendarDay, error)
GetCalendar returns the market calendar, sliced by the start and end dates using the default Alpaca client.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is an Alpaca REST API client
func (*Client) CancelAllOrders ¶
CancelAllOrders submits a request to cancel an open order.
func (*Client) CancelOrder ¶
CancelOrder submits a request to cancel an open order.
func (*Client) CloseAllPositions ¶
CloseAllPositions liquidates all open positions at market price.
func (*Client) ClosePosition ¶
ClosePosition liquidates the position for the given symbol at market price.
func (*Client) GetAccount ¶
GetAccount returns the user's account information.
func (*Client) GetAccountActivities ¶
func (c *Client) GetAccountActivities(activityType *string, opts *AccountActivitiesRequest) ([]AccountActivity, error)
func (*Client) GetAccountConfigurations ¶
func (c *Client) GetAccountConfigurations() (*AccountConfigurations, error)
GetConfigs returns the current account configurations
func (*Client) GetAggregates ¶
func (c *Client) GetAggregates(symbol, timespan, from, to string) (*Aggregates, error)
GetAggregates returns the bars for the given symbol, timespan and date-range
func (*Client) GetCalendar ¶
func (c *Client) GetCalendar(start, end *string) ([]CalendarDay, error)
GetCalendar returns the market calendar, sliced by the start and end dates.
func (*Client) GetLastQuote ¶
func (c *Client) GetLastQuote(symbol string) (*LastQuoteResponse, error)
GetLastQuote returns the last quote for the given symbol
func (*Client) GetLastTrade ¶
func (c *Client) GetLastTrade(symbol string) (*LastTradeResponse, error)
GetLastTrade returns the last trade for the given symbol
func (*Client) GetPortfolioHistory ¶
func (*Client) GetPosition ¶
GetPosition returns the account's position for the provided symbol.
func (*Client) GetSymbolBars ¶
func (c *Client) GetSymbolBars(symbol string, opts ListBarParams) ([]Bar, error)
GetSymbolBars is a convenience method for getting the market data for one symbol
func (*Client) ListAssets ¶
ListAssets returns the list of assets, filtered by the input parameters.
func (*Client) ListBars ¶
ListBars returns a list of bar lists corresponding to the provided symbol list, and filtered by the provided parameters.
func (*Client) ListOrders ¶
func (c *Client) ListOrders(status *string, until *time.Time, limit *int, nested *bool) ([]Order, error)
ListOrders returns the list of orders for an account, filtered by the input parameters.
func (*Client) ListPositions ¶
ListPositions lists the account's open positions.
func (*Client) PlaceOrder ¶
func (c *Client) PlaceOrder(req PlaceOrderRequest) (*Order, error)
PlaceOrder submits an order request to buy or sell an asset.
func (*Client) ReplaceOrder ¶
func (c *Client) ReplaceOrder(orderID string, req ReplaceOrderRequest) (*Order, error)
ReplaceOrder submits a request to replace an order by id
func (*Client) UpdateAccountConfigurations ¶
func (c *Client) UpdateAccountConfigurations(newConfigs AccountConfigurationsRequest) (*AccountConfigurations, error)
EditConfigs patches the account configs
type ClientMsg ¶
type ClientMsg struct { Action string `json:"action" msgpack:"action"` Data interface{} `json:"data" msgpack:"data"` }
ClientMsg is the standard message sent by clients of the stream interface
type Clock ¶
type Fundamental ¶
type Fundamental struct { AssetID string `json:"asset_id"` Symbol string `json:"symbol"` FullName string `json:"full_name"` IndustryName string `json:"industry_name"` IndustryGroup string `json:"industry_group"` Sector string `json:"sector"` PERatio float32 `json:"pe_ratio"` PEGRatio float32 `json:"peg_ratio"` Beta float32 `json:"beta"` EPS float32 `json:"eps"` MarketCap int64 `json:"market_cap"` AvgVol int64 `json:"avg_vol"` DivRate float32 `json:"div_rate"` ROE float32 `json:"roe"` ROA float32 `json:"roa"` PS float32 `json:"ps"` PC float32 `json:"pc"` GrossMargin float32 `json:"gross_margin"` FiftyTwoWeekHigh decimal.Decimal `json:"fifty_two_week_high"` FiftyTwoWeekLow decimal.Decimal `json:"fifty_two_week_low"` ShortDescription string `json:"short_description"` LongDescription string `json:"long_description"` }
type LastQuote ¶
type LastQuoteResponse ¶
type LastQuoteResponse struct { Status string `json:"status"` Symbol string `json:"symbol"` Last LastQuote `json:"last"` }
func GetLastQuote ¶
func GetLastQuote(symbol string) (*LastQuoteResponse, error)
GetLastQuote returns the last quote for the given symbol
type LastTrade ¶
type LastTradeResponse ¶
type LastTradeResponse struct { Status string `json:"status"` Symbol string `json:"symbol"` Last LastTrade `json:"last"` }
func GetLastTrade ¶
func GetLastTrade(symbol string) (*LastTradeResponse, error)
GetLastTrade returns the last trade for the given symbol
type ListBarParams ¶
type Order ¶
type Order struct { ID string `json:"id"` ClientOrderID string `json:"client_order_id"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` SubmittedAt time.Time `json:"submitted_at"` FilledAt *time.Time `json:"filled_at"` ExpiredAt *time.Time `json:"expired_at"` CanceledAt *time.Time `json:"canceled_at"` FailedAt *time.Time `json:"failed_at"` ReplacedAt *time.Time `json:"replaced_at"` Replaces *string `json:"replaces"` AssetID string `json:"asset_id"` Symbol string `json:"symbol"` Exchange string `json:"exchange"` Class string `json:"asset_class"` Qty decimal.Decimal `json:"qty"` FilledQty decimal.Decimal `json:"filled_qty"` Type OrderType `json:"order_type"` Side Side `json:"side"` TimeInForce TimeInForce `json:"time_in_force"` LimitPrice *decimal.Decimal `json:"limit_price"` FilledAvgPrice *decimal.Decimal `json:"filled_avg_price"` StopPrice *decimal.Decimal `json:"stop_price"` TrailPrice *decimal.Decimal `json:"trail_price"` TrailPercent *decimal.Decimal `json:"trail_percent"` Hwm *decimal.Decimal `json:"hwm"` Status string `json:"status"` ExtendedHours bool `json:"extended_hours"` Legs *[]Order `json:"legs"` }
func GetOrder ¶
GetOrder returns a single order for the given `orderID` using the default Alpaca client.
func ListOrders ¶
ListOrders returns the list of orders for an account, filtered by the input parameters using the default Alpaca client.
func PlaceOrder ¶
func PlaceOrder(req PlaceOrderRequest) (*Order, error)
PlaceOrder submits an order request to buy or sell an asset with the default Alpaca client.
func ReplaceOrder ¶
func ReplaceOrder(orderID string, req ReplaceOrderRequest) (*Order, error)
ReplaceOrder changes an order by order id using the default Alpaca client.
type OrderAttributes ¶
type OrderClass ¶
type OrderClass string
const ( Bracket OrderClass = "bracket" Oto OrderClass = "oto" Oco OrderClass = "oco" Simple OrderClass = "simple" )
type PlaceOrderRequest ¶
type PlaceOrderRequest struct { AccountID string `json:"-"` AssetKey *string `json:"symbol"` Qty decimal.Decimal `json:"qty"` Side Side `json:"side"` Type OrderType `json:"type"` TimeInForce TimeInForce `json:"time_in_force"` LimitPrice *decimal.Decimal `json:"limit_price"` StopPrice *decimal.Decimal `json:"stop_price"` ClientOrderID string `json:"client_order_id"` OrderClass OrderClass `json:"order_class"` TakeProfit *TakeProfit `json:"take_profit"` StopLoss *StopLoss `json:"stop_loss"` TrailPrice *decimal.Decimal `json:"trail_price"` TrailPercent *decimal.Decimal `json:"trail_percent"` }
type PortfolioHistory ¶
type PortfolioHistory struct { BaseValue decimal.Decimal `json:"base_value"` Equity []decimal.Decimal `json:"equity"` ProfitLoss []decimal.Decimal `json:"profit_loss"` ProfitLossPct []decimal.Decimal `json:"profit_loss_pct"` Timeframe RangeFreq `json:"timeframe"` Timestamp []int64 `json:"timestamp"` }
func GetPortfolioHistory ¶
type Position ¶
type Position struct { AssetID string `json:"asset_id"` Symbol string `json:"symbol"` Exchange string `json:"exchange"` Class string `json:"asset_class"` AccountID string `json:"account_id"` EntryPrice decimal.Decimal `json:"avg_entry_price"` Qty decimal.Decimal `json:"qty"` Side string `json:"side"` MarketValue decimal.Decimal `json:"market_value"` CostBasis decimal.Decimal `json:"cost_basis"` UnrealizedPL decimal.Decimal `json:"unrealized_pl"` UnrealizedPLPC decimal.Decimal `json:"unrealized_plpc"` CurrentPrice decimal.Decimal `json:"current_price"` LastdayPrice decimal.Decimal `json:"lastday_price"` ChangeToday decimal.Decimal `json:"change_today"` }
func GetPosition ¶
GetPosition returns the account's position for the provided symbol using the default Alpaca client.
func ListPositions ¶
ListPositions lists the account's open positions using the default Alpaca client.
type ReplaceOrderRequest ¶
type ServerMsg ¶
type ServerMsg struct { Stream string `json:"stream" msgpack:"stream"` Data interface{} `json:"data"` }
ServerMsg is the standard message sent by the server to update clients of the stream interface
type Stream ¶
func GetDataStream ¶
func GetDataStream() *Stream
func (*Stream) Unsubscribe ¶
Unsubscribe the specified Polygon stream channel.
type StreamAgg ¶
type StreamAgg struct { Event string `json:"ev"` Symbol string `json:"T"` Open float32 `json:"o"` High float32 `json:"h"` Low float32 `json:"l"` Close float32 `json:"c"` Volume int32 `json:"v"` Start int64 `json:"s"` End int64 `json:"e"` OpenPrice float32 `json:"op"` AccumulatedVolume int32 `json:"av"` VWAP float32 `json:"vw"` }
type StreamQuote ¶
type StreamQuote struct { Event string `json:"ev"` Symbol string `json:"T"` BidPrice float32 `json:"p"` BidSize int32 `json:"s"` BidExchange int `json:"x"` AskPrice float32 `json:"P"` AskSize int32 `json:"S"` AskExchange int `json:"X"` Timestamp int64 `json:"t"` }
func (*StreamQuote) Time ¶
func (s *StreamQuote) Time() time.Time
type StreamTrade ¶
type StreamTrade struct { Event string `json:"ev"` Symbol string `json:"T"` TradeID string `json:"i"` Exchange int `json:"x"` Price float32 `json:"p"` Size int32 `json:"s"` Timestamp int64 `json:"t"` Conditions []int `json:"c"` TapeID int `json:"z"` }
func (*StreamTrade) Time ¶
func (s *StreamTrade) Time() time.Time
type TakeProfit ¶
type TimeInForce ¶
type TimeInForce string
const ( Day TimeInForce = "day" GTC TimeInForce = "gtc" OPG TimeInForce = "opg" IOC TimeInForce = "ioc" FOK TimeInForce = "fok" GTX TimeInForce = "gtx" GTD TimeInForce = "gtd" CLS TimeInForce = "cls" )
type TradeConfirmEmail ¶
type TradeConfirmEmail string
const ( None TradeConfirmEmail = "none" All TradeConfirmEmail = "all" )