Protection Mechanisms

All the strategies share the same protection settings as described below.

Avoid low satoshi value trading pairs

We use the min buy price to avoid picking up bad trading pairs i.e. pairs that have low volume, are brand new to the market, have low volatility.

We set min buy price to ignore low satoshi coins as follows:

# Set to ignore low satoshi coins.
DEFAULT_min_buy_price = 0.00000600


Sell Only Mode Triggers

The settings enable / disable Sell Only Mode (SOM) as follows:

Price Rise / Drop Triggers

  • Should the price of Bitcoin rise or fall by a significant amount SOM will be enabled, this will be disabled automatically once the Bitcoin prices stabilises;
# This is to protect against Bitcoin rising (aka mooning) or dropping automatically turns on/off SOM as required.
price_trigger_market = BTC
price_rise_trigger = 7
price_rise_recover_trigger = 6
price_drop_trigger = 10
price_drop_recover_trigger = 3

Consecutive Buys / Sells Triggers

  • Should the bot detect that a significant number of buys are being made without sufficient sales SOM will be enabled to avoid pump n dump scenarios;
# Protect against large market swings by turning on sell only mode.
consecutive_buy_trigger = 6
# Turn off sell only mode if we got x consecutive sells with no buys in between
consecutive_sell_trigger = 4

See here for details on what these triggers do.

The logic for the Consecutive Buys / Sells trigger settings works as follows:

  • The consecutive buy activates when there is: buy buy buy buy buy buy (no sell in between)
  • Once it is active it will start looking for: sell sell sell sell
  • But sometimes it will be looking for sell sell sell sell, but there is only one sell and buy buy buy so it stays active.
  • Once you restart the bot it's state is reset so now it is looking for buy buy buy buy buy buy again to activate, but it may find a sell in between these so it cannot reactivate SOM.

Advanced traders may choose to override these SOM protection mechanisms to suit your trading style and risk aversion level. If you wish to do so please consult the main FAQ section of the Wiki on How do I turn off Sell Only Mode?


  • A reset of a live bot does not disable consecutive SOM as this is based on your trade history.
  • A reset of a test bot will reset it. Or will when you restart or turn it off.
  • And SOMO is above everything. So nothing can turn it on or off. If you enable it manually you need to disable it manually.
  • There are a number of messages that may appear in the PBL and other logs in regards to regarding the current SOM STATE. The STATE is maintained by the bot so it does not accidentally enable or disable SOM.
  • If you are unsure what a message means the Web Interface Guide explains most of them with links to the relevant parameters.

One commonly asked question is in regards to the SOM messages that appear is:

SOM STATE UNKNOWN - this means exactly what it say that the current SOM state for this trading pair is unknown at present due to missing data from the exchange. Check your connection to the exchange is still good. You may want to increase the connection timeout setting in file if you are regularly having connection issues:

#timeout in seconds
connection.timeout = 90


Pick Pairs By Age

Pick Pairs By Age i.e. Older than XX days

  • Pair Age settings, pairs less than 15 days are excluded from purchase to avoid pump n dump scenarios;
# coin_min_age is defined in days, it is used to allow the bot to trade only with coins which are older than x days,
pair_min_listed_days = 30


Pick Pairs By Volume

Pick Pairs by 24h Volume

# Only buy coins with a minimum volume of specified amount.
DEFAULT_min_buy_volume = 1000

Please note: This will vary depending on the exchange you are on, the above setting of 1000 works fine on BINANCE but for BITTREX for example you will need to use a much lower value such as 300 as the total 24hour volume traded on BITTREX is significantly lower. In times when the market drops you may find you have to drop this even lower to say 100 to get any pairs to show in the possible buy log.

Pick Pairs By Price Change

Pick Pairs by 24 hour percentage change

# Only purchase a pair if the 24 hour percentage change is above the min price increase.
DEFAULT_buy_min_change_percentage = -10
# Only purchase a pair if the 24 hour percentage change is below the max price increase.
DEFAULT_buy_max_change_percentage = 30

Note: You may need to adjust DEFAULT_buy_min_change_percentage to suit changing market conditions, setting this to 0.01 will only pick positive pairs i.e. you wish to take advantage of a Bull Run.


The Black List

