# Signal Bot Example

## Overview

**Signal Bot** is an open-source trading bot designed for signal-based perpetual trading.

The bot listens to configured Telegram channels, parses trading messages with an LLM, converts valid messages into structured trading signals, and routes orders to supported perpetual venues.

This example shows how trading automation can be built around external signals, VOOI Perps API access available through VOOI Ultra.

{% hint style="warning" %}
This bot example is provided for educational purposes only. It is not financial advice and does not guarantee profit.

This bot was generated with AI-assisted development and tested before publication. It demonstrates how VOOI Ultra users can quickly prototype trading bots and agentic trading workflows using VOOI Perps API access available through VOOI Ultra.

Testing does not make the bot risk-free. Trading bots can place real orders and interact with real funds. Review the code, configuration, strategy, and risk controls before running any bot with live capital.
{% endhint %}

You can also inspect, test, and customize this bot with AI coding agents such as Claude Code, Codex, or Cursor.

## How it works

Signal Bot monitors selected Telegram channels for new messages.

The bot does not create its own trading thesis. It acts as an execution layer for external signals: it uses an LLM to parse messages, applies routing and risk checks, and then routes orders through VOOI Perps API.

When a message is received, the bot uses an OpenAI-compatible LLM to decide whether the message contains a valid trading signal. If the message is valid, the bot converts it into a structured signal with fields such as asset, side, entry price, take-profit levels, stop-loss, and leverage.

After the entry order is filled, the bot places stop-loss and take-profit orders and continues monitoring the position.

The bot can also run background checks to reconcile positions and orders, move stop-loss to breakeven when configured conditions are met, and detect positions that may be missing an active stop-loss.

This workflow depends heavily on the quality of the Telegram channels you choose. If a channel publishes bad signals, the bot can execute bad trades.

## What this example demonstrates

This bot is useful as a technical example for:

* Telegram signal ingestion
* LLM-assisted trading signal parsing
* prompt-based signal extraction
* automated venue selection and order routing
* stop-loss and take-profit management
* position monitoring and reconciliation
* persistent trade and signal history
* agent-assisted customization of trading automation

## Before you run this bot

This bot can place real orders and interact with real funds.

Before running it with live capital:

1. Read the repository README.
2. Review the signal flow, configuration, and risk controls.
3. Inspect the code yourself or ask an AI coding agent to inspect it.
4. Review the Telegram channels you plan to use.
5. Start with dry-run, test mode, or very small position sizes where available.
6. Monitor logs, open positions, orders, and alerts.

Important risks include low-quality or misleading Telegram signals, incorrect LLM parsing, wrong asset or side extraction, delayed execution, slippage, missing or failed stop-loss / take-profit placement, liquidation risk, incorrect configuration, and loss of access to credentials, Telegram session, database, or runtime environment.

## Requirements

The exact setup requirements are maintained in the repository README.

In general, this bot is intended for users who have:

* **VOOI Ultra account** with access to API token generation
* **VOOI API token** generated in VOOI Ultra at <https://ultra.vooi.io/api-tokens>
* connected exchange accounts on supported perpetual venues
* a Telegram account and access to the channels the bot should monitor
* Telegram app credentials
* an OpenAI-compatible LLM API key for signal parsing
* PostgreSQL or a supported database setup
* a local machine or server where the bot can run
* enough technical experience to review logs, database records, and configuration files

VOOI Perps API is not publicly available as a standalone public API. These examples use API access available through VOOI Ultra for registered users.

Check the repository README for the current list of required credentials, environment variables, supported venues, and deployment options.

## Deployment and Repository

The repository README includes the current setup and deployment instructions.

Typical setup flows may include Docker setup for first-time runs, native local setup for development and testing, or VPS deployment for long-running operation.

**Repository:** <https://github.com/vooi-app/vooi-signals-bot-example>

## Using an AI coding agent (optional)

You can ask Claude Code, Codex, Cursor, or another coding agent to inspect the codebase, explain the Telegram ingestion flow, review the LLM parsing logic, check risk settings, and help run the bot in the safest available mode before any live deployment.

This workflow can be useful for agentic trading and what is often called vibe coding: start from an existing open-source bot, describe what you want to change, and use an AI coding agent to help modify and test the implementation.

**Example prompt:**

> Inspect this repository and explain what the Signal Bot does.
>
> Read the README, configuration files, dependency files, database setup, and deployment instructions.
>
> Check whether there are unsafe operations, hard-coded secrets, suspicious dependencies, or anything that should be reviewed before running the bot with real funds.
>
> Explain what credentials and settings are required from me, including Telegram, LLM, database, and VOOI-related settings.
>
> Help me set up the bot in dry-run, test mode, or the safest available configuration first.
>
> Do not enable live trading or place real orders unless I explicitly confirm.

## Next Steps

* Open the repository README for full setup and deployment instructions for **Signal Bot**
* Check another bot example: [Funding Arbitrage Bot Example](/vooi-ultra-v3/vooi_ultra-automationexamples/funding-arbitrage-bot-example.md)


---

# 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://docs.vooi.io/vooi-ultra-v3/vooi_ultra-automationexamples/signal-bot-example.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.
