def on_bar(self, event: events.market.BarReceived) -> None:
sym = event.symbol
if (
self.fast_sma[sym, -2] <= self.slow_sma[sym, -2]
and self.fast_sma.latest(sym) > self.slow_sma.latest(sym)
and self.position <= 0
):
self.submit_order(
models.OrderType.MARKET,
models.TradeSide.BUY,
self.quantity, # type: ignore[attr-defined]
action=models.ActionType.ENTRY,
signal="sma_crossover_up",
)
if (
self.fast_sma[sym, -2] >= self.slow_sma[sym, -2]
and self.fast_sma.latest(sym) < self.slow_sma.latest(sym)
and self.position >= 0
):
self.submit_order(
models.OrderType.MARKET,
models.TradeSide.SELL,
self.quantity, # type: ignore[attr-defined]
action=models.ActionType.EXIT,
signal="sma_crossover_down",
)