com.opengamma.analytics.financial.model.volatility.surface.LogMoneyness.java Source code

Java tutorial

Introduction

Here is the source code for com.opengamma.analytics.financial.model.volatility.surface.LogMoneyness.java

Source

/**
 * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
 * 
 * Please see distribution for license.
 */
package com.opengamma.analytics.financial.model.volatility.surface;

import org.apache.commons.lang.Validate;

/**
 * Defined as x = ln(strike/forward)
 */
public class LogMoneyness implements StrikeType {

    private double _value;

    public LogMoneyness(final double value) {
        _value = value;
    }

    public LogMoneyness(final double strike, final double forward) {
        Validate.isTrue(strike > 0, "negative or zero strike");
        Validate.isTrue(forward > 0, "negative or zero forward");
        _value = Math.log(strike / forward);
    }

    @Override
    public double value() {
        return _value;
    }

    @Override
    public StrikeType with(double value) {
        return new LogMoneyness(value);
    }

}