Skip to main content


This strategy is a next iteration of stepgridhybrid and its trend module, trying to find a balance between scalping (quick, small trades with high probabilities of winning) and grid trading (DCA in more or less predictable steps). The trend module used in this strategy builds on several existing concepts, but is entirely new and now accomodates for user set timeframes.

Ideal scenario: trading grid style with very adaptive trailing and a clean exit. Next initial buy would happen after the market cools down

Key features:

  • truly multi timeframe: user configurable low, medium und high timeframes for monitoring aspects like trend changes, momentum strength and more. For example you could trade on 5m charts, while also monitoring 15m and 4h.
  • different trading styles that are automatically used when opportune:
    • normal grid trading
    • cautious 'scalping' in upper ranges: aiming to exit the zone with no or a very small sized bag, using a smaller amount per buy order, strict buydowns for DCA and very cautious sell trailing
    • trade supports: when the market looks very bad, grid buy trading stops and the strategy moves into a mode where it trades higher timeframe supports with limit orders
  • different sell trailing styles that are automatically used when opportune:
    • regular trailing, with dynamic trailing ranges
    • candle low trailing, to trail bigger moves upwards
    • micro stop loss style, to quickly start sell trailing after riskier buy orders, accepting a tiny loss as outcome
  • better at selling more volume at higher prices, due to 'partial sell ratio cap' and better sell trailing
  • quick detection of trend direction changes
  • can be very cautious about when it opens new trades

Cancel orders must be disabled in the global bot settings when you use the 'trade supports' option (you can do that on the setup page).

About the trend module

The trend options are what set this strategy apart from other similar strategies. The exact details are not public to protect the work of the author, but how the data is used is a lot simpler and more transparent than in previous strategies that use black box data.

All data mentioned below, is visible in the right sidebar on the chart page

Phase system

Using data from three configurable timeframes, one out of six phases gets recognized at any time:

1: very bearish 2: bullish reversal 3: bullish 4: very bullish 5: bearish reversal 6: bearish

Trend sync uses the phase system to determine if any of the following is allowed:

  • opening new trades, coming from a situation where there is no balance to sell
  • grid trading
  • pausing grid trading, and placing limit orders at higher timeframe supports

Trend plus uses the phase system to apply dynamic trailing ranges, for example by increasing the sell trailing range in a very bullish market.

Trend scalping uses the phase system to go into 'scalping mode' when the market is either bullish, or very bullish. This mode using a more careful sell trailing mechanism (including tiny, partial stop losses), and reduces the number of 'high' buy orders, and instead buying more when price is slightly moving down again.

All trend options can be used together, or individually.

Overbought status and momentum

By monitoring higher timeframes to determine if (and how much) the market is overbought and if the current momentum is bullish or bearish, the strategy can be either more careful with new trades, or extend trailing ranges to aim for more profit.

The strict entry and strict dca options depend heavily on longer term momentum status.

Overview of restrictions

This strategy offers several settings that put restrictions on when new trades may be opened and when DCA is allowed, most of these settings can be used together.

When all restrictions are disabled, the strategy behaves like a more configurable version of stepgrid with small hardcoded limits on repeated buy orders in the same price zone, with much better sell trailing.

The overview below describes the main impact of each restrictive setting.

SettingRestrictions on new tradesRestrictions on any buy order
Price action analysis
  • New trades not allowed in phases 'very bearish' and 'bearish'
  • Grid buy trades not allowed in phases 'very bearish' and 'bearish'
Strict entry
  • New trades not allowed when money flow, momentum and volatility are not favorable on the upper timeframe
  • None
Strict DCA
  • None
  • Grid buy trades not allowed when momentum is not favorable on the upper timeframe
Exhaustion sensitivity
  • None
  • Grid buy trades not allowed when any of the timeframes is overbought, up to the specified timeframe (none, short, medium or long). For example when exhaustion sensitivity is set to 'medium', then buy orders are not allowed while the short, medium or both of these timeframes are overbought
