Skip to main content

QFL 3C Scalper

QFL 3C Scalper strategy behavior

QFL 3C Scalper is a spot-only strategy inspired by the Quickfingers Luc base-and-crack concept. It identifies confirmed price bases from completed candles, waits for price to fall a configured percentage below a selected base, and then manages the long position with a base order, optional DCA ladder, two partial profit orders, a trailing final portion, and a fixed safety stop.

The strategy can coordinate entries across several pairs on the same exchange so that one group-level trade limit controls portfolio exposure.

warning

QFL 3C is a high-risk averaging strategy. For USDT-BTC, the defaults can allocate 1000 USDT to the initial order and another 3000 USDT across three DCA orders, plus fees. Reduce order sizes for your account and validate signals before enabling live orders.

info

The detector is a deterministic QFL-compatible approximation. It does not claim to reproduce a proprietary third-party signal formula whose complete rules are not public.

Trading lifecycle

QFL 3C moves through five practical phases:

  1. Confirm a price base.
  2. Wait for a crack below that base.
  3. Place and manage the base order.
  4. Manage DCA and staged profit exits.
  5. Close the position and enter cooldown.

It is long-only and opens at most one managed trade per pair.

Base detection

Only completed candles are used. The default detector evaluates up to 500 one-hour candles.

For base detection, the strategy uses the lower edge of each candle body rather than its wick. A candle becomes a candidate when this body low is a local pivot compared with candles to its left and right.

BASE_PIVOT_LEFT and BASE_PIVOT_RIGHT set those comparison widths. Larger values demand a more isolated low and usually produce fewer candidates.

A candidate becomes a confirmed base only when candle bodies rebound by at least BASE_MIN_BOUNCE_PCT within BASE_BOUNCE_WINDOW. It is rejected if price closes too far below it first, controlled by BASE_PRECONFIRM_INVALIDATION_PCT.

Nearby confirmed bases are merged according to BASE_MERGE_TOLERANCE_PCT. BASE_MAX_AGE_CANDLES removes old bases from consideration.

Crack and entry confirmation

The crack level is:

confirmed base × (1 - QFL_DROP_PCT / 100)

For example, a base at 100 with QFL_DROP_PCT = 4.7 produces a crack at 95.30.

ENTRY_CONFIRMATION_MODE offers two choices:

  • threshold qualifies when the ask reaches or falls below the crack.
  • rebound first arms at the crack, records the lowest ask, and then requires a rebound of ENTRY_REBOUND_PCT.

ENTRY_REBOUND_TIMEOUT_SECONDS abandons an armed rebound setup if it does not confirm in time. Set it to 0 for no timeout.

Rebound mode can avoid entering during the first part of a fast decline, but it may enter higher or miss a move that never rebounds.

Entry safety gates

Before a live base order, the strategy checks:

  • QFL_LIVE_TRADING, BUY_ENABLED, and valid market data;
  • spread at or below MAX_SPREAD_PCT;
  • rolling volume at or above MIN_DAILY_VOLUME_BTC;
  • no unmanaged open orders;
  • a clean existing asset balance when required;
  • sufficient available USDT for the complete plan on a pair such as USDT-BTC, when required;
  • an available shared coordinator slot.

VOLUME_UNIT_MODE must match the exchange candle feed. For a market shown in Gunbot as USDT-BTC, choose base_asset when the raw candle volume is measured in BTC, or quote_notional when it is already expressed as a USDT value. A wrong mode makes the BTC-equivalent liquidity gate misleading.

Signal-only validation

QFL_LIVE_TRADING defaults to false. In this mode QFL 3C detects bases and cracks, evaluates gates, and updates chart/sidebar information without placing or cancelling orders.

Before live use:

  1. Keep the pair period at 60 minutes.
  2. Confirm that completed candle history is available.
  3. Inspect whether bases and cracks appear at sensible levels.
  4. Verify rolling volume and spread.
  5. Configure amount precision, price precision, and minimum notional explicitly.
  6. Reduce the initial-order and DCA amounts. For USDT-BTC, these values are in USDT.
  7. Enable live trading only after the complete plan is understood.

