portfolio

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 6, 2020 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DeleteAllPortfolios

func DeleteAllPortfolios() (bool, error)

DeleteAllPortfolios removes all portfolios

func DeletePortfolio

func DeletePortfolio(portfolioID string) (bool, error)

DeletePortfolio removes portfolio by Id

func Init

func Init(config Config) error

Init portgolio module

Types

type Config

type Config struct {
	MongoURL string `json:"mongoURL"`
	DbName   string `json:"dbName"`
}

Config represents configuration

type Currency

type Currency string

Currency represents string currency

const (
	// RUB is Russian Rubble
	RUB Currency = "RUB"
	// USD is US Dollar
	USD Currency = "USD"
	// EUR is Euro
	EUR Currency = "EUR"
)

type Operation

type Operation struct {
	PortfolioID   string    `json:"pid" bson:"portfolio"`
	OperationID   string    `json:"id" bson:"_id,omitempty"`
	Currency      Currency  `json:"currency"`
	Price         float64   `json:"price"`
	Volume        int64     `json:"vol"`
	FIGI          string    `json:"figi"`
	DateTime      time.Time `json:"date"`
	OperationType Type      `json:"operationType"`
}

Operation represents market operation

type Portfolio

type Portfolio struct {
	PortfolioID string `json:"id" bson:"_id,omitempty"`
	Name        string `json:"name"`
	Description string `json:"description"`
}

Portfolio represets a range of investments

func AddPortfolio

func AddPortfolio(name string, description string) (Portfolio, error)

AddPortfolio adds new potrfolio

func GetAllPortfolios

func GetAllPortfolios() ([]Portfolio, error)

GetAllPortfolios finds all available portfolios at the moment

func GetPortfolio

func GetPortfolio(portfolioID string) (bool, Portfolio, error)

GetPortfolio gets operation by id

func (*Portfolio) AddOperation

func (p *Portfolio) AddOperation(op Operation) (string, error)

AddOperation adds operation to the portfolio

func (*Portfolio) DeleteAllOperations

func (p *Portfolio) DeleteAllOperations() (int64, error)

DeleteAllOperations removes all operations associated with given portfolio

func (*Portfolio) GetAllOperations

func (p *Portfolio) GetAllOperations() ([]Operation, error)

GetAllOperations finds all available operations at the moment

func (*Portfolio) GetAllOperationsByFigi

func (p *Portfolio) GetAllOperationsByFigi(figi string) ([]Operation, error)

GetAllOperationsByFigi finds all available operations for the specified figi at the moment

func (*Portfolio) GetAveragePriceByFigi

func (p *Portfolio) GetAveragePriceByFigi(figi string) (float64, error)

GetAveragePriceByFigi returns average price of specified figi (FIFO)

func (*Portfolio) GetAveragePriceByFigiTillDate

func (p *Portfolio) GetAveragePriceByFigiTillDate(figi string, dt time.Time) (float64, error)

GetAveragePriceByFigiTillDate returns average price of specified figi (FIFO) on specified date

func (*Portfolio) GetBalanceByCurrency

func (p *Portfolio) GetBalanceByCurrency(curr Currency) (float64, error)

GetBalanceByCurrency returns balance of specified currency

func (*Portfolio) GetBalanceByCurrencyTillDate

func (p *Portfolio) GetBalanceByCurrencyTillDate(curr Currency, dt time.Time) (float64, error)

GetBalanceByCurrencyTillDate returns balance of specified currency till specified date

func (*Portfolio) GetBalanceByFigi

func (p *Portfolio) GetBalanceByFigi(figi string) (float64, error)

GetBalanceByFigi returns balance of specified figi

func (*Portfolio) GetBalanceByFigiTillDate

func (p *Portfolio) GetBalanceByFigiTillDate(figi string, dt time.Time) (float64, error)

GetBalanceByFigiTillDate returns balance of specified figi till specified date

func (*Portfolio) GetOperationByID

func (p *Portfolio) GetOperationByID(operationID string) (Operation, error)

GetOperationByID gets operation by id

func (*Portfolio) String

func (p *Portfolio) String() string

func (*Portfolio) UpdatePortfolio

func (p *Portfolio) UpdatePortfolio() (bool, error)

UpdatePortfolio updates current portfolio

type Type

type Type string

Type is market operation type

const (
	// Buy operation
	Buy Type = "buy"
	// Sell operation
	Sell Type = "sell"
	// BrokerCommission operation
	BrokerCommission Type = "brokerCommission"
	// ExchangeCommission operation
	ExchangeCommission Type = "exchangeCommission"
	// PayIn operation
	PayIn Type = "payIn"
	// PayOut operation
	PayOut Type = "payOut"
	// Coupon operation
	Coupon Type = "coupon"
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL