58th Meetup
由small_q创建,最终由small_q 被浏览 176 用户
数据因子
Q:@bigquantofficial 如何用ta-lib库构建周期回归率因子?
周期回归率(Cyclically Adjusted Return Rate)是一种考虑到市场周期性波动的投资回报率计算方法。它通过将投资的回报率与一个特定的时间周期(如年、季度或月份)进行比较,来衡量一个投资在周期性波动中的性能。
import pandas as pd
import numpy as np
def calculate_cyclically_adjusted_return_rate(price_data, period):
# 使用shift函数将价格数据向后推移,以计算单个周期的回报
shifted_price_data = price_data.shift(period)
# 计算周期回报率
period_return_rate = price_data / shifted_price_data - 1
# 计算周期回归率
cyclically_adjusted_return_rate = period_return_rate - period_return_rate.mean()
return cyclically_adjusted_return_rate
# 读取股票数据
price_data = data['Close']
# 计算周期回归率
cyclically_adjusted_return_rate = calculate_cyclically_adjusted_return_rate(price_data, period=30)
\
Q:@charmby 最关键的3类特征是?
- 基本面特征:这类特征主要从公司的财务报告中获取,包括但不限于市盈率、市净率、负债比率、营业收入、净利润、现金流量等。基本面特征反映了公司的经营状态和财务健康程度,是投资决策中非常重要的因素。
- 量价技术特征:这类特征主要通过历史价格和交易量等数据计算得出,包括但不限于移动平均线、MACD、RSI、布林带、动量等。技术分析特征可以帮助我们理解市场的过去行为,从而预测未来可能的价格走势。
- 市场宏观特征:这类特征反映了整体市场的状况,包括但不限于市场指数、利率、政策环境、宏观经济数据(如GDP、失业率、CPI等)。市场宏观特征可以帮助我们理解市场的大环境,从而做出更好的投资决策。
\
Q:@bq22fw19 如何构建自己的因子库?
- 因子收集:收集可能与预测变量(如未来回报)相关的所有因子。
- 数据处理:清洗和整理因子数据,包括处理缺失值、异常值,数据对齐,标准化或归一化处理。
- 因子测试:对每个因子进行单因子测试,比如:相关性分析、回归分析,构建投资组合回测等方法。
- 因子组合:在单因子测试的基础上,尝试通过各种方法(如线性组合、机器学习模型)将多个因子组合起来,以提升预测能力。
- 组合测试:对因子组合进行回测,检验其在历史数据上的表现,并尽可能地进行样本外测试。
- 持续更新:定期更新因子库,可能是添加新的因子,也可能是剔除表现不佳的因子。这需要持续监控因子的表现,并且对市场的变化保持敏感。
\
Q:@bqeze862 有效因子提取手段有哪些
- 基于经验和理论的方法:通过阅读前人的研究、理解经济学理论和市场行为,提出可能与预测变量(如未来回报)相关的因子。
- 基于机器学习的方法:PCA提取主要变动因子,聚类算法发现共同特征,深度学习等复杂模型来提取非线性和高阶的因子。
- 基于统计方法的方法:通过统计分析,我们可以发现哪些因子与预测变量有显著的相关性。比如,相关性分析、回归分析、Granger因果检验等方法来检验因子的有效性。
- 基于行业知识的方法:对于某些特定的行业或市场,有时我们可以根据特定的行业知识来提取因子。例如,在科技股市场,我们可以使用研发支出、专利数量等因子。
https://bigquant.com/college/courses/course-v1:plus+strategy02+2022_11_11/about/
机器学习/深度学习
Q:@bqeze862 深度学习是指定方向 还是机器自己学习?
深度学习能够从大量的数据中自动学习和提取有用的特征或模式,不需要人工指定学习的方向。深度学习模型是由多层的神经网络构成的,能够处理非线性和复杂的任务。
\
Q:深度学习比量化更准确?
机器学习和深度学习是量化投资的方向,但目前还存在局限。
- 数据量:缺少有效的、高质量的数据量,导致过拟合。
- 噪声问题:金融市场存在各种未知因素。
- 模型解释性:"黑箱"模型。
- 复杂性和计算成本:计算资源和时间。
https://bigquant.com/college/courses/course-v1:plus+training03+2023-06/about/
策略高级优化
Q:@bqeze862 如何判断策略是不是过拟合,导致无效 ?
- 样本外测试
- 交叉验证
- 参数稳定性测试
- 经济意义检验
避免过拟合的方法包括:使用更多的数据、使用正则化方法、选择更简单的模型、避免在测试数据上做优化等。
\
Q:如何结合市场风格选择策略
- 设定风格因子:定义风格因子来代表特定的投资风格。例如,价值因子是P/E(市盈率)或P/B(市净率),增长因子是EPS(每股收益)增长率,小盘因子是市值等。
- 构建风格信号:基于你设定的风格因子,你需要构建一个对应的风格信号。例如,按P/E值从低到高排序,排名靠前的股票可能更具价值投资风格。
- 制定市场环境判断方法:根据宏观经济指标、市场数据或者其他信号来判断当前市场环境。例如,你可以使用利率、市场波动率、经济增长率等数据。
- 策略选择:市场环境与风格信号结合,选择相应的策略。例如,在经济扩张期,增长股可能表现优秀,你可以更多地投资你的增长信号较强的股票。而在经济衰退期,价值股可能更能抵御风险,你可以更多地投资你的价值信号较强的股票。
- 风险管理:包括单一股票的风险、行业风险、市场风险等。
https://bigquant.com/college/courses/course-v1:public+meetup04+2022-01-01/about/
\
Q:@fage413 有一套基于大智慧的策略,涨停后回调下来再次上涨,可否使用深度学习进一步精选?
- 特征选择:涨停次数、涨停天数、回调幅度、回调天数、再次上涨的幅度等因子作为输入特征。此外,还有市场环境因子,公司基本面信息,宏观经济指标等。
- 数据准备:数据预处理和数据标注。
- 模型选择:神经网络,卷积神经网络(CNN),循环神经网络(RNN)、LSTM、Transformer。
- 训练模型
- 评估和优化:在测试集上评估模型的性能,并根据结果优化模型参数。
- 应用模型:将训练好的模型应用于你的策略中。当一个股票满足你的条件时(例如,涨停后回调),你可以使用模型预测它是否会再次上涨,并据此决定是否购买。
\
Q:@charmby 统计分析和模型预估哪个更重要?
一般来说,统计分析和模型预估并不是相互替代的关系,而是相辅相成的。
- 统计分析:在数据探索阶段,理解数据的基本特性,例如分布、中心趋势、离散程度等。
- 模型预估:在预测和推断阶段,基于统计分析得出的数据特性和变量关系,我们可以构建预测模型,例如线性回归、逻辑回归、决策树、神经网络等。
\
Q:@charmby 仓位如何控制(宽客学院搜索:仓位)
- 固定仓位:这是最简单的策略,无论市场如何变化,始终保持固定的投资仓位。例如,你可以选择始终使用你资金的50%来投资。
- 等额投资:这种策略下,你将资金平均分配到每一只投资的股票上。例如,如果你计划投资10只股票,那么每只股票的投资额度将是总资金的10%。
- 风险平价:这种策略的目标是使投资组合中的每一项资产对总体风险的贡献相等。这需要对每一项资产的风险进行估计,然后根据风险调整每一项资产的仓位。
- 波动率目标:根据投资组合的历史或预期波动率来调整仓位。如果波动率较高,可能会降低仓位以控制风险;如果波动率较低,会增加仓位以追求更高的收益。
- 动态仓位:这种策略根据市场条件或预测结果来动态调整仓位。例如,你可以设计一个模型预测市场的未来走势,然后根据预测结果调整仓位。
\
Q:@ bqj374i8 一定周期内,策略实盘和模拟回测收益差距大体有多大?
- 数据质量:历史数据的错误和偏差
- 模型设定:一些假设(例如市场是有效的)可能在实际市场中不完全成立。
- 交易成本和滑点:手续费、税费、滑点(即实际成交价和预期成交价之间的差距)。
- 市场影响:回测对市场是没有影响的,但实盘买卖是会市场产生实质影响的。
- 策略执行:网络延迟、系统故障。
- 市场环境变化:历史不一定重复。
\
Q:@ bqj374i8 大宽上的策略年收益都很厉害,是不是过拟合了?
策略实盘
Q:@bq9p1tvu 如何把自己交易模式,让量化来操作?量化可以自动撤单、自动排单吗?
- 定义策略:你需要明确你的交易策略,包括你买卖的时机、数量以及买卖的条件等。你可以基于经济数据、财务数据、价格和成交量数据等各种信息来定义你的策略。
- 编程实现:一旦你定义了策略,你需要使用编程语言(如Python、R等)来实现这个策略。你需要编写代码来获取数据,处理数据,实现你的交易逻辑,以及生成交易指令。
- 回测:编写完成后,你需要在历史数据上进行回测,看看你的策略在过去的表现如何。这可以帮你发现问题,优化策略。
- 实盘交易:如果回测结果满意,你可以开始在实盘上使用你的策略进行交易。你需要使用API将你的策略连接到交易平台,并通过编程实现交易的自动化。
至于自动撤单、自动排单,量化交易是可以实现的。自动撤单是指在某些条件满足时,自动撤销之前的交易指令。例如,你可以设置一个时间限制,如果在一定时间内订单未被执行,就自动撤销。自动排单是指在满足一定条件时,自动发送交易指令。例如,你可以设置当股票价格达到一定水平时,自动发送买入或卖出的指令。
\
Q:@bqy1qif1 一般AI跟投回报率为多少? 稳定收益下的差价一般为多少?
实际上,直接对比传统量化策略和AI驱动的量化策略的回报率是比较困难的,因为它们的表现在很大程度上取决于具体的策略设计、市场环境、风险控制等多个因素。
AI驱动的量化策略利用了机器学习等先进的技术,理论上能够更好地捕捉市场中的复杂模式,并根据大量的数据做出预测,所以有可能产生较高的回报。然而,它们也面临着过拟合、模型复杂性高、需要大量数据等问题。传统的量化策略更依赖于固定的规则和经验,可能在某些市场环境下表现良好,但在其他市场环境下可能效果不佳。总的来说,AI驱动的量化策略和传统的量化策略各有优势和劣势,它们的表现在很大程度上取决于策略的设计和实施。关于具体的收益差距,这很难给出一个确切的答案,因为它取决于很多因素,如策略的设计、模型的选择、市场的状态等。在实际的投资中,不仅要考虑收益,还要同时考虑风险和稳定性,做到风险和收益的平衡。
\
Q:@bqy1qif1 量化选股,量化择时的限度是多少
- 量化选股的局限:
- 数据依赖性:量化选股模型通常依赖于大量历史数据进行训练和验证,但历史数据并不能完美预测未来,尤其是在市场环境发生剧变时。
- 模型误差:所有模型都存在一定的误差,模型预测的结果可能会因为模型的不完善性或者假设的不准确性而偏离实际情况。
- 过拟合问题:如果模型过于复杂或者过度依赖历史数据,可能会出现过拟合问题,即模型在历史数据上表现优秀,但在未来的实际交易中表现糟糕。
- 量化择时的局限:
- 市场不确定性:市场价格受到许多不可预测的因素影响,例如政策变化、突发事件等,这些都可能导致择时策略的失效。
- 交易成本:择时策略通常需要频繁交易,而频繁交易会产生较高的交易成本,这可能会侵蚀投资收益。
- 信号识别:正确识别买入和卖出的时机是非常困难的,尤其是在市场波动大的时期。
\
专题1:轮动策略
宏观 + 中观 + 微观
- 宏观:经济增长、消费、货币、利率、汇率和地产等宏观指标
- 中观:行业、财务、经营等基本面信息
- 微观:量价行情数据
https://bigquant.com/wiki/doc/6kgm5lia6l2u5yqo562w55wl-t6RKVGVXps
行业轮动的困难
-
宏观视角的非线性关系
-
谁是研究对象?
主观传统行业分类的局限性:
-
一级行业较为粗犷
-
传统行业划分极易受到权重股影响
-
同质性强
-
产业链复杂化 & 行业间的协同加快
-
-
不同行业的投资逻辑不同
行业分类的划分
\
行业景气度的刻画:基本面因子
融入主观逻辑,衡量行业景气度:逻辑可外推,避免样本外失”,摒弃“伪逻辑”。
食品饮料:预收款
酒类 + 非酒类
酒类:需求 → 量稳 → 提价能力
- 调研行业数据,比如:酒类的一批价
- 踪龙头股的财务指标:预收款
非酒食品饮料目前处于成熟期,行业竞争格局较为稳定,行业规模由销量和价格决定。
\
短期择时:量价因子的配合
动量因子
二阶动量
动量期限差
成交额/成交量 波动
换手率指标
市盈率动量
\
专题2:量化学习
/wiki/static/upload/bb/bb427346-1b35-4cd5-9069-ec5687e51511.pdf
\