# Events

> Run code when something happens.

Source: https://algobarsx.com/docs/events/

```algobarsx
on start:
    log "starting on {market.symbol}"

on bar close:
    log "bar {bar.index}"

on fill(order):
    log "filled {order.size}"

on exit(trade):
    log "{trade.tag} closed at {trade.r:0.00}R after {long_entry.triggers} triggers"

on session open "new_york":
    log "New York is open"

on day change:
    triggers = 0
```

| Event | When it runs |
| --- | --- |
| [`on start:`](https://algobarsx.com/docs/ref-events/#ref-start) | Runs once before the first evaluated bar. |
| [`on bar close:`](https://algobarsx.com/docs/ref-events/#ref-bar-close) | Runs on every confirmed bar. |
| [`on tick:`](https://algobarsx.com/docs/ref-events/#ref-tick) | Runs on every price update (evaluate: tick). |
| [`on fill(order):`](https://algobarsx.com/docs/ref-events/#ref-fill) | Runs when an order fills. |
| [`on exit(trade):`](https://algobarsx.com/docs/ref-events/#ref-exit) | Runs when a trade closes, with trade.pnl, trade.r and trade.reason. |
| [`on session open "<name>":`](https://algobarsx.com/docs/ref-events/#ref-session-open) | Runs when a session opens. |
| [`on day change:`](https://algobarsx.com/docs/ref-events/#ref-day-change) | Runs at each calendar day boundary. |
| [`on render(canvas):`](https://algobarsx.com/docs/ref-events/#ref-render) | Custom vector drawing for the visible range. |

`on tick` needs a script that evaluates on ticks ([AS0404](https://algobarsx.com/docs/diag-where-things-may-go/#AS0404)). See [Bar close or every tick](https://algobarsx.com/docs/tick-evaluation/).
