楼主: 可人4
905 12

[量化金融] PyCaMa:用于现金管理的Python [推广有奖]

  • 0关注
  • 2粉丝

会员

学术权威

77%

还不是VIP/贵宾

-

威望
10
论坛币
15 个
通用积分
46.1832
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
24788 点
帖子
4166
精华
0
在线时间
0 小时
注册时间
2022-2-24
最后登录
2022-4-15

楼主
可人4 在职认证  发表于 2022-5-31 04:32:54 |只看作者 |坛友微信交流群|倒序 |AI写论文
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
英文标题:
《PyCaMa: Python for cash management》
---
作者:
Francisco Salas-Molina, Juan A. Rodr\\\'iguez-Aguilar, Pablo
  D\\\'iaz-Garc\\\'ia
---
最新提交年份:
2017
---
英文摘要:
  Selecting the best policy to keep the balance between what a company holds in cash and what is placed in alternative investments is by no means straightforward. We here introduce PyCaMa, a Python module for multiobjective cash management based on linear programming that allows to derive optimal policies for cash management with multiple bank accounts in terms of both cost and risk of policies.
---
中文摘要:
选择最佳政策来保持公司现金持有量与另类投资量之间的平衡绝非易事。我们在此介绍PyCaMa,这是一个基于线性规划的多目标现金管理Python模块,它允许从策略的成本和风险两个方面为多个银行账户的现金管理导出最佳策略。
---
分类信息:

一级分类:Quantitative Finance        数量金融学
二级分类:Computational Finance        计算金融学
分类描述:Computational methods, including Monte Carlo, PDE, lattice and other numerical methods with applications to financial modeling
计算方法,包括蒙特卡罗,偏微分方程,格子和其他数值方法,并应用于金融建模
--

---
PDF下载:
--> PyCaMa:_Python_for_cash_management.pdf (346.71 KB)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python 现金管理 Ama Applications Quantitative

沙发
kedemingshi 在职认证  发表于 2022-5-31 04:32:59 |只看作者 |坛友微信交流群
PyCaMa:现金管理Python Francisco Salas Molina*1、Juan A.Rodr'iguez Aguilar和PabloD'az Garc'aHilaturas Ferre,S.A.,Les Molines,2、03450 Banyeres de Mariola,Alicante,SpainIIIA CSIC,UAB校园,08913 Cerdanyola,Catalonia,SpainUniversidad Politi'ecnica de Valencia,Ferr'andiz y Carbonell,03801,Alcoy,Alicante,SpainFebruary 21,2017年摘要选择最佳政策来保持公司现金持有量和另类投资量之间的平衡,绝不是一种进步。我们在此介绍PyCaMa,这是一个基于线性规划的多目标现金管理Python模块,它可以根据策略的成本和风险,为多个银行账户的现金管理制定最佳策略。1动机和重要性现金经理通常与多家银行打交道,以接收客户付款并向供应商付款。运营这样一个现金管理系统意味着账户之间的大量交易,即所谓的政策,以保持系统处于安全状态,这意味着有足够的现金余额来面对付款并避免透支。此外,最优策略允许将交易成本和持有成本之和保持在最低水平。然而,现金经理可能不仅对成本感兴趣,而且对保单风险感兴趣。因此,风险分析也可以作为一个额外的目标纳入现金管理中,以最小化风险。因此,在具有多个银行账户的系统中,从成本和风险两个方面得出最优策略并非易事。为此,我们在此介绍PyCaMa,一种提供此类最佳策略的软件工具。尽管da Costa Moraes等人(2015年)在现金管理方面取得了最新进展,但缺乏辅助软件来帮助从理论到实践的过渡。

使用道具

