Skip to main content

TradingView Alerts

With the Gunbot TradingView add-on you can execute trading alerts sent from custom strategies at Tradingview, completely managing your strategy at TradingView. Gunbot receives trade signals by e-mail and trades accordingly.

This add-on can also be used for executing trades from arbitrary email alerts, TradingView is not strictly required.


tip

This is a paid add-on, availability depends on your license type.


Initial setup#

Before you start setting up your alerts, you need:

  • The IMAP data for the email address you receive alerts from TradingView on.
  • A Pro subscription at tradingview.com (works with trial too). Free accounts are limited to one alert.

Alert message contents#

The alerts have to be in the following format in order for Gunbot to act on them. Alerts follow the same standardized pair syntax that also apply for normal Gunbot usage, the alert text must be in the subject line of an email.

Trading limits can only be specifically defined in buy/long alerts, for other alerts or alerts without specified amounts, the limits as set in your TradingView settings apply.

It's recommended to enabled the "email-to-SMS" option on tradingview.com, which sends a plain text email instead of an html formatted message.

Replace EXCHANGE with the name of your exchange.

For spot exchanges#

Alert messageAction
BUY_EXCHANGE_BTC-ETHBuy ETH using BTC
BUY_EXCHANGE_BTC-ETH_0.1Buy ETH using BTC with a trading limit of 0.1 BTC
SELL_EXCHANGE_USDT-BTC

Sell BTC for USDT

  • Normal situation: full balance is sold
  • When usingTV_PYRAMID, the amount is defined byTV_TRADING_LIMIT_SELL
  • When using MULTIPLE BASE, the amount is the same as the last buy order made by the bot on the same trading pair
STOPLOSS_EXCHANGE_BTC-ETHSell ETH for BTC if stoploss is triggered
BUY_EXCHANGE_USDT-BTC_amount_rate

Buy BTC using USDT for a specified amount in USDT

at a specified rate. Requires TV market orders to be disabled

BUY_EXCHANGE_BTC-ETH_0_rate

Buy ETH using BTC for "TV trading limit buy",

at a specified rate.

Requires TV market orders to be disabled.

For futures / margin exchanges#

Alert messageAction
LONG_EXCHANGE_XBT-USDLong order for XBT-USD
SHORT_EXCHANGE_XBT-USD_amountShort order for XBT-USD with a specified trading limit
LONG_EXCHANGE_XBT-USD_amountLong order for XBT-USD with a specified trading limit
LONG_EXCHANGE_XBT-USD_amount_rate

Long order for XBT-USD with a specified

trading limit and rate.

Requires TV market orders to be disabled.

SHORT_EXCHANGE_XBT-USD_0_rate

Short order for XBT-USD without

a specified trading limit and with a specified rate.

Requires TV market orders to be disabled.

CLOSE_EXCHANGE_USDT-LTCClose a margin position (made for bitmex, not supported on every exchange)
CLOSELONG_EXCHANGE_XBT-USDClose a long position (made for bitmex, not supported on every exchange)
CLOSESHORT_EXCHANGE_XBT-USDClose a short position (made for bitmex, not supported on every exchange)
tip
  • Orders in the opposite direction of a position can be used to (partially) close positions
  • Want to flip between long and short? Open one position manually, then send long and short alerts at 2x that position size to keep flipping from long to short or vice versa.

Note about trading limits#

On futures exchanges settings related to trading limits for margin trading should be specified in contracts.

On binanceFutures amounts are specified in quote: on USDT-BTC a trading limit of 1 represents 1 BTC order value.

On all other supported margin exchanges, every setting related to margin trading limits must be specified in amounts of quote currency.


tip

To test alerts on Bitmex Testnet, you should write the alerts like this: LONG_BITMEXTESTNET_XBT-USD


Change strategy by alert#

You can use alerts to change the strategy of any valid pair that's already in your config.

This alert type can also be used to (indirectly) add pairs to Gunbot, using an AutoConfig job.

Alert messageAction
STRAT_BITMEX_XBT-USD_yourstratnameAssigns strategy yourstratname to XBT-USD

TradingView settings#

To run Gunbot with the TradingView add-on, the following are the only relevant settings. Normal Gunbot strategy and pair settings are not relevant and not used unless TV_GB is enabled.

Open the settings by going to โ‹ฎ > TradingView Alerts > Alert execution

Trading limits for buy orders are set in the configuration settings, optionally you can override these by specifying the trading limit in the alert message contents.

Orders placed by the TradingView add-on are placed by default as market orders to ensure they will get filled. Optionally, you can let it send limit orders as well.

tip

Be sure to add one pair for any exchange you want to execute alerts on.

This can be any pair, it will not be used by the add-on.

Gain#

Set a minimum gain in % that trades initiated by TradingView must comply to when TV_PROTECTION is enabled.

When TradingView sell alerts are sent that would have a lower gain than this value, Gunbot will not place the order. Use this to prevent selling at loss.

