# From LEAN

A LEAN algorithm is a class with event handlers. A Forge strategy is a class too, and `compute` returns signals for every bar at once, with optional hooks for events. Both are Python.

## What is different

- **Data arrives as arrays.** LEAN calls `OnData` with a slice for each bar. Forge hands `compute` the whole history as arrays, and the engine applies the signals.
- **Indicators are functions.** LEAN registers an indicator and feeds it through a consolidator. Forge calls `ta.rsi(close, period)` on an array, and a slower series is `d.tf("H4")`.
- **Warm-up is declared.** An indicator states its own warm-up, and a strategy does not trade on values that are still missing.
- **Time is UTC.** LEAN's clock follows the time zone you set.

The [traps page](https://oathra.dev/docs/porting/lean/traps) lists the mistakes that cost the most.

## Then read

Start with [warm-up](https://oathra.dev/docs/concepts/warm-up) and [broker time and the trading day](https://oathra.dev/docs/concepts/broker-time-and-the-trading-day).
