Start by an external signal (webhook)
The "external signal" start condition lets you start the first cycle of a DCA bot from TradingView or any other source that can send requests. The bot waits for the signal in the “Paused” status.
What it is
After a bot is created with this condition, its card shows a personal address for starting it and a secret token. The signal source sends a POST request to that address with the header X-Webhook-Token and your token — no request body is needed. The bot checks signals once a minute and starts within a minute.
The signal is only needed to start the bot, not for every cycle: after a Take-Profit or a Stop-Loss the bot waits out the cooldown and opens the next cycle itself. A new signal is needed if the bot ends up paused — you pressed ⏸️ Pause or a protection stopped it. A paused bot can also be resumed without a signal, with the ▶️ Start button.
Where it is in the bot
- When creating: confirmation screen → ⚡ Start: immediate → 📡 External signal (TradingView). The button changes to 📡 Start: by webhook signal.
- After creation: Main menu → 📉 DCA Bots → the bot. In the card: “📡 Webhook URL for starting: …” and, below it, the header
X-Webhook-Tokenwith your token. The 🔄 Rotate webhook token button is there as well.
How to set it up
- Choose the condition. The bot explains: “📝 WEBHOOK condition selected. After creating the bot you will receive a unique URL and token. Send a POST request to that URL with header X-Webhook-Token from TradingView or another source — the bot will start. URL is visible in the DCA-bot card.”
- Confirm the creation. The bot appears in the list with the status “Paused”.
- Open the card and copy the address and the token into the settings of your signal source. The source must be able to send a POST request with a custom header.
- Send the signal — within a minute you get “🔄 New cycle #1 started. Bot entered position.”
The token is the key to your bot: “⚠️ Never share the token — anyone with it can start your bot.” If the token leaked or you shared the address, press 🔄 Rotate webhook token: “✅ Done. The old token is no longer valid.” — the old one stops working immediately, the bot shows the new address and token and reminds you: “⚠️ Update the webhook in TradingView / your indicator — otherwise signals will stop arriving.”
When a signal is accepted
| Bot state | What happens to the signal |
|---|---|
| “Created” or “Paused” | Accepted, the bot starts on the next check |
| The same signal again before the start | Counted once — a repeat from TradingView will not open a second entry |
| “Active”, “Cooldown”, “Starting new cycle” | Ignored: a second cycle will not open, and the signal is not saved for later |
| Subscription is not active | Does not start the bot; renew the subscription |
Requests without a token or with a wrong token are rejected, as are requests to a bot with a different start condition and requests that come too often: more than 10 per minute from one address or more than 60 per minute to one bot. In the reply the source sees a short status in words: accepted, already received, or ignored because the bot is not waiting to start.
There are no "condition unmet for more than a day" reminders here, unlike RSI and SMA: the bot will wait for a signal indefinitely.
Example
Cooldown 45 seconds. The signal arrived at 10:00:05 — by 10:01 the bot had entered the position. At 10:40 the TP fired, at 10:41 the bot opened cycle #2 by itself without a signal. At 10:50 the indicator sent another signal — the bot was “Active”, the signal was ignored, no second position appeared. At 11:00 you pressed ⏸️ Pause; cycle #2 ran to its TP at 11:20, and no new one started. The signal at 11:30 launched cycle #3.
Limits and allowed values
| Parameter | Value |
|---|---|
| Signal check | once a minute |
| Accepted in states | Created, Paused |
| Request rate | up to 10 per minute from one address, up to 60 per minute per bot |
| Request body | not required |
| Changing the condition on a live bot | no |
Common errors and what the bot says
- “ℹ️ This bot does not use a webhook signal, rotation is not needed.” — the rotate button was pressed on a bot with a different start condition.
- “⛔ This bot does not belong to you.” — an attempt to rotate the token of someone else's bot.
- The signal was sent but the bot did not start — check the status in the card: it must be “Paused” or “Created”; check that the header and the token match the card and that the token was not rotated after you set up the source.
- You received “⚠️ Could not start a new cycle: … The bot is paused — check the API keys and balance, then tap "▶️ Start".” — the signal was accepted but the entry failed; after fixing the problem press the button or send the signal again.
