Bollinger Bands (TA)

Last updated 11 days ago

This page describes how margin trading on Bitmex works with the Bollinger Bands TA strategy. The triggers for trades are slightly different than in the same strategy for regular trading.

How to work with this strategy

The expected behavior for margin trading with Gunbot is that it will open one position, either long or short, and close this position when the target is reached. When the stop is hit before profitably closing a trade, Gunbot will place a stop order at loss. After closing a position, Gunbot will again look to open a new long or short position. Gunbot will not add to existing open positions.

Please don't manually add to or reduce positions opened by Gunbot, unless you stop running Gunbot on this trading pair until you've closed this position.

The examples below show how the basic triggers for BBTA work. Additionally, you can use confirming indicators and settings like ROE trailing.

Long

  • A long position is opened when the ask price crosses over LOW_BB. In the example above LOW_BB would be set to 0, which represents the actual lower Bollinger Band. With different values you could set a target above (positive value) or below (negative value) the lower band.

  • Position is closed when the desired ROE (return on equity) is reached. This is a percentage from the entry point, not taking leverage into consideration. Regardless what leverage is used, 1% price difference from your entry equals ROE: 1.

  • A position is closed at loss when STOP_LIMIT is reached. This is a percentage from the entry point in the opposite direction of your profit target, not taking leverage into consideration. Regardless what leverage is used, 1% price difference from your entry equals STOP_LIMIT: 1.

Short

  • A short position is opened when the bid price crosses below HIGH_BB. In the example above HIGH_BB would be set to 0, which represents the actual upper Bollinger Band. With different values you could set a target below (positive value) or above (negative value) the upper band.

  • Position is closed when the desired ROE (return on equity) is reached. This is a percentage from the entry point, not taking leverage into consideration. Regardless what leverage is used, 1% price difference from your entry equals ROE: 1.

  • A position is closed at loss when STOP_LIMIT is reached. This is a percentage from the entry point in the opposite direction of your profit target, not taking leverage into consideration. Regardless what leverage is used, 1% price difference from your entry equals STOP_LIMIT: 1.

Strategy parameters

Following settings options are available for BBTA and can be set in the strategy configurator of the GUI or the strategies section of the config.js file.

These settings are global and apply to all pairs running this strategy. When you want a specific parameter to be different for one or more pairs, use an override at the pair level.

Using the BUY_METHOD and SELL_METHOD parameters you can combine different methods for buying and selling. This strategy page assumes both BUY_METHOD and SELL_METHOD are set to BBTA. Accepted values are all strategy names as listed here.

Margin settings

Margin settings control settings like leverage and the target for ROE. These parameters are relevant when using BBTA as buy and/or sell method.

ROE

Description
Values
Order types
Name

This sets the target for closing a position.

ROE is measured as a percentage from the opening rate of a position, leverage and fees are not taken into consideration.

Values: numerical – represent a percentage.

Default value: 1

Affects

Does not affect

Close

RT buy

RT buyback

RT sell

Close

Stop limit

Strategy buy

Strategy sell

DCA buy

Parameter name in config.js: ROE

Leverage

Description
Values
Order types
Name

Sets the leverage for opening any position. Setting 0 places the order with cross margin.

Values: numerical

Default value: 0

Affects

Does not affect

Strategy buy

RT buy

Strategy sell

RT buyback

RT sell

Close

Stop limit

Close

DCA buy

Parameter name in config.js: LEVERAGE

Stop Buy

Description
Values
Order types
Name

Places a market stop order for a long position, at the same time as the position is opened.

When set to 1 and a long order is opened at a price of 100, a stop market order will be placed at 99.

Values: numerical - represents a percentage.

Default value: 0

Affects

Does not affect

Strategy buy

RT buy

RT buyback

RT sell

Close

Stop limit

Close

Strategy sell

DCA buy

Parameter name in config.js: STOP_BUY

Stop Sell

Description
Values
Order types
Name

Places a market stop order for a short position, at the same time as the position is opened.

When set to 1 and a short order is opened at a price of 100, a stop market order will be placed at 101.

Values: numerical - represents a percentage.

Default value: 0

Affects

Does not affect

Strategy sell

RT buy

RT buyback

RT sell

Close

Stop limit

Close

Strategy buy

DCA buy

Parameter name in config.js: STOP_SELL

ROE Trailing

Description
Values
Order types
Name

Use this to enable tssl-style trailing for ROE.

Values: true or false

Default value: false

Affects

Does not affect

Close

RT buy

RT buyback

RT sell

Strategy sell

Stop limit

Close

Strategy buy

DCA buy

Parameter name in config.js: ROE_TRAILING

ROE Limit

Description
Values
Order types
Name

This sets the range for ROE trailing.

