Automation Risk Disclosure
Last updated September 25, 2026 — read before enabling any automation
What Automations Are
Agence automations are rule-based strategies that monitor market signals and generate buy and sell decisions. How those decisions are acted on depends on the account they are linked to:
- Paper accounts — Agence evaluates conditions on a schedule and generates simulated trade signals. On standard plans, each signal requires your confirmation before an order is placed — see Execution Modes below. No real money is involved.
- Live accounts (your own connected brokerage) — trading is self-directed. Agence surfaces signals and suggestions, and you review and place each trade yourself. Agence does not place real-money orders without your direction. Hands-off real-money autopilot is not offered.
Read this disclosure carefully. You are solely responsible for all trading activity that occurs under your account.
Trading Platform
Agence is a technology tool — it is not a broker-dealer and does not open, hold, or maintain brokerage accounts. Trades are executed by your own brokerage account, which you connect to Agence:
- Connect your brokerage account — you authorize Agence on your brokerage's own site (OAuth). You keep full, direct access to your account with your brokerage at all times, and you can revoke Agence's access at any time.
In paper mode, your brokerage's simulated environment is used. Orders are fictional — no real money moves and no actual securities are transferred.
In live mode, trades you place are real orders in your own brokerage account. Real securities are purchased or sold and real money is at risk.
Brokerage and custody services are provided by your brokerage, a separate entity from Agence. Agence is not a broker-dealer or investment adviser. For questions about account protection, clearing, or custody, refer to your brokerage's own disclosures.
Execution Modes
Available today, on every plan
| Mode | What it means |
|---|---|
| Notify & confirm | The only execution mode available on standard plans. When a signal fires, Agence logs it as a pending trade and sends you a notification — no order is placed automatically. You review each signal in Execution history and click Execute to confirm each trade one at a time. This mode is self-directed: you have full control over whether any trade is placed. Works on both paper and live accounts. |
Not available on standard plans today
These modes exist in the product but are restricted to the account owner while Agence works through the applicable regulatory questions raised by having a system place orders without a per-trade user action. None of them are available to standard-plan users today, regardless of whether the linked account is paper or live. Whether and when any of them become available more broadly depends on the outcome of that work — this is a roadmap direction, not a committed date.
| Mode | What it means |
|---|---|
| Confirm with time window | A timed variant of notify mode. When a signal fires, you are notified and have a configurable window (default: 60 seconds) to tap Confirm. If you do not confirm within the window, the signal is automatically marked confirm_timeout and no order is placed. No order is ever placed without an affirmative user action within the window. |
| Auto-execute — paper accounts | Agence places simulated orders automatically when a signal fires, with no per-trade confirmation. No real money is moved; no actual securities are purchased or sold. |
| Auto-execute — live accounts | Not available on standard plans. Every live-account order requires your review and approval before it's placed, the same as notify mode. |
The account-level mode (paper vs. live) is determined by the trading account your automation is linked to.
Real-Money Risk Warning
When you place a real-money trade in a connected live brokerage account — whether acting on an automation's signal or on your own judgment — you buy or sell real securities using real money. You can lose money. AI-generated signals and automated strategies can be wrong and can prompt trades that generate losses quickly, including during periods of high volatility, market gaps, or signal failures. Only trade with funds you can afford to lose.
How Signals Are Scored
Each automation run evaluates every ticker in scope and computes a composite signal score between -1.0 (strongly bearish) and +1.0 (strongly bullish). The score is a weighted combination of 12 signals across four groups — fundamental & sentiment signals (7 inputs), market structure signals (2 inputs from FINRA and SEC EDGAR), FRED macro signals (2 inputs from the St. Louis Fed, Long-term style only), and a technical analysis composite (1 aggregated input covering 10 sub-signals). Each signal's weight in the final composite varies by trading style.
Fundamental & Sentiment Signals
| Signal | What it measures |
|---|---|
| 24h price change | Short-term momentum. A significant dip is treated as a potential buying opportunity. |
| News sentiment | Currently inactive — contributes nothing to any score. Disabled on 2026-09-25 after its data source was found not to measure headline tone; it stays listed, with its configured weight below, until a reliable sentiment source replaces it. |
| Unrealized P&L % | How far the current position is above or below your average entry price. |
| Portfolio concentration | How large this position already is as a share of total portfolio value. High concentration generates a sell signal. |
| Market regime | A macro signal combining SPY (S&P 500 ETF, 50%), inverted VIXY (VIX futures ETF, 30%), and inverted UUP (U.S. Dollar Index ETF, 20%). Rising fear/volatility or a strengthening dollar pulls this score negative. |
| Analyst consensus | Net analyst recommendation bias from Finnhub's coverage data, in [-1, 1]. Updated daily. |
| Insider MSPR | Monthly Share Purchase Ratio — net insider buying vs. selling from SEC filings, in [-1, 1]. Weighted heavily in Long-term style only. Updated weekly. |
Market Structure Signals
Two signals sourced from public regulatory filings. Both carry zero weight for Day Trade style — the underlying data updates too infrequently for intraday decisions. Their full weight applies in Swing and Long-term styles only.
| Signal | Source | What it measures |
|---|---|---|
| Short interest (days-to-cover) | FINRA bi-weekly report | How many days of average trading volume it would take for all short sellers to cover. High days-to-cover (≥10 days) signals elevated short squeeze potential. Normalized to [0, 1]. Updates twice monthly with ~1.5-week lag. |
| Earnings trend | SEC EDGAR (10-Q/10-K filings) | Year-over-year EPS growth: most recent quarter vs. the same quarter one year prior. Growing EPS = positive signal; declining = negative. Normalized to [-1, 1]. ~35-day filing lag. |
FRED Macro Signals
Two signals sourced from the St. Louis Fed (FRED). Both carry zero weight for Day Trade and Swing — the underlying data updates too slowly for short-horizon decisions. Their full weight applies in Long-term style only. Requires a FRED_API_KEY; defaults to 0 (neutral) when absent.
| Signal | Source | What it measures |
|---|---|---|
| Yield curve spread (T10Y2Y) | FRED — daily | 10-year minus 2-year U.S. Treasury yield spread. An inverted curve (below zero) signals elevated recession risk. Deeply inverted (−2%) = −1.0; flat (0%) = 0; steep (+2%) = +1.0. Cached 24h. |
| Net liquidity (WALCL−TGA−RRP) | FRED — weekly | Fed balance sheet minus Treasury General Account and overnight reverse repos — money available to flow into risk assets. Week-over-week expansion of +$200B = +1.0 (risk-on); contraction of −$200B = −1.0 (risk-off). |
Technical Analysis Composite
A single ta_composite score [-1, 1] is computed from the following sub-signals drawn from daily OHLCV bar data (brokerage market data), then merged into the final composite via a style-specific weight:
| TA Sub-signal | What it measures |
|---|---|
| RSI(14) | Relative Strength Index. RSI < 30 = oversold (bullish signal); RSI > 70 = overbought (bearish). Linear interpolation between. |
| RSI divergence | Price making a new high while RSI declines = bearish divergence. Price making a new low while RSI rises = bullish divergence. Stronger than raw RSI alone. |
| MACD crossover | MACD line (EMA 12 − EMA 26) crossing above its 9-period signal line = bullish; crossing below = bearish. A trend-following momentum signal. |
| SMA crossover | Short-period SMA crossing above the long-period SMA = bullish; crossing below = bearish. Uses (10, 30) for Day Trade and (20, 50) for Swing/Long-term. Returns +1 on a fresh bullish crossover, -1 on bearish, 0 otherwise. Captures medium-term momentum shifts not yet reflected in MACD. |
| Trend (50-day SMA) | Price above 50-day SMA = bullish trend; below = bearish. When the 50-day SMA also crosses above the 200-day SMA (golden cross), the bullish weight is amplified. The reverse (death cross) amplifies the bearish weight. |
| Bollinger Band %B | Measures where price sits within its Bollinger Band (20-day, 2σ). Price below the lower band = oversold/bullish; above the upper band = overbought/bearish. A Bollinger squeeze (unusually narrow bands) signals a pending volatility breakout. |
| Stochastic Oscillator (%K/%D) | Measures the closing price relative to the high-low range over 14 periods. %K < 20 = oversold (bullish); %K > 80 = overbought (bearish). Complements RSI: RSI measures momentum speed; Stochastic measures price location within its recent range. More sensitive than RSI in ranging markets. |
| On-Balance Volume (OBV) | Cumulative volume indicator: volume is added on up-close days and subtracted on down-close days. OBV rising while price falls = accumulation (bullish divergence). OBV falling while price rises = distribution (bearish divergence). Confirms whether real buying or selling pressure underlies a price move. |
| Average True Range (ATR) | Measures recent price volatility (average of true daily range over 14 periods). Not directional. Used as a volatility amplifier when today's range exceeds 1.5× ATR (trend confirmation), and as a position-size modifier (high ATR = reduce position weight to account for wider swings). |
| Candlestick patterns | Detected from the last 3 OHLCV bars. Patterns map to a [-1, 1] signal by conviction level: Morning/Evening Star (±1.0), Three White Soldiers/Black Crows (±0.9), Bullish/Bearish Engulfing (±0.8), Piercing Pattern/Dark Cloud Cover (±0.7), Hammer/Shooting Star (±0.6), Bullish/Bearish Harami (±0.5), Doji/Spinning Top (~0). |
Volume surge (current bar volume > 2× the 20-day average) is applied as an amplifier (+0.3 additive) to the TA composite when it confirms the signal direction. It is not a standalone buy or sell signal.
Signal selection: every sub-signal above, plus volume surge, is objective and computed the same standard way regardless of which are active — you choose which ones contribute to a given automation's score via a "Signal Selection" panel. All 11 are on by default; turning one off removes only that sub-signal's contribution, leaving every other sub-signal's weight and computation unchanged.
Signal Weights by Trading Style
TA signals dominate Day Trade (oscillators like RSI, MACD, and Stochastic suit speed-sensitive intraday decisions). In Long-term mode, TA carries the least weight — fundamentals, insider activity, short squeeze potential, and earnings trend are more predictive over longer horizons. Market structure and FRED signals carry zero weight for Day Trade since those data sources update too infrequently for intraday use.
| Signal group | Day Trade | Swing | Long-term |
|---|---|---|---|
| Fundamental & sentiment (7 signals) | 50% | 66% | 73% |
| Market structure — short interest + earnings trend | 0% | 7% | 14% |
| FRED macro — yield curve + net liquidity | 0% | 0% | 7% |
| TA composite (10 sub-signals) | 50% | 27% | 6% |
The scoring system does not account for: earnings surprises (blocked separately by the Earnings Gate), macroeconomic policy changes, regulatory actions, geopolitical events, market microstructure (spread, liquidity, slippage), or any information not captured in the signals above.
Multi-Timeframe Confirmation Gate
For Swing and Long-term trading styles, a buy signal is only generated when the TA composite on the daily bars and the TA composite on the weekly bars agree in direction (both bullish or both bearish). When they disagree — for example, the daily chart shows oversold conditions but the weekly chart is still in a bearish trend — the buy signal is suppressed.
This gate is one of the most meaningful risk controls in the system. A single-timeframe signal that runs counter to the higher-timeframe trend has a substantially higher false-positive rate.
Day Trade style bypasses this gate entirely. Speed of execution takes priority over multi-timeframe confirmation in intraday contexts. Hard-rule sells (stop-loss, take-profit) also bypass this gate.
Buy and Sell Thresholds
A trade is generated only when the composite score exceeds a threshold set by your risk profile:
| Risk profile | Buy threshold | Sell threshold |
|---|---|---|
| Conservative | ≥ 0.27 | ≤ −0.22 |
| Moderate | ≥ 0.20 | ≤ −0.16 |
| Aggressive | ≥ 0.12 | ≤ −0.10 |
Aggressive profiles fire most frequently. A lower threshold increases trade frequency and potential losses, especially in live mode.
Hard Rules (Override the Score)
Three conditions trigger an immediate order regardless of the composite score:
- Stop-loss: Sell immediately when a position falls more than the configured Stop-loss % below average entry price. Cannot be blocked by caps, earnings gates, or per-ticker cooldowns.
- Take-profit: Sell immediately when a position gains more than the configured Take-profit % above average entry price. Same bypass rules as stop-loss.
- Average entry price: the brokerage’s figure. If the brokerage reports one that isn’t usable (zero or negative), Agence works it out from the account’s own fills (oldest bought, first sold). If it can’t, stop-loss and take-profit don’t apply to that position until a usable figure is available.
- Overconcentration: Trim shares when a single position exceeds Max position size (%) of total portfolio value.
Hard-rule sells always execute. They are never blocked by any cap or gate.
When both Stop-loss % and Take-profit % are configured and a buy is placed using a share quantity (not a notional dollar amount), Agence submits the entry as a bracket order — a single atomic request containing the entry order plus two pre-attached exit legs. The stop-loss and take-profit exits fire server-side the moment price reaches either level, without waiting for the next automation scan cycle. Bracket orders cannot be attached to notional (dollar-based) orders due to broker restrictions on fractional share orders.
Earnings Gate
Buy signals are blocked for any ticker with an earnings announcement within the next 48 hours (Finnhub earnings calendar). Earnings events carry binary risk that composite scores cannot reliably predict. Hard-rule sells still execute during earnings windows.
Execution Limits and Safeguards
- Scan interval — and its floor: How often the automation wakes up to scan (default 60 min). It cannot be set below 7 minutes, because that is how often the scheduler itself runs — no automation is evaluated more frequently than that regardless of what is configured. This is a real latency floor: a signal that develops between scans is not acted on until the next one. Stop-loss and take-profit exits attached as bracket orders are the exception — those fire broker-side without waiting for a scan (see Order Types above).
- Market-open delay: Scans fired within the first N minutes after the 9:30 AM ET open are skipped (default 15 min). Early signals use stale overnight data and face the widest spreads.
- Max daily executions: Caps buy orders per calendar day. Sell signals are never blocked.
- Correlation groups: Optional groups of tickers that tend to move together (e.g., SPY + QQQ + VOO, or BTC + ETH). Before placing a buy, the automation checks each group — if 50% or more of the group’s tickers are already held as open positions, the buy signal for any ticker in that group is skipped with reason
correlation_block. Prevents doubling up on risk-on exposure that the per-position size cap alone misses. Hard-rule sells (stop-loss, take-profit) always bypass this filter. - Portfolio drawdown circuit breaker: When configured (disabled by default), the automation tracks the highest portfolio equity value seen since it was enabled. If the portfolio falls a specified percentage from that peak (e.g. 15%), the automation permanently disables itself and logs a
circuit_breakerevent. Unlike the session stop-loss pause, this halt persists across days and requires manual re-enabling. Intended for catastrophic drawdown protection. - Session stop-loss pause: If N stop-loss exits fire in one calendar day (default 3), all further buy signals pause for the rest of that session. Hard-rule sells continue.
- Post-stop-loss cooldown: After a stop-loss exit, buy signals for that ticker are suppressed for a configurable window (default 24h). Prevents immediate re-entry into a losing position.
- Per-ticker cooldown: Prevents re-trading the same ticker within a configurable window after any trade.
- Loser penalty factor: Buy signals for tickers with negative realized P&L over the last 30 days are penalized (default: composite score multiplied by 0.7), making it less likely they clear the buy threshold. Hard-rule signals are never penalized.
- Hold decay threshold: When configured, sells a held position if its composite score decays to or below a set value — even before hitting the normal sell threshold. Disabled by default.
- Min hold before decay (hours): Time gate for hold decay. A position must be held at least this many hours before the decay rule can trigger an exit — protecting a new position from an immediate score-dip exit. When entry time is unknown, the gate is treated as satisfied. Disabled by default.
- Allow buy / Allow sell: Independent kill switches for buy and sell signals. Disabling buy runs a sell-only automation; disabling sell runs a buy-only automation.
- ATR-based risk per trade (%) + ATR stop distance (multiplier): ATR-based position sizing. When "ATR-based risk per trade (%)" is set, each buy order size is computed as: shares = (equity × risk%) / (ATR14 × multiplier). Volatile instruments automatically receive smaller positions; calm instruments larger — keeping dollar risk constant across all tickers. Falls back to "Max trade size" when bar data is insufficient. The resulting share count is clamped to "Max trade size" as a ceiling (default 10 if left unset). The Stop-loss % exit is scaled to match whenever ATR is computable for that ticker: the trigger becomes (ATR14 × ATR stop distance multiplier) ÷ current price instead of the flat configured percentage, so the exit uses the same stop distance the sizing math assumed. Falls back to the flat Stop-loss % when ATR can't be computed. Take-profit is never ATR-scaled.
- Max position size (%): Hard order-time gate — a buy that would push a position above this percentage is skipped entirely.
- Market hours only: When enabled (default), the automation only runs Mon–Fri, 9:30 AM–4:00 PM ET. When disabled, the automation runs at any time and may submit equity orders outside those hours; such orders are queued and fill at the next regular market open — not immediately. Automations set to Crypto only asset class bypass market hours entirely and run 24/7. Mixed automations with per-ticker style overrides also run outside hours but evaluate only the crypto tickers during those periods.
- Max day trades per 5-day window: Limits same-day round trips. Hard-rule sells bypass this limit.
- Blocked tickers (manual): A per-automation list of symbols permanently excluded from signal evaluation. Neither buy nor sell signals are generated for these tickers. Hard-rule sells (stop-loss, take-profit) on positions you already hold always fire regardless of the list.
- Only manage this automation's own positions (Risk Controls): When enabled, sell-signal evaluation — including hard-rule stop-loss and take-profit — only considers a held position if this automation is the one that originally bought it. A position you hold manually, or one bought by a different automation, is left alone. Tickers you explicitly add to Watch tickers remain evaluable regardless of who bought them. Buy signals are unaffected. Disabled by default.
- Auto-blocked tickers: The engine automatically suppresses any ticker that produces three consecutive "asset is not active" failures (delisted or suspended broker instruments). No user action required. The auto-block resets automatically after a successful trade on the ticker.
- Order size ceiling (ATR sizing): Changed 2026-09-17. "Max trade size (shares)" no longer caps ATR-based sizing. A share-count cap cannot bound a dollar-risk mechanism without destroying it — ATR sizing intentionally buys more shares of a calm, cheap instrument than a volatile, expensive one so dollar risk stays constant, and clamping every result to a flat share count inverted that, making position size scale with share price instead. ATR-sized orders are now bounded by "Max order value ($)", a per-order dollar ceiling; if you leave it blank, ATR sizing is bounded only by "Max position size (%)", and an ATR-sized order can be substantially larger than "Max trade size" shares. "Max trade size" still governs share-count-based buy sizing. It does not cap proportional sells (corrected 2026-09-18).Share-count-based buy signals are separately limited to at most 5 shares per signal by the scoring formula itself (composite score is bounded to ±1). Protective exits are NOT capped by "Max trade size" (changed 2026-09-17): stop-loss, take-profit and hold-decay each sell your entire held position. A share-count cap on a protective exit stops the exit from completing — with risk-calibrated sizing, a 531-share position would have been reduced by only 10 shares per scan for roughly two trading days while the price kept falling. The overconcentration trim is still bounded by "Max trade size", because reducing a position back to the cap is that rule's purpose rather than an incidental limit.
- Sell sizing (proportional exit): A regular composite-score sell is not share-count-based. It sells a proportion of the position you hold, scaled by how far past the sell threshold the score fell: fraction = (|score| − |sell threshold|) ÷ (1 − |sell threshold|), applied to the held quantity. At the threshold itself nothing is sold; at a maximally bearish score the entire position is exited. The quantity you hold is the only ceiling — "Max trade size" does not limit a proportional sell (corrected 2026-09-18; an earlier version of this page said it did). If "Trade size (% of equity)" or "Fixed trade size ($)" is configured, that dollar amount governs sells as well, capped at the position's market value — and when the configured amount is worth more than the whole position, the position is exited in full. A dollar-sized sell is always submitted as a share/coin quantity rather than a dollar amount: the dollar figure is converted at the current quote and clamped to the quantity you actually hold, so an order can never ask for more than your position. For whole-share instruments the converted quantity rounds down — a $500 sell target on a $180 stock sells 2 shares ($360), not $500 exactly. Crypto keeps fractional precision.
- Position size ceiling (changed 2026-09-17): "Max position size (%)" now reduces an oversized buy order to the largest size that fits under the cap, rather than rejecting it outright. Previously an order breaching the cap was skipped entirely, which — combined with risk-calibrated (ATR) sizing, whose implied position size does not vary with account size — could cause an automation to stop placing orders indefinitely. An order is still skipped if the position already sits at or above the cap, or if less than one share of headroom remains. This change only ever makes orders smaller.
- Minimum order value: Any order computing to less than $10 is skipped rather than placed, and recorded in Execution history with the reason. This suppresses economically meaningless "dust" orders. Hard-rule exits (stop-loss, take-profit) are exempt and always execute regardless of order size, so a protective exit is never suppressed by this floor.
- Live-mode sell cap: On connected live brokerage accounts, sell executions are capped at 3 per scheduler cycle server-side. Not configurable; not applied to paper accounts.
- Margin controls: Allow margin buying = off restricts to available cash. Max margin multiplier caps total deployed capital per run. Apply in both paper and live mode.
- Buying-power pre-check: Always on, independent of the margin controls above. Before placing a buy order, Agence checks it against your brokerage's own reported buying power (which already accounts for margin eligibility) and skips with a clear reason instead of submitting an order likely to be rejected. If the same buying-power shortfall recurs on 3 or more consecutive attempts, you receive a notification (configurable in Settings → Notifications) so a persistent issue doesn't go unnoticed.
- Volume confirmation required: When enabled, the TA composite score is scaled proportionally by the ratio of the current bar's volume to the 20-bar average. A ticker trading at 50% of its normal volume has its TA composite halved before scoring. Reduces false positives on low-liquidity crossovers and patterns formed on thin volume. Has no effect when TA signals are disabled. Disabled by default.
- Max open positions: Caps the total number of simultaneously open positions the automation may hold. When the current open position count is at or above this value, all buy signals for that run are skipped. Sell signals are never blocked. Disabled by default (no cap).
- Close positions before market close (minutes): When set (e.g. 15), if an automation run fires within this many minutes of the 4 PM ET close, all buy signals are blocked and all open equity positions are force-sold regardless of current score. Eliminates overnight gap risk for day-trade style automations. Cryptocurrency positions (trading 24/7) are excluded from the force-sell. Disabled by default.
- Portfolio take-profit (%): Portfolio-level take-profit complementing the per-trade take-profit. When set (e.g. 20 for 20%), the automation records the portfolio equity at the first run after the param is configured. Once total gain from that baseline reaches the threshold, all open positions are force-sold and the automation is permanently disabled. Disabled by default.
- Trade notional ($): When set (e.g. 500), buy orders are placed as notional orders — a fixed dollar amount per trade — instead of a share count. Fractional shares are filled to reach the dollar target. Mutually exclusive with Max trade size (share count). Hard-rule sells (stop-loss, take-profit) are unaffected. Disabled by default (share-count sizing).
- Sell threshold multiplier: Scales the sell composite score threshold relative to the buy threshold. Default 1.0 (same magnitude). Setting below 1.0 (e.g. 0.8) requires the score to drop further before a sell fires, giving positions more room and reducing churn. Hard-rule sells (stop-loss, take-profit) are unaffected.
- Hold until profitable: When enabled, score-based sell signals are skipped for positions with an unrealized loss, or whose average entry price can't be determined. The position is held until it turns green or a hard-rule sell triggers (stop-loss, take-profit, overconcentration). Prevents crystallizing paper losses during signal noise. Hard-rule sells always fire regardless.
- Max intraday move filter (%): Filters buy-side scan candidates that have already moved more than this percentage on the day (absolute value). E.g. 15 skips any ticker up or down >15% intraday. Avoids chasing post-gap tickers after the main move. Open positions are never filtered — sell signals still fire. Disabled by default.
- Min cash reserve (%): Minimum percentage of account equity that must remain in cash after any buy. E.g. 10 = always keep at least 10% of equity in cash. A buy is skipped if placing it would reduce cash below this floor. Disabled by default.
- Capital retention floor ($): Minimum absolute dollar amount of cash to retain after any buy. E.g. $1,000 = skip any buy that would reduce available cash below $1,000. Distinct from the percentage-based min cash reserve. Disabled by default.
- Daily profit target (%): Session-level gain halt. When portfolio equity has grown by at least this percentage from the session-open equity (resets each calendar day), all further buy signals are blocked for the rest of the day and all open equity positions are force-sold. E.g. 3 = close all and stop buying once up 3% from today’s open. Disabled by default.
- Session loss limit (%): Session-level loss halt. When portfolio equity has dropped by at least this percentage from the session-open equity (intraday, resets daily), all further buy signals are blocked and all open equity positions are force-sold. Distinct from the all-time “Portfolio drawdown circuit breaker” (which permanently disables the automation). E.g. 2 = exit all and stop buying once down 2% from today’s open. Disabled by default.
- DCA mode + DCA interval + DCA notional: Dollar-Cost Averaging mode. When enabled, signal scoring is bypassed entirely. The automation buys a fixed dollar amount (DCA notional, $) of each Watch ticker on a fixed schedule (DCA interval, minutes — default: weekly). No sell signals are ever generated in DCA mode. Intended for long-term accumulation strategies that ignore short-term price signals. Requires at least one Watch ticker and a DCA notional amount. Disabled by default.
- Bar-synchronized polling + bar size: When enabled, automation runs are aligned to the close of a completed price bar rather than firing on a raw interval. The bar size (1, 5, 15, 60, or 1440 minutes) determines how long the automation waits for a full bar to close before scoring. Ensures all TA indicators are computed on complete, non-partial bars — reduces signal noise from partial candle artifacts. Disabled by default (interval-based polling).
- Universe refresh interval (minutes): How often the automation re-fetches the scan-universe ticker list (e.g. top movers, sector members) from the market. A shorter interval keeps the universe fresher but increases API usage. Only relevant when using a dynamic scan universe. Default: 60 minutes.
- MACD zero-line filter: When enabled, MACD crossover signals are only accepted when the MACD line itself is on the expected side of zero — a bullish crossover must occur above zero, a bearish crossover below zero. Reduces false signals from weak mid-range crossovers. Opt-in; disabled by default.
- MACD parameters: Overrides the classic 12/26/9 MACD period settings. Accepts a custom
{ fast, slow, signal }object (e.g. 5/13/5 for faster crypto signals). Leave blank to use the default. The override applies to all tickers evaluated by this automation. - Multi-window TA: When enabled, RSI and Bollinger Bands are computed at four lookback windows (14, 30, 50, and 200 bars) and averaged before contributing to the TA composite score. Requires at least 200 bars of price history; falls back to single-window when insufficient. Opt-in; disabled by default.
- SMA crossover ATR gate ($): Minimum ATR-14 (average true range) required to emit an SMA crossover signal. Crossovers in low-volatility, flat-market conditions are suppressed. Set to a dollar threshold (e.g. 1.50) or leave blank to disable the gate.
- RSI dual-period confirmation: When enabled, RSI is computed at both 14-bar and 21-bar periods. Both must agree directionally for the RSI signal to contribute to the TA composite; disagreement zeroes the RSI component for that ticker. Reduces RSI noise at the cost of fewer fired signals. Opt-in; disabled by default.
- Order type: When set to
limit, buy entries are placed as limit orders at the current quote price plus a small slippage buffer (see Limit slippage buffer below). The order will not fill above this price — reducing overpayment relative to a market order, at the cost of potential non-fill if price moves away quickly after signal generation. When limit orders and bracket legs are both configured, the result is a single bracket order with a limit entry price and pre-attached stop-loss and take-profit exit legs. Default:market. - Limit slippage buffer (%): Used when Order type is set to
limit. The buy limit price is set at: current quote × (1 + limitSlippagePct / 100). Default: 0.1 (0.1% above the quote). A small positive buffer increases fill probability while still capping overpayment. - Signal confirmation window (bars): When set to N, a buy signal is only generated if at least one of the last N daily bars shows RSI oversold (bullish) and MACD bullish (MACD line above its signal line) simultaneously. If no bar in the window satisfies both conditions, the TA composite is zeroed and the buy is skipped. Values of 3–10 require recent simultaneous confirmation from two independent oscillators, reducing false entries at the cost of fewer signals. Disabled by default.
- Require macro uptrend: When enabled, before placing any buy, Agence fetches 120 weekly bars for the ticker and checks whether the 20-week SMA > 50-week SMA > 100-week SMA (weekly moving averages stacked in ascending order, indicating a macro uptrend). If the weekly SMAs are inverted, the buy is skipped. Weekly bars are cached for 24 hours. Fetch errors fail open — a transient API timeout does not block trading. Useful for Swing and Long-term styles to avoid entering positions in deteriorating macro conditions. Disabled by default.
Safeguards reduce risk but do not eliminate it. A misconfigured automation can still generate significant losses in live mode.
Extended Hours Trading Risks
When Extended hours trading is enabled, the automation may submit orders during extended hours sessions: pre-market (4:00–9:30 AM ET) and after-hours (4:00–8:00 PM ET). These sessions carry risks distinct from regular market hours:
- Limit orders only: Market orders are not accepted during extended hours. All extended hours buy signals are automatically placed as limit orders at the last known price plus the configured slippage buffer.
- Integer share quantity only: Fractional shares and notional (dollar-amount) orders are not accepted during extended hours. The automation converts any notional order to
Math.floor(notional / price)integer shares. If the result is zero, no order is placed. - Thin liquidity and wide spreads: Pre-market and after-hours trading typically has far fewer participants than the regular session. Bid/ask spreads can be significantly wider, increasing the risk of executing at an unfavorable price. A limit order may not fill if the spread moves away after signal generation.
- Orders auto-cancel at session end: Extended hours orders use
time_in_force: day. Any unfilled limit order is automatically cancelled when the extended hours session ends (9:30 AM ET or 8:00 PM ET respectively). There is no guarantee of fill. - Bracket orders disabled: Stop-loss and take-profit bracket legs are not supported during extended hours. If your automation has stop-loss and take-profit configured, those exit legs are skipped for extended hours entries. Bracket exits on positions opened during extended hours will not attach automatically — monitor positions manually or ensure the automation scans again during regular hours.
- Stale price risk: The limit price is computed from the last available snapshot price, which may not reflect the true extended hours quote at the moment of submission. Wider slippage buffers increase fill probability but increase overpayment risk.
- Not available for cryptocurrency: Extended hours trading applies to equities only. Crypto tickers trade 24/7 and are unaffected by this setting.
Extended hours trading is disabled by default and must be opted into explicitly. It should only be used by users who understand the additional execution risks involved.
Cryptocurrency Asset Risks
Automations may include cryptocurrency tickers (e.g., BTC/USD, ETH/USD) traded through a registered money services business. Crypto trading carries distinct risks beyond those applicable to equities:
- No SIPC protection: Cryptocurrency accounts are not covered by SIPC insurance. The connected crypto trading account is held with a registered money services business (FinCEN MSB) — not a FINRA member or SEC-registered broker-dealer.
- 24/7 markets: Crypto trades continuously. Automations set to Crypto only asset class bypass the "Market hours only" gate entirely. Mixed automations using per-ticker style overrides also bypass the gate but evaluate only the crypto tickers outside NYSE hours.
- Maker/taker fees: Crypto orders may incur exchange fees not present in equity trading. Review your brokerage's crypto fee schedule before enabling.
- Extreme volatility: Cryptocurrencies can move 20–50% or more in a single day. Configured safeguards (stop-loss %, max position %, drawdown circuit breaker) are especially important for crypto tickers.
- Regulatory evolution: The legal and regulatory framework for cryptocurrencies is developing. Regulatory changes may affect the availability, taxation, or treatment of crypto assets at any time.
- Order type: Crypto buy/sell orders use
time_in_force: gtc(Good Till Canceled) since there is no market-session boundary. Orders may remain open until filled or canceled — unlike equity orders that expire at market close.
What the Automation Cannot Do
- Guarantee profitable outcomes. Signal scoring is a heuristic and will produce incorrect signals.
- Predict earnings surprises, macroeconomic events, regulatory actions, or information not captured in the signals above.
- Account for your tax situation, investment goals, risk capacity, or financial plan.
- Prevent losses in live trading. Stop-loss and take-profit rules reduce exposure but cannot guarantee exact execution prices due to slippage, gaps, and market conditions.
- Recover losses from incorrect configuration, network outages, or API failures.
Your Responsibilities
By enabling an automation, you confirm that you:
- Understand whether the linked account is paper or live.
- Have reviewed all configured parameters and accept the behavior they produce.
- Will monitor your automations periodically and disable them if they are not performing as intended.
- Accept full responsibility for all orders placed by your automations, including in live mode.
Disclaimer
Agence is not a registered investment advisor, broker-dealer, or financial planner.
Nothing in Agence — including automation outputs, signal scores, or trade history — constitutes investment advice, a recommendation to buy or sell any security, or a solicitation to engage in any investment activity.
Past performance, whether in paper or live mode, is not indicative of future results. Automated trading involves substantial risk of loss. Only trade with capital you can afford to lose.