> For the complete documentation index, see [llms.txt](https://fto-2.gitbook.io/fto-indicators-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://fto-2.gitbook.io/fto-indicators-docs/open-and-upload-indicator/set-up-indicator.md).

# Set up an indicator

Get a local TypeScript project that compiles to a `.js` file you can upload to Forex Tester Online.

## What you will have when finished

* Dependencies installed from the starter package
* A successful `npm run build`
* `dist/my-indicator-project.js` ready for [Upload indicator to FTO](/fto-indicators-docs/open-and-upload-indicator/upload-indicator-to-fto.md)

## 1. Download and open the starter

{% file src="/files/OknB2nxnfNEhznjvR72T" %}

Extract the zip, then open the folder in Cursor or another TypeScript IDE.

## 2. Install dependencies

In the project terminal:

```bash
npm install
```

{% hint style="warning" %}
If PowerShell blocks `npm.ps1`, call the Windows command shim directly instead:

```bash
npm.cmd install
npm.cmd run build
```

This does not change the PowerShell execution policy.
{% endhint %}

## 3. Build

```bash
npm run build
```

The build writes `my-indicator-project.js` under `dist`. The project dependency provides the `Indicator` base class, API methods, and public types you import in code.

{% hint style="warning" %}
FTO loads exactly one default-exported class from the compiled file:

```typescript
export default class MyIndicator extends Indicator {
    // ...
}
```

Without `export default`, upload may succeed but the indicator will not run.
{% endhint %}

## Next step

The starter has empty lifecycle methods: a successful build does not create a plotted line or any settings inputs. To see a calculated result, replace its source with the [working indicator example](/fto-indicators-docs/tutorial-create-indicator-with-cursor/step-5-start-building.md), build again, and then [upload it to FTO](/fto-indicators-docs/open-and-upload-indicator/upload-indicator-to-fto.md).

You can also upload the empty starter to check that the file loads; a blank chart is expected at that checkpoint.