Setting a range of 5% at a ROE target of 1 would set an initial range between 0.95 and 1.05.

As long as ROE keeps increasing, the range moves along with ROE. As soon as ROE start decreasing, the lower range gets frozen. A close order is placed when ROE crosses the lower limit.

Values: numerical – represent a percentage of ROE.

Default value: 1

Affects

Does not affect

Close

RT buy

RT buyback

RT sell

Strategy sell

Stop limit

Close

Strategy buy

DCA buy

Parameter name in config.js: ROE_LIMIT

Pre Order

Description
Values
Order types
Name

When set to true, limit orders will placed at a configurable rate beyond the best bid/ask price to get ahead of the order book.

Values: true or false

Default value: false

Affects

Does not affect

Close

RT buy

Strategy sell

RT buyback

Strategy buy

RT sell

Stop limit

DCA buy

Parameter name in config.js: PRE_ORDER

Pre Order Gap

Description
Values
Order types
Name

Sets the gap between the best bid/ask price in the orderbook and the rate at which a limit order gets placed. Long orders are placed at ask + gap. Short orders are placed at bid - gap.

It is possible to use negative values, this will increase the chance of receiving maker fees.

Example when set to 1 and a buy signal occurs at an ask price of 100: a limit order gets placed at a rate of 101. When set to -1 and a buy signal occurs at an ask price of 100: a limit order gets placed at a rate of 99.

Values: numerical - represents a percentage.

Default value: 0

Affects

Does not affect

Strategy sell

RT buy

Strategy buy

RT buyback

RT sell

Stop limit

DCA buy

Close

Parameter name in config.js: PRE_ORDER_GAP

Buy settings

Buy settings are the primary trigger for opening long positions. These parameters control the execution of buy orders when using BBTA as buy method.

Buy enabled

Description
Values
Order types
Name

Set this to false to prevent Gunbot from placing buy orders.

Values: true or false

Default value: true

Affects

Does not affect

Strategy buy

Strategy sell

DCA buy

Stop limit

RT buy

Close

RT buyback

RT sell

Parameter name in config.js: BUY_ENABLED

NBA

Description
Values
Order types
Name

"Never Buy Above". Use this to only allow buy orders below the last sell rate.

This sets the minimum percentage difference between the last sell order and the next buy. The default setting of 0 disables this option.

When set to 1, Gunbot will only place a buy order when the strategy buy criteria meet and price is at least 1% below the last sell price.

Values: numerical, represents a percentage.

Default value: 0

Affects

Does not affect

Strategy buy

Strategy sell

Stop limit

Close

RT sell

DCA buy

RT buy

RT buyback

Parameter name in config.js: NBA

Sell settings

Sell settings are the primary trigger for opening short positions. These parameters control the execution of sell orders when using BBTA as sell method.

Sell enabled

Description
Values
Order types
Name

Set this to false to prevent Gunbot from placing sell orders.

Values: true or false

Default value: true

Affects

Does not affect

Strategy sell

Strategy buy

Stop limit

RT buy

RT sell

RT buyback

Close

DCA buy

Parameter name in config.js: SELL_ENABLED

Indicator settings

Relevant indicators for trading with BBTA.

These settings have a direct effect on trading with BBTA, this is where you configure how Bollinger Bands are calculated and at which distance from them orders should be placed.

Period

Description
Values
Order types
Name

This sets the candlestick period used for trading, this affects all indicators within the strategy.

Only use supported values.

Setting a short period allows you to trade on shorter trends, but be aware that these will be noisier than longer periods.

Values: numerical– represents candlestick size in minutes.

Default value: 15

Affects

Does not affect

Strategy sell

RT buy

Strategy buy

RT buyback

RT sell

Close

Stop limit

DCA buy

Parameter name in config.js: PERIOD

Low BB

Description
Values
Order types
Name

This sets the target for buying. Negative values are allowed.

The bot will buy when price hits the set percentage from the lower Bollinger Band and the price is below the entry point as defined by BUY_LEVEL.

When set to 0, the lower Bollinger Band is the target. When set to 30, the target is 30% above the lower Bollinger Band - the upper band is at 100% from the lower band.

Values: numerical – represent a percentage.

Default value: 0

Affects

Does not affect

Strategy buy

RT buy

RT buyback

RT sell

Close

Stop limit

Strategy sell

DCA buy

Parameter name in config.js: LOW_BB

High BB

Description
Values
Order types
Name

This sets the target for selling. Negative values are allowed.

The bot will sell when price hits the set percentage from the upper Bollinger Band and GAIN is reached.

When set to 0, the upper Bollinger Band is the target (well, almost). When set to 30, the target is 30% under the upper Bollinger Band - the lower band is at 100% from the upper band.

Values: numerical – represent a percentage.

Default value: 0

Affects

