Documentation ¶
Index ¶
- Constants
- Variables
- type ChartRequestSignature
- type ChartStoredCache
- type OptionChainGetFilter
- type OptionChainGetRequestSignature
- type OptionChainGetStoredCache
- type OptionChainSeries
- type OptionQuoteCache
- type OptionQuoteFilter
- type OptionQuoteItem
- type OptionQuoteRequestSignature
- type OptionSeries
- type OptionSeriesCache
- type OptionSeriesRequestSignature
- type QuoteField
- type QuoteItem
- type QuoteRequestSignature
- type QuoteStoredCache
- type SearchRequestSignature
- type SearchStoredCache
- type Session
- func (s *Session) Close() error
- func (s *Session) Gateway() (string, error)
- func (s *Session) Open() error
- func (s *Session) RequestChart(specs ChartRequestSignature) (*ChartStoredCache, error)
- func (s *Session) RequestMultipleCharts(specsSlice []ChartRequestSignature) ([]*ChartStoredCache, []ChartRequestSignature)
- func (s *Session) RequestOptionChainGet(spec OptionChainGetRequestSignature) (*[]OptionChainSeries, error)
- func (s *Session) RequestOptionQuote(spec OptionQuoteRequestSignature) (*OptionQuoteCache, error)
- func (s *Session) RequestOptionSeries(spec OptionSeriesRequestSignature) (*[]OptionSeries, error)
- func (s *Session) RequestQuote(specs QuoteRequestSignature) (*QuoteStoredCache, error)
- func (s *Session) RequestSearch(spec SearchRequestSignature) (*SearchStoredCache, error)
- func (s *Session) Reset() error
Constants ¶
const ( // ProbabilityITM field ProbabilityITM = QuoteField("PROBABILITY_ITM") // OpenInterest field OpenInterest = QuoteField("OPEN_INT") )
const ( // Mark field Mark = QuoteField("MARK") // MarkChange field MarkChange = QuoteField("MARK_CHANGE") // MarkPercentChange field MarkPercentChange = QuoteField("MARK_PERCENT_CHANGE") // NetChange field NetChange = QuoteField("NET_CHANGE") // NetPercentChange field NetPercentChange = QuoteField("NET_CHANGE_PERCENT") // Bid field Bid = QuoteField("BID") // BidExchange field BidExchange = QuoteField("BID_EXCHANGE") // Ask field Ask = QuoteField("ASK") // AskExchange field AskExchange = QuoteField("ASK_EXCHANGE") // BidSize field BidSize = QuoteField("BID_SIZE") // AskSize field AskSize = QuoteField("ASK_SIZE") // Volume field Volume = QuoteField("VOLUME") // Open field Open = QuoteField("OPEN") // High52 field High52 = QuoteField("HIGH52") // Low52 field Low52 = QuoteField("LOW52") // High field High = QuoteField("HIGH") // Low field Low = QuoteField("LOW") // VWAP field VWAP = QuoteField("VWAP") // VolIdx field VolIdx = QuoteField("VOLATILITY_INDEX") // ImplVol field ImplVol = QuoteField("IMPLIED_VOLATILITY") // MMMove field MMMove = QuoteField("MARKET_MAKER_MOVE") // PercentIV field PercentIV = QuoteField("PERCENT_IV") // HistoricalVol30 field HistoricalVol30 = QuoteField("HISTORICAL_VOLATILITY_30_DAYS") // MktCap field MktCap = QuoteField("MARKET_CAP") // Beta field Beta = QuoteField("BETA") // PE field PE = QuoteField("PE") // InitMargin field InitMargin = QuoteField("INITIAL_MARGIN") // Last field Last = QuoteField("LAST") // LastSize field LastSize = QuoteField("LAST_SIZE") // LastExchange field LastExchange = QuoteField("LAST_EXCHANGE") // Rho field Rho = QuoteField("RHO") // BorrowStatus field BorrowStatus = QuoteField("BORROW_STATUS") // Delta field Delta = QuoteField("DELTA") // Gamma field Gamma = QuoteField("GAMMA") // Theta field Theta = QuoteField("THETA") // Vega field Vega = QuoteField("VEGA") // DivAmount field DivAmount = QuoteField("DIV_AMOUNT") // EPS field EPS = QuoteField("EPS") // ExdDivDate field ExdDivDate = QuoteField("EXD_DIV_DATE") // Yield field Yield = QuoteField("YIELD") // FrontVol field FrontVol = QuoteField("FRONT_VOLATILITY") // BackVol field BackVol = QuoteField("BACK_VOLATILITY") // VolDiff field VolDiff = QuoteField("VOLATILITY_DIFFERENCE") // Close field Close = QuoteField("CLOSE") )
Variables ¶
var ( // ErrWsAlreadyOpen is returned if the connection being opened is already opened ErrWsAlreadyOpen = errors.New("error: connection already open") // ErrGatewayUnsuccessful is returned if the gateway helper could not retrieve the gateway URL ErrGatewayUnsuccessful = errors.New("error: gateway could not be requested") // ErrProtocolUnestablished is an error for the initial socket handshake // based on whether or not the proper session is returned ErrProtocolUnestablished = errors.New("error: could not establish protocol") // ErrAuthenticationUnsuccessful is returned if there is an authentication // error in the socket handshake and login command ErrAuthenticationUnsuccessful = errors.New("error: authentication unsuccessful") // ErrNotReceivedInTime is returned if the data being loaded could not be // found in the time enforcement ErrNotReceivedInTime = errors.New("error: took too long to respond, try again") )
Functions ¶
This section is empty.
Types ¶
type ChartRequestSignature ¶
type ChartRequestSignature struct { // ticker for the content of a chart request Ticker string // range is the timeframe for chart data to be received, see specs.txt Range string // width is the width of the candles to be received, see specs.txt Width string // internal use only UniqueID string }
ChartRequestSignature is the parameter for a chart request
type ChartStoredCache ¶
type ChartStoredCache struct { Symbol string `json:"symbol"` Candles struct { Timestamps []int64 `json:"timestamps"` Opens []float64 `json:"opens"` Highs []float64 `json:"highs"` Lows []float64 `json:"lows"` Closes []float64 `json:"closes"` Volumes []float64 `json:"volumes"` } `json:"candles"` RequestID string `json:"requestId"` RequestVer int `json:"requestVer"` }
ChartStoredCache is an object containing what is returned from a chart request
type OptionChainGetFilter ¶
type OptionChainGetFilter struct { StrikeQuantity int64 `json:"strikeQuantity,omitempty"` SeriesNames []string `json:"seriesNames,omitempty"` }
OptionChainGetFilter is the sub-parameter for filtering an option chain
type OptionChainGetRequestSignature ¶
type OptionChainGetRequestSignature struct { // ticker for option chain get request Underlying string // filter for specific option chain to get Filter OptionChainGetFilter // internal use only UniqueID string }
OptionChainGetRequestSignature is the parameter for an option chain request
type OptionChainGetStoredCache ¶
type OptionChainGetStoredCache struct { OptionSeries []OptionChainSeries `json:"optionSeries"` Service string `json:"service"` RequestID string `json:"requestId"` RequestVer int `json:"requestVer"` }
OptionChainGetStoredCache is an object containing what is returned from an option chain request
type OptionChainSeries ¶
type OptionChainSeries struct { Expiration string `json:"expiration"` ExpirationString string `json:"expirationString"` FractionalType string `json:"fractionalType"` OptionPairs []optionChainPairs `json:"optionPairs"` Spc float64 `json:"spc"` Name string `json:"name"` Contract string `json:"contract"` ContractDisplay string `json:"contractDisplay"` DaysToExpiration int `json:"daysToExpiration"` SettlementType string `json:"settlementType"` }
OptionChainSeries are individual series from the option chain get response
type OptionQuoteCache ¶
type OptionQuoteCache struct { Items []OptionQuoteItem `json:"items"` Exchanges []string `json:"exchanges"` Service string `json:"service"` RequestID string `json:"requestId"` RequestVer int `json:"requestVer"` }
OptionQuoteCache is an object containing what is returned from an option quote request
type OptionQuoteFilter ¶
type OptionQuoteFilter struct { SeriesNames []string `json:"seriesNames"` MaxStrike float64 `json:"maxStrike"` MinStrike float64 `json:"minStrike"` }
OptionQuoteFilter is the sub-parameter for filtering an option quote
type OptionQuoteItem ¶
type OptionQuoteItem struct { Symbol string `json:"symbol"` Values struct { ASK float64 `json:"ASK"` BID float64 `json:"BID"` DELTA float64 `json:"DELTA"` OPENINT float64 `json:"OPEN_INT"` PROBABILITYITM float64 `json:"PROBABILITY_ITM"` VOLUME int `json:"VOLUME"` } `json:"values"` }
OptionQuoteItem is a single option quote
type OptionQuoteRequestSignature ¶
type OptionQuoteRequestSignature struct { // ticker for option chain get request Underlying string Exchange string Fields []QuoteField // filter for specific option chain to get Filter OptionQuoteFilter // internal use only UniqueID string }
OptionQuoteRequestSignature is the parameter for an option quote request
type OptionSeries ¶
type OptionSeries struct { Underlying string `json:"underlying"` Name string `json:"name"` Spc float64 `json:"spc"` Multiplier float64 `json:"multiplier"` ExpirationStyle string `json:"expirationStyle"` IsEuropean bool `json:"isEuropean"` Expiration time.Time `json:"expiration"` LastTradeDate time.Time `json:"lastTradeDate"` SettlementType string `json:"settlementType"` }
OptionSeries is an object containing the data for an option series
type OptionSeriesCache ¶
type OptionSeriesCache struct { Series []OptionSeries `json:"series"` Service string `json:"service"` RequestID string `json:"requestId"` RequestVer int `json:"requestVer"` }
OptionSeriesCache is an object containing what is returned from an option series request
type OptionSeriesRequestSignature ¶
type OptionSeriesRequestSignature struct { // ticker for option series request Ticker string // internal use only UniqueID string }
OptionSeriesRequestSignature is the parameter for a chart request
type QuoteField ¶
type QuoteField string
QuoteField is a custom type for quote fields (backed by string)
type QuoteItem ¶
type QuoteItem struct { Symbol string `json:"symbol"` Values quoteValues `json:"values"` }
QuoteItem is a single item in a QuoteResponse
type QuoteRequestSignature ¶
type QuoteRequestSignature struct { // ticker for the content of a quote request Ticker string // how frequently to get a quote (TODO: useless for flux) RefreshRate int Fields []QuoteField }
QuoteRequestSignature is the parameter for a quote request
type QuoteStoredCache ¶
type QuoteStoredCache struct { Items []QuoteItem `json:"items"` Service string `json:"service"` RequestID string `json:"requestId"` Ver int `json:"ver"` }
QuoteStoredCache is the response from a quote request
type SearchRequestSignature ¶
type SearchRequestSignature struct { // pattern is the search query for the request Pattern string // limit is the number of results to pull up, typically 3-5 is normal Limit int // internal use only UniqueID string }
SearchRequestSignature is the parameter for a search request
type SearchStoredCache ¶
type SearchStoredCache struct { Instruments []struct { Composite bool `json:"composite"` Cusip string `json:"cusip,omitempty"` DaysToExpiration int `json:"daysToExpiration"` Description string `json:"description"` DisplaySymbol string `json:"displaySymbol"` ExtoEnabled bool `json:"extoEnabled"` Flags int `json:"flags"` FractionalType string `json:"fractionalType"` FutureOption bool `json:"futureOption"` HasOptions bool `json:"hasOptions"` ID int `json:"id"` Industry int `json:"industry"` InstrumentType string `json:"instrumentType"` IsFutureProduct bool `json:"isFutureProduct"` Multiplier int `json:"multiplier"` RootDisplaySymbol string `json:"rootDisplaySymbol"` RootSymbol string `json:"rootSymbol"` SourceType string `json:"sourceType"` Spc int `json:"spc"` SpreadDaysToExpiration string `json:"spreadDaysToExpiration"` SpreadsSupported bool `json:"spreadsSupported"` Symbol string `json:"symbol"` Tradeable bool `json:"tradeable"` } `json:"instruments"` RequestID string `json:"requestId"` RequestVer int `json:"requestVer"` Service string `json:"service"` }
SearchStoredCache is the response for search request
type Session ¶
type Session struct { TdaSession tda.Session ConfigURL string CurrentState storedCache TransactionChannel chan storedCache NotificationChannel chan bool ChartRequestVers map[string]int QuoteRequestVers map[string]int SearchRequestVers map[string]int OptionSeriesRequestVers map[string]int OptionChainGetRequestVers map[string]int OptionQuoteRequestVers map[string]int Mu sync.Mutex QuoteMu sync.Mutex MutexLock bool HandlerWorking bool DebugFlag bool Established bool // contains filtered or unexported fields }
Session is the session object for the flux driver and can be created and returned using flux.New()
func New ¶
New takes the input of a tda.Session (see github.com/adityaxdiwakar/tda-go) and returns a flux Session which is used for all essentially library uses
func (*Session) Gateway ¶
Gateway returns the gateway URL as a string for the live trading connection to be made
func (*Session) Open ¶
Open is a method that opens the websocket connection with the TDAmeritrade server and returns an error if it is present
func (*Session) RequestChart ¶
func (s *Session) RequestChart(specs ChartRequestSignature) (*ChartStoredCache, error)
RequestChart takes a ChartRequestSignature as an input and responds with a ChartStoredCache object, it utilizes the cached if it can (with updated diffs), or else it makes a new request and waits for it - if a ticker does not load in time, ErrNotReceviedInTime is sent as an error
func (*Session) RequestMultipleCharts ¶
func (s *Session) RequestMultipleCharts(specsSlice []ChartRequestSignature) ([]*ChartStoredCache, []ChartRequestSignature)
RequestMultipleCharts takes a slice of ChartRequestSignature as an input and responds with a a slice of chart objects, it utilizes the cached if it can (with updated diffs), or else it makes a new request and waits for it - if a ticker does not load in time, ErrNotReceviedInTime is sent as an error
func (*Session) RequestOptionChainGet ¶
func (s *Session) RequestOptionChainGet(spec OptionChainGetRequestSignature) (*[]OptionChainSeries, error)
RequestOptionChainGet requests to get an option chain with the input being the OptionChainGetRequestSignature
func (*Session) RequestOptionQuote ¶
func (s *Session) RequestOptionQuote(spec OptionQuoteRequestSignature) (*OptionQuoteCache, error)
RequestOptionQuote requests to get an option quote with the spec OptionQuoteRequestSignature
func (*Session) RequestOptionSeries ¶
func (s *Session) RequestOptionSeries(spec OptionSeriesRequestSignature) (*[]OptionSeries, error)
RequestOptionSeries returns options series data for a specific series based on the spec provided
func (*Session) RequestQuote ¶
func (s *Session) RequestQuote(specs QuoteRequestSignature) (*QuoteStoredCache, error)
RequestQuote returns the quote for the relevant spec with the fields requested
func (*Session) RequestSearch ¶
func (s *Session) RequestSearch(spec SearchRequestSignature) (*SearchStoredCache, error)
RequestSearch takes a SearchRequestSignature as an input and responds with a search query, it does not utilize a cache (although it maintains one) so the query made will be up to date with the servers. If the query is not loaded within a certain time, ErrNotReceivedInTime is sent as an error