warning

Do not switch a position that still requires management into signal-only mode. Reconcile and finish the active cycle first.

Base-order management

BASE_ORDER_QUOTE is the initial limit-order value before reinvestment.

If the order remains open for ENTRY_REPRICE_SECONDS, the strategy cancels it, confirms cancellation, and can replace only the unfilled remainder near the current ask.

ENTRY_MAX_AGE_SECONDS limits the total time allowed for the entry. 0 leaves the total duration unlimited.

AMOUNT_DECIMALS, PRICE_DECIMALS, and MIN_ORDER_NOTIONAL must match the exchange and pair. Their current defaults (-1, -1, and 0) are placeholders that cause the strategy to pause rather than guess. Set verified live values before enabling orders.

DCA ladder

DCA levels remain anchored to the VWAP of the original base-order fill. Later DCA fills change the overall average cost used by take profits, but do not move the ladder’s anchor or the safety-stop anchor.

With the defaults:

OrderDistance below base VWAPValue for USDT-BTC
DCA 12.5%1000
DCA 25.0%1000
DCA 37.5%1000

DCA_STEP_MULTIPLIER changes how spacing grows from one level to the next. DCA_VOLUME_MULTIPLIER changes later order sizes. Only one unfilled DCA order is managed at a time.

Set MAX_DCA_ORDERS to 0 to disable the ladder.

Staged profit exits

Take-profit levels are recalculated from the fee-aware average cost after additional buys.

The default plan is:

  • TP1 sells 50% at +1%.
  • TP2 sells another 25% at +2%.
  • TP3 arms at +3%, then trails the remaining 25%.

After TP3 arms, TP3_TRAILING_DEVIATION_PCT defines the reversal from the highest observed bid that closes the runner.

TP_TARGET_MODE = net compensates the target levels for expected sell fees. gross applies the configured percentages without that compensation.

The three TP*_VOLUME_PCT values must total exactly 100. Treat them as portions of the original acquired position, not portions of whatever remains at each stage.

Safety stop

The safety stop is fixed below the original base-order VWAP:

base-order VWAP × (1 - STOP_LOSS_PCT / 100)

DCA does not move this anchor lower. That prevents averaging down from continually expanding the stop distance, although the loss on total allocated capital can still be substantial.

STOP_LOSS_TIMEOUT_SECONDS requires price to remain at or below the stop for the configured duration. 0 reacts immediately.

Stop handling takes priority over DCA and profit orders. After the cycle is confirmed closed, COOLDOWN_SECONDS delays new scanning.

Portfolio coordinator

Pairs on the same exchange with the same COORDINATOR_GROUP_ID share:

  • a maximum number of active trades;
  • a per-pair limit;
  • optional reinvestment of positive realized group P/L.

MAX_ACTIVE_TRADES_PER_PAIR must remain 1. MAX_ACTIVE_TRADES controls group-wide concurrency.

When REINVEST_ENABLED is active, REINVEST_PCT determines how much positive group P/L can increase future base and DCA sizes. Negative group P/L does not reduce the configured sizes.

REINVEST_ALLOCATION_MODE currently supports group_capacity.

Keep ALLOW_UNCOORDINATED_ENTRY disabled unless you deliberately accept entries when the shared capacity check is unavailable. Enabling it can exceed the intended group exposure.

Good market conditions

QFL 3C is designed for:

  • liquid USDT spot pairs;
  • an identifiable base followed by a sharp temporary crack;
  • sufficient depth for several limit orders;
  • markets where deep deviations often rebound toward average cost;
  • portfolios with enough reserved capital for the entire ladder.

The method can suit volatile, broadly liquid markets that produce panic wicks or rapid sell-offs into established structure.