藤椅
nandehutu2022 在职认证  发表于 2022-5-31 04:33:02 |只看作者 |坛友微信交流群
为了弥补这一差距,我们为有兴趣构建现金管理决策支持系统的从业者提供了一个现金管理模块Inpyton。此外,该软件还可以解决开放性研究问题,如:(i)管理多个银行账户Baccarin(2009);(ii)现金流预测准确性对Gormley和Meade政策成本的影响*通讯作者。电子邮件地址:francisco。salas@hifesa.com,则,jar@iiia.csic.es,则,pdizga@txp.upv.es(2007年);Salas Molina等人(2017年);(iii)Salas Molina等人(2016年)现金管理中不同风险度量的效用;(iv)鲁棒优化Soyster(1973);Ben Tal和Nemirovski(2002年)。实际上,现金管理系统可以表示为一组银行账户和它们之间的一组交易。这些系统可以通过建立允许交易和银行账户之间关系的关联矩阵引入PyCaMa。一旦确定了现金管理系统,现金经理应描述当前的成本结构,包括每笔交易的固定成本和可变成本,以及每个银行账户的持有成本。如果可行,PyCaMa还接受现金流预测,以减少未来石头的不确定性(1972年);Gormley和Meade(2007年)。此外,出于预防目的,可以为每个账户设置最低余额。最后,PyCaMa通过使用最先进的数学规划求解器(如Gurobi-Gurobi Optimization,Inc(2016))求解线性规划,为给定的规划水平提供最优策略。总之,PyCaMa是一个Python Gurobi工具,旨在自动化现金管理中的多目标决策。据我们所知,PyCaMa是第一个解决多银行账户多目标现金管理问题的软件工具。

使用道具

板凳
mingdashike22 在职认证  发表于 2022-5-31 04:33:05 |只看作者 |坛友微信交流群
PyCaMa有助于支持现金管理决策:(i)通过授权现金管理人员在现实世界中得出最佳现金政策,在现实世界中,具有多个银行账户的现金管理系统是规则而非例外;以及(ii)通过提供一个计算财务框架,既可以作为实证研究的工具,也可以作为现金管理进一步研究的基准。接下来,我们描述PyCaMa解决的优化问题。2多银行账户的现金管理问题为了解决这个问题,我们首先将现金管理系统定义为一组银行账户及其关系,如图1所示。任何具有m个银行账户和n个允许交易的现金管理系统都可以用n×m关联矩阵A表示,元素aij=1如果交易i将现金添加到账户j中,aij=-1如果交易i从账户j中移除现金,且账户之间不允许交易时,aij=0。在具有固定部分γ和可变部分γ的账户之间的线性交易成本的通常情况下,时间t的交易成本函数(xt)定义为:Γ(xt)=γt·zt+γt·xt(1),其中,如果x的第i个元素不为空,则zt是n×1二元向量,元素ziset为1,否则为零;γ是每个交易的固定交易成本的n×1向量;γ是可变交易成本的n×1向量。另一方面,时间t的预期持有成本函数通常表示为:H(^bt)=vT·bt(2),其中v是m×1列向量,第j个元素设置为账户j.x1、tx2、tx4、tx3、tx6、tx5、tf2、tf1、tf的持有成本单位货币单位。图1:具有三个账户的现金管理系统。2.1单目标优化:成本现在考虑τ时间步的现金计划期限,例如未来5个工作日。

使用道具

报纸
何人来此 在职认证  发表于 2022-5-31 04:33:08 |只看作者 |坛友微信交流群
在单个成本目标内,给定初始现金余额b,问题的解决方案,即政策X=hx,X,通过求解以下线性规划,可以得到将交易和持有成本之和最小化到时间步长τ的xτi:minτXt=1c(Xt)=τXt=1Γ(xt)+vT·^bt(3) 受制于:^bt-1+^ft+ATxt=^bt(4)^bt≥^bmin(5)xt∈ 注册护士≥0(6)t=1,2,τ(7),其中^bt-1和^bt分别是m×1向量和每个账户的以前和当前余额;^ftis是一个m×1向量,每个账户的预期净现金流量;最后,x是一个n×1向量,其中包含在时间t发生的一组事务(控制动作);和^bminis最小现金余额的m×1向量。2.2多目标优化:成本和风险然而,现金管理人也可能对现金管理政策的风险感兴趣Salas Molina等人(2016)。与Rockafellar和Uryasev(2002)对条件风险价值的定义类似,我们考虑政策X的条件风险成本(CCaR)度量,我们将其定义为高于特定成本参考cas的条件成功预期:CCaR(X,c)=E[c(xt)| c(xt)>c],xt公司∈ 十、 (8)综合资本分析及审查的另一个优点是,它是Artzner等人(1999)的观点中对风险的一致衡量。最小化CCaR相当于最小化参考c以上成本正偏差的总和。因此,我们将企业CCaR作为一个额外目标,通过以下多目标线性规划进行优化,其中成本风险偏好通过权重w:min“wCmaxnXt=1c(xt)+wRmaxnXt=1δ+t#(9)表示,服从:^bt-1+^ft+ATxt=^bt(10)^bt≥^bmin(11)c(xt)- δ+t≤ c(12)nXt=1c(xt)≤ Cmax(13)nXt=1δ+t≤ Rmax(14)xt∈ 注册护士≥0(15)w+w=1(16)t=1,2,τ(17),其中δ+是一个辅助变量,用于测量与成本参考的偏差,如目标规划Aouni等人(2014年)。

