1 Min Scalper
1 Min Scalper is a session-aware trend and pullback strategy designed around short candles. It uses a fast and slow EMA to establish direction, Stochastic RSI to identify a momentum reset, and Gann-style price levels to provide structural context for entries, targets, and stops.
The default setup trades only during configured time windows. It looks for Stochastic RSI to turn upward from its lower region while the fast EMA remains above the slow EMA. Optional filters can require price above the fast EMA, a rising fast EMA, and a touch near a Gann level.
Although the name suggests a one-minute chart, PERIOD remains configurable. Changing it changes the meaning of every lookback and session sample, so treat any other period as a different setup that needs its own testing.
warning
One-minute trading is particularly sensitive to spread, fees, slippage, latency, and short-lived candle noise. The protective stop is disabled by default. Test with realistic execution assumptions.
Entry setup
A long entry needs trend, momentum, structure, and session conditions to agree.
EMA trend
The fast EMA must be above the slow EMA. Keep OMS_EMA_SLOW_LENGTH greater than OMS_EMA_FAST_LENGTH.
Two optional filters make this stricter:
OMS_REQUIRE_PRICE_ABOVE_FAST_EMArequires the current close above the fast EMA.OMS_REQUIRE_FAST_EMA_SLOPErequires the fast EMA to be rising.
Together, these filters avoid buying a Stochastic RSI turn while price is still below immediate trend support or the fast trend is losing direction.
Stochastic RSI turn
The strategy looks for Stochastic RSI %K to turn upward after the previous reading was at or below OMS_STOCH_BUY_LEVEL.
With OMS_REQUIRE_STOCH_D_CONFIRM enabled, %K must cross above %D. When it is disabled, %K only needs to cross back above the buy level.
The sell level defines the mirrored bearish turn used by the optional short-signal exit.
Gann-style levels
The strategy divides a recent high-to-low range into OMS_GANN_LEVELS evenly spaced levels. It identifies the nearest support below price and resistance above price.
Price must remain above the nearest support for a long entry. When OMS_REQUIRE_GANN_LEVEL_TOUCH is enabled, price must also be close to either the nearest support or resistance. In pip mode, OMS_GANN_PROXIMITY_PIPS defines “close.”
In percentage target mode, Gann proximity is fixed at approximately 0.02% of current price, so changing the pip proximity does not affect this test.
During a recognized session, levels are based on available candles from the start of that session. When no active session window supplies that start—for example while trading outside sessions—the strategy falls back to OMS_GANN_LOOKBACK.
The strategy opens one position at a time and does not average down.
Trading sessions
OMS_ACTIVE_SESSIONS accepts comma-separated daily windows such as:
09:00-11:00,15:00-20:00
The clock is interpreted in OMS_SESSION_TIMEZONE. Use a valid time-zone name and account for daylight-saving changes in that location.
When OMS_ALLOW_TOKYO_AUD_NZD is enabled, OMS_TOKYO_SESSION is added for pairs whose symbols include AUD or NZD. Other pairs do not receive this extra window.
Enable OMS_TRADE_OUTSIDE_SESSIONS to remove the entry-time restriction. Existing positions can always be managed outside a session; the windows block new signals, not exits.
Target and exits
Gann or fixed target
The strategy targets the nearest Gann resistance above the entry when that level is available. It will not use a target below the configured minimum objective:
OMS_TARGET_PIPSin pip mode;OMS_TARGET_PCTin percentage mode;- estimated fee break-even plus
OMS_MIN_NET_GAIN_PCT.
The resulting target is therefore the higher of the usable Gann resistance and the fee-aware configured floor.
OMS_TARGET_PIPS_MIN and OMS_TARGET_PIPS_MAX clamp the requested pip target. They do not create a variable range.
Technical exits
OMS_EXIT_ON_SHORT_SIGNAL can exit after the full mirrored short setup appears, including the session condition and any enabled EMA or Gann confirmations.
OMS_EXIT_ON_EMA_FLIP can exit when the fast EMA falls below the slow EMA.
Both technical exits require the position to be at break-even or better. They are not substitutes for loss protection.
Structural stop
Enable OMS_STOP_ENABLED to activate the stop.
The strategy looks below both the nearest Gann support and the lowest low in OMS_SWING_LOOKBACK, then applies OMS_STOP_BELOW_LEVEL_PIPS as an offset. OMS_STOP_PCT limits how far below the entry the stop may be placed.
The level offset always uses OMS_PIP_SIZE, including when OMS_USE_PIPS is disabled. The pip/percentage switch changes the profit-target distance, but not this structural stop offset.
Good market conditions
1 Min Scalper generally works best when:
- the pair is liquid during the configured session;
- spread remains small relative to the target;
- the fast EMA is above and rising away from the slow EMA;
- Stochastic RSI makes an orderly reset and bullish cross;
- nearby Gann support is respected;
- the next resistance leaves enough room for fees and slippage.
A useful setup often looks like a short pullback within an intraday uptrend, followed by a momentum turn near support.
Avoid thin session hours, flat or repeatedly crossing EMAs, and news-driven one-minute spikes. A Stochastic RSI cross can occur many times in a range, and it can turn upward briefly during a continuing decline.
Creating the strategy
Create a spot strategy and select 1 Min Scalper as the buy and sell method. Start with backtesting or paper trading.
A practical setup sequence is:
- Confirm the pair has adequate one-minute liquidity.
- Set the correct session time zone.
- Choose active windows that match the pair’s liquid hours.
- Keep EMA and Stochastic RSI defaults for the first tests.
- Compare Gann-touch confirmation on and off.
- Verify pip size and spread limits for the pair.
- Decide whether a structural stop is required.
- Test across quiet, active, trending, and event-driven sessions.
Strategy settings
Trading and execution
| Setting | Description |
|---|---|
BUY_ENABLED | Enables new buy orders. |
SELL_ENABLED | Enables target, technical, and protective sell orders. |
PERIOD | Candle period used for every calculation. The default is one minute. |
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. |
OMS_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. |
OMS_MIN_ORDER_VALUE | Strategy-specific minimum entry value. For USDT-BTC, this value is in USDT. |
OMS_MIN_SELL_VALUE | Strategy-specific minimum exit value. For USDT-BTC, this value is in USDT. |
OMS_COOLDOWN_MS | Minimum live-trading delay in milliseconds between actions. It is not applied in backtests. |
OMS_MAX_SPREAD_PCT | Maximum permitted bid/ask spread as a percentage. |
OMS_MAX_SPREAD_ABSOLUTE | Optional maximum spread in USDT for a pair such as USDT-BTC. Set 0 to disable it. |
OMS_NEWS_BLOCK | Manually blocks new entries while existing positions remain manageable. |
OMS_NEWS_BLOCK_UNTIL | Blocks new entries until the configured time. |
Session controls
| Setting | Description |
|---|---|
OMS_SESSION_TIMEZONE | Time zone used to interpret every session window. |
OMS_ACTIVE_SESSIONS | Comma-separated daily entry windows in HH:MM-HH:MM format. |
OMS_TOKYO_SESSION | Extra daily window available to AUD- or NZD-related pairs. |
OMS_ALLOW_TOKYO_AUD_NZD | Adds the Tokyo window when either pair symbol contains AUD or NZD. |
OMS_TRADE_OUTSIDE_SESSIONS | Allows entries at all times instead of requiring an active window. |
EMA trend
| Setting | Description |
|---|---|
OMS_EMA_FAST_LENGTH | Length of the responsive trend EMA. |
OMS_EMA_SLOW_LENGTH | Length of the slower trend EMA; keep it greater than the fast length. |
OMS_REQUIRE_PRICE_ABOVE_FAST_EMA | Requires long entries above the fast EMA and mirrored short signals below it. |
OMS_REQUIRE_FAST_EMA_SLOPE | Requires the fast EMA to rise for longs and fall for mirrored short signals. |
Stochastic RSI
| Setting | Description |
|---|---|
OMS_STOCH_RSI_LENGTH | RSI and stochastic lookback used by the oscillator. |
OMS_STOCH_K_SMOOTH | Smoothing applied to the %K line. |
OMS_STOCH_D_SMOOTH | Smoothing applied to the %D confirmation line. |
OMS_STOCH_BUY_LEVEL | Lower level from which a bullish turn must begin. |
OMS_STOCH_SELL_LEVEL | Upper level from which a bearish turn must begin. |
OMS_REQUIRE_STOCH_D_CONFIRM | Requires %K to cross %D; when disabled, %K crosses the relevant threshold instead. |
Gann structure
| Setting | Description |
|---|---|
OMS_GANN_LOOKBACK | Fallback number of candles used to build the high-to-low range when no active session start is available. |
OMS_GANN_LEVELS | Number of evenly spaced levels in the recent range. |
OMS_REQUIRE_GANN_LEVEL_TOUCH | Requires price near the nearest support or resistance before entry. |
OMS_GANN_PROXIMITY_PIPS | Near-level tolerance in pip mode. Percentage mode uses a fixed proportional tolerance. |
OMS_SWING_LOOKBACK | Number of recent candles used to locate the swing low for the structural stop. |
OMS_STOP_BELOW_LEVEL_PIPS | Pip-sized offset below Gann support and the recent swing low. |
Target and stop
| Setting | Description |
|---|---|
GAIN | General gain fallback retained in the configuration. The strategy normally uses its own target setting. |
OMS_USE_PIPS | Uses a pip target rather than a percentage target. |
OMS_PIP_SIZE | For USDT-BTC, the USDT value represented by one pip; also used for Gann and stop offsets. |
OMS_TARGET_PIPS | Requested minimum target distance in pip mode. |
OMS_TARGET_PIPS_MIN | Lowest permitted pip target. |
OMS_TARGET_PIPS_MAX | Highest permitted pip target. |
OMS_TARGET_PCT | Minimum target percentage when pip mode is disabled. |
OMS_MIN_NET_GAIN_PCT | Minimum intended gain beyond estimated round-trip fee break-even. |
OMS_STOP_ENABLED | Activates the structural protective stop. |
OMS_STOP_PCT | Maximum permitted stop distance below entry. |
OMS_EXIT_ON_SHORT_SIGNAL | Enables a break-even-or-better exit on the complete opposite setup. |
OMS_EXIT_ON_EMA_FLIP | Enables a break-even-or-better exit when the fast EMA falls below the slow EMA. |
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 stricter trend entries, keep both price-above-fast-EMA and fast-slope confirmation enabled. Disabling either admits earlier but less established turns.
For more selective structural entries, enable the Gann-touch requirement and use a realistic proximity. In percentage mode, remember that its distance is not controlled by the pip field.
Shortening Stochastic RSI or its smoothing creates quicker crosses and more noise. Lengthening them produces fewer, later turns.
Choose session windows from observed liquidity rather than assuming the defaults fit every exchange and pair. If trading outside sessions, retest the meaning of the Gann lookback because the active-session range is no longer consistently available.
Important limitations
- A one-minute signal can disappear quickly and is highly execution-sensitive.
- Session strings and time zones must be valid and intentional.
- The Tokyo window is added only when the pair symbols contain AUD or NZD.
- Gann levels are derived from recent range; they are not guaranteed support or resistance.
- Technical exits do not intentionally realize a loss.
- The structural stop does nothing until
OMS_STOP_ENABLEDis active. - Gann proximity changes behavior between pip and percentage modes.
- The stop offset remains pip-based in both target modes.
- Backtests cannot perfectly reproduce live spread, slippage, latency, or thin order books.
1 Min Scalper is best treated as a tightly scoped intraday method: trade during known liquid windows, in a clear EMA trend, when momentum resets near usable structure. Removing all three constraints produces more trades, but no longer preserves the character of the setup.