Documentation
¶
Index ¶
- Variables
- type Account
- type AccountInstrument
- type AccountNumbers
- type Agent
- func (agent *Agent) GetAccount(id string, fields ...string) (Account, error)
- func (agent *Agent) GetAccountNumbers() ([]AccountNumbers, error)
- func (agent *Agent) GetAccountOrders(accountNumber, fromEnteredTime, toEnteredTime string) ([]FullOrder, error)
- func (agent *Agent) GetAccounts(fields ...string) ([]Account, error)
- func (agent *Agent) GetAllOrders(fromEnteredTime, toEnteredTime string) ([]FullOrder, error)
- func (agent *Agent) GetChains(symbol string) (Chain, error)
- func (agent *Agent) GetMovers(index, direction, change string) ([]Screener, error)
- func (agent *Agent) GetOrder(accountNumber, orderID string) (FullOrder, error)
- func (agent *Agent) GetPriceHistory(...) ([]Candle, error)
- func (agent *Agent) GetQuote(symbol string) (Quote, error)
- func (agent *Agent) GetTransaction(accountNumber, transactionId string) (Transaction, error)
- func (agent *Agent) Handler(req *http.Request) (*http.Response, error)
- func (agent *Agent) Refresh()
- func (agent *Agent) SearchInstrumentFundamental(symbol string) (FundamentalInstrument, error)
- func (agent *Agent) SearchInstrumentSimple(symbols string) (SimpleInstrument, error)
- func (agent *Agent) Single(symbol, contractType, strikeRange, strikeCount, toDate string) (Chain, error)
- func (agent *Agent) SubmitSingleLegOrder(hashValue string, order *SingleLegOrder) error
- type AggregatedBalance
- type Candle
- type Chain
- type CurrentBalance
- type FullExecutionLeg
- type FullOrder
- type FullOrderActivity
- type FullOrderLeg
- type FundamentalInstrument
- type InitialBalance
- type InstrumentRef
- type MultiLegOrder
- type MultiLegSimpleOrderComposition
- type OptionContract
- type OptionDeliverables
- type Position
- type ProjectedBalance
- type Quote
- type Screener
- type SecuritiesAccount
- type SimpleInstrument
- type SimpleOrderInstrument
- type SimpleOrderLeg
- type SingleLegOrder
- type SingleLegOrderComposition
- func Duration(duration string) SingleLegOrderComposition
- func Instruction(instruction string) SingleLegOrderComposition
- func Instrument(instrument SimpleOrderInstrument) SingleLegOrderComposition
- func OrderType(t string) SingleLegOrderComposition
- func Quantity(quantity float32) SingleLegOrderComposition
- func Session(session string) SingleLegOrderComposition
- func Strategy(strategy string) SingleLegOrderComposition
- type Token
- type Transaction
- type TransferItems
- type Underlying
- type User
Constants ¶
This section is empty.
Variables ¶
var ( ErrNeedReAuthorization = errors.New("need to reinitalize or account not available to caller") ErrValidation = errors.New("validation error - non fatal from Schwab") ErrForbidden = errors.New("url is forbidden to client") ErrNotFound = errors.New("url not found") ErrUnexpectedServer = errors.New("server is freaking out") ErrTemporaryServer = errors.New("server is taking a tylenol, brb") )
Thanks to @jazzboME for their work on the errors portion of this package!
var ( APPKEY string SECRET string CBURL string PATH string )
var LegTemplate = `
{
"instruction": "%s",
"quantity": %f,
"instrument": {
"symbol": "%s",
"assetType": "%s"
}
},
`
var LegTemplateLast = `
{
"instruction": "%s",
"quantity": %f,
"instrument": {
"symbol": "%s",
"assetType": "%s"
}
},
`
var OrderTemplate = `` /* 131-byte string literal not displayed */
Functions ¶
This section is empty.
Types ¶
type Account ¶
type Account struct { SecuritiesAccount SecuritiesAccount AggregatedBalance AggregatedBalance }
type AccountInstrument ¶
type AccountNumbers ¶
type Agent ¶
type Agent struct { Client *o.AuthorizedClient Tokens Token }
func Reinitiate ¶ added in v0.9.2
func Reinitiate() *Agent
func (*Agent) GetAccount ¶
Get account by encrypted account id
func (*Agent) GetAccountNumbers ¶
func (agent *Agent) GetAccountNumbers() ([]AccountNumbers, error)
Get encrypted account numbers for trading
func (*Agent) GetAccountOrders ¶
func (agent *Agent) GetAccountOrders(accountNumber, fromEnteredTime, toEnteredTime string) ([]FullOrder, error)
fromEnteredTime, toEnteredTime format: yyyy-MM-ddTHH:mm:ss.SSSZ
func (*Agent) GetAccounts ¶
Get all accounts associated with the user logged in
func (*Agent) GetAllOrders ¶
WIP: fromEnteredTime, toEnteredTime format: yyyy-MM-ddTHH:mm:ss.SSSZ
func (*Agent) GetMovers ¶
GetMovers returns information on the desired index's movers per your desired direction and change type(percent or value), It takes three params: index = "$DJI", "$SPX.X", or "$COMPX" direction = "up" or "down" change = "percent" or "value"
func (*Agent) GetPriceHistory ¶
func (agent *Agent) GetPriceHistory(symbol, periodType, period, frequencyType, frequency, startDate, endDate string) ([]Candle, error)
PriceHistory returns a series of candles with price volume & datetime info per candlestick. It takes seven parameters: ticker = "AAPL", etc.; periodType = "day", "month", "year", "ytd" - default is "day"; period = the number of periods to show; frequencyType = the type of frequency with which each candle is formed; valid fTypes by pType; "day": "minute" / "month": "daily", "weekly" / "year": "daily", "weekly", "monthly" / "ytd": "daily", "weekly"; frequency = the number of the frequencyType included in each candle; valid freqs by fType "minute": 1,5,10,15,30 / "daily": 1 / "weekly": 1 / "monthly": 1; startDate = endDate =
func (*Agent) GetQuote ¶
Quote returns a Quote; containing a real time quote of the desired stock's performance with a number of different indicators (including volatility, volume, price, fundamentals & more). It takes one parameter: ticker = "AAPL", etc.
func (*Agent) GetTransaction ¶
func (agent *Agent) GetTransaction(accountNumber, transactionId string) (Transaction, error)
Get a transaction for a specific account id
func (*Agent) Handler ¶
Handler is the general purpose request function for the td-ameritrade api, all functions will be routed through this handler function, which does all of the API calling work It performs a GET request after adding the apikey found in the config.env file in the same directory as the program calling the function, then returns the body of the GET request's return. It takes one parameter: req = a request of type *http.Request
func (*Agent) Refresh ¶ added in v0.9.2
func (agent *Agent) Refresh()
Use refresh token to generate a new bearer token for authentication
func (*Agent) SearchInstrumentFundamental ¶
func (agent *Agent) SearchInstrumentFundamental(symbol string) (FundamentalInstrument, error)
SearchInstrumentFundamental returns instrument's fundamentals. It takes one param:
func (*Agent) SearchInstrumentSimple ¶
func (agent *Agent) SearchInstrumentSimple(symbols string) (SimpleInstrument, error)
SearchInstrumentSimple returns instrument's simples. It takes one param:
func (*Agent) Single ¶
func (agent *Agent) Single(symbol, contractType, strikeRange, strikeCount, toDate string) (Chain, error)
Single returns a []CONTRACT; containing a SINGLE option chain of your desired strike, type, etc., it takes four parameters: ticker = "AAPL", etc. contractType = "CALL", "PUT", "ALL"; strikeRange = returns option chains for a given range: ITM = in da money NTM = near da money OTM = out da money SAK = strikes above market SBK = strikes below market SNK = strikes near market ALL* = default, all strikes; strikeCount = The number of strikes to return above and below the at-the-money price; toDate = Only return expirations before this date. Valid ISO-8601 formats are: yyyy-MM-dd and yyyy-MM-dd'T'HH:mm:ssz. Lets examine a sample call of Single: Single("AAPL","CALL","ALL","5","2022-07-01"). This returns 5 AAPL CALL contracts both above and below the at the money price, with no preference as to the status of the contract ("ALL"), expiring before 2022-07-01
func (*Agent) SubmitSingleLegOrder ¶
func (agent *Agent) SubmitSingleLegOrder(hashValue string, order *SingleLegOrder) error
Submit a single-leg order for the specified encrypted account ID
type AggregatedBalance ¶
type Chain ¶ added in v0.9.2
type Chain struct { Symbol string Status string Underlying Underlying Strategy string Interval float64 IsDelayed bool IsIndex bool DaysToExpiration float64 InterestRate float64 UnderlyingPrice float64 Volatility float64 CallExpDateMap map[string]map[string][]OptionContract PutExpDateMap map[string]map[string][]OptionContract }
type CurrentBalance ¶
type CurrentBalance struct { AccruedInterest float64 CashBalance float64 CashReceipts float64 LongOptionMarketValue float64 LiquidationValue float64 LongMarketValue float64 MoneyMarketFund float64 Savings float64 ShortMarketValue float64 PendingDeposits float64 MutualFundValues float64 BondValue float64 ShortOptionMarketValue float64 AvailableFunds float64 AvailableFundsNonMarginableTrade float64 BuyingPower float64 BuyingPowerNonMarginableTrade float64 DayTradingBuyingPower float64 Equity float64 EquityPercentage float64 LongMarginValue float64 MaintenanceCall float64 MaintenanceRequirement float64 MarginBalance float64 RegTCall float64 ShortBalance float64 ShortMarginValue float64 SMA float64 }
type FullExecutionLeg ¶
type FullOrder ¶
type FullOrder struct { Session string Duration string OrderType string CancelTime string ComplexOrderStrategyType string Quantity int FilledQuantity int RemainingQuantity int RequestedDestination string DestinationLinkName string ReleaseTime string StopPrice int StopPriceLinkBasis string StopPriceLinkType string StopPriceOffset int StopType string Price string TaxLotMethod string OrderLegCollection []FullOrderLeg ActivationPrice int SpecialInstruction string OrderStrategyType string OrderId int Cancelable bool Editable bool Status string EnteredTime string CloseTime string Tag string AccountNumber int OrderActivityCollection []FullOrderActivity ReplacingOrderCollection string ChildOrderStrategies string StatusDescription string }
type FullOrderActivity ¶
type FullOrderActivity struct { ActivityType string ExecutionType string Quantity int OrderRemainingQuantity int ExecutionLegs []FullExecutionLeg }
type FullOrderLeg ¶
type FundamentalInstrument ¶
type FundamentalInstrument struct { Symbol string Cusip string Description string Exchange string AssetType string Hi52 float64 `json:"high52"` Lo52 float64 `json:"low52"` DividendYield float64 DividendAmount float64 DividendDate string PE float64 `json:"peRatio"` PEG float64 `json:"pegRatio"` PB float64 `json:"pbRatio"` PR float64 `json:"prRatio"` PCF float64 `json:"pcfRatio"` GrossMarginTTM float64 NetMarginTTM float64 OperatingMarginTTM float64 GrossMarginMRQ float64 NetProfitMarginMRQ float64 OperatingMarginMRQ float64 ROE float64 `json:"returnOnEquity"` ROA float64 `json:"returnOnAssets"` ROI float64 `json:"returnOnInvestment"` QuickRatio float64 CurrentRatio float64 InterestCoverage float64 TotalDebtToCapital float64 LtDebtToEquity float64 TotalDebtToEquity float64 EpsTTM float64 EpsChangePercentTTM float64 EpsChangeYear float64 EpsChange float64 RevChangeYear float64 RevChangeTTM float64 RevChangeIn float64 MarketCapFloat float64 MarketCap float64 ShortIntToFloat float64 ShortIntDayToCover float64 DividendGrowthRate3Year float64 DividendPayAmount float64 DividendPayDate string Beta float64 Vol1DayAvg float64 Vol10DayAvg float64 Vol3MonthAvg float64 Avg1DayVolume int Avg10DaysVolume int Avg3MonthVolume int DeclarationDate string DividendFreq int Eps float64 DtnVolume int NextDividendPayDate string NextDividendDate string FundLeverageFactor float64 }
Change this to reflect ordering of schwab return
type InitialBalance ¶
type InitialBalance struct { AccruedInterest float64 AvailableFundsNonMarginableTrade float64 BondValue float64 BuyingPower float64 CashBalance float64 CashAvailableForTrading float64 CashReceipts float64 DayTradingBuyingPower float64 DayTradingBuyingPowerCall float64 DayTradingEquityCall float64 Equity float64 EquityPercentage float64 LiquidationValue float64 LongMarginValue float64 LongOptionMarketValue float64 LongStockValue float64 MaintenanceCall float64 MaintenanceRequirement float64 Margin float64 MarginEquity float64 MoneyMarketFund float64 MutualFundValue float64 RegTCall float64 ShortMarginValue float64 ShortOptionMarketValue float64 ShortStockValue float64 TotalCash float64 IsInCall bool UnsettledCash float64 PendingDeposits float64 MarginBalance float64 ShortBalance float64 AccountValue float64 }
type InstrumentRef ¶
type MultiLegOrder ¶
type MultiLegOrder struct { OrderType string // LIMIT, MARKET Session string // NORMAL Duration string // DAY Strategy string // SINGLE OrderLegCollection []SimpleOrderLeg }
type MultiLegSimpleOrderComposition ¶
type MultiLegSimpleOrderComposition func(order *MultiLegOrder)
type OptionContract ¶ added in v0.9.2
type OptionContract struct { PutCall string Symbol string Description string ExchangeName string Bid float64 Ask float64 Last float64 Mark float64 BidSize int64 AskSize int64 LastSize int64 HighPrice float64 LowPrice float64 OpenPrice float64 ClosePrice float64 TotalVolume int64 QuoteTimeInLong int64 TradeTimeInLong int64 NetChange float64 Volatility float64 Delta float64 Gamma float64 Theta float64 Vega float64 RHO float64 OpenInterest float64 TimeValue float64 InTheMoney bool TheoreticalOptionValue float64 TheoreticalVolatility float64 Mini bool NonStandard bool OptionDeliverablesList []OptionDeliverables StrikePrice float64 ExpirationDate string DaysToExpiration int64 ExpirationType string LastTradingDay int64 Multiplier float64 SettlementType string DeliverableNote string PercentChange float64 MarkChange float64 MarkPercentChange float64 PennyPilot bool IntrinsicValue float64 ExtrinsicValue float64 OptionRoot string ExerciseType string Hi52 float64 `json:"high52Week"` Lo52 float64 `json:"low52Week"` }
type OptionDeliverables ¶ added in v0.9.2
type Position ¶
type Position struct { ShortQuantity float64 AveragePrice float64 CurrentDayProfitLoss float64 CurrentDayProfitLossPercentage float64 LongQuantity float64 SettledLongQuantity float64 SettledShortQuantity float64 AgedQuantity float64 Instrument AccountInstrument MarketValue float64 MaintenanceRequirement float64 AverageLongPrice float64 AverageShortPrice float64 TaxLotAverageLongPrice float64 TaxLotAverageShortPrice float64 LongOpenProfitLoss float64 ShortOpenProfitLoss float64 PreviousSessionLongQuantity float64 PreviousSessionShortQuantity float64 CurrentDayCost float64 }
type ProjectedBalance ¶
type ProjectedBalance struct { AvailableFunds float64 AvailableFundsNonMarginableTrade float64 BuyingPower float64 BuyingPowerNonMarginableTrade float64 DayTradingBuyingPower float64 DayTradingBuyingPowerCall float64 Equity float64 EquityPercentage float64 LongMarginValue float64 MaintenanceCall float64 MaintenanceRequirement float64 MarginBalance float64 RegTCall float64 ShortBalance float64 ShortMarginValue float64 SMA float64 IsInCall bool StockBuyingPower float64 OptionBuyingPower float64 }
type Quote ¶
type Quote struct { AssetMainType string AssetSubType string QuoteType string RealTime bool SSID int `json:"ssid"` Symbol string Hi52 float64 `json:"52WeekHigh"` Lo52 float64 `json:"52WeekLow"` AskMICId string AskPrice float64 AskSize int AskTime int BidMICId string BidPrice float64 BidSize int BidTime int Close float64 `json:"closePrice"` HiPrice float64 `json:"highPrice"` LastMICId string LastPrice float64 LastSize int LoPrice float64 `json:"lowPrice"` Mark float64 `json:"mark"` MarkChange float64 MarkPercentChange float64 NetChange float64 NetPercentChange float64 Open float64 PostMarketChange float64 PostMarketPercentChange float64 QuoteTime int SecurityStatus string TotalVolume int TradeTime int }
type SecuritiesAccount ¶ added in v0.9.3
type SecuritiesAccount struct { Type string AccountNumber string RoundTrips int IsDayTrader bool IsClosingOnlyRestricted bool PFCBFlag bool Positions []Position InitialBalances InitialBalance CurrentBalances CurrentBalance ProjectedBalances ProjectedBalance }
type SimpleInstrument ¶
type SimpleOrderInstrument ¶
type SimpleOrderLeg ¶
type SimpleOrderLeg struct { Instruction string Quantity float32 Instrument SimpleOrderInstrument }
type SingleLegOrder ¶
type SingleLegOrder struct { OrderType string `default:"MARKET"` Session string `default:"NORMAL"` Duration string `default:"DAY"` Strategy string `default:"SINGLE"` Instruction string Quantity float32 Instrument SimpleOrderInstrument }
func CreateSingleLegOrder ¶
func CreateSingleLegOrder(opts ...SingleLegOrderComposition) *SingleLegOrder
Create a new Market order
type SingleLegOrderComposition ¶
type SingleLegOrderComposition func(order *SingleLegOrder)
func Duration ¶
func Duration(duration string) SingleLegOrderComposition
Set SingleLegOrder.Duration
func Instruction ¶
func Instruction(instruction string) SingleLegOrderComposition
Set SingleLegOrder.Instruction
func Instrument ¶
func Instrument(instrument SimpleOrderInstrument) SingleLegOrderComposition
Set SingleLegOrder.Instrument
func Quantity ¶
func Quantity(quantity float32) SingleLegOrderComposition
Set SingleLegOrder.Quantity
func Strategy ¶
func Strategy(strategy string) SingleLegOrderComposition
Set SingleLegOrder.Strategy
type Transaction ¶
type TransferItems ¶
type Underlying ¶ added in v0.9.2
type Underlying struct { Ask float64 AskSize float64 Bid float64 BidSize float64 Change float64 Close float64 Delayed bool Description string ExchangeName string Hi52 float64 `json:"fiftyTwoWeekHigh"fiftyTwoWeekHigh"` Lo52 float64 `json:"fiftyTwoWeekHigh"fiftyTwoWeekLow"` HiPrice float64 `json:"highPrice"` LoPrice float64 `json:"lowPrice"` Mark float64 MarkPercentChange float64 OpenPrice float64 PercentChange float64 QuoteTime int64 Symbol string TotalVolume int64 TradeTime int64 }