pub use american_option::AmericanOption;
pub use asian_option::AsianOption;
pub use bermudan_option::BermudanOption;
pub use binary_option::BinaryOption;
pub use european_option::EuropeanOption;
pub use lookback_option::LookbackOption;
pub use rainbow_option::RainbowOption;
mod american_option;
mod asian_option;
mod bermudan_option;
mod binary_option;
mod european_option;
mod lookback_option;
mod rainbow_option;
#[derive(Clone, Copy, Debug)]
pub enum OptionType {
Call,
Put,
}
#[derive(Clone, Copy, Default, Debug, PartialEq)]
pub enum OptionStyle {
American,
#[default]
European,
Bermudan,
Basket,
Rainbow(RainbowType),
Barrier(BarrierType),
DoubleBarrier(BarrierType, BarrierType),
Asian(Permutation),
Lookback(Permutation),
Binary(BinaryType),
}
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum RainbowType {
BestOf,
WorstOf,
CallOnMax,
CallOnMin,
PutOnMax,
PutOnMin,
CallOnAvg,
PutOnAvg,
AllITM,
AllOTM,
}
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum BarrierType {
DownAndIn,
DownAndOut,
UpAndIn,
UpAndOut,
}
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum Permutation {
Fixed,
Floating,
}
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum BinaryType {
AssetOrNothing,
CashOrNothing,
}