Expand description

Defines useful data structures such as an OrderEvent and Position. The Portfolio must interact with MarketEvents, SignalEvents, OrderEvents, and FillEvents. The useful traits MarketUpdater, OrderGenerator, & FillUpdater are provided that define the interactions with these events. Contains a MetaPortfolio implementation that persists state in a generic Repository. This also contains example implementations of an OrderAllocator & OrderEvaluator, which help the Portfolio make decisions on whether to generate OrderEvents and of what size.

Modules

Logic for OrderEvent quantity allocation.

Barter portfolio module specific errors.

Core Portfolio logic containing an implementation of MarketUpdater, OrderGenerator and FillUpdater. Utilises the risk and allocator logic to optimise OrderEvent generation.

Data structures encapsulating the state of a trading [Position], as well as the logic for entering, updating and exiting them.

Repositories for persisting Portfolio state.

Logic for evaluating the risk associated with a proposed OrderEvent.

Structs

Total and available balance at a point in time.

Orders are generated by the portfolio and details work to be done by an Execution handler to open a trade.

Builder to construct OrderEvent instances.

Enums

Type of order the portfolio wants the execution::handler to place.

Traits

Updates the Portfolio from an input FillEvent.

Updates the Portfolio from an input MarketEvent.

May generate an OrderEvent from an input advisory SignalEvent.

Type Definitions

Communicates a String represents a unique identifier for an Engine’s Portfolio Balance.