Checked pricing and risk code

When an agent writes your pricing or risk code, C Note checks it against the properties your desk relies on: no-arbitrage bounds, put-call parity, the signs of delta, gamma and vega. Each property comes back proven, tested on samples, or disproved, and a disproved one comes with the input that breaks it.

Research and production in one language

When research is in Python and production is in C++, the two copies drift apart. In C Note the pricing model is written once, in Chelis, and that one version is both checked and compiled.

Use cases

Pricing
Payoffs, discounting and calibration, with their numerical assumptions in the types.
Greeks
Sign and range properties checked before a sensitivity reaches a hedge.
Risk
Scenario grids and aggregation, with stated properties next to the tests.
Curves
Construction and interpolation checked against their stated domains.
Governance
One record for model-risk sign-off: each property, its method and its result.

Option pricing properties

The properties a vanilla option pricer must hold. State them once and C Note checks the code against them.

PropertyWhat it saysSketch
Non-negativity No option is worth less than nothing. price >= 0.0
No-arbitrage bounds A call stays between its intrinsic value and the underlying price. Outside those bounds there is free money. call >= max(spot - strike * discount_factor, 0.0) && call <= spot
Put-call parity Calls and puts at the same strike and tenor are locked together. The parity residual is zero. call - put == spot - strike * discount_factor
Monotonicity in volatility Raising volatility never lowers the price of a vanilla option. sigma2 >= sigma1 -> price(sigma2) >= price(sigma1)
Delta range Call delta stays in [0, 1]; put delta stays in [-1, 0]. delta_call >= 0.0 && delta_call <= 1.0
Vega and gamma signs Vega and gamma are non-negative for vanilla options. vega >= 0.0 && gamma >= 0.0
Probability bounds Terms that stand for probabilities stay in [0, 1]. n_d2 >= 0.0 && n_d2 <= 1.0

Check a pricing model

Open a finance example in C Note, or bring a pricing or risk kernel your desk runs today.