Trade supports
  • None
  • Grid buy trades not allowed in phases 'very bearish' and 'bearish'. During this time limit orders are placed at medium or long term supports
Trend scalping
  • New trades not allowed on upper step when in phases 'bullish' or 'very bullish' and short term trend is bullish
  • Enforce additional grid buydown in phases 'bullish' and 'very bullish'
Custom trading range
  • New trades not allowed when price is not between 'trading range low' and 'trading range high'
  • Grid buy trades not allowed when price is below 'trading range DCA stop'

StepGridScalp settings

Balance settings

LabelConfig ParameterDefault ValueDetailed Description
Trading limitTRADING_LIMIT40This is the base amount you will use for each regular buy order. It is also essential for calculating the 'buy count'.
Trading limit multiplierTL_MULTIPLIER1This setting allows you to adjust the invested amount for each consecutive buy order based on a multiplier effect. For example, with a trading limit of 100 USDT and a max buy count of 3, a setting of 1.5 results in the first buy at 100 USDT, the second at 150 USDT, and the third at 225 USDT.
Always use TL multiplierALWAYS_USE_TL_MULTIPLIERfalseEnable this setting to apply the 'TL multiplier' for the base amount used in all TL ratio calculations. If disabled, the TL ratio settings will consider the absolute trading limit amount you set multiplied by the respective ratio.
Max buy countMAX_BUY_COUNT40Limits the maximum size of your position for all cases except during BTFD mode. It incorporates the increasing investment per buy order when using the trading limit multiplier, ensuring each DCA round is counted once. A setting of 40 implies a total position size up to 40 times your trading limit.
Min volume to sellMIN_VOLUME_TO_SELL10This is the minimum notional order value, used to filter out balances too small to sell. Please check with your exchange to ensure this value meets the minimum order requirements for your trading pair.
Max invested baseMAX_INVESTMENT999999999999999This setting restricts the total amount of base currency (e.g., USDT in USDT-BTC) that can be invested. For instance, a setting of 1000 USDT limits your maximum investment to 1000 USDT in the trading pair.

Profit settings

LabelConfig ParameterDefault ValueDetailed Description
GainGAIN1Specifies the minimum gain percentage target above the active unit cost or break-even point. Setting this to 1% means a full sell order is placed only when the price reaches at least 1% above your unit cost or break-even target.
Partial sell gainGAIN_PARTIAL0.5This is the minimum gain target for partial sell orders. A setting of 0.5% means you can consider partial sell orders only when buy orders are placed at least 0.5% (plus trading fees) below the current price.
Partial sell ratioPARTIAL_SELL_RATIO0.95This setting helps manage the volume of partial sells based on the amount of volume bought below the current price. For instance, if 200 units were bought below the current price, a partial sell ratio of 0.4 results in a sell order of 80 units.
Use partial sell capPARTIAL_SELL_CAPfalseEnabling this setting imposes an upper limit on the quantity of partial sell orders per sell step.
Partial sell cap ratioPARTIAL_SELL_CAP_RATIO1This setting determines the maximum volume for a partial sell order per sell step, expressed as a multiple of the 'trading limit'. For example, a setting of 1 means that each partial sell order may not exceed the trading limit value per step.
Unit costunit_costtrueDetermines how the break-even price is calculated. When enabled, the break-even price represents the average cost per unit of the remaining balance. If disabled, the break-even price is calculated such that selling the remaining units at this price would allow the entire trade sequence to break even.
Dynamic exit logicDYNAMIC_EXIT_LOGICfalseThis setting modifies the exit strategy based on market conditions. In uptrends, the exit target is the unit cost, while in other situations, the strategy aims to reach a break-even point covering the entire order sequence. This option requires the 'unit cost' to be disabled to function.

Period settings

LabelConfig ParameterDefault ValueDetailed Description
PeriodPERIOD5This setting specifies the main timeframe, in minutes, used for analyzing short-term market data. The default setting is 5 minutes.
Period mediumPERIOD_MEDIUM15This setting determines the medium-term timeframe, in minutes, for market data analysis. The default is set at 15 minutes.
Period longPERIOD_LONG60Defines the long-term timeframe, in minutes, used to analyze market data. The default setting is 60 minutes.

