# Overview

[![Twitter URL](https://img.shields.io/twitter/url.svg?label=Follow%20%40BellaProtocol\&style=social\&url=https%3A%2F%2Ftwitter.com%2FBellaProtocol)](https://twitter.com/BellaProtocol) [![Chat](https://img.shields.io/badge/chat-on%20discord-7289da.svg)](https://discord.gg/8ctd5geS8t)

## the "*Tuner*", a programmable, transaction-based Uniswap V3 Simulator with 100% Precision

> Before an orchestra, every musical instrument has to be *in-tune*, to ensure an outstanding performance.
>
> Before running a strategy, every parameter has to be *fine tuned*, to maximize the performance.

***Tuner*****&#x20;is a programmatic Uniswap V3 simulator that allows strategy backtesting on a transaction-to-transaction basis with arbitrary or historical data without the EVM, it runs independently yet completely retains the exact smart-contract behavior of the intricate design and implementation of Uniswap V3.**

### Documentation

* [Getting Started](https://docs.bella.fi/getting-started)
* [Configuration](https://docs.bella.fi/configuration)
* [Guides](https://docs.bella.fi/guides)
* Developer Articles(stay tuned)

***Tuner*****&#x20;is fundamentally a state machine, it can:**

> **Completely replicate the tick-level calculation**

* this means your strategy will run through the Uniswap V3 implementation logic instead of just the high-level mathematic model.

> **Maintain the identical tick-level precision of prices, fees, and positions of Uniswap V3**

* this means the result of your backtesting is true to the real performance with the minimum margin of deviations.

> **Run fast**

* the EVM is slow, the historical dataset is huge, the Ganache cannot do the job, so use *Tuner*.

> **Fast-forward and rewind transactions**

* this means you can easily repeat a small portion of your test with a different set of parameters without the need to start over.

> **Take or recover from a snapshot(state)**

* this means you can run continuous regression test as your strategies constantly evolves.

> **Branch out and runs in parallel**

* this means you can run multiple back-tests each with a different set of parameters at the same time and compare the performance.

> **Persist historical data and strategy execution records in a SQLite database**

* this means the strategists can do advanced statistical analysis both in real-time and after the testing.