Does not affect

Strategy sell

RT buy

DCA buy (when using HIGHBB option for DCA)

RT buyback

RT sell

Close

Stop limit

Strategy buy

Parameter name in config.js: HIGH_BB

SMA Period

Description
Values
Order types
Name

This defines the number of periods used for calculating Bollinger Bands.

Values: numerical – represents a number of candlesticks.

Default value: 50

Affects

Does not affect

Strategy sell

RT buy

Strategy buy

RT buyback

DCA buy (when using HIGHBB option for DCA)

RT sell

Close

Stop limit

Parameter name in config.js: SMAPERIOD

Standard Deviation

Description
Values
Order types
Name

This value defines the multiplier used for calculating Bollinger Bands.

Values: numerical (recommended: between 1.9 and 2.1) - represents a multiplier value used in the bollinger bands calculation.

Default value: 2

Affects

Does not affect

Strategy sell

RT buy

Strategy buy

RT buyback

DCA buy (when using HIGHBB option for DCA)

RT sell

Close

Stop limit

Parameter name in config.js: STDV

Slow EMA

Description
Values
Order types
Name

Set this to the amount of candlesticks you want to use for your slow EMA. The closing price for each candle is used in the slow EMA calculation.

For example: when you set PERIOD to 5, and want to use 2h for slow EMA – you need to set EMA1 to 24 (24 * 5 mins).

Values: numerical – represents a number of candlesticks.

Default value: 16

Affects

Does not affect

Strategy buy

RT buy

RT buyback

RT sell

Close

Stop limit

Strategy sell

DCA buy

Parameter name in config.js: EMA1

Fast EMA

Description
Values
Order types
Name

Set this to the amount of candlesticks you want to use for your fast EMA. The closing price for each candle is used in the fast EMA calculation.

For example: when you set PERIOD to 5, and want to use 1h for fast EMA – you need to set EMA2 to 12 (12 * 5 mins).

Values: numerical – represents a number of candlesticks.

Default value: 8

Affects

Does not affect

Strategy buy

RT buy

RT buyback

RT sell

Close

Stop limit

Strategy sell

DCA buy

Parameter name in config.js: EMA2

Balance settings

Confirming indicators + advanced indicator settings

Misc settings

Dollar cost avg settings

DCA is not intented to be used for margin trading.

Reversal trading settings

RT is not intented to be used for margin trading.

TrailMe settings

TrailMe is not intended to be used with this strategy.

Placeholders

The following parameters in config.js have no function for this strategy and act as placeholder.

Parameter

Description

ATRX

Placeholder.

ATR_PERIOD

Placeholder.

BUYLVL1

Placeholder.

BUYLVL2

Placeholder.

BUYLVL3

Placeholder.

BUYLVL

Placeholder.

BUY_LEVEL

Placeholder.

BUY_RANGE

Placeholder.

DISPLACEMENT

Placeholder.

DOUBLE_CHECK_GAIN

Placeholder.

FAST_SMA

Placeholder.

GAIN

Placeholder.

ICHIMOKU_PROTECTION

Placeholder.

KIJUN_BUY

Placeholder.

KIJUN_CLOSE

Placeholder.

KIJUN_PERIOD

Placeholder.

KIJUN_SELL

Placeholder.

KIJUN_STOP

Placeholder.

KUMO_BUY

Placeholder.

KUMO_CLOSE

Placeholder.

KUMO_SELL

Placeholder.

KUMO_SENTIMENTS

Placeholder.

KUMO_STOP

Placeholder.

LONG_LEVEL

Placeholder.

MACD_LONG

Placeholder.

MACD_SHORT

Placeholder.

MACD_SIGNAL

Placeholder.

MEAN_REVERSION

Placeholder.

PP_BUY

Placeholder.

PP_SELL

Placeholder.

RENKO_ATR

Placeholder.

RENKO_BRICK_SIZE

Placeholder.

RENKO_PERIOD

Placeholder.

SELLLVL1

Placeholder.

SELLLVL2

Placeholder.

SELLLVL3

Placeholder.

SELLLVL

Placeholder.

SELL_RANGE

Placeholder.

SENKOUSPAN_PERIOD

Placeholder.

SHORT_LEVEL

Placeholder.

SLOW_SMA

Placeholder.

TAKE_BUY

Placeholder.

TBUY_RANGE

Placeholder.

TENKAN_BUY

Placeholder.

TENKAN_CLOSE

Placeholder.

TENKAN_PERIOD

Placeholder.

TENKAN_SELL

Placeholder.

TENKAN_STOP

Placeholder.

TP_PROFIT_ONLY

Placeholder.

TP_RANGE

Placeholder.

TSSL_TARGET_ONLY

Placeholder.

USE_RENKO

Placeholder.