Risk Measures

The risk module provides a set of risk metrics to measure the risk associated with a portfolio such as Value at Risk (VaR) and Conditional Value at Risk (CVaR).

import pandas as pd
import numpy as np
from quantmod.risk import (
    RiskInputs, 
    ValueAtRisk, 
    ConditionalVaR, 
    VarBacktester
)


if __name__ == "__main__":
    df = pd.read_csv("data.csv", index_col=0, parse_dates=True)['ICICIBANK']
    log_returns = np.diff(np.log(df))

    var = ValueAtRisk(inputs=RiskInputs(returns=log_returns, confidence_level=0.99), method='historical').var
    es = ConditionalVaR(inputs=RiskInputs(returns=log_returns, confidence_level=0.99)).cvar

    # Historical VaR and CVaR
    print(f"Historical VaR: {var}")
    print(f"Historical CVaR: {es} \n")

    # VaR Backtest
    backtest_results = VarBacktester(inputs=RiskInputs(returns=log_returns, confidence_level=0.99)).run
    print(f"Backtested VaR Results: \n {backtest_results}")