A SOM Story

All cryptocurrencies get valued against a base trading pair. Price rises or falls in the base trading pair can cause these other coins value to rise or fall significantly. The base trading pair is defined in the price_trigger_market setting.

ProfitTrailer will watch the base trading pair to determine if there is a significant increase or decrease in the value of that coin. The length of time the bot will look back at is 24 hours by default but SOM_trigger_length can be configured to change the number of 5 minute candles to look back. The bot will go into Sell Only Mode if the price change meets the below triggers. This is useful to protect against large market swings if a big price swing changes the market dynamics.

During times of high or low volatility the number of buys and sells may also vary significantly so ProfitTrailer also monitors these to determine if it needs to enable Sell Only Mode.

The Sell only Mode triggers are optional settings used to control risk with the bot. Set these carefully if you wish to control when the bot buys.

When SOM is enabled mo more purchases will be made. The bot will however continue to make sales.

Sell Only Mode (SOM) can be automatically turned on when the triggers in pairs_config are tripped by a rising or falling market, or by consecutive buys.

The below explanations all assume price_trigger_market = BTC

The Sell Only Mode (SOM) settings are enabled / disabled automatically as follows:

Scenario 1 - Market Rising in Price

Price Rise Triggers

  • Should the price of your base pair defined in the Price Trigger Market rise by a significant amount SOM will be enabled
  • SOM will be disabled automatically once the Bitcoin prices stabilises
# This is to protect against Bitcoin rising (aka mooning) automatically turns on/off SOM as required.
price_rise_trigger = 7
price_rise_recover_trigger = 6

See here for details on what these triggers do.


Scenario 2 - Market Falling in Price

Price Drop Triggers

  • Should the price of your base pair defined in the Price Trigger Market fall by a significant amount SOM will be enabled
  • SOM will be disabled automatically once the Bitcoin prices stabilises;
# This is to protect against Bitcoin dropping in price it automatically turns on/off SOM as required.
price_drop_trigger = 10
price_drop_recover_trigger = 3

See here for details on what these triggers do.


Scenario 3 - Market going sideways

When the market is going sideways and the base trading pair is range bound you may choose to enable SOM so that you do not buy further coins until a definite trend is established up or down. This prevents buying into large downward trend changes i.e. falling knives.


Scenario 4 - Too many consecutive Buys and Sells

Consecutive Buys/Sells Trigger

  • 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 this trigger does.

Using the example settings above the logic for the Consecutive Buy trigger setting 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.


Scenario 5 - SOM triggered want to Turn Off SOM

Advanced traders may choose to override these SOM protection mechanisms to suit your trading style and risk aversion level.

Should you wish to do so:

1) Determine why the SOM is triggered by holding the mouse over the SOM indicator in the browser window and read the message that pops up. This will guide you to which trigger to adjust.

2). Change the trigger value. For example if the price_rise_trigger has tripped, and the current market has gone up 5%, and your trigger is set for 4%, you would need to change your trigger to more than 5% and also change the recover trigger, price_rise_recover_trigger in this case, to more than 5%.

3). Save the file. The bot should now recover from SOM. If not, you may need to restart the bot or force SOM off (4)

4). Alternatively, If you don't want to permanently change your trigger settings you have these options:

  • The options below only work if you have set a password for your GUI!
  • Manual FORCE override

You can also use the SOMO Override located within the settings cog > settings tab > SOMO dropdown selector.

  • Disabled - SOMO Off, SOM will continue to work automatically according to settings.
  • FORCED ON - SOM will be forced ON and will stay on until SOMO is disabled or forced off.
  • FORCED OFF - SOM will be forced OFF and not allowed to activate unless SOMO is disabled or forced on.


  • 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.


Scenario 6 - SOM state unknown

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.

The bot is unable to determine if it should be in SOM or not. Ensure your SOM_trigger_length and Sell only mode settings are not blank (set to 0 to disable).

Check your connection to the exchange is still good. Restarting the bot may resolve this if it is a connection issue.

You may also want to increase the connection timeout setting in application.properties file if you are regularly having connection issues:

#timeout in seconds
connection.timeout = 90


  • a_som_story.txt
  • Last modified: 11 days ago
  • by cryptocoyn