warning

Only works for spot trading.

Values: numerical, represents a percentage.

Default value: 0.6

Parameter name in config.js: TV_GAIN


Market orders#

By default, orders are sent as market orders.

When you want to send limit orders instead, disable this option. Buy orders are then sent at a limit price of the best bid order in the order book, sell orders are placed at the rate of the best ask price.

Values: true or false

Default value: true

Parameter name in config.js: TV_MARKET_ORDERS


Trading Limit Buy#

This value defines the trading limit for each buy order placed through the add-on.

The default value of 0.002 would place orders of 0.002 BTC when used on a BTC-x pair.

When not using TV_PYRAMID, a sell alert will place a sell order for the full quote balance held.

tip

Bitmex: enter the desired number of contracts

Other margin exchanges: enter an amount in quote currency

Values: numerical โ€“ represents an amount in base currency.

Default value: 0.002

Parameter name in config.js: TV_TRADING_LIMIT_BUY


Trading Limit Buy Pyramid#

This value defines the trading limit for each pyramid buy order placed through the add-on.

The default value of 0.002 would place orders of 0.002 BTC when used on a BTC-x pair.

tip

Bitmex: enter the desired number of contracts

Other margin exchanges: enter an amount in quote currency

Values: numerical โ€“ represents an amount in base currency.

Default value: 0.002

Parameter name in config.js: TV_TRADING_LIMIT_BUY_PYRAMID


Pyramid#

Setting this to true enables pyramid trading, the amount for each pyramid order is defined by TV_TRADING_LIMIT_SELL or TV_TRADING_LIMIT_BUY_PYRAMID.

Values: true or false

Default value: false

Parameter name in config.js: TV_PYRAMID


Trading Limit Sell#

This value defines the trading limit for sell orders when TV_PYRAMID is enabled.

The default value of 0.002 would place orders of 0.002 BTC when used on a BTC-x pair.

tip

Bitmex: enter the desired number of contracts

Other margin exchanges: enter an amount in quote currency

Values: numerical โ€“ represents an amount in base currency.

Default value: 0.002

Parameter name in config.js: TV_TRADING_LIMIT_SELL


Protection#

When set to true Gunbot will check if there is an overall profit before selling, as specified in TV_GAIN.

When set to false, Gunbot will execute all TradingView alerts without interfering with a custom strategy.

{% hint style="warning" %} Only works for spot trading. :::

Values: true or false

Default value: false

Parameter name in config.js: TV_PROTECTION


Close all#

When enabled, an entire position will be closed upon receiving a close command - even if the position is bigger than the set trading limits.

{% hint style="warning" %} Only works for margin trading. :::

Values: numerical โ€“ represents an amount in base currency.

Default value: false

Parameter name in config.js: TV_CLOSE_ALL


Trading Limit Cap#

The maximum amount of base currency to be invested in a pair.

{% hint style="warning" %} Only works for spot trading and on :::

Values: numerical โ€“ represents an amount in base currency.

Default value: 0.0001

Parameter name in config.js: TV_TRADING_LIMIT_CAP


Stoploss Percentage#

Percentage below average bought price at which a sell signal should override TV_PROTECTION and sell in a stop-loss manner.

Values: numerical โ€“ represents a percentage.

Default value: 60

Parameter name in config.js: TV_STOPLOSS_PERCENTAGE


Trading Limit All-In#

When set to true, each buy order will use all available base currency balance.

Values: true or false

Default value: false

Parameter name in config.js: TV_TRADING_LIMIT_ALLIN


Retry Order#

Enable this when you have problems receiving multiple alerts.

Gunbot will retry processing orders for 15 minutes.

Values: true or false

Default value: false

Parameter name in config.js: RETRY_TV_ORDER


TV MVTS#

Sets a threshold for sell orders, If you own less than the set amount, sell orders will not be placed and the bot goes into buying mode again.

Values: numerical โ€“ represents the total value of a coins holdings in base currency.

Default value: 0.001

Parameter name in config.js: TV_MVTS


TV GB#

Enable this to run Gunbot strategies simultaneously with the TradingView add-on. This way buying and selling with Gunbot strategies or TradingView alerts can be mixed.

The IMAP listener needs to be enabled to use this option.

Values: true or false

Default value: false

Parameter name in config.js: TV_GB


TV Leverage#

For margin trading only. Sets the leverage for opening any position. Setting 0 places the order with cross margin, if your exchange supports cross leverage.

Only use values supported by your exchange.

tip

On some exchanges it may be needed to manually set leverage on the exchange itself. Always test if this works as expected.

Values: numerical โ€“ between 0 and 100

Default value: 0

Parameter name in config.js: TV_LEVERAGE


TV Lending#

Sets the maximum acceptable lending rate when opening a position.

The default setting of 0.02 stands for 2% interest per day.

tip

Only works on Poloniex.

Values: numerical

Default value: 0.02

Parameter name in config.js: TV_LENDING