Interface IBroker

Broker adapter interface for live order execution.

Implement this interface to connect the framework to a real exchange or broker. All methods are called BEFORE the corresponding DI-core state mutation, so if any method throws, the internal state remains unchanged (transaction semantics).

In backtest mode all calls are silently skipped by BrokerAdapter — the adapter never receives backtest traffic.

class MyBroker implements IBroker {
async waitForInit() {
await this.exchange.connect();
}
async onSignalOpenCommit(payload) {
await this.exchange.placeOrder({ symbol: payload.symbol, side: payload.position });
}
// ... other methods
}

Broker.useBrokerAdapter(MyBroker);
interface IBroker {
    onAverageBuyCommit(payload: BrokerAverageBuyPayload): Promise<void>;
    onBreakevenCommit(payload: BrokerBreakevenPayload): Promise<void>;
    onPartialLossCommit(payload: BrokerPartialLossPayload): Promise<void>;
    onPartialProfitCommit(payload: BrokerPartialProfitPayload): Promise<void>;
    onSignalCloseCommit(payload: BrokerSignalClosePayload): Promise<void>;
    onSignalOpenCommit(payload: BrokerSignalOpenPayload): Promise<void>;
    onTrailingStopCommit(payload: BrokerTrailingStopPayload): Promise<void>;
    onTrailingTakeCommit(payload: BrokerTrailingTakePayload): Promise<void>;
    waitForInit(): Promise<void>;
}

Implemented by

Methods

  • Called once before first use. Connect to exchange, load credentials, etc.

    Returns Promise<void>