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()
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())
# 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')
# 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)
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))
# 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',