| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Quant.MonteCarlo
- type MonteCarlo s a = MonteCarloT Identity s a
- type MonteCarloT m s = StateT s (RVarT m)
- runMC :: MonadRandom (StateT b Identity) => MonteCarlo s c -> b -> s -> c
- class Discretize a where
- initialize :: Discretize a => a -> MonteCarlo (MCObservables, Time) ()
- evolve :: Discretize a => a -> Time -> Bool -> MonteCarlo (MCObservables, Time) ()
- discountState :: Discretize a => a -> Time -> MonteCarlo (MCObservables, Time) Double
- discount :: Discretize a => a -> Time -> Double
- forwardGen :: Discretize a => a -> Time -> MonteCarlo (MCObservables, Time) Double
- evolve' :: Discretize a => a -> Time -> Bool -> MonteCarlo (MCObservables, Time) ()
- maxStep :: Discretize a => a -> Double
- simulateState :: Discretize a => a -> ContingentClaim -> Int -> Bool -> MonteCarlo (MCObservables, Time) Double
- runSimulation :: (Discretize a, MonadRandom (StateT b Identity)) => a -> ContingentClaim -> b -> Int -> Bool -> Double
- runSimulationAnti :: (Discretize a, MonadRandom (StateT b Identity)) => a -> ContingentClaim -> b -> Int -> Double
- quickSim :: Discretize a => a -> ContingentClaim -> Int -> Double
- quickSimAnti :: Discretize a => a -> ContingentClaim -> Int -> Double
- data OptionType
The MonteCarlo type.
type MonteCarlo s a = MonteCarloT Identity s a Source
Wraps the Identity monad in the MonteCarloT transformer.
type MonteCarloT m s = StateT s (RVarT m) Source
A monad transformer for Monte-Carlo calculations.
Arguments
| :: MonadRandom (StateT b Identity) | |
| => MonteCarlo s c | Monte Carlo computation. |
| -> b | Initial state. |
| -> s | Initial random-generator state. |
| -> c | Final result of computation. |
Runs a MonteCarlo calculation and provides the result of the computation.
The discretize typeclass.
class Discretize a where Source
The Discretize class defines those
models on which Monte Carlo simulations
can be performed.
Minimal complete definition: initialize, discounter, forwardGen and evolve'.
Minimal complete definition
Methods
Arguments
| :: Discretize a | |
| => a | Model |
| -> MonteCarlo (MCObservables, Time) () |
Initializes a Monte Carlo simulation for a given number of runs.
Arguments
| :: Discretize a | |
| => a | Model |
| -> Time | time to evolve to |
| -> Bool | |
| -> MonteCarlo (MCObservables, Time) () |
Evolves the internal states of the MC variables between two times.
discountState :: Discretize a => a -> Time -> MonteCarlo (MCObservables, Time) Double Source
Stateful discounting function, takes a model and a time, and returns a vector of results.
discount :: Discretize a => a -> Time -> Double Source
Non-stateful discounting function...might need to find a better place to put this.
forwardGen :: Discretize a => a -> Time -> MonteCarlo (MCObservables, Time) Double Source
Stateful forward generator for a given model at a certain time.
Arguments
| :: Discretize a | |
| => a | model |
| -> Time | time to evolve to |
| -> Bool | whether or not to use flipped variates |
| -> MonteCarlo (MCObservables, Time) () | computation result |
Internal function to evolve a model to a given time.
maxStep :: Discretize a => a -> Double Source
Determines the maximum size time-step for discretization purposes. Defaults to 1/250.
Arguments
| :: Discretize a | |
| => a | model |
| -> ContingentClaim | compilied basket of claims |
| -> Int | number of trials |
| -> Bool | antithetic? |
| -> MonteCarlo (MCObservables, Time) Double | computation result |
Perform a simulation of a compiled basket of contingent claims.
Arguments
| :: (Discretize a, MonadRandom (StateT b Identity)) | |
| => a | model |
| -> ContingentClaim | claims to value |
| -> b | initial random state |
| -> Int | trials |
| -> Bool | whether to use antithetic variables |
| -> Double | final value |
Runs a simulation for a ContingentClaim.
runSimulationAnti :: (Discretize a, MonadRandom (StateT b Identity)) => a -> ContingentClaim -> b -> Int -> Double Source
Like runSimulation, but splits the trials in two and does antithetic variates.
quickSim :: Discretize a => a -> ContingentClaim -> Int -> Double Source
runSimulation with a default random number generator.
quickSimAnti :: Discretize a => a -> ContingentClaim -> Int -> Double Source
runSimulationAnti with a default random number generator.
Instances