Customize grid

LabelConfig ParameterDefault ValueDetailed Description
Auto step sizeAUTO_STEP_SIZEATRAllows the bot to automatically adjust the grid step size based on the current volatility of the pair. Options include 'none', 'ATR', and 'candleSize'. 'None' uses a manual step size, 'ATR' adjusts based on the Average True Range, and 'candleSize' bases the step on the size of recent candles.
Minimum step pctMIN_STEP_PCT0.3Sets the minimum percentage for grid steps, overriding the automatic step size if it calculates a smaller step. A setting of 0.3% ensures that steps are never smaller than 0.3% of the current price, providing a baseline for grid consistency.
Step sizeSTEP_SIZE500This is the fixed grid step size for buy and sell orders when automatic step sizing is disabled. When set as a price (e.g., 500 USDT on USDT-BTC), it triggers trades each time the price moves by this amount. When 'Pct step size' is enabled, this value represents a percentage step.
Pct step sizePCT_STEP_SIZEfalseEnabling this option converts the 'step size' value to represent a percentage of the current price, rather than a fixed amount, providing flexibility in adjusting to market conditions.
Enforce step sizeENFORCE_STEPfalseThis setting ensures that the specified grid step size is adhered to strictly. When enabled, orders are only executed if the price trailing completes at a rate better than the target step, adding precision to your grid strategy.

Customize trailing

LabelConfig ParameterDefault ValueDetailed Description
Pct buy trailing rangePCT_TRAILING_RANGEfalseBy default, buy trailing ranges are set automatically based on current market conditions between support and resistance. Enabling this option allows you to set a custom percentage to define the trailing range for both buy and sell operations.
Custom buy trailing rangeCUSTOM_TRAILING_RANGE0.3When 'Pct buy trailing range' is enabled, this setting defines the custom trailing range as a percentage of the current price. For instance, setting it to 0.5% establishes buy trailing ranges at 0.5% of the current price, enhancing control over trade entry points.
Pct sell trailing rangePCT_SELL_TRAILING_RANGEfalseSimilar to the buy trailing range, this setting allows the customization of sell trailing ranges through a percentage value, offering tailored control over sell points relative to market dynamics.
Custom sell trailing rangeCUSTOM_SELL_TRAILING_RANGE0.3When 'Pct sell trailing range' is enabled, this value specifies the sell trailing range as a percentage of the current price, such as 0.5%, providing precision in setting sell order triggers based on market conditions.

IRIS-Trend | Price action

LabelConfig ParameterDefault ValueDetailed Description
Price action analysisTREND_SYNCfalseEnabling this setting uses trend data from configured timeframes to determine when to open new trades and to adjust trailing ranges dynamically based on price action. This can help tailor the strategy to more effectively respond to market conditions.
Price action TL ratioPRICE_ACTION_TL_RATIO1Adjusts the trading limit for buy orders based on positive market trends. For example, setting this to 2 doubles the trading limit for buy orders, allowing for more aggressive positioning in favorable conditions.
Price action thresholdPRICE_ACTION_THRESHOLD0This setting defines the ATR percentage rank threshold for triggering adjustments based on price action. A setting of 0.5 indicates that the current ATR percentage rank must be at least 50%, and is used along with a 'green' candle indication to trigger the price action multiplier.
Strict entrySTRICT_ENTRYfalseWhen enabled, this setting applies more conservative criteria for opening new trades, particularly by avoiding entries in overbought market conditions. This may result in periods of inactivity designed to optimize entry points.
Strict DCASTRICT_DCAfalseActivating this option prevents DCA (Dollar Cost Averaging) trades when the upper timeframe indicates bearish momentum, aiming to avoid compounding positions during unfavorable market phases.
Exhaustion sensitivityEXHAUSTION_SENSITIVITYMEDIUMThis setting controls the timeframe exhaustion check before allowing a new DCA buy. Options range from 'NONE' (no checks), 'SHORT' (checks short-term exhaustion), 'MEDIUM' (checks short and medium-term exhaustion), to 'LONG' (checks across short, medium, and long-term). It ensures that buying only occurs when the market is not considered 'exhausted'.

