Пример #1
0
    double EuropeanOptionBlack76::getVegaNumeric(double absoluteChangeVolatility)
    {
        double sd = standardDeviation;
        double sqrtdt = sqrt(yearsToExpiry);
        double originalVol = standardDeviation / sqrtdt;
        double dSD = (originalVol + absoluteChangeVolatility) * sqrtdt;

        setStandardDeviation(dSD);
        double price1 = getPremium();
        setStandardDeviation(sd);
        double price = getPremium();
        return price1 - price;
    }
Пример #2
0
NormalDistribution::NormalDistribution(double mean, double standardDeviation) 
  : UncertaintyDescription(boost::shared_ptr<detail::UncertaintyDescription_Impl>(
        new detail::UncertaintyDescription_Impl(NormalDistribution::type())))
{
  setMean(mean);
  setStandardDeviation(standardDeviation);
}
Пример #3
0
 void Gaussian::configure(const std::string& parameters) {
     if (parameters.empty()) return;
     std::vector<std::string> values = Op::split(parameters, " ");
     std::size_t required = 2;
     if (values.size() < required) {
         std::ostringstream ex;
         ex << "[configuration error] term <" << className() << ">"
                 << " requires <" << required << "> parameters";
         throw fl::Exception(ex.str(), FL_AT);
     }
     setMean(Op::toScalar(values.at(0)));
     setStandardDeviation(Op::toScalar(values.at(1)));
     if (values.size() > required)
         setHeight(Op::toScalar(values.at(required)));
 }
Пример #4
0
    BlackScholesGreeks EuropeanOptionBlack76::getOptionPriceAndGreeksNumeric(double dF, double dV, double dY, double dR) 
    {
        double F = forward;
        double sd = standardDeviation;
        double df = discountFactor;
        double yte = yearsToExpiry;
        double yts = yearsToSettlement;
        double X = strike;
        double sqrtdt = sqrt(yte);

        double price = getPremium();
        // Delta
        setForward(F + dF);
        double deltaPremium = getPremium();
        double delta = deltaPremium - price;
        // Gamma
        setForward(F - dF);
        double gammaPremium = getPremium();
        double gamma = (deltaPremium - 2 * price + gammaPremium);        
        setForward(F);
        // Vega
        double originalVol = sd / sqrtdt;
        double sd1 = (originalVol + dV) * sqrtdt;
        setStandardDeviation(sd1);
        double priceVega = getPremium();
        double vega = priceVega - price;
        // setStandardDeviation(sd1); will do a setParamters in Theta
        // Theta
        sd1 = (sd / sqrt(yte)) * sqrt(yte - dY);
        double df1 = exp(log(df) / yts * (yts - dY));
        setParameters(F, X, yte - dY, yts - dY, sd1, df1);
        double priceTheta = getPremium();
        double theta = priceTheta - price;
        setParameters(F, X, yte, yts, sd, df);
        // Rho
        df1 = exp((log(df) / yts - dR) * yts);
        setDiscountFactor(df1);
        double priceRho = getPremium();
        double rho = priceRho - price;
        setParameters(F, X, yte, yts, sd, df);
        return BlackScholesGreeks(price, delta, gamma, theta, vega, rho);
    }
Пример #5
0
RSSIProcessed::RSSIProcessed(AccessPoint accessPoint, int s, int d){
    setAP(accessPoint);
    setAverageStrength(s);
    setStandardDeviation(d);
}