首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Pylon框架:PyTorch中实现带约束的损失函数

股票量化投资组合管理中,Pylon框架可以帮助投资者将领域知识、业务规则和逻辑约束整合到量化模型中,以提高模型的性能和可靠性。...以下是一些可能的应用场景: 1、风险管理:通过程序性约束,可以模型中直接实施风险管理规则,如限制单一股票的权重上限,确保投资组合的多样性,或避免投资于某些特定行业或公司。...4、风格因子建模:量化投资中,风格因子(如市值、动量、价值等)被用来解释股票回报。Pylon可以用来确保投资组合在这些因子上的暴露符合特定的目标或约束。...Pylon可以帮助实施再平衡规则,如当组合偏离目标配置超过一定阈值时进行调整。...10、多目标优化:组合管理中,投资者可能需要在多个目标之间进行权衡,如最大化回报、最小化风险和控制交易成本。Pylon可以帮助实现这种多目标优化问题。

31310

精品教学案例 | 用Python构建有效投资组合

案例中使用Tushare包获取股票数据,使用Pandas、Seaborn、Matplotlib等工具对数据进行清洗和可视化操作,并最终使用Scipy包构建了一个有效投资组合。...本篇案例就旨在介绍如何使用Python进行量化投资,我们将从数据获取、数据清洗、数据可视化、构造有效投资组合几个方面介绍Python量化交易中的应用。...stock_portfolio.var()*365 相关性投资组合领域也非常重要,是分散化投资风险的核心思想。相关性越弱越有利于投资组合的分散化。...这实际上是一个有约束下的最优化问题,我们可以使用Scipy包中的最小优化算法函数sci.optimize.minimize来帮助我们进行求解,该算法可以在有约束的情况下最小化目标函数。...5.总结 本文介绍了如何使用Python构建有效投资组合,通过数据获取、数据清洗、数据可视化、构建投资组合、求解最优投资组合几个步骤,使读者可以对Python金融科技、量化投资领域的应用有一个初步的认识

5.1K41
您找到你想要的搜索结果了吗?
是的
没有找到

组合优化神器:Riskfolio-Lib(附代码)

前言 组合优化是量化投资策略实施过程中非常重要的步骤,组合优化的过程是结合不同的投资目标及风险约束给出最优组合权重的过程。在数学上,它是一个凸优化的求解问题。...但这两款工具包并不是专门针对投资组合优化的,求解过程中还需要将组合优化的问题转化为对应的优化问题。...部分example还需要MOSEK求解器,推荐使用conda进行安装: conda install -c mosek mosek 介绍 Riskfolio-Lib支持多种组合优化模型,从最基础的均值方差模型...Riskfolio-Lib中,将以上组合优化模型分为两大类,其中Portfolio类针对传统的组合优化,主要支持以下模型: Mean Risk Portfolio Optimization,该类模型的优化方法又支持以下几类...Riskfolio求解最优组合,优化目标为夏普比率最大: import riskfolio as rp # 实例化一个投资组合,输入为收益率数据Y port = rp.Portfolio(returns

4.2K30

R语言马科维茨Markowitz均值-方差(风险投资模型)分析最优投资组合数据预期收益率可视化

本论文旨在帮助客户使用R语言实现马科维茨均值-方差模型,并通过可视化方式展示最优投资组合的预期收益率随时间变化的趋势。...X将用于进行投资组合分析。 Spec MV Efficient Portfolio模型是指均值-方差效率组合模型(Mean-Variance Efficient Portfolio Model)。...其中,均值是表示收益的期望值,方差则是衡量投资组合的风险。 MV Efficient Portfolio模型中,投资者可以根据自身的风险承受能力和预期收益,选择最优的投资组合。...以上包含了读取数据、投资组合分析的过程。 对第二个类数据集进行分析: 读取名为"sample2.csv"的CSV文件,并将其存储变量X0中。...每次循环中,随机选择5个列,创建时间序列对象X,进行投资组合分析,并绘制预期收益率随时间变化的折线图。

40200

R语言马科维茨Markowitz均值-方差(风险投资模型)分析最优投资组合数据预期收益率可视化|附代码数据

