Scalping / short momentum — learning guide
Design goals
Scalping / short momentum targets fast intraday behaviour: tight spread, minimum volatility, and a very short MA pair (defaults 5 vs 20) to decide between buy, sell, and hold. The philosophy is: only trade when the tape is liquid enough and moving enough, then ride extremely short-term momentum. This is demanding on execution quality—wide spreads or stale quotes will erode an edge long before the logic fails in backtest imagination.
The J-Trading flow diagram stacks two filter nodes—spread_ok then vol_ok—before the mom_up / mom_down ma_cross conditions. Failing either filter routes to hold. That conservative structure acknowledges scalping reality: no trade is often the correct trade when conditions are poor.
Filters first
spread_below with max_spread is your first gate. Scalpers often set this aggressively tight on majors and looser on crosses. If you loosen it too much, the AI explainer may note that you are allowing wider spreads—meaning potential entries in expensive liquidity.
volatility_above with min_volatility rejects dead periods. Lowering min_volatility lets calmer markets through, which can increase trade count but also increase time spent in chop. Raising it demands more movement; you may miss early legs of bursts but avoid grinding ranges.
Momentum pair
mom_up and mom_down share the same short_period / long_period defaults (5 / 20) but opposite compare flags (gt vs lt). Editing periods changes how quickly the fast average responds. Very small periods (e.g. 3 / 10) can explode signal count; very large ones drift toward swing-trading tempo, which may contradict the “scalping” label even if the template id stays the same.
Because topology is fixed in the playground, you cannot insert an extra filter (e.g. time-of-day) here—do that in the full Strategy management editor on a copy after apply, if needed.
Actions and hold
Three terminal action nodes—buy, sell, hold—collect outcomes. The proportion of hold results is a healthy metric during evaluation: a scalper that always buys or sells may have mis-set gates. Use JayBot’s Test flow with realistic context JSON when experimenting.
Presets: why version history matters
Scalping parameters are fragile; a 0.00005 change in max_spread can flip outcomes. Versioning lets you answer “what did I run last Tuesday?” without diffing JSON by hand. Name presets clearly: include pair and session if you run multiple configurations.
Apply workflow
Apply → create mints a new strategy with merged metadata (template_id, optional template_preset_version_id). Apply → update replaces rules_json on an existing owned strategy—useful when you already wired that id into automation. Double-check enabled flags so you do not accidentally run an experimental version live.
AI credit usage
Debounced calls to explain-template-config-delta only fire when your draft differs from defaults. Identical drafts skip the model and skip charges. Once different, each debounced completion charges like other OpenAI integrations—watch Buy credits if balance runs low.
Operational cautions
Scalping on demo may fill differently than live. Latency, partial fills, and margin calls sit outside this JSON. The flow is a policy; your broker stack is the environment.
Deep-dive prompts for yourself
- What is my median spread during the hours I trade?
- What volatility measure does
volatility_aboveuse in context—ATR proxy, range, something else? Consult JayBot docs. - If I halve short_period, how many extra signals appear on yesterday’s candle snapshot?
Sidebar vocabulary recap
- Trading strategies lists templates plus your flows.
- Trading processes lists user-owned processes (green).
- Insights (this section) is where you learn and tune system templates without mutating their source files.
Closing reminder
Scalping rewards discipline: tight defaults, quick kills, and willingness to hold. The playground teaches parameter causality; the market teaches humility.
Weekend reading on execution
Because this template is spread-sensitive, spend time in your broker’s depth-of-book or historical spread reports if available. The flow cannot see queue position; it only evaluates boolean filters on supplied context. If your data feed lags, spread_below may pass while your executable spread does not—another reason to start in demo and compare logs against screenshots during incident reviews.
Parameter interaction table (mental)
Tighten max_spread and raise min_volatility together → fewer entries, higher quality bar. Loosen both → more entries, more fragile edge. Tighten spread but lower volatility → you may get almost no trades; loosen spread but raise volatility → you may get bursts of signals around news. There is no universal optimum—only configurations that match your infrastructure and risk tolerance.
Before you promote a scalping preset from demo to live, rehearse the failure modes: what happens if spread spikes for ten minutes, if volatility collapses after a headline, or if your data provider drops a bar? The flow will keep returning hold or buy/sell according to its rules regardless; your operational playbook handles the rest. Writing that playbook is as important as tuning max_spread.
Another habit: after each Apply, open Strategy management and confirm metadata.template_id matches the template you thought you edited. Mis-clicks happen; verifying metadata is faster than debugging mysterious behaviour later. The insights playground exists to reduce that class of error, but paranoia in small doses is compatible with systematic trading.
If you run multiple currency pairs, consider one preset per pair family rather than one global preset—EUR and GBP might share spread dynamics different from JPY crosses. JayBot does not enforce that pattern; it is organisational advice. The version list becomes your lab notebook per instrument cluster.
End each tuning session by writing one sentence: “Today I learned ___ about my spread or volatility gates.” Empty sentences mean you probably changed numbers without observing outcomes—fine for exploration, less fine if you are spending credits and clock time without closure.
Revisit the insights hub monthly: JayBot may ship new evaluator notes or context fields. A paragraph update there might change how you interpret the same numeric threshold even when your preset JSON stays byte-identical.
Treat hold as a first-class outcome, not a failure of the system—especially when you are still learning how your broker’s feed behaves under load.
This guide is for education inside JayBot. It is not financial advice.