Documentation
¶
Index ¶
- Constants
- Variables
- func DecimalToFloat64(d *decimal.Decimal) float64
- func DecimalToFloat64E(d *decimal.Decimal) (float64, error)
- func DecimalToInt(d *decimal.Decimal) int
- func DecimalToIntE(d *decimal.Decimal) (int, error)
- func Float64ToDecimal(f float64) *decimal.Decimal
- func Float64ToMoney(value float64, currency string) *money.Money
- func IntToDecimal(i int) *decimal.Decimal
- func IsWithinInterval(t time.Time, iv *interval.Interval) bool
- func MoneyToFloat64(m *money.Money) float64
- func NewAssetsRequest() *assets_service.AssetsRequest
- func NewBarsRequest(symbol string, tf marketdata_service.BarsRequest_TimeFrame, ...) *marketdata_service.BarsRequest
- func NewCancelOrderRequest(accountId, orderId string) *orders_service.CancelOrderRequest
- func NewExchangesRequest() *assets_service.ExchangesRequest
- func NewGetAccountRequest(accountId string) *accounts_service.GetAccountRequest
- func NewGetOrderRequest(accountId, orderId string) *orders_service.GetOrderRequest
- func NewInterval(start, end time.Time) *interval.Interval
- func NewLatestTradesRequest(symbol string) *marketdata_service.LatestTradesRequest
- func NewOptionsChainRequest(symbol string) *assets_service.OptionsChainRequest
- func NewOrderBookRequest(symbol string) *marketdata_service.OrderBookRequest
- func NewOrderBuy(accountId, symbol string, quantity int) *orders_service.Order
- func NewOrderBuyLimit(accountId, symbol string, quantity int, price float64) *orders_service.Order
- func NewOrderBuyStopLimit(accountId, symbol string, quantity int, price, stopPrice float64) *orders_service.Order
- func NewOrderSell(accountId, symbol string, quantity int) *orders_service.Order
- func NewOrderSellLimit(accountId, symbol string, quantity int, price float64) *orders_service.Order
- func NewOrderSellStopLimit(accountId, symbol string, quantity int, price, stopPrice float64) *orders_service.Order
- func NewOrdersRequest(accountId string) *orders_service.OrdersRequest
- func NewQuoteRequest(symbol string) *marketdata_service.QuoteRequest
- func NewScheduleRequest(symbol string) *assets_service.ScheduleRequest
- func NewSubscribeLatestTradesRequest(symbol string) *marketdata_service.SubscribeLatestTradesRequest
- func NewSubscribeOrderBookRequest(symbol string) *marketdata_service.SubscribeOrderBookRequest
- func NewSubscribeQuoteRequest(symbols []string) *marketdata_service.SubscribeQuoteRequest
- func NewTradesRequest(accountId string, limit int32, start, end time.Time) *accounts_service.TradesRequest
- func NewTransactionsRequest(accountId string, limit int32, start, end time.Time) *accounts_service.TransactionsRequest
- func SecurityToMap(sec []Security) map[string]Security
- func SetLogDebug(debug bool)
- func SetLogger(logger *slog.Logger)
- func ToSecurityMap(assets []*assets_service.Asset) map[string]Security
- type Channel
- type Client
- func (c *Client) Close() error
- func (c *Client) GetJWT(ctx context.Context) (string, error)
- func (c *Client) GetSecurity(symbol string) (Security, bool)
- func (c *Client) GetTokenDetails(ctx context.Context) (*auth_service.TokenDetailsResponse, error)
- func (c *Client) LoadSecurities(ctx context.Context) error
- func (c *Client) NewStream() *Stream
- func (c *Client) UpdateJWT(ctx context.Context) error
- func (c *Client) WithAuthToken(ctx context.Context) (context.Context, error)
- type Quote
- type QuoteFunc
- type QuoteStore
- type RawQuoteFunc
- type Security
- type SecurityStory
- type Stream
- func (s *Stream) Close()
- func (s *Stream) Connect(ctx context.Context) error
- func (s *Stream) GetErrorChan() chan error
- func (s *Stream) Reconnect(ch Channel)
- func (s *Stream) SetAllTradesHandler(handler TradesFunc)
- func (s *Stream) SetQuoteHandler(handler QuoteFunc)
- func (s *Stream) SetRawOrderBookHandler(handler StreamOrderBookFunc)
- func (s *Stream) SetRawQuoteHandler(handler RawQuoteFunc)
- func (s *Stream) Subscribe(channel Channel, symbol string)
- type StreamOrderBookFunc
- type Subscription
- type TradesFunc
Constants ¶
const ( QuoteChannel = Channel("quote") // Подписка на информацию о котировках BookChannel = Channel("book") // Подписка на биржевой стакан AllTradesChannel = Channel("all_trades") // подписка на все сделки )
Variables ¶
var TzMoscow = initMoscow()
Functions ¶
func DecimalToFloat64 ¶
DecimalToFloat64 конвертируем google.Decimal в float64 БЕЗ обработки ошибки
func DecimalToFloat64E ¶
DecimalToFloat64E конвертируем google.Decimal в float64 с обработкой ошибки
func DecimalToInt ¶
func Float64ToDecimal ¶
Float64ToDecimal конвертируем float64 в google.Decimal
func IntToDecimal ¶
IntToDecimal конвертируем int в google.Decimal
func IsWithinInterval ¶
Проверка: входит ли t в интервал [start, end] TODO в параметры добавить зону
func MoneyToFloat64 ¶
MoneyToFloat64 конвертируем google.money в float64
func NewAssetsRequest ¶
func NewAssetsRequest() *assets_service.AssetsRequest
func NewBarsRequest ¶
func NewBarsRequest(symbol string, tf marketdata_service.BarsRequest_TimeFrame, start, end time.Time) *marketdata_service.BarsRequest
NewBarsRequest
func NewCancelOrderRequest ¶
func NewCancelOrderRequest(accountId, orderId string) *orders_service.CancelOrderRequest
NewCancelOrderReques
func NewExchangesRequest ¶
func NewExchangesRequest() *assets_service.ExchangesRequest
func NewGetAccountRequest ¶
func NewGetAccountRequest(accountId string) *accounts_service.GetAccountRequest
NewGetAccountRequest
func NewGetOrderRequest ¶
func NewGetOrderRequest(accountId, orderId string) *orders_service.GetOrderRequest
NewGetOrderRequest
func NewInterval ¶
NewInterval создадим google.interval start time.Time = StartTime end time.Time = EndTime
func NewLatestTradesRequest ¶
func NewLatestTradesRequest(symbol string) *marketdata_service.LatestTradesRequest
NewLatestTradesRequest
func NewOptionsChainRequest ¶
func NewOptionsChainRequest(symbol string) *assets_service.OptionsChainRequest
func NewOrderBookRequest ¶
func NewOrderBookRequest(symbol string) *marketdata_service.OrderBookRequest
NewOrderBookRequest
func NewOrderBuy ¶
func NewOrderBuy(accountId, symbol string, quantity int) *orders_service.Order
NewOrderBuy сформируем ордер на покупку по рынку accountId string Идентификатор аккаунта symbol string Символ инструмента quantity Количество в шт.
func NewOrderBuyLimit ¶
func NewOrderBuyLimit(accountId, symbol string, quantity int, price float64) *orders_service.Order
NewOrderBuyLimut сформируем ордер на покупку по лимитной цене accountId string Идентификатор аккаунта symbol string Символ инструмента quantity Количество в шт. price float64 по какой цене заявка
func NewOrderBuyStopLimit ¶
func NewOrderBuyStopLimit(accountId, symbol string, quantity int, price, stopPrice float64) *orders_service.Order
NewOrderBuyStopLimit сформируем ордер на покупку по stop лимитной цене accountId string Идентификатор аккаунта symbol string Символ инструмента quantity Количество в шт. price float64 по какой цене заявка stopPrice float64 по какой цене stop
func NewOrderSell ¶
func NewOrderSell(accountId, symbol string, quantity int) *orders_service.Order
NewOrderSell сформируем ордер на продажу по рынку accountId string Идентификатор аккаунта symbol string Символ инструмента quantity Количество в шт.
func NewOrderSellLimit ¶
func NewOrderSellLimit(accountId, symbol string, quantity int, price float64) *orders_service.Order
NewOrderSellLimit сформируем ордер на продажу по лимитной цене accountId string Идентификатор аккаунта symbol string Символ инструмента quantity Количество в шт. price float64 по какой цене заявка
func NewOrderSellStopLimit ¶
func NewOrderSellStopLimit(accountId, symbol string, quantity int, price, stopPrice float64) *orders_service.Order
NewOrderSellStopLimit сформируем ордер на покупку по stop лимитной цене accountId string Идентификатор аккаунта symbol string Символ инструмента quantity Количество в шт. price float64 по какой цене заявка stopPrice float64 по какой цене stop
func NewOrdersRequest ¶
func NewOrdersRequest(accountId string) *orders_service.OrdersRequest
NewOrdersRequest
func NewQuoteRequest ¶
func NewQuoteRequest(symbol string) *marketdata_service.QuoteRequest
NewQuoteRequest
func NewScheduleRequest ¶
func NewScheduleRequest(symbol string) *assets_service.ScheduleRequest
func NewSubscribeLatestTradesRequest ¶
func NewSubscribeLatestTradesRequest(symbol string) *marketdata_service.SubscribeLatestTradesRequest
NewSubscribeLatestTradesRequest
func NewSubscribeOrderBookRequest ¶
func NewSubscribeOrderBookRequest(symbol string) *marketdata_service.SubscribeOrderBookRequest
NewSubscribeOrderBookRequest
func NewSubscribeQuoteRequest ¶
func NewSubscribeQuoteRequest(symbols []string) *marketdata_service.SubscribeQuoteRequest
NewSubscribeQuoteRequest
func NewTradesRequest ¶
func NewTradesRequest(accountId string, limit int32, start, end time.Time) *accounts_service.TradesRequest
NewTradesRequest
func NewTransactionsRequest ¶
func NewTransactionsRequest(accountId string, limit int32, start, end time.Time) *accounts_service.TransactionsRequest
NewTransactionsRequest
func ToSecurityMap ¶
func ToSecurityMap(assets []*assets_service.Asset) map[string]Security
ToSecurityMap
Types ¶
type Client ¶
type Client struct { AuthService auth_service.AuthServiceClient AccountsService accounts_service.AccountsServiceClient AssetsService assets_service.AssetsServiceClient MarketDataService marketdata_service.MarketDataServiceClient OrdersService orders_service.OrdersServiceClient Securities map[string]Security // Список инструментов с которыми работаем (или весь список? ) // contains filtered or unexported fields }
Client
func (*Client) GetSecurity ¶
GetSecurity Вернем параметры инструмента (из локальных данных Client)
func (*Client) GetTokenDetails ¶
func (c *Client) GetTokenDetails(ctx context.Context) (*auth_service.TokenDetailsResponse, error)
GetTokenDetails Получение информации о токене сессии
идет вызов AuthService.TokenDetails
func (*Client) LoadSecurities ¶
загрузим список торговых инструментов TODO (1) с сервера assets, err := client.AssetsService.Assets(ctx, finam.NewAssetsRequest()) TODO (2) с локального файла json (какой путь? какой формат? откуда файл взялся?)
type Quote ¶
type Quote struct { Symbol string // Символ инструмента Timestamp int64 // Метка времени Ask float64 Bid float64 Last float64 // Цена последней сделки }
Информация о котировке
type QuoteStore ¶
type QuoteStore struct {
// contains filtered or unexported fields
}
type RawQuoteFunc ¶
type RawQuoteFunc func(quote *marketdata_service.Quote)
type Security ¶
type Security struct { Ticker string `json:"ticker,omitempty"` // Тикер инструмента Symbol string `json:"symbol,omitempty"` // Символ инструмента ticker@mic Name string `json:"name,omitempty"` // Наименование инструмента Mic string `json:"mic,omitempty"` // Идентификатор биржи Type string `json:"type,omitempty"` // Тип инструмента Id string `json:"id,omitempty"` // Идентификатор инструмента }
Security Информация об инструменте
func ToSecurity ¶
func ToSecurity(assets []*assets_service.Asset) []Security
type Stream ¶
type Stream struct {
// contains filtered or unexported fields
}
func (*Stream) Close ¶
func (s *Stream) Close()
Close закроем сигнальный канал, что бы закончить работу
func (*Stream) Connect ¶
Connect запускаем воркеры (startHandleWorkers(ctx)) активируем и запускаем потоки (startStreams(ctx)) запускаем реконектор (reconnector(ctx))
func (*Stream) GetErrorChan ¶
func (*Stream) Reconnect ¶
Reconnect в канал рекконета пошлем сообщение channel какой канал нужно переконнектить
func (*Stream) SetAllTradesHandler ¶
func (s *Stream) SetAllTradesHandler(handler TradesFunc)
SetAllTradesHandler установим функцию для обработки поступления всех сделок
func (*Stream) SetQuoteHandler ¶
SetQuoteHandler установим функцию для обработки поступления котировок должен устанавливать раньше Start
func (*Stream) SetRawOrderBookHandler ¶
func (s *Stream) SetRawOrderBookHandler(handler StreamOrderBookFunc)
SetRawOrderBookHandler установим функцию для обработки поступления "сырых" данных по стакану
func (*Stream) SetRawQuoteHandler ¶
func (s *Stream) SetRawQuoteHandler(handler RawQuoteFunc)
SetRawQuoteHandler установим функцию для обработки поступления "сырых" котировок должен устанавливать раньше Start
type StreamOrderBookFunc ¶
type StreamOrderBookFunc func(book *marketdata_service.StreamOrderBook)
type RawOrderBookFunc func(quote *marketdata_service.OrderBook_Row)
type Subscription ¶
Subscription
type TradesFunc ¶
type TradesFunc func(data *marketdata_service.SubscribeLatestTradesResponse)