示例#1
0
def sharpeAndCml(source, riskFree, symbols):
    ma = dx.market_environment('ma', dt.date(2010, 1, 1))
    ma.add_list('symbols', symbols)
    ma.add_constant('source', findSource(source))
    # ma.add_constant('final date', dt.date(2014, 3, 1))
    ma.add_constant('final date', dt.datetime.now())

    retVal = '{\n'
    retVal += '"EfficientPortfolios":'
    try:
        port = mvp.MeanVariancePortfolio(source + '_stocks', ma)
        effFrontier = port.get_efficient_frontier_bl(
            st.config["efficient_frontier"]["points_number"])

        retVal += effFrontier.toJson()
        retVal += ',\n'

        try:
            cpl = port.get_capital_market_line_bl_1(effFrontier.vols,
                                                    effFrontier.rets,
                                                    riskless_asset=riskFree)
            retVal += '"CML":' + cpl.toJson()
        except Exception, e:
            retVal += '"CML": {{"error":"{}"}}'.format(str(e))
            traceback.print_exc()

    except Exception, e:
        retVal += '{{"error":"{}"}}'.format(str(e))
        traceback.print_exc()
示例#2
0
import matplotlib.pyplot as plt
import seaborn as sns; sns.set()
import matplotlib
matplotlib.rcParams['font.family'] = 'serif'

# importing the data
h5 = pd.HDFStore('../data/vstoxx_march_2014.h5', 'r')
vstoxx_index = h5['vstoxx_index']
vstoxx_futures = h5['vstoxx_futures']
vstoxx_options = h5['vstoxx_options']
h5.close()
# collecting the maturity dates
third_fridays = sorted(set(vstoxx_futures['MATURITY']))

# instantiation of market environment object with dummy pricing date
me_vstoxx = dx.market_environment('me_vstoxx', dt.datetime(2014, 1, 1))
me_vstoxx.add_constant('currency', 'EUR')
me_vstoxx.add_constant('frequency', 'W')
me_vstoxx.add_constant('paths', 5000)

# constant short rate model with somewhat arbitrary rate
csr = dx.constant_short_rate('csr', 0.01)
me_vstoxx.add_curve('discount_curve', csr)

# parameters to be calibrated later, dummies only
me_vstoxx.add_constant('kappa', 1.0)
me_vstoxx.add_constant('theta', 20)
me_vstoxx.add_constant('volatility', 1.0)

# payoff function for all European call options
payoff_func = 'np.maximum(maturity_value - strike, 0)'
示例#3
0
import warnings
import dx
import datetime as dt
import pandas as pd
import seaborn as sns
sns.set()
warnings.simplefilter('ignore')

r = dx.constant_short_rate('r', 0.01)

me_1 = dx.market_environment('me', dt.datetime(2015, 1, 1))
# starting value of simulated processes
me_1.add_constant('initial_value', 100.)
# volatiltiy factor
me_1.add_constant('volatility', 0.2)
# horizon for simulation
me_1.add_constant('final_date', dt.datetime(2016, 6, 30))
# currency of instrument
me_1.add_constant('currency', 'EUR')
# frequency for discretization
me_1.add_constant('frequency', 'W')
# number of paths
me_1.add_constant('paths', 10000)
# discount curve
me_1.add_curve('discount_curve', r)

gbm_1 = dx.geometric_brownian_motion('gbm_1', me_1)
示例#4
0
grid = [
    startdate.replace(year=int(startdate.year + (i / 2)), month=6)
    for i in range(10)
]
grid[0] = dt.date(year=2013, month=12, day=12)
grid[1] = grid[0]
fix_rate = 2 * np.exp(
    oiss[startdate.replace(month=12)][grid[-1]] * 6) / np.sum([
        np.exp(oiss[startdate.replace(month=12)][grid[i]] * (i + 1) / 2)
        for i in range(10)
    ])
fix_rate /= 100
print('The fixed semiannual swap rate is ' + str(fix_rate))

# market environment
me_srd = dx.market_environment('me_srd', dt.datetime(2013, 6, 12))

# square-root diffusion
me_srd.add_constant('initial_value', 0.033061571)
me_srd.add_constant('kappa', opt[0])
me_srd.add_constant('theta', opt[1])
me_srd.add_constant('volatility', opt[2])
me_srd.add_curve('discount_curve', ois)
# OIS discounting object
me_srd.add_constant('currency', 'USD')
me_srd.add_constant('paths', 10000)
me_srd.add_constant('frequency', 'w')
me_srd.add_constant('starting_date', me_srd.pricing_date)
me_srd.add_constant('final_date', dt.datetime(2018, 6, 12))

srd = dx.square_root_diffusion('srd', me_srd)