Pure-function trading analytics for Elixir — discoverable APIs, no processes, no I/O.
Start Here: Self-Describing API
ZenQuant describes itself. Before using exports() or h(), try:
ZenQuant.describe() # All modules with purpose
ZenQuant.describe(:funding) # Functions in Funding module
ZenQuant.describe(:funding, :annualize) # Full detail: params, returns, errorsShort names: ZenQuant.PowerLaw → :power_law, ZenQuant.Options.Deribit → :deribit.
Machine-Readable Access
For runtime agents and non-interactive consumers:
ZenQuant.Funding.__api__() # All hints for one module
ZenQuant.Funding.__api__(:annualize) # Hints for one function
ZenQuant.Manifest.build() # Full API manifest as mapStatic export: mix zen_quant.manifest → api_manifest.json
Overview
Black-Scholes pricing and implied volatility, options chain analytics, funding rates, basis, risk metrics, volatility estimators, position sizing, portfolio analytics, orderflow, and execution primitives.
Every function is pure: it takes plain maps and numbers, returns plain maps and tuples, and never performs I/O. The library starts no supervision tree. Exchange payloads (Bourse structs are maps) work as-is, but nothing here depends on an exchange client.
The only runtime dependency is Descripex, which powers the discovery surface above.
Summary
Functions
Return the list of modules registered with this library.
Return a Level 1 overview of all modules in this library.
Return Level 2 function list for a module (by full atom or short name).
Return Level 3 function detail (or nil if not found).
Functions
@spec __descripex_modules__() :: [module()]
Return the list of modules registered with this library.
@spec describe() :: [map()]
Return a Level 1 overview of all modules in this library.
Return Level 2 function list for a module (by full atom or short name).
Return Level 3 function detail (or nil if not found).