使用道具

地板
能者818 在职认证  发表于 2022-5-31 04:33:11 |只看作者 |坛友微信交流群
Cmax和Rmaxcan被视为成本和风险的预算限制,当这些限制不满足时,会导致不可行的政策。3软件描述由于现金管理问题是一个优化问题,PyCaMa基于线性规划来提供最佳政策。然而,必须强调的是,第2.1节(仅针对成本)和第2.2节(针对成本和风险)中描述的线性计划应被视为可用于基准测试目的的基线模型。现金管理系统、成本结构和一组最小余额足以创建multibank类的实例。假设现金经理能够为每个银行账户生成现金流量预测,作为问题的额外输入。否则,预测必须设置为零。其次,给定一个初始条件和一组近期现金流预测,现金经理可以从成本或成本和风险两个方面得出最优政策。3.1软件架构Pycama是围绕多银行类组织的。

使用道具

7
nandehutu2022 在职认证  发表于 2022-5-31 04:33:14 |只看作者 |坛友微信交流群
该类的一个实例是通过Python中的不同数据结构初始化的,例如:(i)MBank列表;(ii)n笔交易清单;(三)n×m关联矩阵A,建立现金管理体系;(iv)两个关联交易和固定(γ)和可变(γ)交易成本的字典;(v) 将每个银行账户与vector v中的持有成本联系起来的字典;(vi)最低现金余额为m的清单;如下所示:1 myproblem=多银行(banks,t ra ns,A,g0,g1,v,b min)一旦创建了多银行对象,就会实现许多方法,为现金管理器提供我们接下来描述的有用功能。3.2软件功能现金管理人员可以使用功能描述检索他们正在处理的现金管理系统的主要特征。然后显示所有输入数据以便于描述。PyCaMa的主要功能是函数solvecost,它为方程(3)-(7)编码的线性规划提供了一个解决方案(如果有)。给定一个长度为m的列表,其中包含一个初始条件b,以及通过将向量^ft1、2、…、中的t串联起来得到的预测τ×m矩阵F(如果不可用,则将元素设置为零),τ,通过执行:1 s o l u t i o n 1=myproblem获得最优策略。s o l v e c o s t(b0,F)如果线性规划有可行解,则函数solvecost会为每个事务和时间步返回其最优策略。否则,solvecost会警告用户它无法找到解决方案。

使用道具

8
大多数88 在职认证  发表于 2022-5-31 04:33:17 |只看作者 |坛友微信交流群
此外,可以通过函数policy和balance分别检索具有最优策略的τ×n矩阵和具有上次优化导出的最优余额的τ×m矩阵,并通过调用Multibank对象的属性objval来检索最后一个目标值。此外,现金管理人不仅对成本感兴趣,而且对CCaR衡量的政策风险感兴趣,可以调用solverisk函数,该函数通过执行:1 s o l u t i o n 2=myproblem,为方程(9)(17)编码的线性规划提供解决方案(如果有),给定F带、成本参考c、Cmax和Rmaxbudget限制以及权重wand w。s o l v e r i s k(b0、F、c0、Cmax、Rmax、w1、w2)总结一下,PyCaMa的Python输入和输出如表i.4所示。这是一个示例性示例,请再次考虑图1的现金管理系统,其中有两个活期银行账户1和2,以及一个投资账户3。临时闲置现金余额可通过投资账户3投资于短期有价证券和债券,年平均回报率为3.6%,相当于每天0.01%。这相当于为账户1和账户2设定每天0.01%的持有成本。允许在所有三个账户之间进行交易,并收取固定(γ)和可变(γ)成本,确定表II中详述的成本结构。此外,假设现金管理人可以在五天的计划期内获得最大累计误差为200万欧元的预测。因此,她为账户1和账户2设定了最低200万的现金余额。

