首页 / 资讯中心 / 文章详情

tf-quant-finance 利率分析模块(rates.analytics)完全指南:现金流现值、远期利率与互换定价

tf-quant-finance 利率分析模块(rates.analytics)完全指南:现金流现值、远期利率与互换定价 ★ FEATURED ARTICLE
金融科技科学计算【免费下载链接】tf-quant-financeHigh-performance TensorFlow library for quantitative finance.项目地址https://gitcode.com/gh_mirrors/tf/tf-quant-finance点击查看免费下载导读本文系统讲解 tf-quant-finance 中tf_quant_finance.rates.analytics模块的三大核心能力——现金流属性计算cashflows、远期利率计算forwards以及利率/权益互换的创建与定价swap。通过本文你将掌握如何用 TensorFlow 张量运算完成债券现值/到期收益率YTM求解、零息曲线与远期利率的相互转换、互换平值利率与年金计算并理解其中groups分段批处理机制与 Newton 迭代反求解等底层实现原理。模块总览与定位rates.analytics是 tf-quant-finance 中面向利率产品的分析工具箱对外暴露为三个子模块模块入口定义在 rates/analytics/init.py子模块定位核心函数cashflows现金流属性计算present_value、pv_from_yields、yields_from_pvforwards远期利率属性计算forward_rates、forward_rates_from_yields、yields_from_forward_ratesswap利率/权益互换创建与定价swap_price、rate_leg_cashflows、equity_leg_cashflows、ir_swap_price、ir_swap_par_rate_and_annuity、equity_swap_price模块的定位在源码中表述为 Functions to handle rates其中cashflows子模块被描述为 Collection of functions to compute properties of cashflowsswap子模块则承担 create interest rate and equity swaps 的职责。整个模块直接基于tensorflow.compat.v2构建所有函数都遵循统一的张量风格输入输出均为Tensor支持batch_shape [n]形状的批量运算并支持 float32 / float64 双精度。调用入口示例import tf_quant_finance as tff # 三个子模块的完整引用路径 tff.rates.analytics.cashflows.present_value(...) tff.rates.analytics.forwards.forward_rates(...) tff.rates.analytics.swap.swap_price(...)现金流模块cashflows债券现值与到期收益率cashflows子模块提供三个互为正逆关系的函数构成完整的债券定价闭环已知折现因子求现值、已知收益率求现值、已知现值反求收益率。present_value用折现因子直接折现present_value(cashflows, discount_factors, dtypeNone, nameNone)是最基础的函数它把现金流与对应的折现因子逐项相乘再求和。关键参数cashflows实数Tensor形状batch_shape [n]其中n是每只债券的现金流个数batch_shape是债券数量现金流个数不同的债券必须用 0 补齐到统一的ndiscount_factors与cashflows同 dtype、形状兼容的Tensor对应各现金流的折现因子dtype默认None自动从cashflows推断name默认None映射为present_value。官方示例两只面值 1000、半年付息的债券第一只票息 4% 期限 2 年第二只票息 6% 期限 3 年尾部用 0 补齐cashflows [[20, 20, 20, 1020, 0, 0], [30, 30, 30, 30, 30, 1030]] discount_factors [[0.96, 0.93, 0.9, 0.87, 1.0, 1.0], [0.97, 0.95, 0.93, 0.9, 0.88, 0.86]] present_values tff.rates.analytics.cashflows.present_value( cashflows, discount_factors, dtypenp.float64) # 期望结果: [943.2, 1024.7]实现原理从 cashflows.py 源码看该函数的核心实现只有两步——先做逐元素乘法cashflows * discount_factors再沿最后一个轴求和tf.math.reduce_sum(discounted, axis-1)。由于是纯张量运算可整体参与 TensorFlow 的自动微分与 XLA 编译。测试用例 cashflows_test.pytest_discount_factors在 float32 与 float64 两种精度下均验证了该结果。pv_from_yields由到期收益率计算现值pv_from_yields(cashflows, times, yields, groupsNone, dtypeNone, nameNone)不直接给折现因子而是给定连续复利的到期收益率内部按exp(-yield * time)生成折现因子。数学背景这里yields指 Hull《期权、期货及其他衍生产品》第九版4.4 节定义的债券收益率即债券的内部收益率IRR。每笔现金流按cashflow_i * exp(-yield * t_i)折现后求和。关键参数cashflows/times均为长度n的 rank-1 实数Tensortimes以年为单位、必须为正yields长度1无groups或长度kgroups最大值为k-1的 rank-1Tensor第i个分量作用于所有标签为i的现金流groups可选的长度n的 intTensor取值在[0, k-1]用于把n笔现金流划分成k组即k只债券默认None表示全部现金流视为一组dtype/name默认None。官方示例两只面值 1000 的半年付息债券YTM 分别为 7% 与 5%dtype np.float64 yields_to_maturity np.array([0.07, 0.05], dtypedtype) cashflows np.array([20, 20, 20, 1020, 30, 30, 30, 30, 30, 1030], dtypedtype) times np.array([0.5, 1, 1.5, 2, 0.5, 1, 1.50, 2, 2.5, 3], dtypedtype) groups np.array([0] * 4 [1] * 6) present_values tff.rates.analytics.cashflows.pv_from_yields( cashflows, times, yields_to_maturity, groupsgroups, dtypedtype) # 结果: [942.712, 1025.778]实现细节源码cashflows.py中groups非空时先通过tf.gather(yields, groups)把每个现金流贴上自己的收益率折现后分别用tf.math.segment_sum(discounted, groups)按组求和groups为空时则用tf.math.reduce_sum(discounted, keepdimsTrue)返回长度为 1 的结果。测试中还覆盖了零收益率PV 等于票息加本金之和 1080/1180与极端高收益率300%PV 趋于 0两个边界场景cashflows_test.py。yields_from_pv由现值反求到期收益率Newton 迭代yields_from_pv(cashflows, times, present_values, groupsNone, tolerance1e-8, max_iterations10, dtypeNone, nameNone)是pv_from_yields的逆运算用于从已知市场价格反解隐含 YTM。关键参数与pv_from_yields相同部分不再重复present_values长度k的 rank-1Tensor第i个分量是组i的现值tolerance正实数标量Tensor默认1e-8。收益率用 Newton 求根法求解当推断收益率变化量小于该容差或达到最大迭代次数时停止二者取先到者max_iterations正整数标量Tensor默认10传None可取消迭代上限。官方示例用前一个例子的 PV 反解 YTM期望还原出 7% 与 5%dtype np.float64 present_values np.array([942.71187528177757, 1025.7777300221542], dtypedtype) cashflows np.array([20, 20, 20, 1020, 30, 30, 30, 30, 30, 1030], dtypedtype) times np.array([0.5, 1, 1.5, 2, 0.5, 1, 1.50, 2, 2.5, 3], dtypedtype) groups np.array([0] * 4 [1] * 6) yields tff.rates.analytics.cashflows.yields_from_pv( cashflows, times, present_values, groupsgroups, dtypedtype) # 期望: [0.07, 0.05]实现原理源码cashflows.py展示了一个经典的 Newton 迭代。每次迭代计算两组量pvs segment_sum(cashflows * exp(-times * yields))与durations segment_sum(cashflows * times * exp(-times * yields))即麦考利久期的折现加权和然后按delta_yields (pvs - present_values) / durations更新收益率。迭代通过tf.while_loop完成_cond判断delta_yields的最大绝对值是否小于tolerance从而支持在计算图中展开循环。测试用例cashflows_test.py验证了分组场景、零收益率饱和场景以及需要把max_iterations提高到 30 才能收敛的高收益率场景隐含 YTM 高达 25% 与 42%说明默认的 10 次迭代对极端收益率可能不足实际使用时可按需调大。远期利率模块forwards零息曲线与远期曲线的双向转换forwards子模块围绕零息率zero rate与远期利率forward rate两个概念提供三个函数。模块文档forwards.md开宗明义设Z(t)为到期时间t的零息债券价格则零息率定义为r(t) -ln(Z(t)) / t (1)这是 0 时刻观察到的、适用于时段[0, t]的连续复利利率。而t1与t2之间的远期利率f(t1, t2)与零息债券价格的关系为exp(-f(t1, t2)(t2-t1)) Z(t2) / Z(t1) (2) f(t1, t2) -(ln Z(t2) - ln Z(t1)) / (t2 - t1) (3) f(t1, t2) (t2 * r(t2) - t1 * r(t1)) / (t2 - t1) (4)forward_rates由折现因子直接计算远期利率forward_rates(df_start_dates, df_end_dates, daycount_fractions, dtypeNone, nameNone)是最直接的远期利率计算给定起止日期的折现因子与日计数分数year fraction返回该区间内的远期利率。该函数对形状没有特殊约束天然支持batch_shape批量计算。官方示例df_start_dates [[0.95, 0.9, 0.75], [0.95, 0.99, 0.85]] df_end_dates [[0.8, 0.6, 0.5], [0.8, 0.9, 0.5]] daycount_fractions [[0.5, 1.0, 2], [0.6, 0.4, 4.0]] result tff.rates.analytics.forwards.forward_rates( df_start_dates, df_end_dates, daycount_fractions, dtypetf.float64) # 期望: # [[0.375, 0.5, 0.25], # [0.3125, 0.25, 0.175]]实现原理源码forwards.py中公式为divide_no_nan(divide_no_nan(df_start, df_end) - 1, daycount_fractions)即简单的(DF_start / DF_end - 1) / τ。注意这里使用了tf.math.divide_no_nan当区间长度为 0daycount_fractions为 0时返回 0 而不是 NaN避免了除零异常。测试 forwards_test.py 对该结果在两种精度下做了验证。forward_rates_from_yields零息率曲线 → 远期利率曲线forward_rates_from_yields(yields, times, groupsNone, dtypeNone, nameNone)利用式 (4) 从一组递增时点上的零息率计算相邻区间上的远期利率。对区间[0, t1]远期利率与零息率相同。关键参数yields长度n的 rank-1Tensor各时点上的零息率times长度n的正实数 rank-1Tensor。无groups时整个数组必须严格递增有groups时每个组内的时点必须递增groups可选 intTensor取值[0, k-1]k为曲线条数默认None表示全部视为单条曲线。关于 groups 批处理的设计不同零息曲线例如不同币种往往具有不同数量的期限点tenor无法直接堆叠成统一的 batch 维度。因此该模块借鉴tf.segment_sum的分组分段概念把所有曲线拼成一维向量再用groups标注每条曲线所辖区间。官方示例中两条曲线3 个期限点与 4 个期限点拼接如下Groups: [0, 0, 0, 1, 1, 1, 1] Times: [0.25, 0.5, 1.0, 0.25, 0.5, 1.0, 1.5] Rates: [0.04, 0.041, 0.044, 0.022, 0.025, 0.028, 0.036]dtype np.float64 groups np.array([0, 0, 0, 1, 1, 1, 1]) times np.array([0.25, 0.5, 1.0, 0.25, 0.5, 1.0, 1.5], dtypedtype) rates np.array([0.04, 0.041, 0.044, 0.022, 0.025, 0.028, 0.036], dtypedtype) forward_rates tff.rates.analytics.forwards.forward_rates_from_yields( rates, times, groupsgroups, dtypedtype)实现原理源码forwards.py先计算rate_times yields * times再用tf_quant_finance.math.segment_ops.segment_diff对rate_times与times分别做一阶分段差分最后相除得到(t2*r2 - t1*r1) / (t2 - t1)。该实现完全避开 Python 循环可在图模式与 XLA 下高效执行。测试 forwards_test.py 同时验证了带 groups 与无 groups单条曲线、7 个期限点两种场景前者期望输出[0.04, 0.042, 0.047, 0.022, 0.028, 0.031, 0.052]。yields_from_forward_rates远期利率曲线 → 零息率曲线yields_from_forward_rates(discrete_forwards, times, groupsNone, dtypeNone, nameNone)是上一个函数的逆运算给定相邻区间[0, t1], [t1, t2], ..., [t_{n-1}, tn]上的远期利率反推各到期时点上的零息收益率。注意discrete_forwards的第一个分量适用于区间[0, times[0]]。官方示例用上一个例子的远期利率反推期望还原出原始零息率[0.04, 0.041, 0.044, 0.022, 0.025, 0.028, 0.036]dtype np.float64 groups np.array([0, 0, 0, 1, 1, 1, 1]) times np.array([0.25, 0.5, 1.0, 0.25, 0.5, 1.0, 1.5], dtypedtype) discrete_forwards np.array( [0.04, 0.042, 0.047, 0.022, 0.028, 0.031, 0.052], dtypedtype) yields tff.rates.analytics.forwards.yields_from_forward_rates( discrete_forwards, times, groupsgroups, dtypedtype) # 结果: [0.04, 0.041, 0.044, 0.022, 0.025, 0.028, 0.036]实现原理源码forwards.py的注释给出了一条无循环的求解策略记x_i f_i * (t_i - t_{i-1})t_{-1}0、y_i r_i * t_i则x_i y_i - y_{i-1}于是y_i x_0 x_1 ... x_i。实现先用segment_diff计算相邻时点间隔乘以远期利率得到x再用segment_ops.segment_cumsum做分段前缀和得到y最后divide_no_nan(y, times)还原零息率。这一差分 ↔ 前缀和的对称设计使正反两个函数在计算图上互为精确逆运算。互换模块swap利率与权益互换的创建与定价swap子模块提供从单条腿现金流到整笔互换定价的完整工具箱所有定价函数返回的现值均站在收取方receiver视角。基础设施rate_leg_cashflows 与 equity_leg_cashflowsrate_leg_cashflows(coupon_rates, notional, daycount_fractions, dtypeNone, nameNone)计算利率腿的现金流公式为notional * daycount_fraction * coupon_rate。coupon_rates可以是标量固定腿也可以是向量浮动腿的远期利率因此一个函数同时覆盖固定利率腿与浮动利率腿。官方示例coupon_rates [[0.1, 0.1, 0.1], [0.02, 0.12, 0.14]] notional 1000 daycount_fractions [[1, 1, 1], [1, 2, 1]] tff.rates.analytics.swap.rate_leg_cashflows( coupon_rates, notional, daycount_fractions, dtypetf.float64) # 期望: # [[100.0, 100.0, 100.0], # [20.0, 240.0, 140.0]]equity_leg_cashflows(forward_prices, spots, notional, dividendsNone, dtypeNone, nameNone)计算权益腿的现金流定义为各付息日之间的总权益收益率。设S_i为T_i时刻的权益价值、d_i为该时刻支付的离散股息则T_i时刻的支付为(S_i - S_{i-1}) / S_{i-1} d_i其理论依据见 Chance 与 Rich 的经典论文The Pricing of Equity Swaps and Swaptions1998。dividends默认None表示零股息。关键参数forward_prices形状batch_shape [num_cashflows]的实数Tensor各重置时点上的权益远期价格spots形状与batch_shape兼容的Tensor各批量元素的即期价格notional形状兼容的Tensor每笔现金流的名义本金dividends形状兼容的Tensor重置时点的离散股息默认 0。官方示例notional 10000 forward_prices [[110, 120, 140], [210, 220, 240]] spots [100, 200] dividends [[1, 1, 1], [2, 2, 2]] tff.rates.analytics.swap.equity_leg_cashflows( forward_prices, spots, notional, dividends, dtypetf.float64) # 期望: # [[1000.01, 909.1, 1666.675], # [500.01, 476.2, 909.1]]实现细节源码swap.py先把即期价格spots通过tf.expand_dims(spots, axis-1)拼接到远期价格序列头部即S_0再计算相邻差分forward[..., 1:] - forward[..., :-1]并加上股息最后除以forward[..., :-1]得到收益率乘以名义本金。同样使用divide_no_nan防御除零。测试 swap_test.py 验证了无 batch 与有 batch 两种场景。swap_price通用互换定价swap_price(pay_leg_cashflows, receive_leg_cashflows, pay_leg_discount_factors, receive_leg_discount_factors, dtypeNone, nameNone)是模块的核心拼装函数两条腿各自折现求和后相减。由于它直接接收已算好的现金流因此对任何能表达为两条现金流序列的产品利率互换、权益互换、甚至更一般的基础互换都通用。官方示例pay_leg_cashflows [[100, 100, 100], [200, 250, 300]] receive_leg_cashflows [[200, 250, 300, 300], [100, 100, 100, 100]] pay_leg_discount_factors [[0.95, 0.9, 0.8], [0.9, 0.85, 0.8]] receive_leg_discount_factors [[0.95, 0.9, 0.8, 0.75], [0.9, 0.85, 0.8, 0.75]] tff.rates.analytics.swap.swap_price( pay_leg_cashflowspay_leg_cashflows, receive_leg_cashflowsreceive_leg_cashflows, pay_leg_discount_factorspay_leg_discount_factors, receive_leg_discount_factorsreceive_leg_discount_factors, dtypetf.float64) # 期望: [615.0, -302.5]实现细节源码swap.py内部复用了cashflows.present_value分别计算两条腿的现值返回receive_leg_pv - pay_leg_pv。注意两条腿的现金流个数可以不同示例中 pay 腿 3 笔、receive 腿 4 笔折现因子各腿独立提供。测试 swap_test.py 中NoBatch场景得到标量615.0。ir_swap_price利率互换一键定价ir_swap_price(pay_leg_coupon_rates, receive_leg_coupon_rates, pay_leg_notional, receive_leg_notional, pay_leg_daycount_fractions, receive_leg_daycount_fractions, pay_leg_discount_factors, receive_leg_discount_factors, dtypeNone, nameNone)省去手工拼装现金流的手续直接输入两条腿的票息率、名义本金、日计数分数与折现因子函数内部依次调用rate_leg_cashflows生成现金流、再调用swap_price完成定价。调用链可概括为ir_swap_price → rate_leg_cashflows × 2生成 pay/receive 腿现金流 → swap_price两条腿各自 present_value 后相减官方示例pay_leg_coupon_rates [[0.1], [0.15]] receive_leg_coupon_rates [[0.1, 0.2, 0.05], [0.1, 0.05, 0.2]] notional 1000 pay_leg_daycount_fractions 0.5 receive_leg_daycount_fractions [[0.5, 0.5, 0.5], [0.4, 0.5, 0.6]] discount_factors [[0.95, 0.9, 0.85], [0.98, 0.92, 0.88]] tff.rates.analytics.swap.ir_swap_price( pay_leg_coupon_ratespay_leg_coupon_rates, receive_leg_coupon_ratesreceive_leg_coupon_rates, pay_leg_notionalnotional, receive_leg_notionalnotional, pay_leg_daycount_fractionspay_leg_daycount_fractions, receive_leg_daycount_fractionsreceive_leg_daycount_fractions, pay_leg_discount_factorsdiscount_factors, receive_leg_discount_factorsdiscount_factors, dtypetf.float64) # 期望: [23.75, -40.7]ir_swap_par_rate_and_annuity平值互换利率与年金ir_swap_par_rate_and_annuity(floating_leg_start_times, floating_leg_end_times, fixed_leg_payment_times, fixed_leg_daycount_fractions, reference_rate_fn, dtypeNone, nameNone)用于从参考利率曲线出发计算平值互换利率par swap rate与互换年金annuity是利率曲线构建如 swap_curve_bootstrap中的基础工具。关键参数floating_leg_start_times/floating_leg_end_times形状expiries.shape [m]的实数Tensor浮动腿每笔支付的计息起止时间fixed_leg_payment_times形状expiries.shape [n]的实数Tensor固定腿每笔支付时间fixed_leg_daycount_fractions与fixed_leg_payment_times同 dtype 且形状兼容固定腿各支付的日计数分数reference_rate_fnPython 可调用对象接受到期时间实数Tensor并返回input_shape [dim]形状的输出即当前时点观察到的、对应到期时间的连续复利零息率。实现原理源码swap.py通过exp(-reference_rate_fn(t) * t)由零息率函数生成三个折现因子序列浮动腿起息日、浮动腿到期日、固定腿支付日然后计算annuity Σ fixed_payment_df * fixed_daycount_fraction (年金) swap_rate Σ (floating_start_df - floating_end_df) / annuity (平值利率)即平值利率等于浮动腿各期折现因子之差的和除以年金。测试 swap_test.py 使用恒常利率函数lambda x: 0.01验证三条腿各 3 期、日计数分数均为 0.5 时得到平值利率0.010025041718802、年金1.477680223329493。reference_rate_fn的可插拔设计使该函数可以无缝对接本仓库其他曲线构建模块如 hagan_west 或 nelson_seigel_svensson。equity_swap_price权益互换定价equity_swap_price(rate_leg_coupon_rates, equity_leg_forward_prices, equity_leg_spots, rate_leg_notional, equity_leg_notional, rate_leg_daycount_fractions, rate_leg_discount_factors, equity_leg_discount_factors, equity_dividendsNone, is_equity_receiverNone, dtypeNone, nameNone)将利率腿固定/浮动与权益腿组合定价。权益腿现金流由equity_leg_cashflows生成利率腿现金流由rate_leg_cashflows生成最终调用swap_price组合。关键参数rate_leg_coupon_rates形状batch_shape [num_rate_cashflows]利率腿票息率equity_leg_forward_prices/equity_leg_spots权益腿远期价格形状batch_shape [num_equity_cashflows]与即期价格rate_leg_notional/equity_leg_notional两腿名义本金rate_leg_daycount_fractions利率腿日计数分数rate_leg_discount_factors/equity_leg_discount_factors两腿各自的折现因子两腿现金流个数不同因此必须分开提供equity_dividends权益重置时点的股息默认None零股息is_equity_receiver形状与batch_shape兼容的布尔Tensor指示持有者是否为权益接收方默认None表示全部为权益接收方互换equity receiver swap。官方示例rate_leg_coupon_rates [[0.1, 0.2, 0.05], [0.1, 0.05, 0.2]] forward_prices [[110, 120, 140, 150], [210, 220, 240, 0]] # 4 笔与 3 笔支付 spots [100, 200] notional 1000 rate_leg_daycount_fractions [[0.5, 0.5, 0.5], [0.4, 0.5, 0.6]] rate_leg_discount_factors [[0.95, 0.9, 0.85], [0.98, 0.92, 0.88]] equity_leg_discount_factors [[0.95, 0.9, 0.85, 0.8], [0.98, 0.92, 0.88, 0.0]] tff.rates.analytics.swap.equity_swap_price( rate_leg_coupon_ratesrate_leg_coupon_rates, equity_leg_forward_pricesforward_prices, equity_leg_spotsspots, rate_leg_notionalnotional, equity_leg_notionalnotional, rate_leg_daycount_fractionsrate_leg_daycount_fractions, rate_leg_discount_factorsrate_leg_discount_factors, equity_leg_discount_factorsequity_leg_discount_factors, is_equity_receiver[True, False], dtypetf.float64) # 期望: [216.87770563, -5.00952381]实现细节源码swap.py中is_equity_receiver通过tf.where映射为1/-1符号再乘上swap_price(rate_cashflows, equity_cashflows, ...)的结果——这里的swap_price返回的正是收取权益腿、支付利率腿的现值因此对非权益接收方直接取反即可。示例中第一个批量元素是权益接收方正值 216.88第二个不是负值 -5.01。测试 swap_test.py 同时覆盖了is_equity_receiverNone全部视为接收方与显式指定[True, False]两种用法。工程实践要点与常见用法1. 精度选择所有函数都支持dtype参数默认从输入推断。官方示例与测试大量使用np.float64/tf.float64以获得精确数值结果如 YTM 反解需要atol1e-9级别的精度而 float32 适用于对精度要求不高的批量场景。建议定价与曲线构建使用 float64性能敏感的原型使用 float32。2. groups 分段机制是不等长批量的通用解法pv_from_yields、yields_from_pv、forward_rates_from_yields、yields_from_forward_rates四个函数都用groups解决每条曲线/每只债券期限点个数不同、无法直接堆叠成 batch的问题。使用要点groups取值必须在[0, k-1]k为组数每个组内的times必须严格递增返回结果按组序排列第i个分量对应组i。该设计与tf.segment_sum/tf.segment_cumsum等分段算子一脉相承forwards.py正是直接调用了 segment_ops 中的segment_diff与segment_cumsum。3. Newton 迭代的收敛性控制yields_from_pv默认max_iterations10、tolerance1e-8。对普通债券YTM 在个位数百分比量级足够但对深度折价债券隐含收益率极高可能需要增大max_iterations测试中用到 30。若担心不收敛可同时观察delta_yields的收敛趋势或适当放宽tolerance。4. 模块间的组合使用本模块的函数是上游产品定价的基础件cashflows.present_value被swap_price复用swap.pyswap_price又被ir_swap_price与equity_swap_price复用ir_swap_par_rate_and_annuity的reference_rate_fn回调则可对接 hagan_west、nelson_seigel_svensson 等曲线模型进而服务于 swap_curve_bootstrap 等更上层的利率曲线构建流程。参考资料模块文档analytics.md、cashflows.md、forwards.md、swap.md源码实现cashflows.py、forwards.py、swap.py测试用例cashflows_test.py、forwards_test.py、swap_test.py数学参考John C. Hull,Options, Futures and Other Derivatives, 9th Edition收益率定义见第 4.4 节Don M. Chance Don R. Rich,The Pricing of Equity Swaps and Swaptions, 1998权益腿现金流定义赞分享金融科技科学计算【免费下载链接】tf-quant-financeHigh-performance TensorFlow library for quantitative finance.项目地址https://gitcode.com/gh_mirrors/tf/tf-quant-finance点击查看免费下载相关推荐tf-quant-finance 利率工具包tff.rates完全指南现金流定价、远期利率、互换曲线构建与插值tf quant finance 利率工具包tff.rates完全指南现金流定价、远期利率、互换曲线构建与插值 本指南以 tf_quant_finance金融科技科学计算多语言语义匹配新标杆paraphrase-multilingual-MiniLM-L12-v2实现实时推理多语言语义匹配新标杆paraphrase multilingual MiniLM L12 v2实现实时推理 你知道吗在全球化业务扩张的今天企业每天要处理超金融科技科学计算tf-quant-finance 利率曲线 RateCurve 完全指南折现因子、远期利率与自定义插值tf quant finance 利率曲线 RateCurve 完全指南折现因子、远期利率与自定义插值 本文深入讲解 tf quant finance 实验性金融科技科学计算上一篇Armeria Kubernetes 混沌测试实战用 Chaos Mesh 验证 SharedInformer 的 WebSocket 恢复能力下一篇Whisky 终极指南免费兼容层工具如何三步让 Apple Silicon Mac 运行 Windows 软件创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站