Parameters
Most people never touch these. Read this page if you are calibrating the model rather than running one.
Four kinds of coefficient
The difference matters, because a change you make in one category renames the preset and a change in another is refused outright.
Settable
RENAMES THE PRESET87 names. Override one and the fingerprint becomes custom-, followed by 8 hex characters, so the changed model can not present as the shipped one.
momentum_theta, garch_alpha, market_factor_sigmaDerived
RECOMPUTED, NOT SETTwo coefficients are carried as recorded bit patterns and can not be set directly. Overriding the half-life recomputes both, deterministically on a given build but not bit-identically to any recorded constant.
mispricing_phi, s_phi_tickGuards
SETTABLE, EXCLUDED FROM SEARCHFour guards live in the tick chain and are settable, but a calibration search excludes them, because they are worst-case guarantees rather than tuning knobs. One more is not settable at all.
the mispricing cap, the crowd lean cap, the session breaker, the price cap. daily_shock_cap is fixedCompile-time
REFUSED BY NAME28 constants are visible in to_dict() and covered by the fingerprint, and an override is refused. The engine would ignore it, and accepting it would make the fingerprint a lie.
the sector table among themWhat the settable surface covers
Read the list rather than a summary of it, with tf.ModelParams.settable(). The shape of it:
Change one, and the name changes
params = tf.ModelParams.from_preset(
"pt-v14",
momentum_theta=0.05)
e = tf.Engine(seed=42, universe=u,
model=params)
e.model_fingerprint
# "custom-7f290e34"
Why it renames rather than warns
A changed preset that still called itself pt-v14 would let two different markets share one citation. The fingerprint is the first 8 hex characters of a sha256 over the canonical serialisation, so any settable change produces a new name.
An override of a compile-time constant is refused by name. Accepting one the engine would ignore would make the fingerprint a lie.