# How to develop an indicator

{% hint style="info" %}

<pre data-overflow="wrap"><code>It is recommended to read our <a data-footnote-ref href="#user-content-fn-1">FAQ</a> and Data Storage Solutions first. so as to be familiar with various problems that need to be dealt with during the development process.
</code></pre>

{% endhint %}

Steps to develop indicators on KingData:

1. Fork the [indicators repository](https://github.com/js-kingdata/indicators_factory) (button towards the top right of the repo page).&#x20;
2. Add a new folder in `/crawlers/indicators/spiders/` with the new indicator name.&#x20;
3. Write the indicator's description file in the new folder: `definition.md`.&#x20;
4. Create a new crawler file in this directory to realize the indicator requirement logic of `definition.md`.&#x20;
5. Write broadcast template to render the params that logic code return.
6. Test and submit the changes on your fork to the [indicators repository](https://github.com/js-kingdata/indicators_factory) as a Pull Request with a brief description of the changes you made.&#x20;
7. Waiting for someone to comment or merge your merge request. There is no need to have someone check your PR as it is regularly monitored.&#x20;
8. Once your PR is merged, please give the front-end team 24 hours to load your listing on the UI.

## Indicators development environments

1. Development Language：Python 3.10.4, Our recommendation is to follow the [Hitchhiker's Guide to Python](https://docs.python-guide.org/starting/installation/).
2. Crawler framework：Scrapy 2.7.1  Our recommendation is to follow the  [Guide to Scrapy](https://docs.scrapy.org/en/latest/intro/tutorial.html).&#x20;

[^1]:


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://open.kingdata.com/how-to-develop-an-indicator.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
