finance algorithms