IRIS-Trend | Trade supports

LabelConfig ParameterDefault ValueDetailed Description
Trade supportsTRADE_SUPPORTStrueWhen enabled, this setting utilizes trend data to place limit order targets at medium or long-term support levels during phases unfavorable for standard grid trading. This strategic adjustment aims to capitalize on predicted support levels for optimized entry points.
S1 TL ratioSUPPORT_TL_RATIO2This parameter adjusts the value of buy orders placed at S1 (first level support) targets. Setting it to 2, for example, means that buy orders are placed for twice the amount of the 'trading limit', enhancing market position at strategic support levels.
S2 TL ratioSUPPORT2_TL_RATIO2Similar to the S1 TL ratio, this setting determines the buy order value for S2 (second level support) targets. It multiplies the 'trading limit' by the ratio set, in this case, doubling the order value at calculated support levels for aggressive positioning.

IRIS-Trend | Micro scalping

LabelConfig ParameterDefault ValueDetailed Description
Micro scalpingTREND_SCALPINGtrueWhen enabled, the strategy leverages short, medium, and long-term trend data to manage trades specifically during micro scalping phases. This can include adjusting trading tactics like opening new trades or changing grid trailing specifics to optimize for current market conditions.
Micro scalp TL ratioSCALP_TL_RATIO0.625This setting adjusts the buy and sell amounts during micro scalping sessions based on the set ratio. For instance, setting this to 0.5 would mean that buy orders are placed for half the amount of your usual trading limit, aiming for precision in high-frequency trading zones.
Initial buy step multiplierSCALP_INIT_BUY_MULTIPLIER0.6Adjusts the size of the initial buy step when entering a trade without an existing position during a scalping phase. A multiplier less than 1 accelerates entry into trades by reducing the required step size, enhancing responsiveness to market changes.
Dynamic stop lossDYNAMIC_SLfalseThis setting enables a dynamic stop loss for managing smaller positions accumulated in higher price zones, allowing for a controlled exit with a relatively small loss to avoid larger drawdowns from difficult to manage DCA situations.

IRIS-Trend | Multiple timeframes

LabelConfig ParameterDefault ValueDetailed Description
Multi timeframes modeMULTIPLE_TIMEFRAMES_MODEfalseActivating this mode allows the strategy to switch to a lower set of timeframes during bullish reversal phases to increase trading frequency. This setting aims to leverage favorable market conditions by adjusting the frequency of trade actions based on more granular timeframes.
Multi timeframes mode TL ratioMTF_TL_RATIO1This parameter sets the trading limit for buys using the lower set of timeframes, allowing for adjusted order sizes based on the timeframes currently being used. A higher setting increases the trade volume in line with the perceived opportunities of the market phase.
Lower set low periodLOWER_PERIOD_LOW5Defines the low period for the lower set of timeframes, enhancing responsiveness by focusing on shorter duration market data, which can be pivotal during quick market changes.
Lower set medium periodLOWER_PERIOD_MEDIUM15Specifies the medium period for the lower set of timeframes, offering a balance between short-term reactivity and medium-term market trends to optimize trade timing and positioning.
Lower set high periodLOWER_PERIOD_HIGH30This setting adjusts the high period for the lower set of timeframes, providing a broader perspective within the accelerated trading framework, which can help in recognizing longer-term trends that may impact short-term trading decisions.

IRIS-Trend | Accumulation cycle

LabelConfig ParameterDefault ValueDetailed Description
Accumulation cycleACCUMULATION_CYCLEfalseWhen enabled, this setting restricts the strategy to full sell orders only when the gain target is reached, and the market is exhausted on the upper timeframe. It disallows partial sells below break even, and new trades are opened only during bullish reversal phases, focusing on building positions during specific market conditions without intermediate selling.

