Strategy Docs

This is a full list of all strategies that WolfBot supports.

Configuration options which are present in many or all strategies:

  • order: The order to execute. Can be: buy|sell|closeLong|closeShort
  • pair: Enter the currency pair you want to trade with this strategy. For example: USD_BTC, BTC_ETC,...
  • candleSize: The candle size in minutes this strategy will use for technical analysis and other indicators that depend on candles.
  • tradeStrategy: The name of the strategy to execute buy/sell orders. Useful to only buy/sell based on 2nd strategy data (for example forwarding the buy order from a strategy with 12h candles to a RSI strategy with 15min candles to execute the trade on RSI oversold...). This strategy must be added to your config too.
  • orderStrategy: More advanced alternative to the 'tradeStrategy' setting. If used, this strategy will pass a TriggerOrderCommand to the 'orderStrategy' (instead of just reacting to the buy/sell signal). See the docs of TriggerOrderCommand and the TriggerOrder strategy for details. This strategy must be added to your config too.
  • fallback: Enable this to use this strategy as a fallback strategy only. This means that it will only execute buy/sell orders if there is already an open position. Closing existing position will be completely disabled (i.e. done by the main strategy).
  • enableLog: Print all strategy actions to the log of the bot.
  • percentDecrease: Decrease the minimum interest rate of your loans by this percentage every hour if not all of your funds have been taken as loans.
  • currency: Enter the currency (USD, BTC, ETH,...) of which you want to place loans.
  • tradingFees: Set the maker/taker trading fees for the exchanges you want to do arbitrage on. This information is used by WolfBot before executing arbitrage trades to ensure that the arbitrage opportunity is profitable.
  • tradingFeeDefault: The default trading fee to use if the exchange is not listed in the 'tradingFees' setting.
  • N: optional, default 20 - The time period for MA of BollingerBands.
  • K: optional, default 2 - The factor for upper/lower band of BollingerBands.
  • MAType: optional, default 0 (SMA) - The moving average type of BollingerBands.
  • notifyBeforeStopSec: optional, default 0 - Send a notification (for example to the smartphone) x seconds before the stop executes. A value of 0 means disabled.
  • time: optional, default 0 seconds - After the stop price is reached start a countdown of x seconds before closing the position. The countdown gets reset if the price moves above the stop price before the counter reaches 0 seconds.