本论文旨在帮助客户使用R语言实现马科维茨均值-方差模型,并通过可视化方式展示最优投资组合的预期收益率随时间变化的趋势。...X将用于进行投资组合分析。SpecMV Efficient Portfolio模型是指均值-方差效率组合模型(Mean-Variance Efficient Portfolio Model)。...其中,均值是表示收益的期望值,方差则是衡量投资组合的风险。MV Efficient Portfolio模型中,投资者可以根据自身的风险承受能力和预期收益,选择最优的投资组合。...尽管如此,MV Efficient Portfolio模型仍然是投资组合构建和管理中的重要工具,为投资者提供了一种系统化的方法来优化投资组合,平衡风险和回报。...以上包含了读取数据、投资组合分析的过程。对第二个类数据集进行分析:读取名为"sample2.csv"的CSV文件,并将其存储变量X0中。

30700

【进阶】实现最优投资组合有效前沿基于Python(附代码)

——哈里·马克维茨 “现代投资组合理论”(MPT)是1952年哈里.马克维茨金融期刊上发表的名为“Portfolio Selection”的文章上提出的投资理论。 ?...随机生成投资组合 目前我们有四只股票,那么投资组合里我们应该如何对这四只股票进行资产配置呢?如果我们的资金为1,那么我们要对每只股票赋以相应的权重,使得权重加起来为1 。...使用这一利率的合理之处在于,我们的历史数据是从2016年到2017年的,那么如果我2018年的开始进行这项分析,最新的国库券利率就是从2018i年开始的。...风险最低的投资组合中,谷歌被分配到超过50%的资产,而在夏普比率最高的投资组合中,只分配到了不到1%的资产。 有效前沿 从随机生成的投资组合图中可以看出,蓝点聚集到一起顶部形成了一条曲线。...但是这次我们不从随机生成的投资组合中选择最优投资组合,而是使用Scipy的‘minimize’函数进行计算的。以下函数也会同时绘制出有效前沿曲线。

12.7K44

通过图分析分散股票投资组合并降低风险增加收益

• 七、结论 通过图分析分散股票投资组合并降低风险增加收益 本文作者为Neo4j社区技术专家Tomaz Bratanic,帮助我们了解如何使用股票价格之间的相关性来推断股票之间的相似性网络,然后使用该网络信息来帮助我们分散投资组合...Diversify Your Stock Portfolio with Graph Analytics[2],以下内容为本博客翻译整理。...Stock节点使用股票名称唯一进行合并,StockTradingDay节点由交易日、收盘价、交易量表示唯一合并。使用链表模式是我 Neo4j 中对时间序列数据进行建模时使用的通用图模型。...您可以使用线性回归斜率从每个社区中挑选股票来构建投资组合进行收益表现的回测。 我发现有一个简单的线性回归模型apoc.math.regr程序[9]。...引用链接 [1] TOC: 通过图分析分散股票投资组合并降低风险增加收益 [2] Diversify Your Stock Portfolio with Graph Analytics: https:/

1K30

资产配置

投资组合优化 (portfolio optimization) 流程是为特定的投资目标创建最佳的投资组合。优化目标可以是用来实现投资组合的最高回报、最低风险、最高夏普比率、最高分散比率等等。...其中 λ 反映投资者特定的风险偏好,低 (高) 的 λ 意味着喜好 (厌恶) 风险。 约束的情况下,套用小节 1.2 的结果,求目标函数对 w 的一阶导并设为零,得到 MVO 模型的权重: ?...BL 模型使用两方面的信息: 客观 - 市场投资组合的资产权重 主观 - 投资者对预期回报的看法 结合市场信息和投资者的观点,可以重新计算出“预期回报”和“协方差”,将其输入标准的 MVO 流程,得到...MW → MVO MVO 模型根据预期回报计算出最优权重,而市场组合通常假设用 MVO 这一套,对当前市场组合权重的预期回报进行逆向工程 (reverse engineering),即把 MVO 模型的公式反过来...注意:本帖介绍各种模型时没有介绍约束条件,实际构建投资组合时还需要考虑权重上下限、跟踪误差、换仓约束、资产数目等等。 ? ?

2.5K43

史上最全量化交易资源整理

有些国外的平台、社区、博客如果连接无法打开,那说明可能需要访问国外网站 国内在线量化平台: BigQuant – 你的人工智能量化平台 – 可以无门槛地使用机器学习、人工智能开发量化策略,基于python...,提供策略自动生成器 镭矿 – 基于量化回测平台 果仁网 – 回测量化平台 京东量化 – 算法交易和量化回测平台 聚宽 – 量化回测平台 矿 – 通联量化实验室 Ricequant – 量化交易平台...– 集思录 雪球 – 聪明的投资者都在这里 myquant/strategy: 掘金策略集锦 botvs/strategies – 用Javascript or Python进行量化交易 芝诺量化交易...and risk analytics in Python – 组合风险评估 twosigma/flint: A Time Series Library for Apache Spark – Apache...凯利 《通往财务自由之路》范K撒普 《以交易为生》 埃尔德 《超越技术分析》图莎尔·钱德 《高级技术分析》布鲁斯·巴布科克 《积极型投资组合管理》格里纳德,卡恩 《金融计量学:从初级到高级建模技术》 斯维特洛扎