使用道具

9
mingdashike22 在职认证  发表于 2022-5-31 04:33:21 |只看作者 |坛友微信交流群
假设账户1、2和3的初始现金余额b=[5、8、12],she aimsTable I:Python输入和输出PyCaMaInputs输出函数或银行属性列表系统描述交易列表成本最优策略列表解算成本关联矩阵成本风险最优策略列表解算风险交易成本字典上一个最优策略矩阵策略持有成本字典上一个最优余额矩阵余额最小余额列表预测成本预算成本的最后一个目标值objvalMatrix初始现金余额列表风险预算风险最大成本参考成本参考成本和风险最大预算成本权重成本权重成本和风险权重风险权重风险权重表II:示例的成本结构数据。交易γ(e)γ(%)账户v(%)1 50 0 1 0.012 50 0 2 0.013 100 0.01 3 04 50 0.0015 100 0.016 50 0.001,以得出未来五天的最佳政策。为此,我们假设她通过应用Salas Molina等人(2017)的预测方法获得下一个预测矩阵(以百万欧元为单位)。F级=1.-3 01-9 06 6 0-1 4 0-3 6 0. (18) 通过引入所有必需的输入数据创建multibank类的实例,如下所示:1来自PyCaMa导入* # 导入模块2 banks=[1,2,3]\\35; Bank ac co un ts3 t r a n s=[1,2,3,4,5,6]\\35; t r a ns a c t i o ns4 g0={1:5 0,2:5 0,3:1 0,4:5 0,5:1 0,6:5 0}\\35;固定c o s t s5 g1={1:0,2:0,3:1 0,4:1 0,5:1 0,6:1 0}V a r i a b l e c o s 6 bmin=[2,2,0]#最小b a l a n c e s 7 V={1:1 0,2:1 0,3:0}#保持c o s t s8 A=np。a rr a y([[1,-1,0,0,1,-1] ,9[-1,1,1,-1, 0 , 0 ] ,10 [ 0 , 0 , -1,1,-1,1]])。

使用道具

10
能者818 在职认证  发表于 2022-5-31 04:33:24 |只看作者 |坛友微信交流群
T#I n c I d e n c e matr I x11 myproblem=多银行(banks,T ra ns,A,g0,g1,v,bmin)然后,现金经理可以通过执行函数solvecost(b,F):1 b0=[5,8,1 2]\\n I T I A l b al and c e2 F=np来推导最优策略。a rr a y([[1,-3,0],#F或e ca s t ma trix3[1,-9,0],4[6,6,0],5[-1.-4,0],6[-1,6,0]])7 s o l u t i o n 1=我的问题。s o l v e c o s t(b0,F)#s o l u t i o可以通过调用函数policy and balance来获得最优策略和平衡的更紧凑表示,该函数可以通过Python中的常见绘图命令进行可视化,如图2所示。通过设置成本参考c=3000 e,预算限额Cmax=5000 e,Rmax=5000 e,权重w=0.5,以及通过执行Solverisk(b、F、c、Cmax、Rmax、w、w),现在可以在成本和风险方面解决多银行类问题的相同实例,从而导致政策略有不同。0 1 2 3 505101525科目1科目2科目3图2:成本最小化示例的最佳余额。5 ImpactPyCaMa是一种现金管理工具,可用于自动化现金管理中的决策,或支持计算财务背景下的科学发现。更准确地说,PyCaMa是一个很有前途的工具,可以解决以下一系列开放性研究问题:o多个银行账户的现金管理问题。除了Baccarin(2009)之外,关于多维现金管理系统的研究还很缺乏,他遵循了严格的理论方法。PyCaMa通过支持对实际世界情景的研究,提供了一种合适的方法,以遵循更实际的方法现金流预测准确性的影响。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-9-19 02:40