Пример #1
0
def eq_up_out_call():
    scen_set = xen.ScenarioSet('test_set')
    scen = xen.Scenario('eq_multi', 'pricing1')

    model_eq1 = xen_s.gbmconst('eq1')
    model_eq2 = xen_s.gbmconst('eq2')

    scen.add_model(model_eq1)
    scen.add_model(model_eq2)
    scen.refresh_corr()

    scen_set.add_scenario(scen)

    scen_set.generate()
Пример #2
0
import xenarix as xen
import xenarix.sample as xen_s

xen.set_repository('c:\\xenarix')

set_name = 'set1'
scenSet = xen.ScenarioSet(set_name=set_name)

scen_id = 'scen1'
result_id = 'res1'
scen1 = xen.Scenario(scen_id=scen_id, result_id=result_id)

scen1.general.scenario_num = 200
scen1.general.maxyear = 5

gbm1 = xen_s.gbmconst('kospi200')
gbm2 = xen_s.gbmconst('kospi200_2')
gbm3 = xen_s.gbmconst('kospi200_3')

scen1.add_model(gbm1)
scen1.add_model(gbm2)
scen1.add_model(gbm3)

scenSet.add_scenario(scen1)

scen1.refresh_corr()
scen1.set_corr(gbm1, gbm3, 0.3)
scen1.set_corr(gbm1, gbm2, 0.5)

# print(scen1.correlation.dump())
Пример #3
0
# scenario set
set_name = 'set1'
scenSet = xen.ScenarioSet(set_name=set_name)

# scenario
scen_id = 'scen1'
result_id = 'res1'
scen1 = xen.Scenario(scen_id=scen_id, result_id=result_id)

# generation setting
scen1.general.scenario_num = 100
scen1.general.maxyear = 10

# model add
scen1.add_model(xen_s.gbm('kospi200'))
scen1.add_model(xen_s.gbmconst('kospi'))
scen1.add_model(xen_s.hw1f('irskrw'))

scenSet.add_scenario(scen1)
scenSet.generate()

# get result from current repository
res = xen_r.ResultObj(set_name, scen_id, result_id)

# export csv
for i, model in enumerate(scen1.models):
    filename = model + '_' + str(i) + '.csv'
    res.get_resultModel_by_index(i).export_csv(filename)

# export npz
res.export_npz(scenSet.set_name + '.npz')
Пример #4
0
# coding=utf-8
import xenarix as xen
import xenarix.test.martinagle as xen_mt
import xenarix.sample as xen_s

xen.set_repository('c:\\xenarix')

# hw1f = xen_s.hw1f('test_hw1')
#
# xen_t.shortrate(hw1f, scenario_num=1000, maxyear=5, moment_match=False, frequency=xen.TimeGridFrequency.Month)

# gbm = xen_s.gbm('test_gbm')
#
# xen_t.equity(gbm, scenario_num=1000, maxyear=5, moment_match=True, frequency=xen.TimeGridFrequency.Month)

gbmconst = xen_s.gbmconst('test_gbmconst')

xen_mt.equity(gbmconst, scenario_num=10000, maxyear=5, moment_match=True, frequency=xen.TimeGridFrequency.Month)
Пример #5
0
total_remittance_amount = 30000000000  # 30억 (월간)
remittance_marketshare_ratio = 0.3

remi_issue_amount = 11500000000  # 115억개
remi_circulation_amount = 5000000000  # 50억개
remittance_fee = 0.015
dividend_ratio = 0.7
IEO_price = 1
market_capitalization = remi_circulation_amount * IEO_price
rf = 0.015
per = 0.05

# generation setting - simulation part
scen_set = xen.ScenarioSet('test')
scen = xen.Scenario(scen_id='testid', result_id='resultid')
gbm = xen_s.gbmconst(process_name='trm')
gbm.x0 = 30
scen.add_model(gbm)
scen.general.frequency = xen.TimeGridFrequency.EndOfMonth
scen.general.maxyear = 5
scen.general.scenario_num = 500
scen_set.add_scenario(scen)
scen_set.generate()

total_profit = 0
total_discounted_profit = 0
# 1년간만 뿌림
for month in range(1, 12):
    holder_profit = total_remittance_amount * remittance_marketshare_ratio * remittance_fee * dividend_ratio
    total_profit += holder_profit
    total_discounted_profit += holder_profit / ((1.0 + rf)**(month / 12.0))
Пример #6
0
# coding=utf-8
import xenarix as xen
import xenarix.sample as xen_s
import xenarix.results as xen_r
import xenarix.calculations as xen_c
import xenarix.instruments as xen_i
import xenarix.templatebuilder as xen_t
import xenarix.utilities as xen_u
import matplotlib.pyplot as plt
import unittest, sys, datetime

refdate = xen_u.datetime_to_datestr_yyyymmdd(datetime.datetime.now())

# gen을 해
gbm_model = xen_s.gbmconst('testgbm')
scen_set = xen_t.build_scenset_with_model(gbm_model, refdate)

# scen_set.generate()

res = scen_set.get_result_obj_list()

rm_list = res[0].get_resultModel_list()

rm1 = rm_list[0]
# rm2 = xen_r.ResultModel()

discount_curve = xen_i.FlatDiscountCurve(0.03)
maturity_date = xen_u.datetime_to_datestr_yyyymmdd(datetime.datetime.now())

# option = xen_i.IndexOption(type='call', strike=100, T=1.0)
option = xen_i.Kospi2_IndexOption(option_type='call',