pub trait OrderGenerator {
    // Required methods
    fn generate_order(
        &mut self,
        signal: &Signal
    ) -> Result<Option<OrderEvent>, PortfolioError>;
    fn generate_exit_order(
        &mut self,
        signal: SignalForceExit
    ) -> Result<Option<OrderEvent>, PortfolioError>;
}
Expand description

May generate an OrderEvent from an input advisory Signal.

Required Methods§

source

fn generate_order( &mut self, signal: &Signal ) -> Result<Option<OrderEvent>, PortfolioError>

May generate an OrderEvent after analysing an input advisory Signal.

source

fn generate_exit_order( &mut self, signal: SignalForceExit ) -> Result<Option<OrderEvent>, PortfolioError>

Generates an exit OrderEvent if there is an open Position associated with the input SignalForceExit’s PositionId.

Implementors§

source§

impl<Repository, Allocator, RiskManager, Statistic> OrderGenerator for MetaPortfolio<Repository, Allocator, RiskManager, Statistic>where Repository: PositionHandler + BalanceHandler + StatisticHandler<Statistic>, Allocator: OrderAllocator, RiskManager: OrderEvaluator, Statistic: Initialiser + PositionSummariser,