什么是量化金融——Quant-for-Beginners 量化入门Task2
​ 学习内容来源https://github.com/datawhalechina/quant-for-beginners由Datawhale主办的Quant-for-Beginners · 中文零基础量化金融 Notebook 路线一 什么是量化金融从官方概念讲解是量化金融是通过数学、统计学、计算机编程和金融理论建立模型来分析市场数据、制定投资策略或管理风险的一门学科。其核心是用数据驱动的科学方法替代传统的主观决策。而通俗的讲用数学、数据和程序代替“凭感觉”来做金融决策。我们来举个例子普通人买股票的方式是“我感觉这只股票要涨。”“最近大家都在讨论应该可以买。”而量化金融更像是“我先制定一套明确规则再用历史数据验证最后让程序自动执行。”那么量化金融到底是量化了什么举两个例子“连续上涨5天” → 定义为该股票前5个交易日的每日收益率全部大于0“最近趋势向上”→ 定义为5日均线高于20日均线通过这些量化的指标来进行选股假设市场上有1000只股票你设置条件每个条件都有对应的量化公司持续盈利市盈率低于行业平均最近半年价格表现较好公司负债不能太高每月重新筛选一次程序会从1000只股票中筛出20只然后平均买入。这个过程就是一个简单的量化选股策略。它不是在预测“明天某只股票一定涨。”而是在寻找一种统计规律“长期来看满足这些条件的股票平均表现可能更好。”二 量化金融到底在做什么量化不做预言。量化只做一件事寻找市场规律、验证市场规律并利用规律获得长期收益。量化交易的基本逻辑所有量化策略都始于一个假设也始于一个问题。例如低估值股票长期表现是否更好过去一段时间持续上涨的股票未来是否更容易继续上涨追涨市场大幅下跌后是否存在短期反弹规律抄底盈利稳定、负债较低的公司是否具有更高的长期收益战未来量化研究不会直接凭感觉得出答案而是通过一套完整流程进行验证。提出假设 ↓ 量化定义 ↓ 历史验证 ↓ 提炼规则 ↓ 执行策略 ↓ 持续迭代第一步提出假设量化策略首先需要提出一个可以被验证的市场假设。例如最近半年表现较好的股票未来一段时间可能继续表现较好。这只是一个想法还不能直接拿来交易。因为“表现较好”“未来一段时间”都过于模糊必须进一步量化。第二步量化定义把模糊的金融判断转化为明确、可计算的指标。例如将“最近表现较好”定义为过去 6 个月累计收益率排名市场前 20%排除最近 1 个月的收益率股票上市时间超过一年日均成交额达到一定标准经过量化定义后一个模糊观点就变成了程序可以计算的规则。第三步历史验证使用历史数据进行回测判断这个规律是否真实存在。主要观察年化收益率超额收益率最大回撤夏普比率胜率盈亏比换手率交易成本不同市场环境下的表现这些名词将在后面篇章具体介绍量化研究关心的不是某一次交易能不能赚钱而是当同一套规则重复执行几百次、几千次后是否依然具有统计意义上的优势。第四步沉淀规则如果历史验证表明这个规律具有一定稳定性就可以将其沉淀为交易规则。把经过数据验证、证明有一定效果的想法整理成一套明确、稳定、可重复执行的交易规则。例如每月最后一个交易日计算所有股票过去 6 个月的收益率选取收益率排名前 20 的股票对入选股票进行等权配置持有一个月下个月重新计算并调仓。本来可能只是觉得最近涨得好的股票之后可能还会继续涨假设于是就买入这个股票持有时间还不稳定而这个时候通过量化得到一套稳定规则此时一个市场假设就变成了一套可以执行的量化策略。第五步持续迭代市场会变化过去有效的规律未来可能减弱甚至失效。因此量化策略需要持续监控和迭代检查因子是否衰减控制交易成本调整仓位和风险敞口避免参数过拟合增加新的数据和因子分析策略失效的原因检验不同市场环境下的稳定性量化策略不是开发完成后永久不变而是一个不断研究、验证和优化的过程。量化不是预测未来量化交易并不是准确预测明天哪只股票一定上涨。它真正做的是根据历史数据和统计规律寻找在大量重复交易中更可能获利的机会。例如一个策略可能只有 55% 的胜率。它仍然会出现亏损也可能连续多次判断错误。但只要它满足盈利交易的平均收益大于亏损交易的平均损失风险和回撤处于可控范围扣除手续费后仍然具有正收益规律能够在不同时间和市场中保持相对稳定那么这个策略就可能具有长期价值。量化交易的核心概率优势量化不追求每一次都正确而是追求长期统计上的优势。可以将其理解为单次结果具有随机性 长期重复具有统计规律量化交易关注的是正期望收益。其基本表达式为期望收益 胜率 × 平均盈利 - 亏损概率 × 平均亏损 - 交易成本只要长期期望收益为正并且风险可控这套策略就可能持续运行。量化交易和普通炒股的区别普通交易者经常根据以下因素做决定市场情绪新闻热点主观判断他人推荐对涨跌的恐惧和贪婪临时改变交易计划量化交易则强调数据驱动规则明确历史验证系统执行风险控制概率思维长期一致性二者最大的区别不是有没有使用程序而是决策方式不同。普通炒股依赖主观判断量化交易依赖经过验证的规则。一句话总结量化金融不预测未来它统计过去、验证规律、寻找概率优势并长期依靠正期望收益赚钱。更准确地说量化不是消灭不确定性而是在不确定的市场中寻找能够重复执行的统计优势。这也是量化交易与普通人炒股最大的区别尽可能让情绪退出决策让数据、规则和风险控制掌握交易过程。三 量化金融凭什么赢先从最经典的2个金融实验说起巴舍利耶研究股票价格后认为短期涨跌受新信息影响很难准确预测价格运动近似随机游走。因此金融研究的重点不是猜下一次涨跌而是计算概率、波动和风险。索普研究二十一点时发现结果虽然随机但在特定条件下玩家仍可能获得概率优势。他通过算牌寻找优势再用合理的仓位管理控制风险证明了不需要每次都赢只要长期保持正期望就可能持续盈利。巴舍利耶说明市场具有随机性索普说明随机性中仍然可以寻找概率优势。量化金融的底层逻辑找到概率优势策略研究的目标——没有优势一切仓位管理都无效算牌的额外胜率科学管理仓位风险控制的目标——有优势但不控制风险照样亏钱回撤的风险长期重复执行纪律与系统的目标——让大数定律为你工作长期保持正期望概率优势 × 仓位管理 × 长期纪律 量化盈利的完整公式这是索普在赌场验证的真理也是所有量化策略的底层逻辑。量化金融的核心不是预测未来 而是用数据理解市场。四 实操环节——获取真实股票数据# 第一章爽点下载真实股票数据 importwarnings warnings.filterwarnings(ignore)# 隐藏不影响学习的警告信息importmatplotlib.pyplotaspltimportpandasaspdimportakshareasak# 使用 AkShare 获取行情plt.rcParams[font.sans-serif][SimHei]plt.rcParams[axes.unicode_minus]False# 下载英伟达 NVDA 的前复权日线行情rawak.stock_us_daily(symbolNVDA,adjustqfq)# 把日期转换为 pandas 日期格式raw[date]pd.to_datetime(raw[date])# 整理列名和数据格式nvda(raw.set_index(date).rename(columns{close:Close,volume:Volume})[[Close,Volume]].dropna())# AkShare 默认返回全部历史行情因此手动保留最近6个月six_months_agopd.Timestamp.today().normalize()-pd.DateOffset(months6)nvdanvda.loc[nvda.indexsix_months_ago]# 检查是否成功取得数据ifnvda.empty:raiseRuntimeError(AkShare 没有返回 NVDA 行情请检查网络或稍后重试)print( 恭喜你已经拿到英伟达真实股票数据)print(f 共{len(nvda)}个交易日)print(f 最新收盘价: ${nvda[Close].iloc[-1]:.2f})# 在 Notebook 中显示最后5行display(nvda.tail(5))# 上图收盘价、下图成交量 fig,axesplt.subplots(2,1,figsize(12,6),sharexTrue,gridspec_kw{height_ratios:[3,1]})# 收盘价折线图axes[0].plot(nvda.index,nvda[Close],colortab:blue,linewidth1.5)axes[0].set_title(真实数据 · 英伟达 NVDA 收盘价,fontsize14)axes[0].set_ylabel(美元)axes[0].grid(True,alpha0.3)# 成交量柱状图axes[1].bar(nvda.index,nvda[Volume],width0.8,colorgray,alpha0.5)axes[1].set_ylabel(成交量)axes[1].set_xlabel(日期)axes[1].grid(True,alpha0.3)plt.tight_layout()plt.show()可以通过更改股票编号调整股票。​

相关新闻