2
0

market.go 554 B

12345678910111213141516171819202122232425262728
  1. package sentio
  2. import (
  3. "context"
  4. "errors"
  5. )
  6. var (
  7. ErrMarketClosed = errors.New("market is closed")
  8. )
  9. type Market interface {
  10. Connect(done chan struct{}) (chan MarketConnection, error)
  11. Subscribe(symbol string) error
  12. IsMarketOpened() bool
  13. Time() Clock
  14. Buy(ctx context.Context, symbol string, ratio float64) (Order, error)
  15. Sell(ctx context.Context, symbol string, ratio float64) (Order, error)
  16. CancelOrder(id string) error
  17. Orders() ([]Order, error)
  18. Portfolio() (Portfolio, error)
  19. AvailableCash() (float64, error)
  20. MaxBudget() float64
  21. }