A black list of trading pairs is provided that represents Pairs that:

  1. should not be used to day trade with due to low volatility, poor performance;
  2. pairs that are delisted from exchanges and are no longer available to trade;
  3. pairs you want to HODL (Hold On for Dear Life); and
  4. pairs you may want to put on a temporary hold.
# Coin Specific Settings
# This is for the pairs you do not wish to trade, examples only below,
# you need to add your own list here. Make sure none of your enabled pairs
# above is appearing below or that pair wont trade.
BNB_trading_enabled = false
BNB_reserve_amount = 0
# Pairs delisted from the exchanges
8BIT_trading_enabled = false
ADC_trading_enabled = false
AM_trading_enabled = false
AMS_trading_enabled = false
APEX_trading_enabled = false
APX_trading_enabled = false
ARB_trading_enabled = false
BCN_trading_enabled = false
BITS_trading_enabled = false
BITZ_trading_enabled = false
BLITZ_trading_enabled = false
BLC_trading_enabled = false
BOB_trading_enabled = false
BSTY_trading_enabled = false
BTA_trading_enabled = false
BTCD_trading_enabled = false
CCN_trading_enabled = false
CHAT_trading_enabled = false
CLOAK_trading_enabled = false
CLUB_trading_enabled = false
CPC_trading_enabled = false
CRBIT_trading_enabled = false
CRYPT_trading_enabled = false
CTR_trading_enabled = false
DAR_trading_enabled = false
DGC_trading_enabled = false
DRACO_trading_enabled = false
DTC_trading_enabled = false
FAIR_trading_enabled = false
FC2_trading_enabled = false
FRK_trading_enabled = false
FSC2_trading_enabled = false
GCR_trading_enabled = false
GEMZ_trading_enabled = false
GHC_trading_enabled = false
GP_trading_enabled = false
GRT_trading_enabled = false
HKG_trading_enabled = false
HSR_trading_enabled = false
HYPER_trading_enabled = false
HZ_trading_enabled = false
ICN_trading_enabled = false
J_trading_enabled = false
KR_trading_enabled = false
LXC_trading_enabled = false
MAX_trading_enabled = false
MEC_trading_enabled = false
METAL_trading_enabled = false
MND_trading_enabled = false
MOD_trading_enabled = false
MTR_trading_enabled = false
MYST_trading_enabled = false
MZC_trading_enabled = false
NAUT_trading_enabled = false
NET_trading_enabled = false
NEU_trading_enabled = false
NTRN_trading_enabled = false
OC_trading_enabled = false
ORB_trading_enabled = false
PDC_trading_enabled = false
PKB_trading_enabled = false
PRIME_trading_enabled = false
PXI_trading_enabled = false
RBY_trading_enabled = false
ROOT_trading_enabled = false
RPX_trading_enabled = false
SAFEX_trading_enabled = false
SALT_trading_enabled = false
SCOT_trading_enabled = false
SCRT_trading_enabled = false
SFR_trading_enabled = false
SPR_trading_enabled = false
SLG_trading_enabled = false
SLING_trading_enabled = false
SNGLS_trading_enabled = false
SNRG_trading_enabled = false
SOON_trading_enabled = false
SPRTS_trading_enabled = false
SSD_trading_enabled = false
START_trading_enabled = false
STEPS_trading_enabled = false
STV_trading_enabled = false
SUB_trading_enabled = false
SWING_trading_enabled = false
TES_trading_enabled = false
TIT_trading_enabled = false
TRI_trading_enabled = false
TRIG_trading_enabled = false
TRK_trading_enabled = false
TRST_trading_enabled = false
U_trading_enabled = false
UFO_trading_enabled = false
UNIQ_trading_enabled = false
UNIT_trading_enabled = false
UNO_trading_enabled = false
UTC_trading_enabled = false
VEN_trading_enabled = false
VIOR_trading_enabled = false
VIRAL_trading_enabled = false
VPN_trading_enabled = false
VTR_trading_enabled = false
WARP_trading_enabled = false
WINGS_trading_enabled = false
XAUR_trading_enabled = false
XBB_trading_enabled = false
XC_trading_enabled = false
XCO_trading_enabled = false
XDQ_trading_enabled = false
XPY_trading_enabled = false
XVC_trading_enabled = false
XQN_trading_enabled = false
XSEED_trading_enabled = false
XTC_trading_enabled = false
YBC_trading_enabled = false
# Pairs that I wont day trade with
BITB_trading_enabled = false
CANN_trading_enabled = false
DGD_trading_enabled = false
DOGE_trading_enabled = false
DOPE_trading_enabled = false
MEME_trading_enabled = false
MER_trading_enabled = false
MTL_trading_enabled = false
POT_trading_enabled = false
POWR_trading_enabled = false
SBD_trading_enabled = false
SC_trading_enabled = false
SYNX_trading_enabled = false
TIME_trading_enabled = false
THC_trading_enabled = false
TKN_trading_enabled = false
TRUST_trading_enabled = false
AION_trading_enabled = false
AMB_trading_enabled = false
ARN_trading_enabled = false
BCHABC_trading_enabled = false
BCHSV_trading_enabled = false
BCPT_trading_enabled = false
BLZ_trading_enabled = false
BQX_trading_enabled = false
CDT_trading_enabled = false
CMT_trading_enabled = false
DASH_trading_enabled = false
DLT_trading_enabled = false
DOCK_trading_enabled = false
ENJ_trading_enabled = false
EVX_trading_enabled = false
GRS_trading_enabled = false
ICX_trading_enabled = false
LOOM_trading_enabled = false
LRC_trading_enabled = false
LSK_trading_enabled = false
MITH_trading_enabled = false
OMG_trading_enabled = false
QKC_trading_enabled = false
QTUM_trading_enabled = false
REN_trading_enabled = false
SNT_trading_enabled = false
VET_trading_enabled = false
WABI_trading_enabled = false
WAN_trading_enabled = false
WTC_trading_enabled = false
ZEC_trading_enabled = false
# Pairs on temporary ban
BCH_trading_enabled = false
BSV_trading_enabled = false
# Pairs I want to HODL
NEO_trading_enabled = false
NEO_DCA_enabled = false
ETH_trading_enabled = false
ETH_DCA_enabled = false
LTC_trading_enabled = false
LTC_DCA_enabled = false