It is dangerous during sustained structural declines, illiquid crashes, or regime changes where an old base no longer represents support. A larger QFL drop filters shallow moves but does not make a falling market safe. DCA improves average cost by increasing exposure, not by reducing risk.

Creating the strategy

Create a spot strategy and choose QFL 3C Scalper as both buy and sell method.

Recommended first setup:

  1. Use a supported USDT spot pair.
  2. Keep PERIOD and QFL_TIMEFRAME_MINUTES at 60.
  3. Leave QFL_LIVE_TRADING disabled.
  4. Set verified exchange precision and minimum-notional values.
  5. Reduce base and DCA sizes.
  6. Confirm the full-capital requirement fits the account.
  7. Start with a small coordinator group.
  8. Inspect several signal-only cracks before considering live orders.

Strategy settings

Safety and execution

SettingDescription
BUY_ENABLEDAllows strategy buy orders.
SELL_ENABLEDAllows strategy sell orders. Do not disable it during a managed position.
PERIODPair candle period. The editor supports 60 for this strategy.
QFL_LIVE_TRADINGMaster order switch. false keeps the strategy signal-only.
ALLOW_FETCHED_TIMEFRAMEAllows the required timeframe to be fetched when the pair period differs. Keeping the pair at 60 is safer.
AMOUNT_DECIMALSVerified order-quantity precision. The default -1 pauses live operation rather than guessing.
PRICE_DECIMALSVerified limit-price precision. The default -1 pauses live operation rather than guessing.
MIN_ORDER_NOTIONALVerified exchange minimum order value. The default 0 must be replaced for live use.
MAX_SPREAD_PCTMaximum permitted spread for a new entry.
TRADING_FEE_PCTFallback fee estimate when complete exchange fee data is unavailable.

Base detector

SettingDescription
QFL_TIMEFRAME_MINUTESDetector timeframe; currently 60 minutes.
QFL_CANDLE_COUNTMaximum completed candles evaluated.
QFL_DROP_PCTDistance below a confirmed base that defines the crack.
BASE_PIVOT_LEFTCompleted candles to the left of a local base candidate.
BASE_PIVOT_RIGHTCompleted candles to the right required for confirmation.
BASE_MIN_BOUNCE_PCTMinimum candle-body recovery required to confirm a base.
BASE_BOUNCE_WINDOWCandles allowed for that recovery.
BASE_MERGE_TOLERANCE_PCTDistance within which nearby confirmed bases merge.
BASE_MAX_AGE_CANDLESMaximum age of an eligible base.
BASE_PRECONFIRM_INVALIDATION_PCTClose below a candidate that rejects it before confirmation.

Entry and base order

SettingDescription
ENTRY_CONFIRMATION_MODESelects threshold crack entry or rebound confirmation.
ENTRY_REBOUND_PCTRecovery from the post-crack low required in rebound mode.
ENTRY_REBOUND_TIMEOUT_SECONDSMaximum wait for rebound confirmation; 0 disables expiry.
BASE_ORDER_QUOTEInitial order value before reinvestment. For USDT-BTC, this value is in USDT.
ENTRY_REPRICE_SECONDSOpen-order age before cancellation and replacement of the unfilled remainder.
ENTRY_MAX_AGE_SECONDSMaximum total entry duration; 0 means unlimited.

DCA

SettingDescription
DCA_ORDER_QUOTEStarting USDT value for each DCA order on USDT-BTC, before scaling and reinvestment.
MAX_DCA_ORDERSMaximum DCA fills planned for a cycle.
DCA_FIRST_DEVIATION_PCTFirst DCA distance below original base-order VWAP.
DCA_STEP_MULTIPLIERMultiplier controlling how later spacing grows.
DCA_VOLUME_MULTIPLIERMultiplier controlling later DCA order values.

Take profit, stop, and cooldown

