Ticker modifiers & research tickers
Ticker modifiers let you apply mathematical transforms to a ticker's daily returns before backtesting. They use testfol.io-compatible expression syntax, so you can import expressions directly from testfol.io or share them with other tools.
On this page
Overview
Modifiers transform a ticker's returns before a backtest. Tax calculations and other downstream analyses use the transformed returns.
Enter or paste a testfol.io name or expression into a ticker input, then press Enter. ArthaPilot resolves it to an ArthaPilot ticker and moves the parameters into the modifier fields. The input and modifier summary show the result. The modifier settings accept the same expressions.
| You paste | ArthaPilot shows |
|---|---|
TQQQSIM | TQQQ.SIM |
SPYTR | SPY.SIM |
QQQSIM?L=3&E=0.91 | QQQ.SIM with 3x leverage and a 0.91% expense ratio |
TLT?FB=VUSTX&FBE=0.05 | TLT filled backward with VUSTX at a 0.05% expense ratio |
Unsupported names stay in the input with an error. Replace them with a supported name. Each ticker input accepts one ticker. A testfol.io share link or list such as SPYSIM 60, TLTSIM 40 does not import. Add each ticker separately.
Signed-out visitors can use a core set of .SIM tickers. Plans and limits lists them. Every other .SIM ticker needs a free account.
Choose Modifiers next to a ticker to configure its modifiers. An existing modifier's summary appears on that button.
Expression syntax
A modifier expression follows the pattern TICKER?KEY=VALUE&KEY=VALUE. For example, SPY?L=2&E=0.9 applies 2x daily leverage and a 0.9% expense ratio to SPY.
Leverage modifiers use a collateral-netting model. Long leverage pays the financing rate on borrowed capital. Inverse and sub-1x exposure earn it on cash collateral. SW controls swap notional, not the financing rate.
- Base ticker: any supported ticker symbol, such as SPY, VTI.SIM, or UPRO
- Parameters: key=value pairs joined by
&, appended after? - Nested expressions: some parameters accept a ticker expression as their value, wrapped in parentheses. For example,
SPY?FB=(VTI.SIM)fills backward using VTI.SIM data
Open the ticker's modifier settings, then choose Copy expression beside the expression preview.
Modifier reference
Available modifier keys:
| Key | Name | Description |
|---|---|---|
L | Leverage | Daily-rebalanced leverage factor. For example, 2 means 2x. |
SW | Swap Exposure | Swap notional used for the spread term of leverage financing |
SP | Swap Spread | Spread over risk-free rate for leverage financing |
E | Expense Ratio | Annual expense ratio subtracted daily. For example, 0.9 means 0.9%. |
UE | Undo Expense | Add back an embedded expense ratio before other transforms |
FB | Fill-Backward | Extend history by splicing another ticker's data before inception (accepts nested expression) |
FBE | Fill-Backward Expense | Expense adjustment applied only to the fill-backward portion |
UR | Return Target | Scale returns to achieve a target annualized CAGR |
UV | Volatility Target | Scale returns to achieve a target annualized volatility |
UC | Correlation Target | Adjust returns to target correlation with the base series (requires seed) |
DB | De-Beta | Target beta relative to a reference ticker |
DBREF | De-Beta Reference | Reference ticker for de-beta (accepts nested expression) |
CU | Cap Up | Maximum daily return. For example, 0.05 sets a +5% cap. |
CL | Cap Low | Minimum daily return. For example, -0.05 sets a -5% floor. |
SD | Seed | Random seed for reproducible stochastic transforms |
BK | Block Size | Number of trading days per shuffle block |
BL | Block Low | Minimum random block size |
BH | Block High | Maximum random block size |
BR | Block Replacement | Sample blocks with replacement (1) or without (0) |
BO | Block Overlap | Allow overlapping blocks (1) or not (0) |
BREF | Block Reference | Shuffle using another ticker's return blocks (accepts nested expression) |
Application order
The engine applies modifiers in this order, regardless of their order in the expression:
- FB / FBE: fill-backward history extension (applied first so all subsequent transforms operate on the full extended series)
- UE: undo embedded expense (restores gross-of-fee returns before applying custom costs)
- BK / BL / BH / BR / BO: shuffle blocks (randomizes return order while preserving terminal value)
- UC: correlation targeting (adjusts returns to hit a target correlation)
- UR / UV: return and volatility targets
- DB / DBREF: de-beta adjustment
- CU / CL: daily return caps
- L / SW / SP: leverage with financing costs (applied late so it leverages the already-transformed series)
- E: expense ratio subtraction (applied last so costs reflect the series after leverage)
Bond tickers
Synthetic bond tickers use the B! prefix with yield-curve and maturity parameters. For example, B!Y=0.04&M=10 creates a 10-year bond at a flat 4% yield.
- Y: flat yield (cannot combine with YL/YH)
- YL / YH: yield curve low/high for curve-aware mode
- M: target maturity in years (required)
- C: coupon type: "C" for coupon-bearing, "Z" for zero-coupon
- E: expense ratio on the synthetic bond
Research tickers
To reuse a modifier expression, choose Save ticker in the modifier settings and name it. The research ticker then appears in ticker suggestions and works anywhere a regular ticker does.
You can also create research tickers backed by a saved portfolio or strategy from the Library. These resolve to the portfolio or strategy return series over the requested date range.
ArthaPilot stores research tickers per user. Free accounts can save up to 5. Pro accounts have no limit. Each ticker stores its full definition, so the underlying transforms or source references are always reproducible.

Examples
SPY?L=2&E=0.9: 2x daily-reset SPY with 0.9% annual expense ratioVTI?FB=(VTI.SIM): VTI with history extended backward using VTI.SIM dataQQQ?UR=0.10&UV=0.15: QQQ scaled to 10% CAGR and 15% annualized volatilitySPY?CU=0.05&CL=-0.05: SPY with daily returns capped at +/-5%SPY?SD=42&BK=21: SPY with 21-day return blocks shuffled (seed 42 for reproducibility)SPY?DB=0&DBREF=(AGG): SPY de-betaed to zero against AGG (market-neutral)