Skip to main content

PSAR Fibonacci Scalp Spot Trading Strategy

PSAR Fibonacci Scalp is a two-stage spot strategy. It first waits for fast and slow Parabolic SAR to confirm an upward break, then calculates a Fibonacci plan and waits for price to retrace to the configured entry level.

PSAR Fibonacci Scalp Spot Trading Strategy strategy behavior

It does not buy the breakout candle directly. The setup must remain valid long enough for a pullback, which helps avoid chasing but can also leave many signals unfilled.

warning

The default candle period is one minute and the default setup lasts 15 minutes. Small differences in spread, candle timing, and price precision can materially change whether a retracement entry is reached.

Trading behavior

1. Detecting a PSAR break

The strategy calculates a fast and slow Parabolic SAR. A long setup requires both to be in an uptrend.

With PSF_REQUIRE_CLOSE_BREAK enabled, the fast PSAR must freshly flip bullish or price must close from below the fast SAR to above it. When disabled, an intrabar high above fast SAR can qualify.

Slow PSAR acts as the broader direction filter. If it turns bearish while an unfilled setup is waiting, that setup is canceled.

2. Building the Fibonacci plan

After a qualifying break, the strategy finds the lowest low in PSF_SWING_LOOKBACK completed candles and uses the current breakout high as the top of the move.

The planned prices are:

entry = swing low + (breakout range × PSF_FIB_ENTRY_LEVEL)
target = swing low + (breakout range × PSF_FIB_TARGET_LEVEL)

With defaults, entry is the 50% level and the Fibonacci target is the 161.8% extension.

The setup expires after PSF_SETUP_MAX_AGE_MS. It also expires if slow PSAR loses its bullish direction.

3. Waiting for the retracement

The strategy enters when ask reaches or falls below the planned entry while bid remains above the planned stop. Spread, session, news, balance, minimum order, and cooldown rules must still pass at that moment.

This means both setup creation and actual entry need an open session. A setup that remains valid but retraces outside the window waits until the session reopens or the setup expires.

The strategy buys once and does not DCA.

tip

A higher Fibonacci entry level sits closer to the breakout high and is easier to reach. A lower value demands a deeper pullback toward the swing low.

Target modes

PSF_TARGET_MODE supports:

  • fib: use the Fibonacci extension target and a stop below the swing low.
  • pips: use the fixed pip or percentage target and stop around the planned entry.

In fib mode, PSF_FIB_TARGET_LEVEL controls the target and PSF_SWING_STOP_BUFFER_PIPS places the stop below the swing low.

In pips mode:

  • With PSF_USE_PIPS enabled, target and stop use pip distances.
  • With it disabled, target and stop use PSF_TARGET_PCT and PSF_STOP_PCT.

All profit targets remain above estimated fee-adjusted break-even plus PSF_MIN_NET_GAIN_PCT.

PSAR exits

Two optional signal exits are available:

  • PSF_EXIT_ON_FAST_SHORT_BREAK: exit after a bearish fast-PSAR break when slow PSAR is also bearish.
  • PSF_EXIT_ON_SLOW_PSAR_FLIP: exit whenever slow PSAR is bearish.

Both signal exits only sell at or above the minimum profitable price. They do not cut a loss.

Protection

PSF_USE_PROTECTION allows the stored setup stop to close below break-even. In Fibonacci mode this is below the swing low; in fixed mode it uses the pip or percentage distance.

Session, news, and cooldown

The default session is 04:00-06:00 in New York time, including daylight-saving changes.

The manual news block pauses new setup creation and entry, but does not stop management of an open position.

The 15-minute action cooldown is modeled in backtests when PSF_ENFORCE_COOLDOWN_IN_BACKTEST is enabled.

Good market conditions

PSAR Fibonacci Scalp is best suited to:

  • A clear bullish impulse confirmed by both PSAR speeds.
  • An orderly retracement that holds above the prior swing low.
  • Enough follow-through for price to revisit or extend beyond the breakout.
  • Liquid sessions with consistently small spread.

It is weaker in:

  • Choppy markets with repeated PSAR flips.
  • Breakouts that never retrace.
  • Deep reversals that invalidate the swing.
  • Thin one-minute markets where wick data creates false breaks.

The strategy deliberately trades a pullback after momentum. It is not designed for persistent range reversion or immediate breakout buying.

How to create the strategy

  1. Create a new spot strategy in the advanced strategy editor.
  2. Select psarfibscalp as both buy and sell method.
  3. Start with a liquid pair on the default one-minute period.
  4. Align both trading-limit settings.
  5. Check the absolute spread value for the pair.
  6. Choose fib or pips target mode explicitly.
  7. Confirm the New York-time entry window.
  8. Backtest with cooldown enforcement enabled.
  9. Test protection through failed-breakout periods.

A practical tuning workflow

Tune PSAR sensitivity first. Larger step and maximum values make SAR react faster and flip more often. Keep slow PSAR meaningfully slower than fast PSAR.

Then tune the setup geometry:

  • Increase swing lookback to anchor the plan to a broader low.
  • Lower Fibonacci entry level for a deeper pullback.
  • Increase target level for a farther extension.
  • Increase setup age to allow more time for retracement.

Do not evaluate target settings without checking fill rate. A beautiful target is irrelevant if the configured retracement almost never enters.

Finally, test the session and spread gates. The default absolute spread of 0.00015 is pair-specific and may be inappropriate for high-priced crypto pairs.

Core settings

