Skip to content

Manage Signals

The Manage Signals page lets you create and administer the signals your account uses to bridge external trading alerts to your HaasScript bots — and to publish signals of your own that other bots can subscribe to.

How signals work

A signal is a public-key message channel. It carries a public ID (anyone with the ID can read) and a private secret (only the holder can write). Two distinct channels exist, with different semantics:

STORE_SIGNAL — simple integer triggers

Used for plain Long / Short / Exit / Reset signals. Read from HaasScript with GetRemoteSignal(id). The server stores the most recent value for 60 seconds, and GetRemoteSignal coalesces duplicate reads so the same value isn't acted on more than once per minute.

PUSH_SIGNAL — custom JSON payloads

Used to push arbitrary structured data (action, price, amount, ttl, …) into your bots. Read from HaasScript with GetWebHookSignal(id). The server stores the payload with a configurable TTL (default 5 minutes, max 1 hour) and delivers it once — when your bot reads the signal the payload is deleted, and the read fires the bot's execution loop immediately rather than waiting for the next minute tick. This is what makes PUSH_SIGNAL the right choice for low-latency external alerts.

Receiving signals from external systems

When you create a signal you receive an email containing copy-paste-ready webhook URLs. Any service that can POST to a URL — TradingView alerts, n8n flows, custom Python scripts, Zapier — can fire those URLs to push a signal into HaasOnline.

  • Long / Short / Exit URLs (channel=STORE_SIGNAL) drop simple integer triggers that bots read with GetRemoteSignal().
  • PUSH_SIGNAL URLs accept your own query parameters and forward the payload to bots that read it with GetWebHookSignal().

The webhook URLs only deliver data — your HaasScript still implements the trading logic. A typical flow: TradingView fires an alert → the server stores the signal → your bot's GetWebHookSignal() returns the payload → your script decides whether to place an order.

Publishing signals from a HaasScript

Bots can also produce signals from inside their script with SaveRemoteSignal(id, secret, signal). The emission writes into the same store as inbound webhooks, so any bot that calls GetRemoteSignal(id) will see it.

This is the building block for copy-trading patterns: one bot acts as a "leader" that emits its decisions; other bots subscribe to the leader's signal ID and mirror the action. Because reads only need the public ID, the leader can share their signal ID with anyone (a friend, a public chat, their own other accounts) and those bots can subscribe without exchanging the secret.

Sharing and access

The signal ID is public. Sharing it with another user lets their bots subscribe via GetRemoteSignal() or GetWebHookSignal() and receive both real-time updates and the historical record stored on the server.

The signal secret is private. Whoever holds the secret can write new values (via webhook URLs or SaveRemoteSignal()). Keep your secret with you and your trusted external integrations only — anyone holding it can produce signals on your behalf.

There is no per-signal allow-list of subscribers; access is controlled by who knows the ID. If you need to revoke access, delete the signal and create a new one (this changes the ID and invalidates the old webhook URLs).

Managing signals

Adding a New Signal

To add a new signal, follow these steps:

  1. Click the "+" icon on the Manage Signals page.
  2. In the New Signal window that appears, enter a name and description for your signal.
  3. Click the "Save" button to create your signal.

After you create your signal you will receive an email with the secret needed to produce signals and copy-paste-ready URLs for the STORE_SIGNAL and PUSH_SIGNAL channels.

Modifying an Existing Signal

To modify an existing signal, follow these steps:

  1. Find the signal you want to modify in the Signals list on the Manage Signals page.
  2. Click the Edit icon in the Options column.
  3. In the Edit Signal window that appears, modify the name or description of your signal.
  4. Click the "Save" button to save your changes.

Deleting a Signal

To delete a signal, follow these steps:

  1. Find the signal you want to delete in the Signals list on the Manage Signals page.
  2. Click the Delete icon in the Options column.
  3. In the confirmation dialog that appears, click "OK" to delete the signal.

Deleting a signal invalidates the existing webhook URLs and the secret. Bots subscribed by the signal's ID will stop receiving updates.

Sending an Email with Secret and URLs

To receive an email containing the secret and copy-paste-ready URLs for an existing signal, follow these steps:

  1. Find the signal you want to receive an email for in the Signals list on the Manage Signals page.
  2. Click the Email icon in the Options column.

An email with the secret and URLs will be sent to the email address associated with your TradeServer account.