This black list can be adjusted to suit your own personal trading pair preferences.


Trading Disabled By Default

Trading is disabled by default to enable you to:

When you have those in your settings then enable trading by setting:

DEFAULT_trading_enabled = true


The Sell Wall

When you make a trade on an exchange it goes into their Order Book. The Order Book lists all active buy and sell orders that are placed on a trading exchange. This order book data is presented on the trading screens of almost every exchange. It allows traders to get a good sense of market depth, they can see what the highest and lowest prices are for active orders, and get an overall sense of market sentiment. When you look at this data you will see large blocks of trades start to form, these are buy and sell walls.

The following diagram shows what a buy and sell wall look like on a market depth chart, this one is from the BitMex exchange:

Sell walls come about when a lot of traders place their orders for the same price point. When more significant buy & sell orders are placed, it is to be expected that other traders will put their own orders at that price point. Their orders build up at that price point creating walls of buy & sell orders. A sell wall can forces prices down, whales use this by placing large sell orders to keep prices at levels suited to their trading requirements. They take advantage of sell walls to force prices lower so that other traders will sell their current trades to them at a lower price. For this reason we have a protection mechanism to help you avoid making bad trades around sell walls as they come into existence.

# Set the depth of the orderbook to look back and identify the largest sell order.
DEFAULT_sell_wall_orderbook_depth = 50
# Set the maximum difference allowed from the average order size within the DEFAULT_sell_wall_orderbook_depth.
# If this difference is exceeded then the coin will not be bought.
DEFAULT_sell_wall_diff_percentage = 1000

If you find these defaults too strict you can adjust them to allow more depth as follows:

# Set the depth of the orderbook to look back and identify the largest sell order.
DEFAULT_sell_wall_orderbook_depth = 100
# Set the maximum difference allowed from the average order size within the DEFAULT_sell_wall_orderbook_depth.
# If this difference is exceeded then the coin will not be bought.
DEFAULT_sell_wall_diff_percentage = 5000

You can adjust the default values to suit your trading style and risk aversion levels.

  • protection_mechanisms.txt
  • Last modified: 8 weeks ago
  • by armchairguru