Open Portal

Crypto Exchanges

Execute your TradingView and Telegram signals on crypto exchange spot accounts, starting with Binance. Connect an exchange with an API key and TradeSgnl places the orders.

Spot trading

Crypto exchange execution is spot trading on Binance, Bybit and OKX. Read What is executed before connecting a live account.

Crypto exchange execution turns your TradingView alerts and Telegram signals into real orders on a crypto exchange. Connect an exchange once with an API key and it shows up on your dashboard as a connection card under its license. Every signal sent to that license is executed on it, entry, stop loss and take profits included. There is no separate crypto syntax: the same alerts drive every account on the license.

One signal, every account

A signal sent to your license reaches every account on the license at the same time, crypto exchanges included.

Keys stay encrypted

API keys are stored encrypted and are never shown again after you save them.

Binance, Bybit and OKX

Binance, Bybit and OKX are available now, each with a testnet for practice (OKX calls it Demo trading). More exchanges open after their own live checks.

Connecting an exchange

Create an API key on your exchange

Log in to Binance and create a new API key. Enable spot trading and nothing else, and never enable withdrawals: TradeSgnl refuses a key that can withdraw, or one that cannot trade. Restrict the key to TradeSgnl's IP address, 209.71.64.114: every call TradeSgnl makes to an exchange comes from it. A Bybit key must belong to a Unified Trading account. An OKX key trades only the coins on its Crypto list (under Trade when you create or edit the key): add every coin you trade.

Add the connection in the portal

On your dashboard, click Connect Account, pick the license, choose Crypto Exchange and then your exchange. Paste the key and secret (and the passphrase for OKX), and choose whether this is a testnet key. TradeSgnl checks the key with the exchange and stores it only if the check passes. Where TradeSgnl cannot read a key's permissions, it asks you to make sure withdrawals are turned off for it. A key that can also trade futures, margin or options is accepted; TradeSgnl only ever trades spot with it. A testnet key is not checked for permissions, as its funds are not real.

Every signal sent to the chosen license is placed on the exchange. Every other account on the license receives the same signals, so give the exchange its own license if you want it kept apart.

Send signals

Start your TradingView alert message with your license code and use the regular signal syntax; the example under Stop loss and take profit below is a complete alert message. Alerts you already send to TradeSgnl are placed on the exchange too, as described under What is executed: anything a spot account cannot do is refused, with the reason on the Signals page. The same goes for Telegram channels you monitor with the Telegram Copier: route a channel to the license and its signals, with entry, stop loss and every take profit level, are placed on the exchange too.

Start on a testnet

Binance offers a test environment with fake balances. Connect a testnet key first, send a few signals, and check the results on the Signals page before you connect a funded account.

What is executed

A spot account can buy a coin with your quote balance and sell it back. It cannot short or use leverage. This is how each signal action is handled:

Signal actionResult on the exchange
buy, longMarket buy, sized from the signal's volume field
buylimitLimit buy at entry_price, or entry_percent below the current price
sell, closebuy, closelong, closeallMarket sell of the positions TradeSgnl opened for that symbol
closelongbuySells the positions TradeSgnl opened for that symbol, then buys
closelongsellSells the positions TradeSgnl opened for that symbol. No short is opened
closeshortbuyBuys. There is no short to close
cancellong, cancelallCancels the limit buys TradeSgnl placed for that symbol that are still waiting
shortRefused (7501)
buystop, sellstopRefused (7502)
selllimitRefused (7503)
closeshort, closesell, closeshortsell, cancelshortRefused (7504)

Any other action is refused with 7505. Every refusal is recorded on the Signals page with the reason.

A close sells only what TradeSgnl bought on that connection, and never more than is free in the account. Coins you hold from elsewhere, and orders you placed yourself, are never touched. The close in closelongbuy and closelongsell is always in full.

Because a spot account cannot short, a sell closes the long instead of opening a short. Two things follow: a Telegram channel's short signals close the longs copied from that channel, and a TradingView strategy that also trades short closes its long when it turns short. A strategy with noexit set drops a sell like any other close.

Close fieldMeaning
pct_percent=0.5Sell that share of each matching position, between 0 and 1 (0.5 is half)
pct_lots=0.01Sell up to that amount of the coin from each matching position, above 0
pct=0.5The same as pct_percent=
comment=Strategy1Close or cancel only what was opened with the same comment

When a close carries more than one size field, the first in this table is used. A size field set to 0 counts as not given. A close without a size field sells everything; vol_lots= or risk= on a close is ignored. A close size out of range, such as pct=50, is refused (7517) and nothing is sold.

Stop loss and take profit

Every position TradeSgnl opens is tracked with its own stop loss and take profit levels. Expand the exchange's card on your dashboard to see them under Open Positions. Each open position has a Close button that sells it at market and cancels its stop loss, for the times you want out without waiting for a signal.

  • The stop loss is placed on the exchange as a resting stop order as soon as the buy fills, so it keeps protecting you even if TradeSgnl is unreachable. If the exchange refuses the stop order, TradeSgnl watches the stop price itself and sells at market when it is reached; the position shows the stop as "watched" instead of "on exchange".
  • Take profits are watched by TradeSgnl, which follows the exchange's live prices. When the price reaches a level, that level's share is sold at market and the stop loss is placed again for whatever remains. A spot exchange holds the coins of each resting order, so a stop and a take profit cannot both rest on the exchange for the same coins.

