Documentation ¶
Overview ¶
Package gotasty provides an idiomatic go interface to the tastytrade Open API. It implements session management, account information, and order execution.
Index ¶
- Constants
- Variables
- type Account
- type ActionCondition
- type ActionType
- type Balance
- type BuyingPowerChange
- type ComparatorType
- type Condition
- type ConditionPriceComponents
- type ConditionStatus
- type Effect
- type ErrorMsg
- type FeeInfo
- type FillStatus
- type IndicatorType
- type InstrumentTypeChoice
- type Leg
- type LegStatus
- type Lot
- type Order
- type OrderResponse
- type OrderStatus
- type OrderTypeChoice
- type OrdersFilterOpts
- type Position
- type PositionFilterOpts
- type RuleStatus
- type Rules
- type Session
- func (session *Session) Accounts() ([]*Account, error)
- func (session *Session) Balance(accountNumber string) (*Balance, error)
- func (session *Session) BalanceSnapshot(accountNumber string, timeOfDay TimeOfDay, snapshotDate time.Time) (*Balance, error)
- func (session *Session) Delete() error
- func (session *Session) DeleteOrder(accountNumber string, orderID string) (*OrderStatus, error)
- func (session *Session) Marshal() ([]byte, error)
- func (session *Session) Orders(accountNumber string, filterOpts ...OrdersFilterOpts) ([]*OrderStatus, error)
- func (session *Session) Positions(accountNumber string, filterOpts ...PositionFilterOpts) ([]*Position, error)
- func (session *Session) SubmitOrder(accountNumber string, order *Order) (*OrderResponse, error)
- func (session *Session) Transactions(accountNumber string, filterOpts ...TransactionFilterOpts) ([]*Transaction, error)
- type SessionOpts
- type SortDirection
- type TimeInForceChoice
- type TimeOfDay
- type Transaction
- type TransactionFilterOpts
- type User
Constants ¶
const (
APIBaseURL = "https://api.tastyworks.com"
)
const UNK = "UNK"
Variables ¶
Functions ¶
This section is empty.
Types ¶
type Account ¶
type Account struct { AccountNumber string `json:"account-number"` // account number, e.g. 5WT0001 ExternalID string `json:"external-id"` // external identifier, e.g. A0000196557 OpenedAt time.Time `json:"opened-at"` // time the account was opened Nickname string `json:"nickname"` // customer assigned nickname for account AccountType string `json:"account-type-name"` // type of account DayTraderStatus bool `json:"day-trader-status"` // if account is flagged as a pattern day trader IsFirmError bool `json:"is-firm-error"` IsFirmProprietary bool `json:"is-firm-proprietary"` IsTestDrive bool `json:"is-test-drive"` MarginOrCash string `json:"margin-or-cash"` IsForeign bool `json:"is-foreign"` FundingDate time.Time `json:"funding-date"` AuthorityLevel string `json:"authority-level"` }
Account stores information about the accounts available to the current customer
type ActionCondition ¶
type ActionCondition int
const ( UndefinedActionCondition ActionCondition = iota Route Cancel )
func ActionConditionFromString ¶
func ActionConditionFromString(input string) ActionCondition
func (ActionCondition) String ¶
func (actionCondition ActionCondition) String() string
type ActionType ¶
type ActionType int
const ( UndefinedAction ActionType = iota SellToOpen SellToClose BuyToOpen BuyToClose Sell Buy )
func ActionTypeFromString ¶
func ActionTypeFromString(input string) ActionType
func (ActionType) MarshalJSON ¶ added in v0.1.1
func (actionType ActionType) MarshalJSON() ([]byte, error)
func (ActionType) String ¶
func (actionType ActionType) String() string
type Balance ¶
type Balance struct { AccountNumber string `json:"account-number"` CashBalance float64 `json:"cash-balance"` LongEquityValue float64 `json:"long-equity-value"` ShortEquityValue float64 `json:"short-equity-value"` LongDerivativeValue float64 `json:"long-derivative-value"` ShortDerivativeValue float64 `json:"short-derivative-value"` LongFuturesValue float64 `json:"long-futures-value"` ShortFuturesValue float64 `json:"short-futures-value"` LongFuturesDerivativeValue float64 `json:"long-futures-derivative-value"` ShortFuturesDerivativeValue float64 `json:"short-futures-derivative-value"` LongMargineableValue float64 `json:"long-margineable-value"` ShortMargineableValue float64 `json:"short-margineable-value"` MarginEquity float64 `json:"margin-equity"` EquityBuyingPower float64 `json:"equity-buying-power"` DerivativeBuyingPower float64 `json:"derivative-buying-power"` DayTradingBuyingPower float64 `json:"day-trading-buying-power"` FuturesMarginRequirement float64 `json:"futures-margin-requirement"` AvailableTradingFunds float64 `json:"available-trading-funds"` MaintenanceRequirement float64 `json:"maintenance-requirement"` MaintenanceCallValue float64 `json:"maintenance-call-value"` RegTCallValue float64 `json:"reg-t-call-value"` DayTradingCallValue float64 `json:"day-trading-call-value"` DayEquityCallValue float64 `json:"day-equity-call-value"` NetLiquidatingValue float64 `json:"net-liquidating-value"` CashAvailableToWithdraw float64 `json:"cash-available-to-withdraw"` DayTradeExcess float64 `json:"day-trade-excess"` PendingCash float64 `json:"pending-cash"` PendingCashEffect string `json:"pending-cash-effect"` LongCryptocurrencyValue float64 `json:"long-cryptocurrency-value"` ShortCryptocurrencyValue float64 `json:"short-cryptocurrency-value"` CryptocurrencyMarginRequirement float64 `json:"cryptocurrency-margin-requirement"` UnsettledCryptocurrencyFiatAmount float64 `json:"unsettled-cryptocurrency-fiat-amount"` UnsettledCryptocurrencyFiatEffect string `json:"unsettled-cryptocurrency-fiat-effect"` ClosedLoopAvailableBalance float64 `json:"closed-loop-available-balance"` EquityOfferingMarginRequirement float64 `json:"equity-offering-margin-requirement"` LongBondValue float64 `json:"long-bond-value"` BondMarginRequirement float64 `json:"bond-margin-requirement"` UsedDerivativeBuyingPower float64 `json:"used-derivative-buying-power"` SnapshotDate time.Time `json:"snapshot-date"` RegTMarginRequirement float64 `json:"reg-t-margin-requirement"` FuturesOvernightMarginRequirement float64 `json:"futures-overnight-margin-requirement"` FuturesIntradayMarginRequirement float64 `json:"futures-intraday-margin-requirement"` MaintenanceExcess float64 `json:"maintenance-excess"` PendingMarginInterest float64 `json:"pending-margin-interest"` EffectiveCryptocurrencyBuyingPower float64 `json:"effective-cryptocurrency-buying-power"` UpdatedAt time.Time `json:"updated-at"` }
Balance details for a specific account
type BuyingPowerChange ¶
type BuyingPowerChange struct { ChangeInMarginRequirement float64 `json:"change-in-margin-requirement"` ChangeInMarginRequirementEffect Effect `json:"change-in-margin-requirement-effect"` ChangeInBuyingPower float64 `json:"change-in-buying-power"` ChangeInBuyingPowerEffect Effect `json:"change-in-buying-power-effect"` CurrentBuyingPower float64 `json:"current-buying-power"` CurrentBuyingPowerEffect Effect `json:"current-buying-power-effect"` NewBuyingPower float64 `json:"new-buying-power"` NewBuyingPowerEffect Effect `json:"new-buying-power-effect"` IsolatedOrderMarginRequirement float64 `json:"isolated-order-margin-requirement"` IsolatedOrderMarginRequirementEffect Effect `json:"isolated-order-margin-requirement-effect"` IsSpread bool `json:"is-spread"` Impact float64 `json:"impact"` EffectOnCash Effect `json:"effect"` }
type ComparatorType ¶
type ComparatorType int
const ( UndefinedComparator ComparatorType = iota GTE LTE )
func ComparatorFromString ¶
func ComparatorFromString(input string) ComparatorType
func (ComparatorType) String ¶
func (comparatorType ComparatorType) String() string
type Condition ¶
type Condition struct { // The action in which the trigger is enacted, i.e. `route` and `cancel` Action ActionCondition `json:"action"` // The symbol to apply the condition to. I.e. Stock ticker symbol `AAPL` or the TW future symbol `/ESZ9` Symbol string `json:"symbol,omitempty"` // The instrument's type in relation to the condition. i.e. `Equity` or `Future` InstrumentType InstrumentTypeChoice `json:"instrument-type,omitempty"` // The indicator for the trigger Indicator IndicatorType `json:"indicator,omitempty"` // How to compare against the threshold. One of `gte` or `lte` Comparator ComparatorType `json:"comparator,omitempty"` // The price at which the condition triggers Threshold float64 `json:"threshold"` }
type ConditionPriceComponents ¶
type ConditionPriceComponents struct { Symbol string `json:"symbol"` InstrumentType InstrumentTypeChoice `json:"instrument-type"` Quantity string `json:"quantity"` QuantityDirection string `json:"quantity-direction"` }
type ConditionStatus ¶
type ConditionStatus struct { ID string `json:"id"` // The action in which the trigger is enacted, i.e. `route` and `cancel` Action ActionCondition `json:"action"` // Time the condition was triggered TriggeredAt time.Time `json:"triggered-at"` TriggeredValue float64 `json:"triggered-value"` // The symbol to apply the condition to. I.e. Stock ticker symbol `AAPL` or the TW future symbol `/ESZ9` Symbol string `json:"symbol,omitempty"` // The instrument's type in relation to the condition. i.e. `Equity` or `Future` InstrumentType InstrumentTypeChoice `json:"instrument-type,omitempty"` // The indicator for the trigger Indicator IndicatorType `json:"indicator,omitempty"` // How to compare against the threshold. One of `gte` or `lte` Comparator ComparatorType `json:"comparator,omitempty"` // The price at which the condition triggers Threshold float64 `json:"threshold"` IsThresholdBasedOnNotional bool `json:"is-threshold-based-on-notional"` PriceComponents []*ConditionPriceComponents `json:"price-components"` }
type FeeInfo ¶
type FeeInfo struct { RegulatoryFees float64 `json:"regulatory-fees"` RegulatoryFeesEffect Effect `json:"regulatory-fees-effect"` ClearingFees float64 `json:"clearing-fees"` ClearingFeesEffect Effect `json:"clearing-fees-effect"` Commission float64 `json:"commission"` CommissionEffect Effect `json:"commission-effect"` ProprietaryIndexOptionFees float64 `json:"proprietary-index-option-fees"` ProprietaryIndexOptionFeesEffect Effect `json:"proprietary-index-option-fees-effect"` TotalFees float64 `json:"total-fees"` TotalFeesEffect Effect `json:"total-fees-effect"` }
type FillStatus ¶
type FillStatus struct { ExternalGroupFillID string `json:"ext-group-fill-id"` ExternalExecutionID string `json:"ext-exec-id"` FillID string `json:"fill-id"` Quantity string `json:"quantity"` FillPrice float64 `json:"fill-price"` FilledAt time.Time `json:"filled-at"` DestinationVenue string `json:"destination-venue"` }
type IndicatorType ¶
type IndicatorType int
const ( UndefinedIndicatorType IndicatorType = iota Last NAT )
func IndicatorFromString ¶
func IndicatorFromString(input string) IndicatorType
func (IndicatorType) String ¶
func (indicatorType IndicatorType) String() string
type InstrumentTypeChoice ¶
type InstrumentTypeChoice int
const ( UndefinedInstrument InstrumentTypeChoice = iota Cryptocurrency Equity EquityOffering EquityOption Future FutureOption )
func InstrumentTypeFromString ¶
func InstrumentTypeFromString(input string) InstrumentTypeChoice
func (InstrumentTypeChoice) MarshalJSON ¶ added in v0.1.1
func (instrumentType InstrumentTypeChoice) MarshalJSON() ([]byte, error)
func (InstrumentTypeChoice) String ¶
func (instrumentType InstrumentTypeChoice) String() string
type Leg ¶
type Leg struct { // The type of Instrument. i.e. `Cryptocurrency`, `Equity`, `Equity Offering`, `Equity Option`, `Future` or `Future Option` InstrumentType InstrumentTypeChoice `json:"instrument-type"` // The stock ticker symbol `AAPL, occ option symbol `AAPL 191004P00275000`, TW future symbol `/ESZ9`, or TW future option symbol `./ESZ9EW4U9 190927P2975` Symbol string `json:"symbol"` // The size of the contract. Required for all orders but notional market. Quantity int64 `json:"quantity"` // The directional action of the leg. i.e. Sell to Open, Sell to Close, Buy to Open, Buy to Close, Sell or Buy. Note: Buy and Sell are only applicable to Futures orders. Action ActionType `json:"action"` }
type LegStatus ¶
type LegStatus struct { // The type of Instrument. i.e. `Cryptocurrency`, `Equity`, `Equity Offering`, `Equity Option`, `Future` or `Future Option` InstrumentType InstrumentTypeChoice `json:"instrument-type"` // The stock ticker symbol `AAPL, occ option symbol `AAPL 191004P00275000`, TW future symbol `/ESZ9`, or TW future option symbol `./ESZ9EW4U9 190927P2975` Symbol string `json:"symbol"` // The size of the contract. Required for all orders but notional market. Quantity string `json:"quantity"` RemainingQuantity string `json:"remaining-quantity"` // The directional action of the leg. i.e. Sell to Open, Sell to Close, Buy to Open, Buy to Close, Sell or Buy. Note: Buy and Sell are only applicable to Futures orders. Action ActionType `json:"action"` Fills []*FillStatus `json:"fills"` }
type Order ¶
type Order struct { // The length in time before the order expires. i.e. `Day`, `GTC`, `GTD`, `Ext`, `GTC Ext` or `IOC` TimeInForce TimeInForceChoice `json:"time-in-force"` // The date in which a GTD order will expire GTCDate *time.Time `json:"gtc-date,omitempty"` // The type of order in regards to the price. i.e. `Limit`, `Market`, `Marketable Limit`, `Stop`, `Stop Limit`, `Notional Market` OrderType OrderTypeChoice `json:"order-type"` // The price trigger at which a stop or stop-limit order becomes valid StopTrigger float64 `json:"stop-trigger,omitempty"` // The price of the Order. Reuired for limit and stop-limit orders Price float64 `json:"price,omitempty"` // If pagy or receive payment for placing the order. i.e. `Credit` or `Debit` PriceEffect Effect `json:"price-effect,omitempty"` // The notional value of the Order, required for ntional market orders Value float64 `json:"value,omitempty"` // If pay or receive payment for placing the notional market order. i.e. Credit or Debit ValueEffect Effect `json:"value-effect,omitempty"` // The source the order is coming from Source string `json:"source,omitempty"` // Account partition key PartitionKey string `json:"parition-key,omitempty"` Legs []*Leg `json:"legs"` OrderRules *Rules `json:"rules,omitempty"` }
type OrderResponse ¶
type OrderResponse struct { Order *OrderStatus `json:"order"` EffectOnBuyingPower *BuyingPowerChange `json:"buying-power-effect"` FeeCalculation *FeeInfo `json:"fee-calculation"` Errors []*ErrorMsg `json:"errors"` Warnings []*ErrorMsg `json:"warnings"` }
OrderResponse contains the values returned from tastytrade after placing an order
type OrderStatus ¶
type OrderStatus struct { Size string `json:"size"` TimeInForce TimeInForceChoice `json:"time-in-force"` TerminalAt time.Time `json:"terminal-at"` Editable bool `json:"editable"` ContingentStatus string `json:"contingent-status"` Legs []*LegStatus `json:"legs"` GTCDate time.Time `json:"gtc-date"` UpdatedAt string `json:"updated-at"` InFlightAt time.Time `json:"in-flight-at"` ReplacesOrderID string `json:"replaces-order-id"` UnderlyingSymbol string `json:"underlying-symbol"` Edited bool `json:"edited"` Price float64 `json:"price"` CancelUsername string `json:"cancel-username"` AccountNumber string `json:"account-number"` ConfirmationStatus string `json:"confirmation-status"` CancelUserID string `json:"cancel-user-id"` Cancellable bool `json:"cancellable"` ValueEffect Effect `json:"value-effect"` StopTrigger string `json:"stop-trigger"` CancelledAt time.Time `json:"cancelled-at"` UnderlyingInstrumentType InstrumentTypeChoice `json:"underlying-instrument-type"` Value float64 `json:"value"` RejectReason string `json:"reject-reason"` Status string `json:"status"` LiveAt time.Time `json:"live-at"` PreflightID string `json:"preflight-id"` PriceEffect Effect `json:"price-effect"` Username string `json:"username"` ReplacingOrderID string `json:"replacing-order-id"` ComplexOrderID string `json:"complex-order-id"` OrderType OrderTypeChoice `json:"order-type"` ID string `json:"id"` OrderRule []*RuleStatus `json:"order-rule"` UserID string `json:"user-id"` ComplexOrderTag string `json:"complex-order-tag"` ReceivedAt time.Time `json:"received-at"` }
type OrderTypeChoice ¶
type OrderTypeChoice int
const ( UndefinedOrderType OrderTypeChoice = iota Limit Market MarketableLimit Stop StopLimit NotionalMarket )
func OrderTypeFromString ¶
func OrderTypeFromString(input string) OrderTypeChoice
func (OrderTypeChoice) MarshalJSON ¶ added in v0.1.1
func (orderType OrderTypeChoice) MarshalJSON() ([]byte, error)
func (OrderTypeChoice) String ¶
func (orderType OrderTypeChoice) String() string
type OrdersFilterOpts ¶
type OrdersFilterOpts struct { StartDate time.Time EndDate time.Time UnderlyingSymbol string UnderlyingInstrumentType InstrumentTypeChoice FuturesSymbol string NetPositions bool IncludeClosedPositions bool IncludeMarks bool Status []string Sort *SortDirection // Pagination settings PerPage int PageOffset int }
type Position ¶
type Position struct { AccountNumber string `json:"account-number"` Symbol string `json:"symbol"` InstrumentType string `json:"instrument-type"` UnderlyingSymbol string `json:"underlying-symbol"` Quantity float64 `json:"quantity"` QuantityDirection string `json:"quantity-direction"` ClosePrice float64 `json:"close-price"` AverageOpenPrice float64 `json:"average-open-price"` AverageYearlyMarketClosePrice float64 `json:"average-yearly-market-close-price"` AverageDailyMarketClosePrice float64 `json:"average-daily-market-close-price"` Multiplier float64 `json:"multiplier"` CostEffect string `json:"cost-effect"` IsSuppressed bool `json:"is-suppressed"` IsFrozen bool `json:"is-frozen"` RestrictedQuantity float64 `json:"restricted-quantity"` RealizedDayGain float64 `json:"realized-day-gain"` RealizedDayGainEffect string `json:"realized-day-gain-effect"` RealizedDayGainDate time.Time `json:"realized-day-gain-date"` RealizedToday float64 `json:"realized-today"` RealizedTodayEffect string `json:"realized-today-effect"` RealizedTodayDate time.Time `json:"realized-today-date"` ExpiresAt time.Time `json:"expires-at"` CreatedAt time.Time `json:"created-at"` UpdatedAt time.Time `json:"updated-at"` }
Position stores details about the positions held in an account
A position with a quantity of 0 is considered closed. These are purged overnight.
Equity option positions also include an expires-at timestamp.
For P/L calculations, you should rely on the live quote data as much as possible to ensure up-to-date calculations (see Streaming Market Data). In profit/loss calculations use price from the DXLink Trade market event, or bidPrice & askPrice from the DXLink Quote market event.
type PositionFilterOpts ¶
type RuleStatus ¶
type RuleStatus struct { // Earliest time an order should route at RouteAfter time.Time `json:"route-after,omitempty"` RoutedAt time.Time `json:"routed-at"` // Latest time an order should be canceled at CancelAt time.Time `json:"cancel-at,omitempty"` CancelledAt time.Time `json:"cancelled-at"` Conditions []*ConditionStatus `json:"conditions,omitempty"` }
type Session ¶
type Session struct { AuthenticatedOn time.Time // time the session was first authenticated ExpiresOn time.Time // time when the session token will expire RememberMeExpiresOn time.Time // time when the remember-me token will expire Name string Nickname string Email string ExternalID string Username string BaseURL string // Base URL of the api, changes based on production vs sandbox environment AccountStreamerURL string // Base URL of websocket for account streaming data Token *atomic.Value // Session token - valid for 24 hours // Remember token - can be exchanged for a new session token. Each // remember token can be used exactly once and expire after 28 days RememberToken *atomic.Value Debug bool // print details of each response and request RefreshLocker *sync.Mutex }
Session stores user credentials and enables users to make authenticated requests of the tastytrade Open API. Sessions are safe for concurrent use in multiple goroutines.
func NewSession ¶
func NewSession(login, password string, opts ...SessionOpts) (*Session, error)
NewSession obtains a session token and optionally a remember-me token from the tastytrade Open API. If you want sessions to be refreshed after they expire, set the `SessionOpts.RememberMe` option.
func NewSessionFromBytes ¶
NewSessionFromBytes constructs a session object from the serialized bytes
func (*Session) BalanceSnapshot ¶
func (session *Session) BalanceSnapshot(accountNumber string, timeOfDay TimeOfDay, snapshotDate time.Time) (*Balance, error)
BalanceSnapshot returns a snapshot of the account balance at the specified time
func (*Session) Delete ¶
Delete invalidates the session token and remember token so they may no-longer be used
func (*Session) DeleteOrder ¶
func (session *Session) DeleteOrder(accountNumber string, orderID string) (*OrderStatus, error)
DeleteOrder attempts to delete orderID
func (*Session) Orders ¶
func (session *Session) Orders(accountNumber string, filterOpts ...OrdersFilterOpts) ([]*OrderStatus, error)
Orders returns a paginated list of the accounts's orders
func (*Session) Positions ¶
func (session *Session) Positions(accountNumber string, filterOpts ...PositionFilterOpts) ([]*Position, error)
Positions returns a list of the accounts positions
func (*Session) SubmitOrder ¶
func (session *Session) SubmitOrder(accountNumber string, order *Order) (*OrderResponse, error)
SubmitOrder sends the specified order to tastytrade for execution
func (*Session) Transactions ¶
func (session *Session) Transactions(accountNumber string, filterOpts ...TransactionFilterOpts) ([]*Transaction, error)
Transactions returns a list of the accounts transactions
type SessionOpts ¶
type SessionOpts struct { // request a remember-me token which enables the API to refresh session // tokens for up-to 28 days RememberMe bool // use the tastytrade Open API sandbox environment for testing Sandbox bool // enable debug mode which prints the status of each request Debug bool }
SessionOpts provide additional settings when creating a new tastytrade Open API session
type SortDirection ¶
type SortDirection int
const ( Desc SortDirection = iota Asc )
func (SortDirection) String ¶
func (sortDirection SortDirection) String() string
type TimeInForceChoice ¶
type TimeInForceChoice int
const ( UndefinedTimeInForce TimeInForceChoice = iota // Day orders live until either the order fills or the market closes. // If a day order does not get filled by the time the market closes, // it transitions to expired. Day // Good 'til Canceled orders never expire. They will work until they // are either filled or the customer cancels them. GTC // Good 'til Date orders expire on a given date. If you submit a GTD order, // you must also include a gtc-date in the JSON (Yes, calling it gtd-date would // have made more sense - we apologize). GTD Ext GTCExt IOC )
func TimeInForceFromString ¶ added in v0.1.1
func TimeInForceFromString(input string) TimeInForceChoice
func (TimeInForceChoice) MarshalJSON ¶ added in v0.1.1
func (timeInForce TimeInForceChoice) MarshalJSON() ([]byte, error)
func (TimeInForceChoice) String ¶
func (timeInForce TimeInForceChoice) String() string
type Transaction ¶
type Transaction struct { ID int64 `json:"id"` AccountNumber string `json:"account-number"` ExecutedAt time.Time `json:"executed-at"` TransactionDate time.Time `json:"transaction-date"` TransactionType string `json:"transaction-type"` TransactionSubType string `json:"transaction-sub-type"` Description string `json:"description"` UnderlyingSymbol string `json:"underlying-symbol"` InstrumentType InstrumentTypeChoice `json:"instrument-type"` Symbol string `json:"symbol"` Action ActionType `json:"action"` Quantity float64 `json:"quantity"` Price float64 `json:"price"` Value float64 `json:"value"` ValueEffect Effect `json:"value-effect"` RegulatoryFees float64 `json:"regulatory-fees"` RegulatoryFeesEffect Effect `json:"regulatory-fees-effect"` ClearingFees float64 `json:"clearing-fees"` ClearingFeesEffect Effect `json:"clearing-fees-effect"` OtherCharge float64 `json:"other-charge"` OtherChargeEffect Effect `json:"other-charge-effect"` OtherChargeDescription string `json:"other-charge-description"` NetValue float64 `json:"net-value"` NetValueEffect Effect `json:"net-value-effect"` Commission float64 `json:"commission"` CommissionEffect Effect `json:"commission-effect"` ProprietaryIndexOptionFees float64 `json:"proprietary-index-option-fees"` ProprietaryIndexOptionFeesEffect Effect `json:"proprietary-index-option-fees-effect"` IsEstimatedFee bool `json:"is-estimated-fee"` OrderID int64 `json:"order-id"` Lots []*Lot `json:"lots"` LegCount int64 `json:"leg-count"` DestinationVenue string `json:"destination-venue"` AgencyPrice float64 `json:"agency-price"` PrincipalPrice float64 `json:"principal-price"` ExternalExchangeOrderNumber string `json:"ext-exchange-order-number"` ExternalGlobalOrderNumber int64 `json:"ext-global-order-number"` ExternalGroupID string `json:"ext-group-id"` ExternalGroupFillID string `json:"ext-group-fill-id"` ExternalExecutionID string `json:"ext-exec-id"` ExecutionID string `json:"exec-id"` Exchange string `json:"exchange"` ReversesID int64 `json:"reverses-id"` ExchangeAffiliationID string `json:"exchange-affiliation-identifier"` CostBasisReconciliationDate time.Time `json:"cost-basis-reconciliation-date"` }
type TransactionFilterOpts ¶
type TransactionFilterOpts struct { StartDate time.Time EndDate time.Time Symbol string InstrumentType InstrumentTypeChoice UnderlyingSymbol string FuturesSymbol string Action ActionType PartitionKey string TransactionTypes []string TransactionSubTypes []string Status []string Sort *SortDirection // Pagination settings PerPage int PageOffset int }