A Derivation manager manages multiple individual
module:caplin/trading/derivation/Derivation
s.
When an individual Derivation
is performed (its recalculateDerivedFields() method is
run) it extracts the appropriate values from the trade data that are required to perform the derivation
and appends new derived values into that trading data object.
The input to one Derivation may depend upon the output of another Derivation.
When Derivations are added to the manager it examines these dependencies and when the
module:caplin/trading/derivation/DerivationManager#recalculateDerivedFields
method is invoked
ensures all derivations are executed in the correct order.