IRIS-Trend | Advanced trailing

LabelConfig ParameterDefault ValueDetailed Description
Advanced trailingTREND_PLUStrueActivating this feature utilizes trend data across short, medium, and long-term timeframes to dynamically adjust trailing ranges based on detected market phases. This enhances the strategy's adaptability to market changes, potentially improving trade outcomes by aligning more closely with current trends.
Buy multiplier smallTREND_PLUS_BUY_MULTIPLIER_SMALL1Specifies the smallest trailing range multiplier for buying, effectively adjusting the aggressiveness of buy orders based on current market volatility and trend data. A setting of 1 means no adjustment to the default trailing range.
Buy multiplier mediumTREND_PLUS_BUY_MULTIPLIER_MEDIUM2This setting adjusts the medium buy trailing multiplier, increasing the dynamic range for executing buy orders in response to more significant market movements or volatility.
Buy multiplier largeTREND_PLUS_BUY_MULTIPLIER_LARGE5Defines the largest buy trailing multiplier, used for maximally extending the trailing range during periods of high volatility or distinct market trends, allowing for aggressive positioning in favorable conditions.
Sell multiplier smallTREND_PLUS_SELL_MULTIPLIER_SMALL0.5Adjusts the smallest trailing range for selling, reducing the trailing distance to potentially capture profit quicker during less volatile or downward trending market conditions.
Sell multiplier mediumTREND_PLUS_SELL_MULTIPLIER_MEDIUM2This medium sell trailing multiplier enhances the flexibility in setting sell orders, adapting to medium-scale market movements to optimize exit points during varying market phases.
Sell multiplier largeTREND_PLUS_SELL_MULTIPLIER_LARGE5Employs the largest sell trailing multiplier, aiming to extend the selling range substantially during highly volatile or bullish market conditions, potentially maximizing profit margins before a significant retracement.

IRIS-Trend | BTFD mode

LabelConfig ParameterDefault ValueDetailed Description
BTFD modeBTFD_MODEfalseEnables a strategy specifically designed to 'Buy The Dip' by placing a series of limit buy orders when prices fall below predefined or dynamically calculated targets, optimizing for potential rebounds in bearish conditions without existing open orders.
Use trend filterBTFD_TREND_FILTERfalseThis setting adds a filter that only allows the BTFD mode to activate under conditions of confirmed bearish market sentiment, high sell volume on upper timeframes, and elevated volatility, ensuring that dip buying aligns with more conclusive market downturns.
BTFD dip targetBTFD_DIP_TARGET0Specifies a manual price target for initiating BTFD mode. When market prices drop below this level without any open orders, it triggers a sequence of limit buy orders, ceasing standard grid buying operations below this price.
BTFD max dip targetBTFD_MAX_DIP_TARGET0Defines the lowest price at which BTFD mode operates, setting a boundary to prevent buy orders below this level, which helps manage risk and investment exposure during severe market downturns.
BTFD use automatic targetsBTFD_AUTO_TARGETnoneEnables the use of automatically determined dip targets based on market conditions, which can be particularly effective in conjunction with the 'trade supports' setting, ensuring strategic timing and placement of BTFD orders.
BTFD TL ratioBTFD_TL_RATIO1This parameter adjusts the amount of base currency used for BTFD buy orders. Increasing this ratio, such as setting it to 2, allows for more aggressive buys, potentially capitalizing on significant market dips.
BTFD max buy countBTFD_MAX_BUY_COUNT25Limits the maximum size of positions during BTFD mode, incorporating the impact of trading limit multipliers to manage the extent of dollar-cost averaging during extended dip buying phases effectively.
BTFD max dip ordersBTFD_MAX_ORDERS5Sets the maximum number of dip buy orders that can be placed sequentially, ensuring controlled exposure during the activation of BTFD mode. This limit helps to manage the number of transactions during significant price drops, aligning with overall strategy capacity and risk management.
BTFD gainBTFD_GAIN1Defines the gain percentage above the last order rate at which sell targets are set during BTFD mode, aiming to secure profits from rebounds after aggressive dip buys.
BTFD auto step sizeBTFD_AUTO_STEP_SIZEATRAllows for automatic adjustment of grid step size in BTFD mode based on current volatility, using 'ATR' or 'candleSize' to dynamically fit the market conditions, or 'none' for manual step size use.
BTFD step sizeBTFD_STEP_SIZE500Sets a specific grid step size for buy orders in BTFD mode when automatic step sizing is not used. This manual setting enables precise control over order placement relative to market movements, crucial for optimizing entry points during dips.
BTFD pct step sizeBTFD_PCT_STEP_SIZEfalseWhen enabled, this converts the step size for BTFD mode into a percentage of the current price, allowing for adaptive sizing of orders as market prices fluctuate, thus maintaining relevance and effectiveness of the strategy across different market conditions.

