Register remaining tradeable instruments: NAS100, USDJPY (pip 0.01), USDCHF, NZDUSD #140
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
aura_ingest::instrument_spec()currently registers only GER40, FRA40,EURUSD, GBPUSD, USDCAD (5). The tradeable universe for the edge-research
milestone also needs four more, or
--realrefuses them:pip_size 1.0,contract_size 1.0,quote_currency "USD", newinstrument_id 6.pip_size 0.01(JPY quote ~150, not0.0001),
contract_size 100_000,quote_currency "JPY",instrument_id 7.pip_size 0.0001,contract_size 100_000,quote_currency "CHF",instrument_id 8.pip_size 0.0001,contract_size 100_000,quote_currency "USD",instrument_id 9.Mirror the existing arms' construction (min_lot / lot_step,
pip_value_per_lot = contract_size * pip_size).Why now
Needed to broaden the cross-symbol test — NAS100 especially to test the
index-trend hypothesis (the screen found slow-momentum positive on GER40 but
not on FX; NAS100 is a second, US-region index). Note: R metrics are
stop-relative and thus pip-independent, so a wrong pip won't corrupt the R
screen — but it corrupts the Stage-2 currency/cost layer, so set pips
correctly now (esp. USDJPY = 0.01).
Process
Test-specifiable (
tdd): assertinstrument_spec("USDJPY").pip_size == 0.01and that the other three resolve, before the GREEN table extension.
refs #137
Surviving the edge-research milestone wind-down (#137) — and now MORE relevant: the FX pairs (USDJPY pip 0.01 / USDCHF / NZDUSD) with correct pip geometry are exactly what the realistic-broker milestone (C10 A-side) needs to exercise currency-P&L and friction. Detached from the (now closed) milestone; kept open.
#143 (closed) made this a cross-checked registration
The build/test cross-check shipped in #143 iterates
aura_ingest::VETTED_SYMBOLS, soadding each symbol here is automatically validated against the provider geometry
sidecars — registration becomes: extend the
instrument_specmatch +VETTED_SYMBOLS,fill the authored values, and
authored_floor_agrees_with_provider_geometryconfirmsthem against broker truth (or fails loudly on a typo).
Verified sidecar geometry for the four (read from
/mnt/tickdata/Pepperstone), readyto author (incl. the two new fields
tick_size/digitsfrom #143):All four satisfy
pip_value_per_lot == lot_size * pip_sizeand thetick_size == 10^(-digits)guard #143 added (verified to hold across all 30 sidecars), so thecross-check will pass once the authored values match this table. NB: NAS100 quotes in
USD and USDJPY/USDCHF carry non-USD quote currency — the floor's
quote_currencystays
&'static str(a plain ISO label; FX conversion is still #124's resolver work).Obsolete — closing.
This issue would hand-register four more symbols into the authored
instrument_spec()floor. Under the current directive (aura defines only what iscurrently needed; geometry comes from the data-server sidecars, not hard-coded in
aura), that floor is being removed entirely: the only instrument datum any current
production path consumes is
pip_size, which is now resolved from the per-symbolgeometry sidecar (
instrument_geometry→InstrumentGeometry.pip_size). Pip thencovers whichever symbols ship a sidecar (30 present), so there is nothing to
hand-register. See the reconciliation comment on #124 for the full decision and
the consumption investigation that grounds it.