market.go 753 B

123456789101112131415161718192021222324252627
  1. package sentio
  2. import (
  3. "time"
  4. )
  5. type Market interface {
  6. Clock() Clock
  7. IsOpen() bool
  8. Connect(done chan struct{}) (chan MarketConnection, error)
  9. Subscribe(symbols ...string) error
  10. Account() (MarketAccount, error)
  11. MaxBudget() float64
  12. CreateOrder(symbol string, limit float64, quantity uint, rm RiskManager) (Order, error)
  13. UpdateOrder(orderID string, rm RiskManager) error
  14. CloseOrder(order Order, recommended *float64) (float64, error)
  15. Order(orderID string, nested bool) (Order, error)
  16. Orders(criteria OrderListCriteria) ([]Order, error)
  17. Portfolio() (Portfolio, error)
  18. PortfolioHistory() ([]PortfolioRecord, error)
  19. Quotes() (map[string]Quote, error)
  20. HistoricalBars(interval time.Duration, from *time.Time) (map[string][]Bar, error)
  21. }