3.1K11

多因子模型之组合构建与优化器(上)

没见过的同学得补一下了,大致就是说,我们要找到一个x向量,这个向量在上面这个表达式中,满足subject to的条件,我们叫做约束,同时,约束的条件下,使上面这个目标函数尽可能小。...那么,我们怎么把这个用到组合里面呢?先不急,我们注意上,上面的约束是一个不等式约束,而二次规划的等式约束,也就是条件是等式,那么其实这个优化问题是有解析解的。        ...先不管这个,我们来考虑一下投资的本质。说白了,投资就是风险和收益的权衡,我们希望最大化收益的情况下,可以使得风险最小。说白了,就是你首先约定一个收益,然后我们要求风险最小。...如果熟悉马科维兹的那套东西,就知道,就是我们的portfolio在有效前沿上。然后在看一下上面的公式,说白了,就是我们可以用等式约束约束住一个收益,上面min的变成我们的risk。...下一次,我们将讨论不等式约束和优化器的使用。 参考书目:Quantitative Equity Portfolio Managem, chp9

1.3K20

动量和马科维茨Markowitz投资组合(Portfolio)模型实现

p=17931 动量和马科维茨投资组合模型使 均值方差优化 组合成为可行的解决方案。通过建议并测试: 增加最大权重限制 增加目标波动率约束 来控制 均值方差最优化的解。...10.0, percentage = 0.0) data$weight[] = NA model = brun(data, clean.signal=T, 接下来,让我们获取权重,并使用它们来进行回测...1]]), period.ends 我们可以复制相同的结果 #***************************************************************** #进行复制...#***************************************************************** #进行回测 #**********************...我想应该注意的主要观点是:避免盲目使用优化。相反,您应该使解决方案更具有稳健性。 ---- 本文摘选《R语言动量和马科维茨Markowitz投资组合(Portfolio)模型实现》

83920

译文 | 量化投资教程:投资组合优化与R实践

第三部分(原文)中,我将解释如何通过放松约束最优化求解过程以避免非凹的情形,并做了实例演示。 第四部分(原文)中,我将对比大盘策略、等权策略以及之前的优化策略之间的优劣。...放松约束 本文所用方法是无风险利率和每个边值之间都画一条线来计算这条线和边值的差值是多少。资本市场线应该是不超过所有边值的。...标准普尔是大多数人考虑的标准“市场投资组合”。我们将参考一个市值加权策略对我们的投资组合优化策略进行测试。 现在的CAPM还存在诸多漏洞,有很多方法都能发现这些问题。...组合优化策略 这是我们的投资组合优化策略: 1.每个季度初,用上一季度收益计算市场投资组合。 2.对当前季度使用当前组合。...3.下个季度的开始,循环回到第一步 4.我们的投资组合中至少需要3个股票。 5.没有做空。 6.用2%作为无风险利率。 7.每次分析的第一个季度如果优化失败就使用同等权重的投资组合

2K81

使用R语言构造投资组合

