Simple Scalper
Simple Scalper combines an ATR-based direction line with a fast/slow EMA filter. It buys when direction is bullish and the EMA filter is “blue”: the fast EMA is above the slow EMA, price is above the fast EMA, and the fast EMA is not falling.
The strategy can wait for a fresh direction change or accept any ongoing bullish direction. Targets and stops can use fixed distances or recent pivot levels, and optional session windows restrict new entries.
This method is best suited to liquid markets moving cleanly from a bearish or neutral phase into a sustained bullish trend. It is less suitable for ranges where the direction line and EMA filter change repeatedly.
warning
Protection is disabled by default. Signal exits are break-even protected and cannot replace a loss-taking stop.
Direction signal
The direction line is based on ATR and behaves similarly to a Supertrend:
SSC_DIRECTION_ATR_LENGTHsets the volatility lookback;SSC_DIRECTION_ATR_MULTsets how far the direction boundary sits from price.
A smaller multiplier or shorter ATR length generally reacts faster and flips more often. A larger multiplier gives price more room and produces slower changes.
With SSC_REQUIRE_DIRECTION_FLIP enabled, a long signal occurs only on the first candle that changes into an upward direction. When disabled, any candle in an ongoing upward direction can qualify while the strategy is flat.
The mirrored sell signal uses a downward direction and, when flip confirmation is enabled, requires the first candle of that change.
EMA filter
The filter is blue when:
- the fast EMA is above the slow EMA;
- price closes at or above the fast EMA;
- the fast EMA has not fallen over
SSC_FILTER_SLOPE_LOOKBACK.
It is white when the opposite conditions hold. Any mixed state is neutral.
SSC_FILTER_FAST_EMA and SSC_FILTER_SLOW_EMA control the two trend horizons. Keep the slow length above the fast length.
A long entry requires both a bullish direction signal and a blue filter. The strategy opens one position at a time and does not average down.
Pivot levels
SSC_PIVOT_LOOKBACK defines a recent high, low, and previous close from which the strategy calculates a central pivot plus R1/R2 and S1/S2 levels.
Pivot target
When SSC_USE_PIVOT_TARGET is enabled in pip mode, the strategy looks for the nearest R1 or R2 that lies:
- farther than
SSC_TARGET_PIPS_MIN; - no farther than
SSC_TARGET_PIPS_MAX.
If no pivot resistance fits that window, it uses SSC_TARGET_PIPS.
In percentage mode, the pivot selection window collapses to the single fixed percentage distance, so the strategy normally uses SSC_TARGET_PCT rather than a pivot target. Use pip mode when pivot-target selection is important.
Pivot stop
When SSC_USE_PIVOT_STOP is enabled, S1 and S2 are considered alongside the ATR direction line and configured fixed stop. The closest valid level below entry becomes the planned stop.
The stop executes only when SSC_USE_PROTECTION is enabled.
Target and exits
The final target is raised when necessary to cover estimated round-trip fees and SSC_MIN_NET_GAIN_PCT.
In pip mode, SSC_TARGET_PIPS is constrained by SSC_TARGET_PIPS_MIN and SSC_TARGET_PIPS_MAX. In percentage mode, SSC_TARGET_PCT is used.
Three technical exits can close at the fee-aware profitable level:
SSC_EXIT_ON_SELL_SIGNALexits on the complete direction-plus-white-filter sell setup.SSC_EXIT_ON_FILTER_FLIPexits whenever the EMA filter becomes white.SSC_EXIT_ON_DIRECTION_FLIPexits whenever the ATR direction becomes down.
The sell-signal exit is the strictest because it requires both bearish components. The other two respond to one component independently.
Session filter
Enable SSC_SESSION_FILTER to permit entries only inside SSC_SESSION_WINDOWS.
Windows use HH:MM-HH:MM format and are interpreted using SSC_SESSION_TIMEZONE_OFFSET, an hour offset from UTC. Multiple windows are comma separated.
Session filtering blocks entries only. Existing positions can reach targets, stops, or technical exits outside the selected windows.
Order size
SSC_TRADING_LIMIT controls the USDT entry amount for a pair such as USDT-BTC, subject to balance, reserves, and minimum order values.
SSC_SIZE_STEP_PCT is visible in the editor but currently does not change the entry amount. Adjust SSC_TRADING_LIMIT when you want to change position size; do not expect the size-step field to scale it.
Good market conditions
Simple Scalper generally works best when:
- the market is liquid with a small spread;
- ATR direction makes a clean bullish change;
- the fast EMA is above a rising slow EMA;
- price holds above the fast EMA;
- a nearby pivot or fixed target leaves realistic room after fees.
Fresh-flip mode is well suited to emerging trends. Disabling the flip requirement can join established trends, but may also repeatedly re-enter late in the same move after a prior position closes.
Avoid flat, noisy markets where direction flips frequently and the filter alternates between blue, neutral, and white. Also avoid copying session windows or pip settings between markets without checking their active hours and price scale; for USDT-BTC, values are in USDT.
Creating the strategy
Create a spot strategy and choose Simple Scalper as the buy and sell method. The default candle period is five minutes. Begin with backtesting or paper trading.
A practical setup process is:
- Select a liquid pair and verify pip size.
- Keep the default ATR direction and EMA filter initially.
- Compare fresh direction flips with persistent direction states.
- Test pivot and fixed targets in pip mode.
- Decide whether pivot supports should influence the stop.
- Enable session filtering only after choosing the correct UTC offset and windows.
- Set all spread limits deliberately.
- Test with and without protection across ranging and trending samples.
Strategy settings
Trading and execution
| Setting | Description |
|---|---|
BUY_ENABLED | Enables new buy orders. |
SELL_ENABLED | Enables target, signal, and protective sell orders. |
PERIOD | Candle period used for all calculations; the default is five minutes. |
TRADING_LIMIT | Compatibility fallback only. It is ignored while the strategy-specific trading limit contains a positive value. Configure the strategy-specific setting for normal use. For USDT-BTC, this value is in USDT. |
SSC_TRADING_LIMIT | For USDT-BTC, the amount of USDT used for an entry. |
FUNDS_RESERVE | For USDT-BTC, the amount of USDT the bot must leave unused. |
KEEP_QUOTE | For USDT-BTC, the amount of BTC the strategy must not sell. |
MIN_VOLUME_TO_BUY | General minimum buy value. For USDT-BTC, this value is in USDT. |
MIN_VOLUME_TO_SELL | General minimum sell value. For USDT-BTC, this value is in USDT. |
SSC_MIN_ORDER_VALUE | Strategy-specific minimum entry value. For USDT-BTC, this value is in USDT. |
SSC_MIN_SELL_VALUE | Strategy-specific minimum exit value. For USDT-BTC, this value is in USDT. |
SSC_COOLDOWN_MS | Minimum delay in milliseconds between actions. |
SSC_ENFORCE_COOLDOWN_IN_BACKTEST | Applies the cooldown during backtests as well as live trading. |
SSC_MAX_SPREAD_PCT | Maximum permitted spread as a percentage. |
SSC_MAX_SPREAD_ABSOLUTE | Optional maximum spread in USDT for a pair such as USDT-BTC. 0 disables it. |
SSC_MAX_SPREAD_PIPS | Optional maximum spread in pips. 0 disables it. |
SSC_NEWS_BLOCK | Manually blocks new entries while existing positions remain manageable. |
SSC_NEWS_BLOCK_UNTIL | Blocks entries until the configured time. |
All enabled spread limits must pass.
Direction and EMA filter
| Setting | Description |
|---|---|
SSC_DIRECTION_ATR_LENGTH | ATR lookback used by the direction line. |
SSC_DIRECTION_ATR_MULT | Volatility multiplier controlling the direction line’s distance from price. |
SSC_REQUIRE_DIRECTION_FLIP | Requires a fresh change into up or down direction for the respective signal. |
SSC_FILTER_FAST_EMA | Fast EMA length used by the blue/white filter. |
SSC_FILTER_SLOW_EMA | Slow EMA length; keep it above the fast length. |
SSC_FILTER_SLOPE_LOOKBACK | Candles used to judge whether the fast EMA is rising or falling. |
Pivot controls
| Setting | Description |
|---|---|
SSC_PIVOT_LOOKBACK | Recent candles used to calculate pivot, support, and resistance levels. |
SSC_USE_PIVOT_TARGET | Uses a qualifying R1/R2 target in pip mode; otherwise falls back to the fixed target. |
SSC_USE_PIVOT_STOP | Allows S1/S2 to compete with the direction line and fixed distance as the closest stop reference. |
Target and protection
| Setting | Description |
|---|---|
GAIN | General gain fallback retained in the configuration. The strategy normally uses its own target setting. |
SSC_USE_PIPS | Uses pip target and stop distances and enables the practical pivot-target window. |
SSC_PIP_SIZE | Value of one pip. 0 selects 0.01 for JPY pairs and 0.0001 otherwise. For USDT-BTC, this value is in USDT. |
SSC_TARGET_PIPS | Requested fixed target in pip mode. |
SSC_TARGET_PIPS_MIN | Lowest permitted pip target and lower boundary for pivot targets. |
SSC_TARGET_PIPS_MAX | Highest permitted pip target and upper boundary for pivot targets. |
SSC_STOP_PIPS | Fixed stop distance in pip mode. |
SSC_TARGET_PCT | Fixed target percentage when pip mode is disabled. |
SSC_STOP_PCT | Fixed stop distance in percentage mode. |
SSC_MIN_NET_GAIN_PCT | Minimum intended gain beyond estimated round-trip fee break-even. |
SSC_USE_PROTECTION | Activates the selected protective stop. |
Sessions and size
| Setting | Description |
|---|---|
SSC_SESSION_FILTER | Restricts new entries to the configured daily windows. |
SSC_SESSION_TIMEZONE_OFFSET | Hour offset from UTC used to interpret the windows. |
SSC_SESSION_WINDOWS | Comma-separated entry windows in HH:MM-HH:MM format. |
SSC_SIZE_STEP_PCT | Currently does not alter the entry amount. Use SSC_TRADING_LIMIT for position size. |
Technical exits
| Setting | Description |
|---|---|
SSC_EXIT_ON_SELL_SIGNAL | Enables a profitable exit on a down-direction signal with a white EMA filter. |
SSC_EXIT_ON_FILTER_FLIP | Enables a profitable exit whenever the EMA filter becomes white. |
SSC_EXIT_ON_DIRECTION_FLIP | Enables a profitable exit whenever the ATR direction becomes down. |
Backtesting range
| Setting | Description |
|---|---|
BF_SINCE | Start of the selected backtesting period. |
BF_UNTIL | End of the selected backtesting period. |
DEEP_TESTING | Enables deeper backtesting mode in the editor. |
Practical tuning directions
For fewer, earlier entries, keep fresh direction flips enabled. For more continuation entries, disable the requirement, but review whether the strategy repeatedly re-enters mature trends.
Increase the ATR multiplier to reduce direction flips; decrease it for faster reaction. Adjusting the EMA filter at the same time makes it harder to tell which change improved or weakened the setup.
Use pip mode to test pivot targets meaningfully. Keep the target min/max window wide enough to include realistic R1 or R2 levels.
If technical exits occur too soon, compare the individual filter and direction switches. If losing positions remain open, these exits cannot help below break-even; review protection.
Important limitations
- ATR direction and EMA filters both lag price.
- Direction signals can whipsaw during ranges.
- Pivot targets are practically selected only in pip mode.
- Pivot levels are based on recent extremes and are not guaranteed support or resistance.
- Technical exits do not deliberately realize a loss.
SSC_SIZE_STEP_PCTcurrently does not change order size.- UTC offsets do not automatically encode local daylight-saving rules.
- Backtests cannot perfectly reproduce live spread, slippage, latency, or liquidity.
Simple Scalper works best when its name reflects the market: one clean direction change, one clearly aligned EMA filter, and a realistic nearby objective. Extra trades created by loosening both confirmations are usually a different strategy rather than a simple improvement.