Strategy specific configuration options for all trading strategies:

  • NOOP:
    • This strategy does nothing. It is just a sample and placeholder.
    • sample: Change the 'sample' strategy property.
  • PlanRunner:
    • Strategy that emits buy/sell signal based on your configured steps in config. Steps to take action are price points, support and resistance lines,... What makes this strategy powerful is the ability to combine it with any other strategy (including technical indicators). So you can for example configure it to: 'Buy if BitCoin price falls below 6.000 USD and the 1h RSI is below 30 (and the 2h MACD momentum is increasing and...)'
    • orders:
      • An array of orders that shall be executed if their conditions are met
      • action: The action to execute. Can be: buy|sell|closeLong|closeShort
      • comp: Execute the action if the price is above or below the configured rate? Use: <|>
      • rate: The rate when to execute the the defined action.
      • expirationPercent: optional, default 3% - Expire orders after they move away x% from the set rate.
      • position: optional, default 'none' - The position the strategy has to be in for the order to be executed.
      • volume: optional, default 0 - The min volume of the last candle for the trade to be executed.
      • volumeCandleSize: optional, default 60 min - The trade period in minutes for 'volume'.
      • ticks: optional, default 0 - The number of candle ticks to wait before executing the order. 0 = execute immediately
      • reason: optional - The reason for this trade. Used for logging and notifications only.
      • indicators: optional, default no indicators - Define a list of additional indicators that must be met for the order to be executed. Indicator config has to be added separately just like any other strategy (any strategy that emits buy/sell signals can be used). Only checked once if the signal from ALL specified indicators matches (on the last tick before execution).
    • waitRepeatingTradeMin: optional, default 600 min. Wait x minutes before executing the same order again (in case the market moves rapidly).
  • BollingerBands:
    • Strategy that emits buy/sell based on the Bollinger Bands indicator. Our assumption is that the price will always jump between the upper and lower band (as in a sideways market). Consequently, at the upper we sell and at the lower band we buy. If the price stays at the upper/lower band for 'breakout' candles, we assume this breakout will continue.
    • breakout: optional, default 0 - The number of candles the price has to stay at the upper/lower band to assume a breakout.
    • percentBThreshold: optional, default 0.01 - A number indicating how close to %b the price has to be to consider it 'reached'.
  • BollingerBouncer:
    • Strategy that sells on the upper Bollinger Band and buys on the lower band. Our assumption is that the price will always jump between the upper and lower band (as in a sideways market). This strategy only trades within the value area of the volume profile, which is when price is within the range where 70% of trades take place using default settings. Additionally the current candle volume must be 'minVolumeSpike' above average (SMA) of the latest 'interval' candles. This strategy waits with the market entry until 'waitEntrySec' has passed and keeps track of the last buy/sell prices to ensure it doesn't trade a a loss in prolonged sideways markets.
      See PingPing strategy for a simpler version which doesn't keep track of the last buy/sell prices.
    • interval: optional, default 48. The number of candles to compute the volume profile and average volume from.
    • volumeRows: optional default 24. The number of equally-sized price zones the price range is divided into.
    • valueAreaPercent: optional, default 70%. The percentage of the total volume that shall make up the value area, meaning the price range where x% of the trades happen.
    • waitEntrySec: optional, default 300. How many seconds price has to stay at or outside the Bollinger Bands before opening a trade.
    • clearTradeTicks: optional, default 8. After how many candles a previous buy/sell trade shall be removed, allowing to trade at a possibly worse price again.
    • minVolumeSpike: optional, default 1.1. The min volume compared to the average volume of the last 'interval' candles to open a position.
    • percentBThreshold: optional, default 0.01 - A number indicating how close to %b the price has to be to consider it 'reached'.
    • trailingStopPerc: optional, default 0.05% ( 0 = disabled) - The trailing stop percentage that will be placed after the opposite Bollinger Band has been reached.
  • BollingerBreakouts:
    • Strategy that emits buy/sell based on the Bollinger Bands indicator. Our assumption is that the price will always jump between the upper and lower band (as in a sideways market). Consequently, at the upper we sell and at the lower band we buy. If the price stays at the upper/lower band for 'breakout' candles, we assume this breakout will continue. Additionally we use the Aroon indicator to assume a breakout if up/down is at 100. In that case we wait (don't trade based on Bollinger) and trade based on Aroon if it stays at 100 for 'breakout' candles.
    • breakout: optional, default 0 - The number of candles the price has to stay at the upper/lower band to assume a breakout.
    • percentBThreshold: optional, default 0.01 - A number indicating how close to %b the price has to be to consider it 'reached'.
    • interval: optional, default 25 - The number of Aroon candles to compute the Aroon trend from.
    • aroonHigh: optional, default 96 - The value 'Aroon Up' must have to be considered high.
    • aroonLow: optional, default 50 - The value 'Aroon Down' must have to be considered low.
  • BollingerDayTrader:
    • Strategy that looks at MACD histogram (or EMA) to check if we are in an up or down trend. It will then open a position when we cross the Bollinger middle line and keep it open until we cross the middle line again (or the opposite line as a more risky stop). If we are in a sideways market: It uses Aroon and requires both <= 50 and trade between upper and lower band. Works well with 1 hour candles. Should still be used with StopLossTurn because we might never reach the closing band (unlikely). warm up time: >= 35 candles (default parameters), more Bollinger strategies: https://tradingsim.com/blog/bollinger-bands/
    • percentReached: optional, default 0.05 - A number indicating how close to %b the price has to be to consider it 'reached'.
    • trendingBbMax: optional, default 0.15 - The max above/below 0.5 (the middle of %b bands) to go long/short in trending markets.
    • tradeMarkets: optional, default both - In which markets this strategy shall open positions. The Aroon indicator is used to check if we are in a sideways market. Values: trending|sideways|both
    • stopBandTrending: optional, default middle - The band to close a position if we are in a trending market. Values: middle|opposite
    • delayTicks: optional, default 1 - Keep a position open for at least x candle ticks to avoid stopping immediately.
    • keepPriceOpen: optional, default true - Keep the position open if the last candle close-value price was higher/lower than the current rate. This means if we are outside of the Bollinger Bands stop, but the last candle was moving in the same direction as our open position.
    • short: optional, default 12 - The number of candles for the short EMA of the MACD indicator.
    • long: optional, default 26 - The number of candles for the long EMA of the MACD indicator.
    • signal: optional, default 9 - The number of candles for the signal line of the MACD line (short EMA - long EMA).
    • trendIndicator: optional, default MACD - The indicator to use in trending markets. Currently only MACD is supported.
    • interval: optional, default 25 - The number of Aroon candles to compute the Aroon trend from.
    • aroonSidewaysLevel: optional, default 50 - Consider the market sideways if both AroonUp and ArronDown values are <= x.
    • volumeAvgCandles: optional, default 3 - How many candles to look back to compute the average volume.
    • volumeSpikeFactor: optional, default 1.9 - How much higher the current candle volume must be (than average) to allow opening trend positions on the opposite Bollinger Band.
  • BollingerStop:
    • A stop strategy that closes a position if we reach the opposite (or middle) line of Bollinger for a specified amount of time. Works well with 1 hour candles.
    • percentReached: optional, default 0.05 - A number indicating how close to %b the price has to be to consider it 'reached'.
    • stopBand: optional, default middle - The band to close a position. Values: middle|opposite
    • delayTicks: optional, default 1 - Keep a position open for at least x candle ticks to avoid stopping immediately.
    • keepPriceOpen: optional, default true - Keep the position open if the last candle close-value price was higher/lower than the current rate. This means if we are outside of the Bollinger Bands stop, but the last candle was moving in the same direction as our open position.
  • CCI:
    • Strategy that emits buy/sell based on the CCI indicator. We go long on CCI high and short on CCI low. Optionally you can provide CCI values to where to close the long/short position (default 0). CCI measures the current price level relative to the average price level over a given time interval. It's an unbound indicator, meaning low and high have no limits (unlike RSI).
    • low: optional, default -100 - Open a short position after CCI goes below this value.
    • high: optional, default 100 - Open a long position after CCI goes above this value.
    • closeShort: optional, default 0 - Close a short position after CCI goes above this value.
    • closeLong: optional, default 0 - Close a long position after CCI goes below this value.
    • interval: optional, default 20 - The number of candles of the SMA for the CCI average price calculation.
  • CandleRepeater:
    • Strategy that assumes the candle of the previous day will repeat itself on the next day (trends tend to continue). Works best with large candle sizes such as 24h (1440 min) or 12h (720 min). This strategy needs StopLoss and/or TakeProfit strategies to close positions. Similar to SimpleAndShort and DayTrendFollower strategy.
    • maxPrevUpCandlePercent: The maximum % the last candle can increase to assume the trend will continue and open a long position.
    • maxPrevDownCandlePercent: The maximum % the last candle can decrease to assume the trend will continue and open a short position.
    • tradeDirection: optional, default up - The direction in which this strategy shall open positions. Values: up|down|both
  • DayTrader:
    • A strategy that checks for crosses of the 7-day and 2-day EMA (values can be customized). Additionally it uses Aroon indicator to confirm trends (down trends are only assumed if Aroon matches the EMA trend). It's an unaggressive daytrader, meaning it will only issue maker fee orders.
    • interval: optional, default 30 - The number of candles for Aroon to look back.
    • minVolatility: optional, default 0.05 - Don't open positions below this value (value not relative to prices).
    • makerOnly: optional, default true - Place only maker orders (never pay the taker fee).
    • aroonMax: optional, default 96 - The min value Aroon Up/Down must reach to be considered an up/down breakout in price.
    • aroonLow: optional, default 50 - The max value the other Aroon value can have for the up/down trend to be confirmed (prevent trading in sideways markets).
    • CrossMAType: optional, default SMA - The indicator to use to look for line cross signals to identify an up/down trend. Values: EMA|DEMA|SMA
    • short: The number of candles for the short moving average.
    • long: The number of candles for the long moving average.
  • DayTrendFollower:
    • Strategy that looks at the daily trend of the market (trends tend to continue). It then trades on a small candle size (30 min) in that market. Opens multiple positions daily. Developed for fast moving markets (XRP and medium cap coins), but works extremely well in low volatility markets with 2% daily change (LTC). This strategy needs StopLoss and/or TakeProfit strategies to close positions (closeLossCandles can be StopLoss). Similar to CandleRepeater and SimpleAndShort strategy.
    • entryMode: Enter the market after setback % or by candlestick patterns.
    • entrySetbackPercent: The percentage the last candle has to go against the daily trend to find a good entry point. Can be 0 to use dynamic setback: >= historyCandles average movement
    • dynamicFactor: optional, default 1.0 - A factor to multiply the dynamic setback with.
    • maxDailyTrend: optional, default 0 (disabled) - The max percentage of the daily trend to assume it will continue.
    • historyCandles: optional, default 10 - The number of candles to use for dynamic setback.
    • closeLossCandles: optional, default 0 - Close an existing position if it's in loss for x candles.
    • trendLineDays: optional, default 0 (disabled) - Use a high + low trendline for x days to close a position immediately if the line gets crossed.
    • tradeDirection: optional, default both - The direction in which this strategy shall open positions. Values: up|down|both
  • DirectionFollower:
    • Strategy that tries to identify a trend/direction using ADX. Then it follows that trend using SAR as a trailing stop-loss. candle sizes 60 - 1440.
    • interval: Number of candles to use for ADX indicator.
    • adxTrend: ADX will be considered trending when above this value.
    • adxMaxTrend: optional, default 0 (disabled) - ADX must be below this value. prevents opening a position too late.
    • initialStop: optional, default false - Use the candle high/low of the current candle as initial stop on sell/buy actions.
    • accelerationFactor: optional, default 0.02 - SAR indicator Acceleration Factor used up to the Maximum value.
    • accelerationMax: optional, default 0.2 - SAR indicator Acceleration Factor Maximum value.
    • tradeDirection: optional, default both - The direction in which this strategy shall open positions. 'notify' means you will only receive notifications to do a trade. 'watch' only computes the indicators for manual inspection. Values: up|down|both|notify|watch
  • DirectionRunner:
    • Strategy that emits buy/sell signal based a some indicators it looks for. hose indicators are full (secondary) strategies. The direction of this strategy will change every time ALL strategies emit a trade signal in the same direction (buy or sell).
    • direction: optional, default long - The initial direction this strategy is set to open a position. This value is being updated by the strategies set in the 'longTrendIndicators' setting.
    • enterImmediately: optional, default false - Don't wait for the indicators to change their buy/sell signal. Enter the market on the first signal.
    • longTrendIndicators: Set the direction automatically based on long trend indicators such as EMA. Each indicator here must have it's own config added to your current config file.
    • volume: optional, default 0 - The min volume of the last candle for the trade to be executed.
    • volumeCandleSize: optional, default 60 - The trade period in minutes for 'volume'.
    • ticks: optional, default 0 (immediately) - The number of candle ticks to wait before executing the order.
    • indicators: optional, default RSIScalper - Some technical indicators or strategies to look for the right moment to open a position in our 'direction' value from config. Only checked once (the last tick). Each indicator here must have it's own config added to your current config file.
    • exitIndicators: optional, default RSI - Indicators/Strategies to exit the market.
    • waitRepeatingTradeMin: optional, default 300 - How many minutes to wait before we can trade again (before existing trades get cleared). 0 = never = on bot restart. Counter starts on close of a position.
  • EarlyStopLoss:
    • A stop loss strategy that looks at fast price movements (RSI with small candle size) and exits the market immediately. We could try to enter the market like this too, but this should be combined with more signals (such as RSI and Bollinger) in a different strategy to prevent false positives.
    • low: Below this value RSI will be considered oversold. The strategy will immediately close a long position.
    • high: Above this value RSI will be considered overbought. The strategy will immediately close a short position.
    • interval: optional, default 6 - The number of candles to use for RSI computation.
    • profitLow: optional, default 0 (disabled) - RSI value to close a long position sooner if it currently has profit.
    • profitHigh: optional, default 0 (disabled) - RSI value to close a short position sooner if it currently has profit.
    • spikeClose: optional, default 0 (disabled) - Close a position if the price (current vs last candle) moves x% into the opposite direction. Simply put: If there is a price spike against our position.
    • historyCandle: optional, default 36 - How many candles to look back to compare if price really is a spike. Set 0 to disable it.
  • IndicatorDivergence:
    • Strategy that trades on bullish and bearish divergence.
      A bullish divergence is when the price makes a lower low (LL) while the chosen indicator makes a higher low (HL). A bullish divergence is the moment to open a long position.
      A bearish divergence is when the price makes a higher high (HH) while the chosen indicator makes a lower high (LH). A bearish divergence is the moment to open a short position.
      This strategy only opens positions. You need a stop-loss and/or take profit strategy.
    • divergenceIndicator: optional, default RSI. The indicator to use to check for bullish/bearish divergence on new price highs/lows. values: RSI|CCI|MFI
    • low: not used, just set internally for indicator to work
    • high: not used, just set internally for indicator to work
    • interval: optional, default 14 - The number of candles the divergence indicator shall keep in history.
    • divergenceHistory: optional, default 16 - The number of candles we go back to compare price vs indicator highs/lows.
    • percentIndicatorTolerance: optional, default 0.5% - The percentage the new indicator value can be lower/higher as the previous high/low to still be considered an indicator divergence. You can use negative values to require the indicator to have a bigger difference to the previous value.
    • minVolumeSpike: optional, default 1.1. The min volume compared to the average volume of 'interval' candles to open a position at a divergence.
    • maxGoLongPrice: optional, default 0 = any price - The maximum price to open a long position.
    • minGoShortPrice: optional, default 0 = any price - The minimum price to open a short position.
  • IntervalExtremes:
    • A strategy that remembers the 24h, 3 day, etc.. high/low price points and opens a position once that price is reached. Additionally it keeps track of RSI and market buy vs market sell orders (called sentiment here) and can notify you at desired values. (Could also be achieved with Aroon strategy.) If tradeDirection is set accordingly, it will then trade either breakouts or reversals (depending on the 'mode' setting). It also counts bullish/bearish candlestick patterns and can notify you about them.
    • tradeDirection: optional, default both - In which direction shall this strategy trade. 'watch' means it only computes (indicator) values. Values: both|up|down|watch
    • mode: Do we assume prices bounce between 'tradeInterval' highs & lows or breakout to new extremes? This settings decides if we open a long position on a new price high or a short (resp. on a new price low). Values: bounce|breakout
    • tradeInterval: The time interval to look for extreme price points to trade on. Values: halfDay|daily|2Days|3days|weekly|2Weeks|monthly
    • minRuntime: optional, default 12 h - How long (in hours) the strategy must collect data before trading.
    • notifyPriceInterval: optional, default '' (disabled) - Send notifications if the price reaches a new high/low.
    • patternExpiryDays: optional, default 2 - Remove identified candlestick patterns again after x days.
    • notifyPatterns: optional, default 0 (disabled) - Send notifications for identified candlestick patterns after this amount has been found.
    • low: optional, default 0 (no notifications) - Below this value RSI will be considered oversold. You will receive notifications on every candle tick.
    • high: optional, default 0 (no notifications) - Above this value RSI will be considered overbought. You will receive notifications on every candle tick.
    • interval: optional, default 25 - The number of candles to use for RSI computation. A higher value means the RSI will lag more and be less responsive to new price movements.
    • sentimentLow: optional, default 0 (no notifications) - If the percentage of market buy orders is below this value the market is considered oversold.
    • sentimentHigh: optional, default 0 (no notifications) - If the percentage of market buy orders is above this value the market is considered oversold.
  • KAMA:
    • Strategy that emits buy/sell based on the KAMA indicator.
    • interval: optional, default 30 - The number of candles to use for the slow EMA for the slowest KAMA smoothing constant.
    • tradeDirection: optional, default both - The direction in which this strategy shall open positions. 'watch' only computes the indicators for manual inspection. Values: up|down|both|watch
  • MakerFeeOrder:
    • A strategy that makes a one order as maker (not paying taker fee). The rate will be as close as possible to the rate of the last public trade. Useful as a trade strategy (execution strategy) with other strategies or if you want to manually buy a large amount for the cheaper maker fee.
    • order: The order to submit. Values: buy|sell
  • MACD:
    • Strategy that emits buy/sell based on the MACD indicator. You can open a position on MACD signal line crossovers (most common, default setting) when the histogram is 0 or alternatively you can open positions on decreasing momentum against the current momentum (buy in downside momentum). Use 'openDecreasingHist' for this. This strategy can also close positions if the upside/downside momentum is decreasing for 'takeProfitTicks' candle ticks.
    • short: Number of candles for the short EMA line.
    • long: Number of candles for the long EMA line.
    • signal: Number of candles for the MACD signal line (candles for EMA(short) - EMA(long)).
    • takeProfitTicks: optional, default 0 (disabled) - Close a position with profit early if the MACD histogram decreases for x candles.
    • closeLossEarly: optional, default true - Close positions at a loss after takeProfitTicks too.
    • noiseFilterFactor: optional, default 2.5 - Increase the max histogram after a loss trade. Useful to protect further losses in sideways markets.
    • histogramIncreaseFactor: optional, default 1.05 - Only open a position if the histogram increases/decreases by this factor.
    • closeSidewaysMarkets: optional, default false - Close a position in sideways markets at the first tick with a profit.
    • openAgainPriceChange: optional, default 0.3% - How much the price has to change at least to open a long/short position again (in the same direction as the previous position).
    • openDecreasingHist: optional, default 0 = open on Histogram 0 (minimum). A value > 0 means we open on Histogram max after the histogram value decreases for x candles.
    • interval: optional, default 0 (disabled). Use the Aroon indicator to only trade if we are in a trending market (not sideways). This is the number of candles for the Aroon indicator.
    • trendCandleThreshold: optional, default 76 - The min value of the Aroon up/down to open a long/short position (to prevent opening positions in sideways markets).
  • DEMA:
    • Strategy that emits buy/sell based on DEMA, EMA or SMA indicator crosses of the short and long line. A buy signal is given when the sort line (faster) crosses above the long line (slower). A sell signal when the short line crosses below the long line.
    • CrossMAType: optional, default DEMA - The indicator to use. Values: DEMA|EMA|SMA
    • short: Number of candles for the short EMA line.
    • long: Number of candles for the long EMA line.
    • autoSensitivity: optional, default false - Automatically adjust how strong a line crossing must be based on the current market volatility.
    • minVolatility: optional, default 0.01 (0 = always open positions) - Min Bollinger Bandwidth value to open/close a position. Increasing this value prevents opening positions in sideways markets.
    • closeDecreasingDiff: optional, default 0 (disabled). Close a position if the line diff is decreasing for x candle ticks.
    • resetLastCloseCount: optional, default 10 (0 = disabled) - After how many candles shall the last close line diff be reset to 0.
    • dynamicPersistence: optional, default false. Decrease the persistence count on high volatility markets.
  • MFI:
    • Strategy that emits buy/sell based on the MFI indicator. MFI is an oscillator that contains both price and volume. You can think of it as RSI with volume.
    • low: Below this value MFI will be considered oversold. The strategy will queue a buy order to be executed after 'trendCandles' going up.
    • high: Above this value MFI will be considered overbought. The strategy will queue a sell order to be executed after 'trendCandles' going down.
    • interval: The number of candles to use for MFI computation.
    • trendCandles: optional, default 1. Wait for x candles in the same direction as MFI before opening a position. 0 = immediately, 1 immediately on current candle, 2 = after 1 full tick
  • OBV:
    • Strategy that emits buy/sell based on the OBV indicator. We look if OBV makes new highs/lows on price highs/lows. Then we assume the trend to continue (breakout). Otherwise we open a position in the opposite direction. This strategy only opens positions. You need a stop-loss and/or take profit strategy.
    • interval: optional, default 14 - Use 0 for unlimited (since bot is collecting candles).
    • openReversal: optional, default true - Open a position in the opposite direction if price fails to make a new high/low on OBV max.
  • OneTimeOrder:
    • Place a one-time order once the price reaches a certain level can not be done with a stop because a buy stop triggers at increasing price (and sell at decreasing). Also useful with a trade strategy such as RSIScalpOrderer to wait for the order to be put in at the right moment.
    • order: The type of the order. Values: buy|sell
    • stop: The trigger (and price) at which to place the order.
    • comp: optional, default buy <, sell > - Does the price have to be higher or lower than the stop? 'pass' means the price has to pass this threshold. Values <|>|pass
    • forceMaker: optional, default false - Only place a maker order (not paying the higher taker fee). Order will get adjusted in case the price moves away from it.
  • OrderBookPressure:
    • A strategy that watches the order book to see how much money is needed to rise/lower the price by x percent. Then it assumes the market will move in the 'cheaper' direction and trades accordingly. Works well on highly leveraged markets such as OKEX futures. Exchanges have to be fast (responsive), so Bitfinex is also a good candidate even though they allow hidden orders (hidden from order book).
    • ticks: For how many candle ticks the pressure has to persist to open a position.
    • percentChange: How many percent shall the price be changed by orders?
    • minDiffPercent: Open a position if the cost to rise/lower the price by 'percentChange' differs this much. 450 is a good number for strong USD_BTC pressure, otherwise 80 - depending on percentChange
    • increaseProfitPosition: optional, default 0% (disabled) - The percentage to increase an existing position (from another strategy) if that position has a profit if enabled this strategy will work as a 2nd strategy only (not open a new position).
    • confirmLineCross: optional, default true - Use EMA to confirm direction of the order book pressure trend before opening a position.
    • CrossMAType: optional, default EMA - The moving average type to use. Values: EMA|SMA|DEMA
    • short: Number of candles for the short EMA line.
    • long: Number of candles for the long EMA line.
  • OrderPartitioner:
    • Strategy that partitions orders of the last candle tick into buckets of different sizes by volume. It then displays you the buy/sell ratios for these volume buckets. You can open trades once this ratio crosses a certain threshold. Signal is to weak to be used alone, should be used together with other strategies (such as MACD or RSI).
    • tradeCount: The number of trades sorted by amount we want to display.
    • percentChange: How many percent shall the price be changed by orders on the order book?
    • whalePercentage: optional, default 5.0% - % volume level for the high volume orders that shall be considered 'whales'
    • fishPercentage: optional, default 3.0% - % volume level for the low volume orders that shall be considered 'small fish'
    • maxTradesDisplay: optional, default 30 - How many single trades to display at most per bucket.
    • tradeDirection: optional, default watch - The direction in which this strategy shall open positions. 'notify' means you will only receive notifications to do a trade. 'watch' only computes the spike values for manual inspection. Values: up|down|both|notify|watch
    • CrossMAType: optional, default EMA - The moving average type to use for the 'requireMAMatch' option. Values: EMA|SMA|DEMA
    • short: Number of candles for the short EMA line.
    • long: Number of candles for the long EMA line.
    • requireMAMatch: optional, default false - Require the moving average to match the trades buy/sell ratio to open a position.
    • volumeBuySellLongThreshold: The min ratio for buy-sell orders to open a long position (recommended > 65).
    • volumeBuySellShortThreshold: The max ratio for buy-sell orders to open a short position (recommended < 35).
  • PatternRepeater:
    • A strategy that tries to identify patterns of x candles in size (patternSize) that repeat at least patternRepeat times. Then assumes this pattern will repeat x times, adjust price levels and trade accordingly. Backfinder is a good tool to find the good candle size of patterns. This strategy can not be done with a stop because a buy stop triggers at increasing price (and sell at decreasing). Works well with high volume coins (ETH, LTC,..) but can fail badly with small coins because they have irregular spikes quite often.
    • patternSize: The size in candles the pattern shall have.
    • patternRepeat: The number of times the % changes of the candles have to repeat before we consider it a pattern.
    • maxOffset: optional, default 1 - How many candles the highs/lows can be different in reptetitions to still be considered a pattern.
    • repeatProfit: optional, default true - Always open a position in the other direction after a profitable trade (we can assume our pattern will work again). Only long positions will be repeated.
    • takeProfitCandleSize: optional, default 10 - The candle size minutes to wait for the first candle opposite to our open position after a close order has been issued. The close order runs on 'candleSize' (the main candle size) and 'patternSize'.
    • interval: optional, default 14 - RSI interval for Falling Knife Protection: Don't buy/sell on overbought/oversold. The number of candles to use for RSI computation.
    • low: optional, default 20 - Below this value RSI will be considered oversold.
    • high: optional, default 80 - Above this value RSI will be considered overbought.
  • PercentDEMA:
    • Strategy that emits buy/sell based on the % change of a single (long) DEMA line (instead of line crosses of 2 DEMAs). This works best for daytrading with a short candle size such as 30min or 15min.
    • long: The number of candles for the indicator.
    • minPercent: How strong the current price has to change from the DEMA to open a position.
    • CrossMAType: optional, default DEMA - The moving average type to use for the 'requireMAMatch' option. Values: EMA|SMA|DEMA
    • takeProfitTicks: optional, default 0 (disabled). Close a position early if the MACD histogram decreases for x candles.
    • closeLossEarly: optional, default true - Close positions at a loss after takeProfitTicks too.
  • PingPong:
    • Strategy that sells on the upper Bollinger Band and buys on the lower band. Our assumption is that the price will always jump between the upper and lower band (as in a sideways market). This strategy only trades within the value area of the volume profile, which is when price is within the range where 70% of trades take place using default settings. Additionally the current candle volume must be 'minVolumeSpike' above average (SMA) of the latest 'interval' candles.
    • interval: optional, default 48. The number of candles to compute the volume profile and average volume from.
    • volumeRows: optional default 24. The number of equally-sized price zones the price range is divided into.
    • valueAreaPercent: optional, default 70%. The percentage of the total volume that shall make up the value area, meaning the price range where x% of the trades happen.
    • minVolumeSpike: optional, default 1.1. The min volume compared to the average volume of the last 'interval' candles to open a position.
    • percentBThreshold: optional, default 0.01 - A number indicating how close to %b the price has to be to consider it 'reached'.
    • trailingStopPerc: optional, default 0.05% ( 0 = disabled) - The trailing stop percentage that will be placed after the opposite Bollinger Band has been reached.
  • PivotSniper:
    • Strategy that checks support and resistance of Pivot Points. We wait for support or resistance to get hit and open a position in the opposite direction, assuming the market will bounce back.
      This strategy works very well for daytrading with candle sizes from 30min to 4h.
      This strategy will open and close existing positions, but you can still combine it with a stop-loss and/or take profit strategy.
    • type: optional, default 'standard' - The Pivot Points calculation method you want to use. Values: standard|fibonacci|demark
    • interval: optional, default 15 - The number of candles to use for the high/low calculation as the previous period to compute the Pivot Points values from. Also sets the number of candles to compute the confirmation indicator value from.
    • supportLevel: optional, default 2 - The support level at which you want to open a long position. Standard Pivot Points have 2 levels, Fibonacci 3 and Demark only 1. Values: 1|2|3
    • resistanceLevel: optional, default 2 - The resistance level at which you want to open a short position. Standard Pivot Points have 2 levels, Fibonacci 3 and Demark only 1. Values: 1|2|3
    • minVolumeSpike: optional, default 1.1 - The min volume compared to the average volume of 'interval' candles to open a position at a support or resistance.
    • confirmationIndicator: optional, default empty = none - The indicator to use to wait for confirmation to open a position.
    • low: optional, default 50 - Only go short if the confirmation indicator is below this value.
    • high: optional, default 50 - Only go long if the confirmation indicator is above this value.
    • maxGoLongPrice: optional, default 0 = any price - The maximum price to open a long position.
    • minGoShortPrice: optional, default 0 = any price - The minimum price to open a short position.
  • PriceRangeTrader:
    • Detect if a price always jumps between a high a low and buy/sell accordingly. Works well in sideways markets (that usually have low volume). It is meant for fast trades, possibly many trades per hour if there are changes >= 'minChangePercent'. This strategy can be a faster alternative to using BollingerBands in a sideways market and sell at the upper band and buy at the lower band.
    • minChangePercent: The min percentage between the low and high price point to open a position.
    • intervalSec: The number of seconds after which a price point expires.
    • logTradeTicks: optional, default 300 - Log the current low and high price points after every x trade ticks. 'enableLog' must be set to true.
  • PriceSpikeDetector:
    • Detect if the price of spikes x % up/down (compared to the last candle). This strategy works great at detecting fast pumps in a coin. It should be used with a small candle size such as 3-15min and a 'spikePercent' according to your coin's price changes. You should look at the chart and set the 'spikePercent' value high enough so that this strategy only triggers about once a week for your coin. This is to avoid false positives and jump on late spikes too late.
    • spikePercent: As x% price difference (positive value higher, negative value lower) as the last candle.
    • endOfSpike: optional, default false - true = wait until the spike reverses, false = buy/sell immediately with the spike
    • historyCandle: optional, default 36 - How many candles to look back to compare if price really is a spike. Set to 0 to disable it.
    • stop: optional, default 0 (disabled) - Set a min/max price. This strategy will only trade on spikes if the price is above/below that value.
    • comp: optional, default buy <, sell > - Does the price have to be higher or lower than the stop?
    • spikeHistoryPercent: optional, default 0 (disabled) - Look at last x candles to check for a spike too. If their combined spike is above x% this strategy will trade.
    • historyCandleCount: optional, default 0 (disabled) - The number of candles to go back for 'spikeHistoryPercent'
    • tradeDirection: optional, default both - The direction in which this strategy shall open positions. 'notify' means you will only receive notifications to do a trade. 'watch' only computes the spike values for manual inspection. Values: up|down|both|notify|watch
    • tradeOppositeDirection: optional, default false - If set to 'false' we don't trade if we have an open position in the other direction. 'true' means this strategy will always open a position.
    • strongRate: optional, default true - 'true' means this strategy will use a rate well above/below the current rate to ensure the order gets filled immediately during the spike. This is similar to submitting a market order.
    • onlyDailyTrend: optional, default true - Only trade when the spike is in the same direction as the 24h % price change.
    • checkTradesEndPercent: optional, default 65 - How many % of trades of the spike candle shall we wait for when using endOfSpike == true
    • reverseSpikeTimeoutSec: optional, default 120 - After this time the reversal of a spike will be ignored (don't send a trade signal anymore). Only applies if endOfSpike is set to true.
  • ProtectProfit:
    • A different kind of stop loss strategy that protects our profits by selling/buying before our position turns into a loss.
    • profit: The threshold in percent at which we enable this stop after we have reached that amount of profit.
    • profitFactor: optional, default 2.1 - How much a position has to fall back from 'profit' to be closed. For example profitFactor 2.0 -> from 0.8% to 0.4%
    • time: optional, default 120 - The number of seconds the position has to be below the defined profit target to be closed. A value of 0 closes it immediately.
    • minOpenTime: optional, default 900 - The number of seconds a position has to be open before it can be closed. This is useful if you are doing scalping and want to wait at least x seconds for the price to reverse before taking a loss.
    • ensureProfitPercent: optional, default 0.25% (0 = disabled) - Only close if we really have this profit according to the exchange API. Useful if you do manual trading along with the bot. This setting might cause a position to be never closed.
    • useRealProfitLoss: optional, default false - Use the real profit/loss value from the exchange API (instead of this strategy's entry price) for all computations. Useful if increase the position by manual trading. Only updated about every 6min with margin position.
  • RSI:
    • Strategy that emits buy/sell signals based on the RSI indicator.
    • interval: The number of candles to use for RSI computation.
    • low: Below this value RSI will be considered oversold.
    • high: Above this value RSI will be considered overbought.
    • mode: optional, default trend - 'trend' means we buy on overbought and sell on oversold. This should be used with smaller candle sizes from 5-60min. 'reverse' means we buy on RSI low and sell on RSI high. In 'reverse' mode trades only happen if currentRSI > lastRSI to prevent buying into a falling knife (resp. currentRSI < lastRSI for sell orders). Values: trend|reverse|both
  • RSIOrderer:
    • Secondary Strategy that executes buy/sell based on the RSI indicator after overbought/oversold periods. Should be used with a smaller candleSize than the main strategy to execute an order defined by your main strategy.
    • interval: The number of candles to use for RSI computation.
    • low: Below this value RSI will be considered oversold. This strategy will start a buy trade after RSI oversold ends.
    • high: Above this value RSI will be considered overbought. This strategy will start a sell trade after RSI overbought ends.
    • immediateLow: Start a sell trade immediately when reaching this oversold value.
    • immediateHigh: Start a buy trade immediately when reaching this overbought value.
    • onlyImmediate: optional, default true. If true, this strategy only trades on immediate low/high values. On false it use low/high values to start trades in opposite direction.
    • waitBounceBack: optional, default true - If true, wait for the RSI to bounce back after reaching the low/high threshold. If false, open position immediately.
    • expiry: optional, default 5 (0 = disabled) - Execute the order after x candles if the threshold isn't reached.
    • deleteExpired: optional, default true - If true, delete expired orders instead of executing them after 'expiry' candles have passed.
    • deleteOppositeOrders: optional, default false - Delete opposite buy/sell orders if immediate thresholds are reached.
  • RSIScalper:
    • Strategy that uses the RSI indicator for scalping. By scaling this strategy means buying/selling on a pull back after spikes. This strategy is ideal to use together with a main strategy that does about 1 trade per day. If prices move quickly in the opposite direction and you assume recovery, you can use this strategy to increase the size of your existing position by 'percentage' from the strategy config.
    • percentage: The order amount percentage of the config's total trading volume. Use 100% to trade the same amount again and double your position size.
    • interval: The number of candles to use for RSI computation.
    • low: Below this value RSI will be considered oversold.
    • high: Above this value RSI will be considered overbought.
    • enterLow: optional, default 50 - The max RSI value to open a short position.
    • enterHigh: optional, default 50 - The min RSI value to open a long position.
    • openPosition: optional, default false - true means this strategy can also open new positions. false means it will only trade in the same direction if we already have an open position.
    • expiry: optional, default 14 (0 = disabled) - Stop waiting for a bounce back if it doesn't happen for 'expiry' candles.
    • scalpOnce: optional, default true - Scalp only once per position to increase its size. If disabled we scalp multiple times on every opportunity.
  • RSIScalpOrderer:
    • Strategy that uses the RSI indicator for scalping. By scaling this strategy means buying/selling on a pull back after spikes. This strategy is meant to be set as 'tradeStrategy' of your main strategy. It should then run on a smaller candle size (3-15min) and execute the trades of your main strategy at the right moment.
    • interval: The number of candles to use for RSI computation.
    • low: Below this value RSI will be considered oversold. After this value has been reached the strategy will wait for an RSI increase that is above 'enterHigh' and then issue a buy trade.
    • high: Above this value RSI will be considered overbought. After this value has been reached the strategy will wait for an RSI decrease that is below 'enterLow' and then issue a sell trade.
    • immediateLow: Below this value this strategy will immediately sell.
    • immediateHigh: Above this value this strategy will immediately buy.
    • enterLow: The max RSI value to open a short position after RSI reached its 'high' value.
    • enterHigh: The min RSI value to open a long position after RSI reached its 'low' value.
    • expiry: optional, default 5 (0 = disabled) - Stop waiting for a bounce back if it doesn't happen for 'expiry' candles.
    • deleteExpired: optional, default true - Delete expired orders instead of executing them after expiry.
  • RSIStarter:
    • A strategy that only opens positions based on RSI (should be used together with other strategies):
      1. after a sharp drop when the price goes up again (scalping, also see MomentumTurn strategy)
      2. when there is a sudden spike upwards
    • interval: The number of candles to use for RSI computation.
    • low: Below this value RSI will be considered oversold.
    • high: Above this value RSI will be considered overbought.
    • lowStartFactor: optional, default 0.75 (max 1.0 = always immediately) - The bot will enter a trend immediately if RSI <= lowStartFactor*low. Otherwise it will wait for the end of oversold and go long.
    • candlePercentReverse: optional, default 4.0% - How many percent the last candle has to go in the other direction to enter the market at the end of a spike/drop. It's common on a sharp drop that there will be a strong bounce back if the trend reverses (high volume and high price change).
    • pauseCandles: optional, default 25 - How many candles to pause after a loss trade.
    • historyCandleSize: optional, default 10 - Candle size in minutes to check for the long trend of the market.
    • historyCandleCount: optional, default 5 - The number of candles to use for historyCandleSize.
  • SARStop:
    • A stop loss strategy that uses the Parabolic SAR as a trailing stop. Works great with every other strategy. Increase the acceleration factor for tighter stops if you are doing many trades per day.
    • initialStop: optional, default false - Use the candle high/low of the current candle when opening a position as an initial stop.
    • accelerationFactor: optional, default 0.02 - SAR indicator Acceleration Factor used up to the Maximum value.
    • accelerationMax: optional, default 0.2 - SAR indicator Acceleration Factor Maximum value.
    • time: optional, default 0 seconds - After the stop price is reached start a countdown of x seconds before closing the position. The countdown gets reset if the price moves above the stop price before the counter reaches 0 seconds.
    • keepTrendOpen: optional, default true - Don't close if the last candle moved in our direction (only applicable with 'time' and 'candleSize' set).
  • Sentiment:
    • Strategy that checks the market sentiment, meaning the volume of buy sv sell orders. It counts all trades and sum up the volume to see if the market majority is long or short. Should be run with a candle size >= 6h or otherwise it will start trading too soon.
    • low: If the ratio of market buy vs sell orders is below this threshold this strategy will go short.
    • high: If the ratio of market buy vs sell orders is above this threshold this strategy will go long.
    • interval: The interval in candles to count market buy vs sell orders.
  • SimpleAndShort:
    • A Strategy that doesn't look for any indicators. Instead it simply decides to buy/sell like this:
      - If the stock is going up, buy it if I don't have any.
      - If the stock is going down, short sell it if I don't have any.
      - place 3 stops above and below the initial price to sell/buy the coin again.
      Similar to CandleRepeater and DayTrendFollower strategy.
      Works well with larger candle sizes from 1-4 hours.
    • stopStart: At how many percent loss shall stop loss buy the first 1/3 back.
    • takeProfitStart: At how many percent shall the bot start taking profits.
    • historyCandles: optional, default 1- How many candles the strategy shall look back for the same trend before opening a position. It will only open a position if all candles go into the same direction.
    • initialOrder: optional, default empty - Just wait for the first candle trend and follow it.
  • STC:
    • Strategy that emits buy/sell based on the Schaff Trend Cycle. STC is a faster version of MACD that oscillates around 0. Sell signals are given when STC goes down from a high and buy signals when it comes up from a low. This strategy also closes positions if an opposite trade signal occurs.
    • low: optional, default 25 - Go long if STC goes up from this value.
    • high: optional, default 75 - Go short if STC goes down from this value.
    • closePositions: optional, default true - Close existing positions if an opposite signal occurs.
    • fast: optional, default 23 - The number of fast EMA candles.
    • slow: optional, default 50 - The number of slow EMA candles.
    • stcLength: optional, default 10 - How many candles STC will keep to compute MACD signal and STC candle data.
    • factor: optional, default 0.5 (should be <= 1.0) - A lower value means STC will forget historic data faster and be more responsive, thus doing more trades.
  • StochRSI:
    • Strategy that emits buy/sell based on the Stochastic RSI indicator. StochRSI is an oscillator measuring the RSI low/high values relative to relative to the min and max RSI values over the by 'interval' defined period of candles. This makes StochRSI and indicator of an indicator. The advantage is that StochRSI is guaranteed to reach either its low or high values, thus producing more signals.
    • interval: The number of candles to use for StochRSI computation.
    • low: Below this value StochRSI will be considered oversold.
    • high: Above this value StochRSI will be considered overbought.
    • optInFastK_Period: optional, default 5 - The number of candles for the real (not smoothened) StochRSI value.
    • optInFastD_Period: optional, default 3 - The number of candles for the smoothened StochRSI value. This strategy will use the smoothened StochRSI value for trading.
    • optInFastD_MAType: optional, default 0 (SMA) - The moving average type to use for smoothening the StochRSI value.
    • mode: optional, default trend - 'trend' means we buy on overbought and sell on oversold. This should be used with smaller candle sizes from 5-60min. 'reverse' means we buy on RSI low and sell on RSI high. In 'reverse' mode trades only happen if currentRSI > lastRSI to prevent buying into a falling knife (resp. currentRSI < lastRSI for sell orders). Values: trend|reverse|both
  • StopLossTime:
    • A simple stop loss strategy with an additional parameter 'time'. It will start a counter down to 0 seconds if the stop price is reached. The stop will only be triggered after the counter reaches 0. The counter gets reset every time the price moves above the stop.
    • stop: The price at which the stop shall be triggered. For long positions the price has to move below this value, for short positions above.
    • time: optional, default 0 - After the stop price is reached start a countdown of x seconds before closing the position. The countdown gets reset if the price moves above the stop price before the counter reaches 0 seconds.
  • StopLossTurn:
    • An advanced stop loss strategy with additional parameters to decide if and when to close a positions. List of features:
      - time counter: It will start a counter down to 0 seconds if the stop price is reached. The stop will only be triggered after the counter reaches 0. The counter gets reset every time the price moves above the stop.
      - different trailing stop percentages for long and short positions
      - tighter stop after a position reaches a defined percentage of profit
      - keep the position open depending on current RSI and current candle trend
      - automatically adjust stop time counter based on market volatility
      - Smartphone notifications x minutes before the stop gets executed to allow manual intervention
    • stop: optional, default 0 (use 'setback' setting) - A fixed stop price when to sell (< for long position) or buy (> for short position). If present takes precedence over 'setback'. Only 'setbackProfit' has a higher priority (if set).
    • setback: The trailing stop percentage the price has to move against an open position for the stop to be triggered.
    • setbackLong: optional, default 0 (use 'setback') - The trailing stop percentage the price has to move against an open long position for the stop to be triggered. Use this to define a different (usually higher) stop for long positions.
    • time: optional, default 0 - After the stop price is reached start a countdown of x seconds before closing the position. The countdown gets reset if the price moves above the stop price before the counter reaches 0 seconds.
    • increaseTimeByVolatility: optional, default false - Increase the stop time during volatile markets (by a factor between 1 and 2 computed from Bollinger Bandwidth). Takes precedence over reduceTimeByVolatility.
    • reduceTimeByVolatility: optional, default true - Reduce the stop time during high volatility market moments (by a divisor between 1 and 2 computed from Bollinger Bandwidth).
    • keepTrendOpen: optional, default true - Don't close if the last candle moved in our direction (only applicable with 'time' and 'candleSize' being set).
    • forceMaker: optional, default false - Only place a maker order (not paying the higher taker fee). Order will get adjusted in case the price moves away from it.
    • notifyBeforeStopSec: optional, default 0 (disabled) - Send a push notification x seconds before the stop executes.
    • setbackProfit: optional, default 0 (disabled) - Use a higher stop after a certain profit has been reached. How much loss we allow once 'triggerProfit' is reached (same value for long and short positions). This value always takes precedence over 'setback' and 'setbackLong'.
    • triggerProfit: optional, default 0 (disabled) - The minimum profit to be reached for setbackProfit to replace setback. Use this to either allow higher losses or set tighter trailing stops, depending on your trading strategy.
    • timeProfit: optional, default 0 (disabled) - A higher/lower time to close if position is in profit. Reduce/increase time by volatility doesn't apply to this value.
    • ensureProfit: optional, default true - Ensure there is really profit before closing at 'setbackProfit' (otherwise fallback to the normal stop). Keep in mind that open positions are only being synced every few minutes.
    • interval: optional, default 9 - The number of candles to use for RSI computation.
    • low: optional, default 0 (disabled) - Below this value RSI will be considered oversold. This strategy will never close short positions during RSI oversold.
    • high: optional, default 0 (disabled) - Above this value RSI will be considered overbought. This strategy will never close long positions during RSI overbought.
    • MAType: optional, default 0 (SMA) - The moving average type of BollingerBands. BollingerBands indicator is being used to determine the market volatility by looking at Bollinger Bandwidth.
  • StopLossTurnPartial:
    • An advanced stop loss strategy that can close a position partially. Keeping a part of it open allows you to recover existing losses at a later point when the market moves in our direction (without realizing the loss prior to this). Also useful with a tight stop as an alterantive to a TakeProfit strategy. See StopLossTurn for a more detailed description.
    • percentage: The percentage of the open position to close. Must be between 0 and 100%.
    • stop: optional, default 0 (use 'setback' setting) - A fixed stop price when to sell (< for long position) or buy (> for short position). If present takes precedence over 'setback'.
    • setback: The trailing stop percentage the price has to move against an open position for the stop to be triggered.
    • setbackLong: optional, default 0 (use 'setback') - The trailing stop percentage the price has to move against an open long position for the stop to be triggered. Use this to define a different (usually higher) stop for long positions.
    • time: optional, default 0 - After the stop price is reached start a countdown of x seconds before closing the position. The countdown gets reset if the price moves above the stop price before the counter reaches 0 seconds.
    • increaseTimeByVolatility: optional, default false - Increase the stop time during volatile markets (by a factor between 1 and 2 computed from Bollinger Bandwidth). Takes precedence over reduceTimeByVolatility.
    • reduceTimeByVolatility: optional, default true - Reduce the stop time during high volatility market moments (by a divisor between 1 and 2 computed from Bollinger Bandwidth).
    • keepTrendOpen: optional, default true - Don't close if the last candle moved in our direction (only applicable with 'time' and 'candleSize' being set).
    • forceMaker: optional, default false - Only place a maker order (not paying the higher taker fee). Order will get adjusted in case the price moves away from it.
    • notifyBeforeStopSec: optional, default 0 (disabled) - Send a push notification x seconds before the stop executes.
    • setbackProfit: optional, default 0 (disabled) - Use a higher stop after a certain profit has been reached. How much loss we allow once 'triggerProfit' is reached (same value for long and short positions). This value always takes precedence over 'setback' and 'setbackLong'.
    • triggerProfit: optional, default 0 (disabled) - The minimum profit to be reached for setbackProfit to replace setback. Use this to either allow higher losses or set tighter trailing stops, depending on your trading strategy.
    • timeProfit: optional, default 0 (disabled) - A higher/lower time to close if position is in profit. Reduce/increase time by volatility doesn't apply to this value.
    • ensureProfit: optional, default true - Ensure there is really profit before closing at 'setbackProfit' (otherwise fallback to the normal stop). Keep in mind that open positions are only being synced every few minutes.
    • interval: optional, default 9 - The number of candles to use for RSI computation.
    • low: optional, default 0 (disabled) - Below this value RSI will be considered oversold. This strategy will never close short positions during RSI oversold.
    • high: optional, default 0 (disabled) - Above this value RSI will be considered overbought. This strategy will never close long positions during RSI overbought.
    • MAType: optional, default 0 (SMA) - The moving average type of BollingerBands. BollingerBands indicator is being used to determine the market volatility by looking at Bollinger Bandwidth.
  • TakeProfit:
    • An advanced take profit strategy with additional parameters to decide if and when to close a positions. List of features:
      - time counter: It will start a counter down to 0 seconds if the profit stop price is reached. The stop will only be triggered after the counter reaches 0. The counter gets reset every time the price moves above the stop.
      - automatically adjust stop time counter based on market volatility
    • stop: optional, default 0 (use 'profit' setting) - A fixed stop price when to sell (> for long position) or buy (< for short position). If present takes precedence over 'profit'.
    • profit: The target profit in percent. Once your open position reaches this profit it will be closed.
    • time: optional, default 0 - After the price falls below your profit target again start a countdown of x seconds before closing the position. The countdown gets reset if the price moves above our profit target before the counter reaches 0 seconds.
    • reduceTimeByVolatility: optional, default true - Reduce the stop time during high volatility market moments (by a divisor between 1 and 2 computed from Bollinger Bandwidth).
    • keepTrendOpen: optional, default true - Don't close if the last candle moved in our direction (only applicable with 'time' and 'candleSize' being set).
    • forceMaker: optional, default false - Only place a maker order (not paying the higher taker fee). Order will get adjusted in case the price moves away from it.
    • minRate: optional, default 0 (disabled) - Only take profit once this market rate has been reached. Price must be above it for long positions and below it for short positions.
    • MAType: optional, default 0 (SMA) - The moving average type of BollingerBands. BollingerBands indicator is being used to determine the market volatility by looking at Bollinger Bandwidth.
  • TakeProfitPartial:
    • An advanced take profit strategy that can close a position partially. Keeping a part of your position open allows you to get further gains if the market moves in the direction of your position while locking in some of your existing profits. See TakeProfit for a more detailed description.
    • percentage: The percentage of the open position to close. Must be between 0 and 100%.
    • stop: optional, default 0 (use 'profit' setting) - A fixed stop price when to sell (> for long position) or buy (< for short position). If present takes precedence over 'profit'.
    • profit: The target profit in percent. Once your open position reaches this profit it will be closed.
    • time: optional, default 0 - After the price falls below your profit target again start a countdown of x seconds before closing the position. The countdown gets reset if the price moves above our profit target before the counter reaches 0 seconds.
    • reduceTimeByVolatility: optional, default true - Reduce the stop time during high volatility market moments (by a divisor between 1 and 2 computed from Bollinger Bandwidth).
    • keepTrendOpen: optional, default true - Don't close if the last candle moved in our direction (only applicable with 'time' and 'candleSize' being set).
    • forceMaker: optional, default false - Only place a maker order (not paying the higher taker fee). Order will get adjusted in case the price moves away from it.
    • minRate: optional, default 0 (disabled) - Only take profit once this market rate has been reached. Price must be above it for long positions and below it for short positions.
    • MAType: optional, default 0 (SMA) - The moving average type of BollingerBands. BollingerBands indicator is being used to determine the market volatility by looking at Bollinger Bandwidth.
  • TakeProfitStochRSI:
    • A take profit strategy looking at the Stochastic RSI. It initiates to close a long position at RSI overbought and a short position at RSI oversold. Closing is done by forwarding the order as a stop to an order strategy. Works well with candle sizes of 1h or more and an order strategy running on 1min candles.
      good RSI values: TakeProfit at 1h candles on > 87 and < 11
    • percentage: optional, default 100% - Take profit by partially closing x% of the open position.
    • interval: The number of candles to use for StochRSI computation.
    • low: Below this value StochRSI will be considered oversold. This strategy will initiate to close short positions.
    • high: Above this value StochRSI will be considered overbought. This strategy will initiate to close long positions.
    • optInFastK_Period: optional, default 5 - The number of candles for the real (not smoothened) StochRSI value.
    • optInFastD_Period: optional, default 3 - The number of candles for the smoothened StochRSI value. This strategy will use the smoothened StochRSI value for trading.
    • optInFastD_MAType: optional, default 0 (SMA) - The moving average type to use for smoothening the StochRSI value.
    • closeRateFactor: optional, default 0.9992 - Move the stop for the closing rate a little bit away from the last price. This multiplies the close rate by this to set the stop below (for shorts 1-x is added).
    • time: optional, default 0 - After the price falls below your profit target again start a countdown of x seconds before closing the position. The countdown gets reset if the price moves above our profit target before the counter reaches 0 seconds.
    • keepTrendOpen: optional, default true - Don't close if the last candle moved in our direction (only applicable with 'time' and 'candleSize' being set).
    • alwaysIncreaseStop: optional, default false - Move the stop closer to the market price after every candle tick of this strategy even if RSI is no more oversold/overbought.
    • ensureProfit: optional, default true - Check if we still have profit after 'time' has passed. Otherwise don't close the position. Keep in mind that open positions are only being synced every few minutes.
    • minOpenTicks: optional, default 12 - How many ticks a position shall be open at least before it can be closed. If this strategy uses the same candle size as the main strategy. it's implicitly open at least 1 tick with value 0.
  • TimeOrder:
    • A simple strategy that buys or sells after a specified amount of time has passed. This is useful to place a manual order after the dip of a spike to buy more if you assume this is the start of a new trend. Also useful after a buy from spikes of VolumeSpikeDetector or PriceSpikeDetector.
    • executeMin: A countdown in minutes after which the buy/sell order will be executed.
    • keepTrendOpen: optional, default true - Don't execute the order yet if the last candle moved in our direction (only applicable with 'candleSize' being set).
  • TimeStop:
    • A different kind of close-strategy, similar to a stop-loss strategy. This strategy places a trailing stop after a position was open for a certain amount of candles. It can optionally look at RSI values before closing a position or only close if the position has a profit or loss.
      Ideal for daytraders who want to exit the market after a certain amount of time to minimize risks.
    • minCandles: The minimum number of candles a position has to be open before being closed.
    • trailingStopPerc: optional, default 0.05% - The trailing stop percentage that will be placed after minCandles have passed.
    • closePosition: optional, default 'always' - Only close a position if its profit/loss is in that defined state. Values: always|profit|loss
    • time: optional, default 0 - After the price falls below the trailing stop, start a countdown of x seconds before closing the position. The countdown gets reset if the price moves above the stop before the counter reaches 0 seconds.
    • keepTrendOpen: optional, default true - Don't close if the last candle moved in our direction (only applicable with 'time' and 'candleSize' being set).
    • notifyBeforeStopSec: optional, default 0 (disabled) - Send a push notification x seconds before the stop executes.
    • interval: optional, default 9 - The number of candles to use for RSI computation.
    • low: optional, default 0 (disabled) - Below this value RSI will be considered oversold. This strategy will never close short positions during RSI oversold.
    • high: optional, default 0 (disabled) - Above this value RSI will be considered overbought. This strategy will never close long positions during RSI overbought.
  • Trendatron:
    • A strategy that follows waves of the chart by doing swing trading. It does this by combining 4 SMAs to Gann Swing indicator and adding VIX to check for volatility. Additionally it supports scalping, meaning it can buy more after sharp drops in price.
    • interval: The number of candles for SMAs to compute GannSwing.
    • stddevPriod: optional, default 20 - The number of candles for the VIX indicator to compute the standard derivation.
  • TrendlineScapler:
    • Strategy has pre-configured support/resistance lines. Whenever the price gets close to that line we open a trade in the other direction (expecting a bounce back). Alternatively it can wait for breakouts at those price levels.
      Works well with high leverage (10x - 20x) and RSI strategy for entry.
      Works well on 1min candle size together with a trade strategy such as RSIOrderer or RSIScalpOrderer.
      This strategy doesn't close positions. You must add a stop-loss and take profit strategy.
    • supportLines: The price levels where we want to open long a position.
    • resistanceLines: The price levels where we want to open short a position.
    • tradeBreakout: optional, default false - A value of false means we will assume the price will bounce back within the trading range. If set to true we wait for the support/resistance to get broken and trade the breakout direction.
    • expirationPercent: optional, default 3% - Only execute orders at price levels that are within x% of the set support/resistance lines.
  • TriggerOrder:
    • Strategy that receives a order from another strategy (such as StopLoss or TakeProfit) and executes it once the threshold triggers. This strategy works with a small candle size (1min) while the strategy giving the order can have a larger candle size. This strategy doesn't have its own config, but instead uses some parameters from the pending order to be executed by it.
  • VolumeProfiler:
    • Strategy that waits for price to hit a high volume spot on the volume profile. Depending on 'tradeMode' it will then either:
      - breakout: Wait until the price is at the end of this volume profile bar and then open a position with the current trend. This works well for opening positions for longer timeframes (multiple days to weeks).
      - resistance: Immediately forward an order against the trend. You should have a 'tradeStrategy' such as 'RSIScalpOrderer' set on a smaller candleSize to delay the order execution until the trend slows down.
      - both: Trade on breakout and resistance depending on where the current price is within the corresponding volume profile bar.
      This strategy only opens positions. You need a stop-loss and/or take profit strategy.
    • interval: optional, default 48. The number of candles to compute the volume profile and average volume from.
    • volumeRows: optional default 24. The number of equally-sized price zones the price range is divided into.
    • valueAreaPercent: optional, default 70%. The percentage of the total volume that shall make up the value area, meaning the price range where x% of the trades happen.
    • minVolumeSpike: optional, default 1.1. The min volume compared to the average volume of the last 'interval' candles to open a position at a divergence.
    • tradeMode: optional, default resistance. If we reach the volume profile bar with the highest volume, shall we wait for a bounce (trade the resistance) or trade a breakout? Values: breakout|resistance|both
    • minVolumeSpikeBreakout: optional, default 2.1. If 'tradeMode' is set to 'both' the volume of the current candle has to be x times higher than the average volume to be considered a breakout. Otherwise trade resistance (open a position in the opposite direction).
  • VolumeSpikeDetector:
    • Detect if there is a spike in the trade volume of a coin. This usually means a sharp spike/drop is happening (especially for smaller Altcoins). This strategy works great at detecting fast pumps in a coin. It should be used with a small candle size such as 3-15min and a 'spikeFactor' according to your coin's volume profile changes. You should look at the chart and set the 'spikeFactor' value high enough so that this strategy only triggers about once a week for your coin. Take a look at VolumeSpikeDetectorLong for volume spikes in longer candle intervals (>= 12h) to detect if attention in a coin is rising.
    • spikeFactor: The minimum spike to open a position. Defined as x times higher than the average volume.
    • minVolBtc: The minimum volume for the current candle and average volume to prevent spikes near 0 trading volume. Defined in the base currency of your trading pair, usually BTC or USD.
    • historyCandle: optional, default 36 - How many candles to look back to compare if price and volume really are a spike. Set 0 to disable it.
    • tradeDirection: optional, default both - The direction in which this strategy shall open positions. 'notify' means you will only receive notifications to do a trade. 'watch' only computes the spike values for manual inspection. Values: up|down|both|notify|watch
    • minPriceChangePercent: optional, default 3.0 - The minimum percent the price has to change to confirm the volume spike and trade on it. If you are trading on small candles (5min) then a value of 1.5 or lower can also be a good setting. See PriceSpikeDetector for a strategy looking only at price spikes.
    • tradeOppositeDirection: optional, default false - If set to 'false' we don't trade if we have an open position in the other direction. 'true' means this strategy will always open a position.
    • strongRate: optional, default true - 'true' means this strategy will use a rate well above/below the current rate to ensure the order gets filled immediately during the spike. This is similar to submitting a market order.
    • onlyDailyTrend: optional, default true - Only trade when the spike is in the same direction as the 24h % price change.
    • keepCandleCount: optional, default 3 - The number of candles to keep to compute the average volume. Should be increased for small candle sizes such as 5min.
  • VolumeSpikeDetectorLong:
    • VolumeSpikeDetector version for longer intervals (daily) to detect if interest/attention in a coin is rising. Half day is also a good interval (especially since the bot might not run 24h without restart to collect enough data). This class only sends notifications and doesn't trade.
    • spikeFactor: The minimum spike to send a trade notification. Defined as x times higher than the average volume.
    • keepCandleCount: optional, default 3 - The number of candles to keep to compute the average volume.
  • VolumeSpikeStopper:
    • VolumeSpikeDetector version that closes a position immediately if there is a huge spike in volume (somebody dropping/buying lots of money) against an open position. Works well on 30min candle size.
    • spikeFactor: The minimum volume spike to close an open position if the price moves against our position. Defined as x times higher than the average volume.
    • keepCandleCount: optional, default 3 - The number of candles to keep to compute the average volume. Should be increased for small candle sizes such as 5min.
  • WaveOpener:
    • A WaveSurfer strategy that only opens positions. It will open long positions at the lowest candle of a wave and short positions at the highest candle of a wave. Works well with large and smaller candle sizes (15min up to 4h). See WaveSurfer strategy for more details.
    • minSurfCandles: The minimum number of candles to keep a position open. Will usually be less than 'patternSize'.
    • patternSize: optional, default 2 - The number of candles to keep to search for a pattern. 2 will mean we keep 4 candles (2 recent lows, 2 recent highs). 2 is a good value for larger candles above 1h. For fast trading on lower candles you should increase this to 5 or more.
    • takeProfitCandleSize: optional, default 10 - The candle size in minutes of the candles this strategy uses to close a protitable position. At the end of the wave (consisting of bigger candles) it will schedule to close the position on the first candle of this small size moving against our position.
    • historyPriceCandles: optional, default 6 - The number of candles to look for price history to decide if the bot should open long or short.
    • lossPauseCandles: optional, default 0 - How many candles the bot shall pause trading after closing a position at a loss. The assumption is that the market is currently very irregular and no wave pattern can be detected.
    • maxVolatility: This strategy will not enter or exit the market above this volatility. Can only be enabled if this is the only main strategy for your currency pair. A value > 0 means Bollinger Bandwidth has to be below this value. Remember that this means your volatility values will change a lot if you change the candle size (as do all unbound technical indicators).
    • openBreakouts: optional default true - Open a new position even if the current candle isn't the min/max candle as long as it confirms with the current on EMA crossover trend.
    • tradeDirection: optional, default both - The direction in which this strategy shall open positions. Values: up|down|both
    • latestCandlePercent: optional, default 20% - How recent (in percent of 2*patternSize) the latest min/max candle has to be for the bot to open a position in the opposite direction (consider the wave to turn).
    • longTrend: optional, default candles - How this strategy detects the long trend. 'ticker' means long trend will be set from daily ticker instead of pattern candles. Use 'up' or 'down' to force the direction of new positions this strategy will open at the right moment of a wave. Values: candles|ticker|up|down
    • notifyBeforeExit: optional, default true - Send a notification 1 candle tick before exiting the market at a loss.
    • onlyFollowIndicatorTrend: optional, default true - Only trade if the EMA indicator matches our candle pattern and candle trend. The EMA indicator trend is usually longer (more time back) that the candle trend.
    • tradeIncreaseingTrendOnly: optional, default true - Only open a position if the EMA crossover line difference is increasing.
    • CrossMAType: optional, default EMA - The moving average type to use for identifying trend directions. Values: EMA|SMA|DEMA
    • short: optional, default 2 - Number of candles for the short EMA line.
    • long: optional, default 7 - Number of candles for the long EMA line.
    • interval: optional, default 14 - RSI interval for Falling Knife Protection: Don't buy/sell on overbought/oversold. The number of candles to use for RSI computation.
    • low: optional, default 20 - Below this value RSI will be considered oversold.
    • high: optional, default 80 - Above this value RSI will be considered overbought.
    • MAType: optional, default 0 (SMA) - The moving average type of BollingerBands. BollingerBands indicator is being used to determine the market volatility by looking at Bollinger Bandwidth.
  • WaveStopper:
    • A simpler version of WaveSurfer that only closes positions once the market moves x candles in the other direction. The value of x depends on 'minSurfCandles' and 'patternSize'. This strategy can be used as a stop loss strategy. The candle size should be larger than when opening positions (>1h). See WaveSurfer strategy for more details.
    • minSurfCandles: The minimum number of candles to keep a position open. Will usually be less than 'patternSize'.
    • patternSize: optional, default 2 - The number of candles to keep to search for a pattern. 2 will mean we keep 4 candles (2 recent lows, 2 recent highs). 2 is a good value for larger candles above 1h. For fast trading on lower candles you should increase this to 5 or more.
    • takeProfitCandleSize: optional, default 10 - The candle size in minutes of the candles this strategy uses to close a protitable position. At the end of the wave (consisting of bigger candles) it will schedule to close the position on the first candle of this small size moving against our position.
    • historyPriceCandles: optional, default 6 - The number of candles to look for price history to decide if the bot should open long or short.
    • lossPauseCandles: optional, default 0 - How many candles the bot shall pause trading after closing a position at a loss. The assumption is that the market is currently very irregular and no wave pattern can be detected.
    • maxVolatility: This strategy will not enter or exit the market above this volatility. Can only be enabled if this is the only main strategy for your currency pair. A value > 0 means Bollinger Bandwidth has to be below this value. Remember that this means your volatility values will change a lot if you change the candle size (as do all unbound technical indicators).
    • openBreakouts: optional default true - Open a new position even if the current candle isn't the min/max candle as long as it confirms with the current on EMA crossover trend.
    • tradeDirection: optional, default both - The direction in which this strategy shall open positions. Values: up|down|both
    • latestCandlePercent: optional, default 20% - How recent (in percent of 2*patternSize) the latest min/max candle has to be for the bot to open a position in the opposite direction (consider the wave to turn).
    • longTrend: optional, default candles - How this strategy detects the long trend. 'ticker' means long trend will be set from daily ticker instead of pattern candles. Use 'up' or 'down' to force the direction of new positions this strategy will open at the right moment of a wave. Values: candles|ticker|up|down
    • notifyBeforeExit: optional, default true - Send a notification 1 candle tick before exiting the market at a loss.
    • onlyFollowIndicatorTrend: optional, default true - Only trade if the EMA indicator matches our candle pattern and candle trend. The EMA indicator trend is usually longer (more time back) that the candle trend.
    • tradeIncreaseingTrendOnly: optional, default true - Only open a position if the EMA crossover line difference is increasing.
    • CrossMAType: optional, default EMA - The moving average type to use for identifying trend directions. Values: EMA|SMA|DEMA
    • short: optional, default 2 - Number of candles for the short EMA line.
    • long: optional, default 7 - Number of candles for the long EMA line.
    • interval: optional, default 14 - RSI interval for Falling Knife Protection: Don't buy/sell on overbought/oversold. The number of candles to use for RSI computation.
    • low: optional, default 20 - Below this value RSI will be considered oversold.
    • high: optional, default 80 - Above this value RSI will be considered overbought.
    • MAType: optional, default 0 (SMA) - The moving average type of BollingerBands. BollingerBands indicator is being used to determine the market volatility by looking at Bollinger Bandwidth.
  • WaveSurfer:
    • A strategy that tries to identify patterns in the trade history of x candles in size (2*patternSize). Then it assumes this pattern will repeat times, adjust price levels and trades accordingly. Backfinder is a good tool to find the good candle size of patterns. Works well with high volume coins (ETH, LTC,..) but can fail badly with small coins because they have irregular spikes quite often. This is a more advanced version of the PatternRepeater strategy.
    • minSurfCandles: The minimum number of candles to keep a position open. Will usually be less than 'patternSize'.
    • patternSize: optional, default 2 - The number of candles to keep to search for a pattern. 2 will mean we keep 4 candles (2 recent lows, 2 recent highs). 2 is a good value for larger candles above 1h. For fast trading on lower candles you should increase this to 5 or more.
    • takeProfitCandleSize: optional, default 10 - The candle size in minutes of the candles this strategy uses to close a protitable position. At the end of the wave (consisting of bigger candles) it will schedule to close the position on the first candle of this small size moving against our position.
    • historyPriceCandles: optional, default 6 - The number of candles to look for price history to decide if the bot should open long or short.
    • lossPauseCandles: optional, default 0 - How many candles the bot shall pause trading after closing a position at a loss. The assumption is that the market is currently very irregular and no wave pattern can be detected.
    • maxVolatility: This strategy will not enter or exit the market above this volatility. Can only be enabled if this is the only main strategy for your currency pair. A value > 0 means Bollinger Bandwidth has to be below this value. Remember that this means your volatility values will change a lot if you change the candle size (as do all unbound technical indicators).
    • openBreakouts: optional default true - Open a new position even if the current candle isn't the min/max candle as long as it confirms with the current on EMA crossover trend.
    • tradeDirection: optional, default both - The direction in which this strategy shall open positions. Values: up|down|both
    • latestCandlePercent: optional, default 20% - How recent (in percent of 2*patternSize) the latest min/max candle has to be for the bot to open a position in the opposite direction (consider the wave to turn).
    • longTrend: optional, default candles - How this strategy detects the long trend. 'ticker' means long trend will be set from daily ticker instead of pattern candles. Use 'up' or 'down' to force the direction of new positions this strategy will open at the right moment of a wave. Values: candles|ticker|up|down
    • notifyBeforeExit: optional, default true - Send a notification 1 candle tick before exiting the market at a loss.
    • onlyFollowIndicatorTrend: optional, default true - Only trade if the EMA indicator matches our candle pattern and candle trend. The EMA indicator trend is usually longer (more time back) that the candle trend.
    • tradeIncreaseingTrendOnly: optional, default true - Only open a position if the EMA crossover line difference is increasing.
    • CrossMAType: optional, default EMA - The moving average type to use for identifying trend directions. Values: EMA|SMA|DEMA
    • short: optional, default 2 - Number of candles for the short EMA line.
    • long: optional, default 7 - Number of candles for the long EMA line.
    • interval: optional, default 14 - RSI interval for Falling Knife Protection: Don't buy/sell on overbought/oversold. The number of candles to use for RSI computation.
    • low: optional, default 20 - Below this value RSI will be considered oversold.
    • high: optional, default 80 - Above this value RSI will be considered overbought.
    • MAType: optional, default 0 (SMA) - The moving average type of BollingerBands. BollingerBands indicator is being used to determine the market volatility by looking at Bollinger Bandwidth.

Strategy specific configuration options for all arbitrage strategies:

  • Spread:
    • Arbitrage strategy that computes the average price across exchanges. If the price is x% higher/lower than avg on exchanges:
      1. buy at the cheaper exchange and (short) sell at the expensive exchange
      2. close positions after price difference moves x% closer
    • spreadEntry: How many % the market spread between the 2 exchanges has to be to open positions on both of them.
    • spreadTarget: Targeted profit in %. This takes trading fees into account. See the 'tradingFees' setting.
      Positions will be closed according to this equation: spreadExit = spreadEntry - 4*fees - spreadTarget -> will usually negative, meaning prices flipped
    • trailingSpreadStop: After reaching spreadTarget, place a trailing stop to exit the market. Set this to 0 to exit immediately,

Strategy specific configuration options for all lending strategies:

  • DEMA:
    • Strategy that updates of lending interest rates based on the value of the DEMA indicator.
    • CrossMAType: optional, default DEMA - The moving average type to compute the average interest rate from. The value of this will be the interest rate we start placing loans at. Values: EMA|SMA|DEMA
    • long: optional, default 7 - Number of candles for the DEMA line.
    • autoSensitivity: optional, default false - Automatically adjust how many % above the DEMA the interest rate should be on highly volatile markets.
    • deltaPercent: optional, default 0% - Increase the minimum lending rate by %x above DEMA. Use negative values to decrease it.
    • MAType: optional, default 0 (SMA) - The moving average type of BollingerBands. BollingerBands indicator is being used to determine the market volatility by looking at Bollinger Bandwidth.