Hybrid FX Scalp Spot Trading Strategy
Hybrid FX Scalp is a selective spot strategy that requires six trend and momentum views to agree. It combines RSI, a smoothed linear weighted moving average (LWMA), smoothed Heikin Ashi candles, Waddah-style momentum, PPO, and MACD.

The method trades infrequently when its filters disagree. That is intentional: it is designed for broad confirmation, not for taking every small oscillator turn.
warning
More confirmation does not remove risk. Because the normal bearish exit waits for break-even, a losing position can remain open after all filters turn negative unless loss protection is enabled.
Trading behavior
Hybrid FX evaluates all its filters on every cycle and labels each component as bullish, bearish, or neutral.
Entry
A buy setup requires all of the following:
- RSI is at or above its buy level and is not falling.
- The smoothed LWMA is rising and bid is at or above it.
- The smoothed Heikin Ashi candle is green.
- The Waddah-style histogram is positive, strengthening, and above its minimum-strength threshold.
- PPO histogram is positive and strengthening.
- MACD is above its signal, with a non-negative and strengthening histogram.
When HFX_REQUIRE_RSI_CROSS is enabled, RSI must cross from at or below the buy level to above it on the current candle. When disabled, RSI can remain above the level as long as it is not weakening.
The entry must also pass the spread, news, cooldown, balance, and order-minimum checks. Hybrid FX buys once for the configured value and does not DCA.
tip
The sidebar summarizes RSI/LWMA, Heikin Ashi, WAE/PPO, and MACD states. Use it to identify the filter that is keeping a seemingly bullish chart in SEEK mode.
Swing-based target and stop
Hybrid FX looks back over recent completed candles for a swing low. Its preferred stop sits below that swing by:
HFX_SWING_BUFFER_PCTin percentage mode.HFX_SWING_BUFFER_PIPS × HFX_PIP_SIZEin pip mode.
If that swing-based level is not usable below the average entry, the strategy uses HFX_STOP_PCT below entry instead.
It then calculates a risk/reward target from the distance between entry and stop. HFX_RISK_REWARD = 1.2 asks for 1.2 units of reward per unit of calculated risk.
HFX_TARGET_PCT acts as a cap: when the risk/reward target is farther away, the closer percentage target is used. The final target still stays above fee-adjusted break-even plus HFX_MIN_NET_GAIN_PCT.
This means increasing risk/reward does not always move the target. Once the percentage cap is closer, HFX_TARGET_PCT controls the result.
Full sell signal
A full bearish signal is the inverse of entry:
- RSI is at or below the sell level and weakening.
- Smoothed LWMA is falling with bid below it.
- Heikin Ashi is red.
- WAE, PPO, and MACD are all bearish and strengthening downward.
With HFX_EXIT_ON_FULL_SELL_SIGNAL enabled, this closes the position only at or above break-even. It will not realize a loss.
Loss protection
With HFX_USE_PROTECTION enabled, the calculated swing or fallback stop may close below break-even. Without it, the stop is displayed for planning but does not execute.
Protection is especially important to evaluate here because a six-filter bearish signal can arrive well after price first weakens.
News block and cooldown
The news controls manually pause new entries. They do not fetch events and do not interrupt management of an open position.
The strategy waits for open orders to clear and observes HFX_COOLDOWN_MS between live actions.
Good market conditions
Hybrid FX is suited to liquid, directional markets where trend and momentum are already aligned:
- Price is holding above a rising smoothed LWMA.
- RSI is moderately bullish rather than extremely stretched.
- Several momentum histograms are expanding in the same direction.
- Candle direction is consistent enough for smoothed Heikin Ashi to confirm.
It is less suitable for:
- Sideways markets where filters alternate between neutral and conflicting.
- Sudden spikes that make all lagging filters agree near the end of a move.
- Thin pairs where a relatively small target is consumed by spread.
- Falling markets when protection is disabled.
The default 15-minute period gives the filters time to align without one-minute noise. Shorter periods generate more state changes; longer periods need more history and usually produce fewer entries.
How to create a Hybrid FX Scalp strategy
- Create a new spot strategy in the advanced strategy editor.
- Select
hybridfxscalpas both buy and sell method. - Begin with the default 15-minute period.
- Set both trading-limit fields to the same intended order value.
- Confirm the exchange minimum order values and fee setting.
- Backtest with the default filter lengths before changing any group.
- Test loss protection separately.
- Include trending, flat, and reversal periods in the test range.
A practical tuning workflow
Do not tune all three momentum families at once. Work from slow context to fast confirmation:
- Set LWMA and Heikin Ashi smoothing for the trend horizon you want.
- Adjust RSI level and decide whether a fresh cross is required.
- Tune WAE strength to remove weak momentum.
- Only then compare PPO and MACD speeds.
If the strategy barely trades, inspect which component stays neutral rather than shortening every length. If it enters too late, reduce smoothing or use shorter momentum lengths one family at a time.
For risk settings, inspect the chart target and stop across many historical entries. Increasing the swing lookback can find a more distant low, widening both risk and the risk/reward target. A larger buffer does the same. Keep the resulting exposure compatible with position size.
Core settings
| Label | Config parameter | Default | Description |
|---|---|---|---|
| Buy enabled | BUY_ENABLED | true | Allows new entries. |
| Sell enabled | SELL_ENABLED | true | Allows targets, full-sell signals, and protective stops to execute. |
| Period | PERIOD | 15 | Candle period in minutes. Every indicator uses candles from this period. |
| Trading limit | TRADING_LIMIT | 100 | Compatibility fallback only. It is ignored while the strategy-specific trading limit is positive; the two values do not need to match. For USDT-BTC, this value is in USDT. |
| Funds reserve | FUNDS_RESERVE | 0 | For USDT-BTC, the amount of USDT the bot must leave unused. |
| Amount retained from sells | KEEP_QUOTE | 0 | For USDT-BTC, the amount of BTC the strategy must not sell. |
| Min volume to buy | MIN_VOLUME_TO_BUY | 10 | General minimum buy value. Keep it aligned with HFX_MIN_ORDER_VALUE. For USDT-BTC, this value is in USDT. |
| Min volume to sell | MIN_VOLUME_TO_SELL | 10 | General minimum sell value. Keep it aligned with HFX_MIN_SELL_VALUE. For USDT-BTC, this value is in USDT. |
| Gain | GAIN | 0.45 | General target value. Keep the intended cap explicit in HFX_TARGET_PCT. |
Order and execution settings
| Label | Config parameter | Default | Description |
|---|---|---|---|
| HFX trading limit | HFX_TRADING_LIMIT | 100 | For USDT-BTC, the amount of USDT used for the single entry order. |
| HFX min order value | HFX_MIN_ORDER_VALUE | 10 | Minimum value required to place a buy. For USDT-BTC, this value is in USDT. |
| HFX min sell value | HFX_MIN_SELL_VALUE | 10 | Minimum position value required for a sell. Smaller inventory is treated as dust. For USDT-BTC, this value is in USDT. |
| HFX cooldown ms | HFX_COOLDOWN_MS | 120000 | Minimum milliseconds between live actions. 120000 is two minutes. |
| HFX max spread % | HFX_MAX_SPREAD_PCT | 0.12 | Maximum bid/ask spread as a percentage of midpoint. |
| HFX max spread absolute | HFX_MAX_SPREAD_ABSOLUTE | 0 | Optional maximum spread in pair price units. 0 disables this additional check. For USDT-BTC, this value is in USDT. |
RSI and trend settings
| Label | Config parameter | Default | Description |
|---|---|---|---|
| RSI length | HFX_RSI_LENGTH | 14 | RSI lookback. Shorter values react faster and cross levels more often. |
| RSI buy level | HFX_RSI_BUY_LEVEL | 52 | Minimum bullish RSI level. With cross mode off, RSI must also be flat or rising. |
| RSI sell level | HFX_RSI_SELL_LEVEL | 48 | Maximum bearish RSI level for a full sell signal. |
| Require RSI cross | HFX_REQUIRE_RSI_CROSS | false | Requires a fresh cross of the buy or sell level instead of accepting an already aligned RSI. |
| LWMA length | HFX_LWMA_LENGTH | 21 | Lookback for the linear weighted trend average. |
| LWMA smooth length | HFX_LWMA_SMOOTH_LENGTH | 5 | EMA smoothing applied to LWMA. Higher values reduce noise but delay turns. |
| HA smooth length | HFX_HA_SMOOTH_LENGTH | 9 | Smoothing applied to Heikin Ashi direction. Higher values make color changes slower. |
Momentum settings
| Label | Config parameter | Default | Description |
|---|---|---|---|
| WAE fast length | HFX_WAE_FAST_LENGTH | 12 | Fast EMA length for Waddah-style momentum. |
| WAE slow length | HFX_WAE_SLOW_LENGTH | 26 | Slow EMA length. Keep it longer than the fast value. |
| WAE signal length | HFX_WAE_SIGNAL_LENGTH | 9 | Smoothing for the WAE-style signal. |
| WAE min strength % | HFX_WAE_MIN_STRENGTH_PCT | 0.02 | Minimum histogram size relative to price. Increase it to reject weaker momentum. |
| PPO fast length | HFX_PPO_FAST_LENGTH | 12 | Fast EMA length for Percentage Price Oscillator. |
| PPO slow length | HFX_PPO_SLOW_LENGTH | 26 | Slow PPO EMA length. Keep it longer than fast. |
| PPO signal length | HFX_PPO_SIGNAL_LENGTH | 9 | PPO signal smoothing. |
| MACD fast length | HFX_MACD_FAST_LENGTH | 12 | Fast MACD EMA length. |
| MACD slow length | HFX_MACD_SLOW_LENGTH | 26 | Slow MACD EMA length. Keep it longer than fast. |
| MACD signal length | HFX_MACD_SIGNAL_LENGTH | 9 | MACD signal-line length. |
Swing risk and exit settings
| Label | Config parameter | Default | Description |
|---|---|---|---|
| Swing lookback | HFX_SWING_LOOKBACK | 10 | Number of completed candles searched for the recent swing low. Longer values can produce a wider stop. |
| Risk reward | HFX_RISK_REWARD | 1.2 | Multiplies calculated entry-to-stop risk to form a target before the percentage cap is applied. |
| Use pips | HFX_USE_PIPS | false | Uses a pip buffer below the swing instead of a percentage buffer. It does not replace the percentage target. |
| Pip size | HFX_PIP_SIZE | 0.0001 | Pair-price value of one pip. For USDT-BTC, this value is in USDT. |
| Swing buffer pips | HFX_SWING_BUFFER_PIPS | 5 | Extra distance below the swing low in pip mode. |
| Swing buffer % | HFX_SWING_BUFFER_PCT | 0.08 | Extra percentage distance below the swing low when pip mode is off. |
| Stop % | HFX_STOP_PCT | 0.75 | Fallback stop distance below average entry when a usable swing stop is unavailable. |
| Target % | HFX_TARGET_PCT | 0.5 | Caps the risk/reward target at this percentage above entry. |
| Exit on full sell signal | HFX_EXIT_ON_FULL_SELL_SIGNAL | true | Allows complete bearish filter agreement to sell at or above break-even. |
| Use loss protection | HFX_USE_PROTECTION | false | Allows the swing or fallback stop to close below break-even. |
| Minimum net gain % | HFX_MIN_NET_GAIN_PCT | 0.1 | Minimum expected gain above fee-adjusted break-even for the normal target. |
News and backtesting settings
| Label | Config parameter | Default | Description |
|---|---|---|---|
| News block | HFX_NEWS_BLOCK | false | Manually pauses new entries while enabled. |
| News block until | HFX_NEWS_BLOCK_UNTIL | 0 | Timestamp until which new entries remain blocked. |
| Backtest since | BF_SINCE | 0 | Optional backtest start boundary. |
| Backtest until | BF_UNTIL | 0 | Optional backtest end boundary. |
| Deep testing | DEEP_TESTING | false | Enables Gunbot's deeper backtesting mode without changing live signals. |
Important limitations
- All six bullish filters must agree; there is no configurable minimum score.
- Hybrid FX opens one position and does not DCA.
- The full bearish signal refuses to sell below break-even.
- Only enabled loss protection can make a planned loss exit.
HFX_TARGET_PCTcan cap the target before the requested risk/reward is reached.- The news block is manual.
Treat a low trade count as information, not automatically as a problem. This strategy's purpose is to wait for confluence; loosening every filter can turn it into a different and much noisier method.