Reversal Trading

Reversal trading (RT) is a Gunbot technique to keep on trading profitably when prices move downwards after an asset has been purchased.

The principle is to use the already invested amount of base currency to accumulate more units of the quote currency while prices are moving downwards. When prices eventually rise again, the -then bigger- bag can be sold for profit at a lower price point than without reversal trading.

Trading fees paid while in reversal trading are all accounted for.


How it works

Reversal trading starts when the current price is a set percentage lower than the average bought price (or last bought price, when using RT together with DU), this is defined with?RT_SELL_BUYDOWN. The initial bag gets sold for base currency (RT_SELL) and the invested amount is reserved for buying back more units when prices drop further. When the price then drops by a percentage defined with?RT_BUY_BUYDOWN, quote currency gets bought (RT_BUY). You now own more quote currency than you initially bought, at a lower price per unit.

This process will repeat when prices keep dropping, enabling you to keep accumulating quote currency without investing additional assets. Required funds are locked for the pair in reversal trading, and can’t be used by other pairs.

When prices rise again, your normal trading strategy will sell the assets for profit.

In case prices recover before?RT_BUY_BUYDOWN?is reached, the initial bag will be bought back to continue normal trading (RT_BUYBACK).

Optionally, the?AIRDROP?feature allows you to cash out accumulated quote assets in base currency. This takes place when the difference between the initial bag and the current bag size is bigger than?MIN_VOLUME_TO_SELL. Reversal trading then continues with the initial amount of quote currency bought.


  • Do not activate reversal trading on existing bags that are already down a lot! The decision to run reversal trading or not should best be made before you start trading a pair, this way the process can kick in timely.
  • Reversal trading math is done based on your trading history, if your last sell order was at loss (and not caused by stop limit), reversal trading would immediately start when you enable it. To prevent unwanted reversal trading, make sure to either have a profitable last sell order or to have set?IGNORE_TRADES_BEFORE?at a time after your last sell order at loss. Alternatively, you can set a maximum price difference between current price and average bought price with?RT_MAXBAG_PROTECTION, to prevent RT from starting on pairs that already lost a lot of value.
  • When a buyback occurs during reveral trading, slightly more base currency gets invested.

RT flowchart


Relevant settings

Following settings options are available for reversal trading. Reversal trading is available in most Gunbot strategies.

ParameterDefault valueDescription
RT_ENABLEDfalseValues: true or false.?When set to true and prices drop, reversal trading will try to use the assets originally invested in your bag to accumulate a bigger bag, which can be sold for profit earlier than the original bag. When double up is enabled, RT will start when?DU_CAP_COUNT?is reached.
RT_SELL_BUYDOWN1Values: numerical – represents a percentage.?Defines the percentage drop after initial buy or RT_BUY to trigger RT_SELL. Make sure to set this higher then the spread between bid and ask to prevent unwanted buybacks.
RT_BUY_BUYDOWN2Values: numerical – represents a percentage.?This defines the percentage the price has to drop after RT_SELL to trigger RT_BUY.
AIRDROPfalseValues: true or false.?Set this to true to enable airdrop and automatically cash out accumulated quote currency during reversal trading. The initial bag size will be kept, surplus bigger than?MIN_VOLUME_TO_SELL?will be airdropped.
RT_MAXBAG_PROTECTION10Values: numerical – represents a percentage.?Sets the maximum difference between the average bought price and current price for starting RT. When the difference is bigger, RT won’t start. This is used as a protection against starting reversal trading on bags that already dropped too much for the process to work effectively.
IGNORE_TRADES_BEFORE0Values: unix timestamp in milliseconds (in GMT)?Optional parameter to force reversal trading to ignore trades before a set time. Use? convert human readable time in GMT to unix timestamps in milliseconds.