原作者: 邓一硕 来自: 格物堂 构造投资组合是金融投资分析中历久弥新的问题。多年以来,学界、业界提出诸多对投资组合进行优化的方法。...,基于 VaR 和 CVaR 对投资组合进行优化的思路也开始勃兴;除此之外,对冲基金届还有一种非常有生命力的投资组合优化方法,即桥水公司(Bridge-Water)公司提出的风险均摊方法( Risk Pairy...而在 M-V 方法中最基本的一个知识点,就是构造投资组合的有效前沿。理论这里不再赘述,简单说一下其 R 语言中的实现。...dat=merge(QQQ_ret,SPY_ret,YHOO_ret) 第四步,计算投资组合的有效前沿。这一步使用 portfolioFrontier 函数来完成。...Portfolio Weights 部分返回的是三只股票投资组合中的头寸比例,每一行的和都是 1 。

3.3K60

深度 | 强化学习应用金融投资组合优化(附代码)

为了理解一篇关于应用强化学习构建最优投资组合的论文,你需要有足够的知识来知道什么是最优投资组合和全面的强化学习知识,用来理解作者是如何使用这种技术的。...总之,我们扮演上帝的角色中,模拟了如下的世界:环境告诉Agent每种股票的当前价格价格、一定回测期的历史价格和当前的投资组合。Agent反馈它想要加入更新的新投资组合。...然后环境时间上进入下一节点,通过买卖构造出Agent所提出的投资组合,并考虑交易成本。...更糟糕的是,我们因为调整投资组合获得了负的收益回报(交易成本),但没有机制维持原有的投资组合权重不变。 其次,每一步采样新的投资组合看起来是愚蠢的。...我们认为应该对改变投资组合的决策进行抽样,然后必要时对投资组合进行抽样。这样可以使用分布的方差(或方差向量的范数)来做出这个决策。 这是我们目前最感兴趣的问题。

3.6K20

Python3对多股票的投资组合进行分析「建议收藏」

1、投资组合的相关矩阵 2、投资组合的协方差矩阵 3、投资组合的标准差 四、探索股票的最优投资组合 1、使用蒙特卡洛模拟Markowitz模型 2、投资风险最小组合 3、投资最优组合 (1)夏普比率...三、投资组合的相关性分析 1、投资组合的相关矩阵 相关矩阵用于估算多支股票收益之间的线性关系,可使用pandas数据框内建的 .corr()方法来计算。...NumPy中,使用.T属性对数组进行转置,np.dot()函数用于计算两个数组的点积。...1、使用蒙特卡洛模拟Markowitz模型 采用蒙特卡洛模拟来进行分析,也就是随机生成一组权重,计算该组合下的收益和标准差,重复这一过程许多次(比如1万次),将每一种组合的收益和标准差绘制成散点图。...2、投资风险最小组合 一种策略是选择最低的风险,且该风险水平下收益最高的组合,称为最小风险组合(GMV portfolio)。 让我们找到风险最小的组合,并绘制代表收益-风险的散点图中。

2.3K31

股市技术面操作的量化交易--量化交易2-投资方法

成分股投资方法 从成分股选股,如沪深300 找出股息最高的10家 每年一次调仓。2018-2020目前Alpha还在基准以上。...技术类指标策略 根据指标的变化进行投资 布林线指标BOLL 矿平台提供的代码如下: import numpy as np import pandas as pd start = '2019-01-01...Signal框架来计算指标 # 矿的BollUp和BollDown的参数是N=20, k=2,如果需要用到中轨,则直接使用MA20因子 def cross_situation(data, dependencies...该边界线右下方的所有点是无效的投资组合,没有人会选择;该边界线左上的所有点是不可能达到的投资组合。...()用于获取最小方差投资组合;get_BL_maximum_utility_portfolio()用于获取基于给定效用函数的最大化效用投资组合;get_maximum_sharpe_portfolio(

78120

使用Python进行优化:如何以最小的风险赚取最多的收益?

我的 “使用Python进行线性规划和离散优化” 文章中,我们讨论了基本的离散优化概念,并引入了一个Python库PuLP来解决这些问题。...本文中,我们使用Python编程展示了LP经济分析领域的一个惊人应用——最大化股票市场投资组合的预期利润,同时最小化与之相关的风险。 听起来是不是很有趣?请接着阅读。...《如何优化投资组合风险-傻瓜式教程》 地址:https://www.dummies.com/business/accounting/auditing/how-to-optimize-portfolio-risk...或者,将利润最大化,同时将风险保持一定的阈值以下。 一个例子问题 本文中,我们将展示一个非常简化版本的投资组合优化问题,它可以被转换成一个LP框架,并使用简单的Python脚本来有效地解决。.../或场景——要么投资可口可乐,要么投资百事可乐,但不要两者都投资 你必须构造一个更复杂的矩阵和更长的约束列表,使用指示变量将其转换为一个混合的整数问题——但是所有这些都是CVXPY之类的包本来就支持的。

1.5K41

R语言动量和马科维茨Markowitz投资组合(Portfolio)模型实现

p=17931 动量和马科维茨投资组合模型使 均值方差优化 组合成为可行的解决方案。通过建议并测试: 增加最大权重限制 增加目标波动率约束 来控制 均值方差最优化的解。...fixed = 10.0, percentage = 0.0) data$weight[] = NA model = brun(data, clean.signal=T, 接下来,让我们获取权重,并使用它们来进行回测...的平均输入假设 #***************************************************************** obj = portfolio(data$prices...(c(1,3,6,12), 0), min.risk.fns = list( TRISK.AVG = target.risk.portfolio(target.r ) 最后,我们准备看一下结果 #*...使用平均输入假设会产生更好的结果。 我想应该注意的主要观点是:避免盲目使用优化。相反,您应该使解决方案更具有稳健性。 ---- ?

88920
领券