Custom trading range

LabelConfig ParameterDefault ValueDetailed Description
Custom trading rangeCUSTOM_TRADING_RANGE_MODEfalseEnables a trading mode where you can set specific price boundaries within which the strategy will operate. This includes an optional stop target which, if set, triggers selling all holdings if the price drops below a certain point, helping to manage risk effectively.
Trading range lowTRADING_RANGE_LOW8000Sets the lower limit of the trading range, below which no new trades will be initiated. This setting helps to avoid buying into a declining market, preserving capital during downward trends.
Trading range highTRADING_RANGE_HIGH10000Defines the upper limit of the trading range, above which no new trades will be initiated. This prevents buying at peak prices, aiming to improve the overall entry point quality within defined market conditions.
Trading range stopTRADING_RANGE_STOP7000Specifies a stop-loss target within the custom trading range. If the price falls below this level, all positions are sold off, acting as a protective measure against significant market downturns.
Trading range DCA stopTRADING_RANGE_DCA_STOP7500Sets a lower boundary for Dollar Cost Averaging (DCA) orders, below which no additional DCA orders are placed. This parameter helps manage DCA strategies by preventing excessive buys in a falling market.
Stop loss ratioTRADING_RANGE_STOP_RATIO1Allows for the configuration of partial stop losses triggered by the DCA stop target. Setting a value less than 1, such as 0.5, means stopping losses for half of the quote balance, providing a flexible approach to risk management during downward price movements.


LabelConfig ParameterDefault ValueDetailed Description
Buy enabledBUY_ENABLEDtrueAllows you to enable or disable the placement of buy orders. Disabling this option can be useful for temporarily halting new purchases without affecting the ability to sell existing positions.
Sell enabledSELL_ENABLEDtrueAllows you to enable or disable the placement of sell orders. Useful for periods when you wish to accumulate assets without selling, regardless of market conditions.
Stop after next sellSTOP_AFTER_SELLfalseThis setting stops all trading activity after the current holdings are sold, which can be particularly useful for ending trading strategies after achieving desired profit goals or when planning to reassess market conditions.
ATR periodATR_PERIOD50Defines the number of candles used to calculate the Average True Range (ATR), which helps determine appropriate step sizes and trailing ranges based on market volatility. A default setting of 50 balances responsiveness with market conditions.
Forever bagsFOREVER_BAGSfalseEnables a strategy where the focus shifts from selling at a predefined profit to maintaining positions for potentially larger gains over time. This strategy avoids selling based on the usual break-even or profit targets, favoring a more flexible, trend-following approach.
Keep quoteKEEP_QUOTE0Specifies the quantity of the quote asset to retain and not sell. For example, setting this to 0.01 in a USDT-BTC pair means the strategy will always keep 0.01 BTC out of selling operations, preserving a minimum balance.
Ignore trades beforeIGNORE_TRADES_BEFORE0Allows you to specify a timestamp before which all previous trades will be ignored. This can be used to reset the trading strategy or to start afresh without considering past trading data or outcomes, effectively setting a new baseline for strategy evaluation.

Other parameters

Besides settings mentioned on this page, no other strategy setting has any effect on stepgridscalp.