SettingDescription
TP1_PCTFirst target above current fee-aware average cost.
TP1_VOLUME_PCTOriginal acquired quantity assigned to TP1.
TP2_PCTSecond target above current fee-aware average cost.
TP2_VOLUME_PCTAdditional original quantity assigned to TP2.
TP3_PCTLevel that arms trailing for the final portion.
TP3_VOLUME_PCTOriginal quantity assigned to the trailing runner.
TP3_TRAILING_DEVIATION_PCTReversal from the best bid that closes the runner.
TP_TARGET_MODEnet includes expected exit fees; gross does not.
STOP_LOSS_PCTSafety-stop distance below original base-order VWAP.
STOP_LOSS_TIMEOUT_SECONDSRequired time at or below the stop; 0 reacts immediately.
COOLDOWN_SECONDSDelay after a confirmed flat exit before new scanning.

Capital and liquidity

SettingDescription
MAX_ACTIVE_TRADESMaximum simultaneous trades in one exchange/coordinator group.
MAX_ACTIVE_TRADES_PER_PAIRPer-pair limit; must remain 1.
MIN_DAILY_VOLUME_BTCMinimum rolling 24-candle volume expressed as estimated BTC value.
VOLUME_UNIT_MODESelects base_asset or quote_notional interpretation of candle volume.
REINVEST_ENABLEDAllows positive realized group P/L to increase future order sizes.
REINVEST_PCTPercentage of positive group P/L eligible for allocation.
REINVEST_ALLOCATION_MODEAllocation algorithm; currently group_capacity.
REQUIRE_CLEAN_ASSET_BALANCEBlocks entry when existing asset quantity exceeds allowed dust.
CLEAN_ASSET_DUSTExisting asset quantity tolerated by the clean-balance check.
REQUIRE_FULL_TRADE_CAPITALRequires enough available USDT on USDT-BTC for the initial order, full DCA plan, and fee reserve.
FEE_RESERVE_PCTExtra capital included in the full-plan requirement.

Coordinator

SettingDescription
COORDINATOR_GROUP_IDIdentifier shared by pairs using the same slots and reinvestment pool.
COORDINATOR_LOCK_STALE_SECONDSAge after which an abandoned coordinator update lock may be treated as stale.
COORDINATOR_HEARTBEAT_STALE_SECONDSAge used during safe cleanup of inactive reservations; open positions are not removed by age alone.
ALLOW_UNCOORDINATED_ENTRYAllows entry without coordinator confirmation. Leave disabled for bounded group exposure.

Backtesting

SettingDescription
BF_SINCEStart of the selected backtesting period.
BF_UNTILEnd of the selected backtesting period.
DEEP_TESTINGEnables deeper historical reconstruction in the editor.

Practical tuning directions

For fewer and deeper signals, increase QFL_DROP_PCT. For faster confirmation after a crack, use threshold mode; for evidence of recovery, use rebound mode.

Change DCA spacing and volume together only after calculating maximum capital and stop exposure. Increasing either multiplier can make later ladder steps much larger than the defaults.

Keep TP percentages ordered from lowest to highest and make the three volume percentages total exactly 100.

Use coordinator groups to express real portfolio limits. A pair-level backtest cannot model several pairs competing for the same slots and capital.

Important limitations

  • QFL bases are algorithmic approximations, not guaranteed support.
  • DCA increases exposure during adverse movement.
  • The stop is anchored to original base VWAP, not the lower combined average cost.
  • Current precision defaults are deliberate pause values, not usable live settings.
  • Signal-only validation does not reproduce fills, partial fills, cancellations, or latency.
  • Single-pair backtests cannot reproduce shared coordinator contention.
  • Candle-volume interpretation depends on the exchange feed.
  • Manual orders or pre-existing asset balances can conflict with safe ownership tracking.

QFL 3C Scalper is best treated as a complete portfolio-aware trade plan, not a single dip-buy signal. The quality of the base matters, but sizing the full ladder and keeping the coordinator and safety gates intact matter just as much.