LabelConfig parameterDefaultDescription
Buy enabledBUY_ENABLEDtrueAllows planned Fibonacci entries.
Sell enabledSELL_ENABLEDtrueAllows target, PSAR-signal, and protective exits.
PeriodPERIOD1Candle period in minutes.
Trading limitTRADING_LIMIT100Compatibility 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 reserveFUNDS_RESERVE0For USDT-BTC, the amount of USDT the bot must leave unused.
Amount retained from sellsKEEP_QUOTE0For USDT-BTC, the amount of BTC the strategy must not sell.
Min volume to buyMIN_VOLUME_TO_BUY10General minimum buy value. Keep it aligned with PSF_MIN_ORDER_VALUE. For USDT-BTC, this value is in USDT.
Min volume to sellMIN_VOLUME_TO_SELL10General minimum sell value. Keep it aligned with PSF_MIN_SELL_VALUE. For USDT-BTC, this value is in USDT.
GainGAIN0.35General target value. Keep fixed-mode intent explicit in PSF_TARGET_PCT.

Execution and session settings

LabelConfig parameterDefaultDescription
PSF trading limitPSF_TRADING_LIMIT100For USDT-BTC, the amount of USDT used for the single buy.
PSF min order valuePSF_MIN_ORDER_VALUE10Minimum value required for a buy. For USDT-BTC, this value is in USDT.
PSF min sell valuePSF_MIN_SELL_VALUE10Minimum position value required for a sell. For USDT-BTC, this value is in USDT.
PSF cooldown msPSF_COOLDOWN_MS900000Minimum milliseconds between actions. 900000 is 15 minutes.
Enforce cooldown in backtestPSF_ENFORCE_COOLDOWN_IN_BACKTESTtrueModels the cooldown during historical testing.
PSF max spread %PSF_MAX_SPREAD_PCT0.06Maximum spread as a percentage of midpoint.
PSF max spread absolutePSF_MAX_SPREAD_ABSOLUTE0.00015Maximum spread in pair price units. Set 0 to disable it. For USDT-BTC, this value is in USDT.
Use session filterPSF_USE_SESSION_FILTERtrueRestricts setup creation and entry to configured New York-time windows.
Entry windows ESTPSF_ENTRY_WINDOWS_EST04:00-06:00Comma-separated entry windows in New York time.

PSAR and setup settings

LabelConfig parameterDefaultDescription
Fast PSAR stepPSF_FAST_PSAR_STEP0.02Acceleration increment for responsive PSAR.
Fast PSAR maxPSF_FAST_PSAR_MAX0.2Maximum fast-PSAR acceleration.
Slow PSAR stepPSF_SLOW_PSAR_STEP0.005Acceleration increment for broader trend PSAR.
Slow PSAR maxPSF_SLOW_PSAR_MAX0.05Maximum slow-PSAR acceleration.
Swing lookbackPSF_SWING_LOOKBACK30Completed candles searched for the setup swing low.
Require close breakPSF_REQUIRE_CLOSE_BREAKtrueRequires close-based confirmation instead of allowing a high/low wick break.
Setup max age msPSF_SETUP_MAX_AGE_MS900000Maximum time an unfilled retracement plan remains valid.
Fib entry levelPSF_FIB_ENTRY_LEVEL0.5Fraction of breakout range above swing low used for entry.
Fib target levelPSF_FIB_TARGET_LEVEL1.618Extension of breakout range used as the Fibonacci target.

Target, stop, and exit settings

LabelConfig parameterDefaultDescription
Target modePSF_TARGET_MODEfibfib uses swing geometry; pips uses fixed pip or percentage distances.
Use pipsPSF_USE_PIPSfalseIn fixed mode, selects pip rather than percentage distances.
Pip sizePSF_PIP_SIZE0.0001Pair-price value of one pip. For USDT-BTC, this value is in USDT.
Target pipsPSF_TARGET_PIPS9Fixed profit distance in pip mode.
Stop pipsPSF_STOP_PIPS8Fixed stop distance in pip mode.
Swing stop buffer pipsPSF_SWING_STOP_BUFFER_PIPS2Distance below swing low used for the Fibonacci-mode stop.
Target %PSF_TARGET_PCT0.5Fixed profit distance in percentage mode.
Minimum net gain %PSF_MIN_NET_GAIN_PCT0.3Minimum gain above estimated fee-adjusted break-even.
Stop %PSF_STOP_PCT0.35Fixed stop distance in percentage mode.
Use protectionPSF_USE_PROTECTIONfalseAllows the stored stop to close below break-even.
Exit on fast short breakPSF_EXIT_ON_FAST_SHORT_BREAKtrueAllows a confirmed bearish fast-PSAR break to sell profitably.
Exit on slow PSAR flipPSF_EXIT_ON_SLOW_PSAR_FLIPtrueAllows bearish slow PSAR to sell profitably.

News and backtesting

LabelConfig parameterDefaultDescription
News blockPSF_NEWS_BLOCKfalseManually pauses setup creation and entry.
News block untilPSF_NEWS_BLOCK_UNTIL0Timestamp until which entries remain blocked.
Backtest sinceBF_SINCE0Optional backtest start boundary.
Backtest untilBF_UNTIL0Optional backtest end boundary.
Deep testingDEEP_TESTINGfalseEnables deeper backtesting without changing live signals.

Important limitations

  • The strategy waits for a retracement and may not enter many breakouts.
  • It opens one position and does not DCA.
  • PSAR signal exits do not realize a loss.
  • Only enabled protection activates the stored stop.
  • Setup age and session window can prevent an otherwise valid entry.
  • The absolute spread setting is pair-specific.
  • The news block is manual.

Judge the complete sequence—break, setup, retracement, entry, and exit. Looking only at PSAR flips overstates how often this strategy actually trades.