If a take profit sale fails, the stop loss is placed again straight away. TradeSgnl tries the sale three times, then alerts you (7515) and leaves the stop loss in place. A take profit whose share is below the exchange's minimum order is skipped and noted on the position. A stop loss that TradeSgnl watches is never given up: after the third failed sale you are alerted, and TradeSgnl keeps trying every minute.

Use the explicit forms so the values are unambiguous on an exchange:

ParameterMeaning
sl_price=, tp_price=Absolute price levels
sl_percent=, tp_percent=Distance from the entry price in percent
tp1=, tp2=, ... with tp1_percent= or tp1_price=Several take profit levels. Levels without a type inherit the type of tp1
pct1=, pct2=, ...Share of the position to sell at each level (0.5 or 50 both mean half). Missing shares are split evenly
LicenseID,BTCUSDT,buy,vol_dollar=100,sl_percent=2,tp1_percent=2,tp2_percent=4,pct1=0.5,pct2=0.5

Plain sl= and tp= values

Stick to the price and percent forms above. Plain sl= and tp= are pip distances, which mean nothing on an exchange, so TradeSgnl accepts them as prices only when they sit in a believable range around the entry (a stop between 50% and 100% of the entry, a take profit between 100% and 300%). Anything else is ignored with a note on the position. Accounts on the same license that are not crypto exchanges still read them as pips.

Signal freshness

  • Every signal that arrives is placed: an alert that fires twice places two orders.
  • If your alert message includes timenow={{timenow}}, a signal that arrives more than two minutes after it fired is not traded (7507). It is recorded on the Signals page without an alert. TradingView's {{timenow}} placeholder fills in the time the alert fired.

Position sizing

Crypto orders use TradeSgnl's standard volume fields, read in exchange terms:

FieldMeaning on a crypto exchange
vol_lotsAmount of the coin itself (for example 0.01 BTC)
vol_dollarAmount in the quote currency (for example 25 USDT)
vol_pctbal, vol_pcteqPercentage of your free quote balance (10 is 10%)
riskAmount of the coin, the same as vol_lots. A stop loss does not change it

When a signal carries more than one, the first in this table is used. Orders are rounded to the exchange's precision. If the result is below the exchange's minimum order size or minimum order value, the order is refused (7511). No size is capped at your balance: an order the balance cannot pay is refused (7510).

Symbols

TradingView symbols are matched to the exchange's spot markets: BTCUSDT becomes BTC/USDT, ETHUSDC becomes ETH/USDC, and so on. Only spot markets are traded: futures and perpetual markets are never used.

  • A symbol quoted in USD, USDT or USDC whose own pair is missing or not open for trading right now trades the same coin against another of those, trying USDT, then USDC, then USD. Binance has no BTC/USD pair, so BTCUSD trades BTC/USDT, and the Signals page says "BTCUSD traded as BTC/USDT." Currency and metal symbols work the same way: EURUSD trades EUR/USDT on Binance, and XAUUSD trades XAU/USDT where it is listed. Where the exchange lists the pair itself, such as EUR/USD, it trades as named. A coin on its own, such as SOL, is matched against USDT, USDC and USD in the same order.
  • A symbol with any other quote, such as BTCEUR, trades only as named. Where no pair fits, the signal is refused (7506).
  • A close acts on every pair the strategy holds a position on for that symbol. A pair not open for trading right now is left as it is, and the row says so (7509 when nothing else was closed).
  • A cancel is sent to every pair where the strategy has a limit buy waiting for that symbol, and the exchange decides whether it is accepted.

Symbol mappings configured for your license are applied first and always win, so you can map a TradingView symbol to a specific pair yourself.

Cloud Connections

Crypto exchanges are included in every TradeSgnl plan. Each connected exchange uses one Cloud Connection around the clock, even with no trade open, because TradeSgnl can place an order on it the moment a signal arrives. A paused exchange, or one whose key was rejected, uses none. An exchange also counts toward your plan's connection limit.

Managing connections

Expand an exchange's card to pause, resume, edit or remove it.

  • Pause stops signals from trading on the exchange right away and frees its Cloud Connection. Open positions stay as they are: stop losses resting on the exchange stay in place, but TradeSgnl stops watching their take profits and any stop loss it watches itself. A limit buy still waiting is not cancelled; if it fills while paused, it has no stop loss or take profits until you resume. The card asks before pausing an exchange with open positions or waiting limit buys. Resume picks everything back up, as long as a Cloud Connection is free.
  • Remove deletes the connection, its stored API key and its analytics history. Positions still open on it are no longer tracked, so close them first if you want the take profits handled. Nothing is cancelled on the exchange: resting stop orders and waiting limit buys stay there.
  • If the exchange rejects your key (revoked, expired, or missing permissions), the card shows Key rejected and signals are not placed on it. Remove the connection and connect it again with a new key. Stop orders already resting on the exchange stay in place.
  • If the plan behind the license ends, or trial connections stop being available on your account, the exchange is paused and TradeSgnl no longer manages its open trades: their take profits, and any stop loss TradeSgnl was watching, stop. Check them on the exchange. After you renew or subscribe, resume the exchange from its card.
  • An exchange account connects to TradeSgnl once, whoever connects it. Connecting or resuming it a second time is refused with "This exchange account is already connected to TradeSgnl. Disconnect it there first."

When an order fails, you are alerted through the same email and Telegram channels as your signal error alerts, configured under Alerts.

Where results show

Every attempt, successful or not, appears on the Signals page with the connection's name, the filled amount and the status. Refused orders show an error code and a sentence saying why. In Analytics, a connected exchange shows up as an account of its own, with its trade history and performance tracked like any other trading account.

On this page