Documentation ¶
Index ¶
- type Client
- func (client *Client) AccessTokens(ctx context.Context) (ok bool, err error)
- func (client *Client) GetCandles(ctx context.Context, board string, symbol string, timeFrame TimeFrame, ...) ([]Candle, error)
- func (client *Client) GetHttp(ctx context.Context, httpMethod string, url string, body interface{}) ([]byte, error)
- func (client *Client) GetPortfolio(ctx context.Context, opts ...Option) (Portfolio, error)
- func (client *Client) GetSecurity(ctx context.Context, board string, seccode string) (Securities, error)
- func (client *Client) RequestHttp(ctx context.Context, httpMethod string, url string, body interface{}) (*http.Response, error)
- func (c *Client) Version() string
- type ClientOption
- type HttpDoer
- type IFinamClient
- type Money
- type Option
- type Options
- type Portfolio
- type Position
- type ResponseError
- type Securities
- type Security
- type Сurrency
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct { UserAgent string // если проставлен, пропишем User agent в http запросе Logger *slog.Logger // contains filtered or unexported fields }
func NewClient ¶
func NewClient(token, clientId string, opts ...ClientOption) (*Client, error)
создание клиента
func (*Client) AccessTokens ¶
https://trade-api.finam.ru/public/api/v1/access-tokens/check проверка токена
func (*Client) GetCandles ¶
func (*Client) GetHttp ¶
func (client *Client) GetHttp(ctx context.Context, httpMethod string, url string, body interface{}) ([]byte, error)
выполним запрос (вернем []byte)
func (*Client) GetPortfolio ¶
func (*Client) GetSecurity ¶
type ClientOption ¶
type ClientOption func(c *Client)
func WithClientId ¶
func WithClientId(id string) ClientOption
func WithGttpClient ¶
func WithGttpClient(client HttpDoer) ClientOption
установим свой HttpClient по умолчанию стоит http.DefaultClient
func WithLogger ¶
func WithLogger(logger *slog.Logger) ClientOption
WithLogger задает логгер По умолчанию логирование включено на ошибки
type IFinamClient ¶
type IFinamClient interface { // проверка подлинности токена AccessTokens(ctx context.Context) (ok bool, err error) // Посмотреть портфель GetPortfolio(ctx context.Context, opts ...Option) (Portfolio, error) // список инструментов (Максимальное Количество запросов в минуту = 1 ) GetSecurity(ctx context.Context, board string, seccode string) (Securities, error) }
какой api реализован
type Money ¶
type Money struct { Market string `json:"market"` // рынок. Тип Market; Currency string `json:"currency"` // код валюты; Balance float64 `json:"balance"` // текущая позиция. }
денежные позиции
type Option ¶
type Option func(o *Options)
func WithIncludeCurrencies ¶
func WithIncludeMaxBuySell ¶
func WithIncludeMoney ¶
type Options ¶
type Options struct { IncludeCurrencies bool // запросить информацию по валютам портфеля; IncludeMoney bool // запросить информацию по денежным позициям портфеля; IncludePositions bool // запросить информацию по позициям портфеля; IncludeMaxBuySell bool // запросить информацию о максимальном доступном объеме на покупку/продажу. }
func NewOptions ¶
func NewOptions() *Options
type Portfolio ¶
type Portfolio struct { ClientId string `json:"clientId"` // торговый код клиента; Equity float64 `json:"equity"` // текущая оценка портфеля; Balance float64 `json:"balance"` // входящая оценка стоимости портфеля; Positions []Position `json:"positions"` // позиции портфеля Currencies []Сurrency `json:"currencies"` // валюта портфеля Money []Money `json:"money"` // денежные позиции }
структура Портфеля
type Position ¶
type Position struct { SecurityCode string `json:"securityCode"` // код инструмента Market string `json:"market"` // рынок инструмента. Тип Market; Balance float64 `json:"balance"` // текущая позиция; CurrentPrice float64 `json:"currentPrice"` // текущая цена в валюте инструмента; Equity float64 `json:"equity"` // текущая оценка инструмента; AveragePrice float64 `json:"averagePrice"` // средняя цена; Currency string `json:"currency"` // код валюты риска; AccumulatedProfit float64 `json:"accumulatedProfit"` // прибыль/убыток по входящим; TodayProfit float64 `json:"todayProfit"` // прибыль/убыток по сделкам; UnrealizedProfit float64 `json:"unrealizedProfit"` // нереализованная прибыль/убыток; Profit float64 `json:"profit"` // прибыль/убыток; MaxBuy float64 `json:"maxBuy"` // максимально возможное количество лотов на покупку/продажу (вычисляется, если указать флаг includeMaxBuySell в true, иначе значение будет равно 0); MaxSell float64 `json:"maxSell"` PriceCurrency string `json:"priceCurrency"` // priceCurrency AverageRate float64 `json:"averageRate"` // код валюты балансовой цены; AveragePriceCurrency string `json:"averagePriceCurrency"` // кросс-курс валюты балансовой цены к валюте риска. }
позиции портфеля
type ResponseError ¶
type ResponseError struct { Code string `json:"code"` Message string `json:"message"` Data string `json:"data"` }
структура ощибки
type Security ¶
type Security struct { Code string `json:"code"` // код инструмента; Board string `json:"board"` // основной режим торгов инструмента; Market string `json:"market"` // рынок инструмента. Тип Market; ShortName string `json:"shortName"` // название инструмента; Ticker string `json:"ticker"` // тикер инструмента на биржевой площадке листинга; Decimals int `json:"decimals"` // количество знаков в дробной части цены; LotSize int `json:"lotSize"` // размер лота; MinStep float32 `json:"minStep"` // минимальный шаг цены; Currency string `json:"currency"` // код валюты номинала цены; Properties int `json:"properties"` // параметры инструмента. Значение представлено в виде битовой маски: TimeZoneName string `json:"timeZoneName"` // имя таймзоны; BpCost float64 `json:"bpCost"` // стоимость пункта цены одного инструмента (не лота), без учета НКД; AccruedInterest float64 `json:"accruedInterest"` // текущий НКД; PriceSign string `json:"priceSign"` // допустимая цена инструмента. Принимает следующие значения: LotDivider int `json:"lotDivider"` // коэффициент дробления ценной бумаги в одном стандартном лоте. }
Инструменты
type Сurrency ¶
type Сurrency struct { Name string `json:"name"` // код валюты; Equity float64 `json:"equity"` // оценка позиции; Balance float64 `json:"balance"` // текущая позиция; CrossRate float64 `json:"crossRate"` // курс валюты; UnrealizedProfit float64 `json:"unrealizedProfit"` // нереализованная прибыль/убыток. }
валюта портфеля
Source Files ¶
Click to show internal directories.
Click to hide internal directories.