量化学习-第1章-什么是量化金融

本章核心:量化金融到底是什么?

一句话定义

用数学、统计、计算机 + 金融理论,把交易想法写成规则,用数据验证,让机器批量执行。

  • 不是:预测明天涨跌的"黑科技"
  • :从历史数据中寻找统计规律,长期依靠正期望赚钱。

量化的本质四步闭环

步骤 做什么 例子
1. 提出假设 提出可验证的问题 "连续涨5天,第6天继续涨的概率更高吗?"
2. 量化定义 把模糊感觉变成代码规则 "连续涨5天" → 前5天收益率全部 > 0
3. 历史验证 用历史数据批量统计 遍历过去10年,计算出现形态后第6天的涨跌概率
4. 沉淀迭代 有效则成策略,无效则舍弃 结合风控、仓位,写成可执行规则

关键认知:量化不预测未来,它只统计过去、验证规律、寻找概率优势。


量化的完整流程

环节 做什么 Python 常用工具
获取数据 股票价格、成交量、财务数据 yfinance, akshare, tushare
分析数据 观察趋势、波动、规律 pandas, numpy
设计策略 把规律变成规则 自定义逻辑
回测验证 用历史数据测试策略 backtrader, zipline, vnpy
模拟交易 不下真钱,先验证稳定性 模拟交易接口
实盘 真金白银执行 券商API

为什么 Python 是量化首选?

语言对比

对比维度 Python C/C++ R MATLAB
学习曲线 ⭐ 极低 陡峭 中等 低,但场景受限
运行速度 中等 极快 中等
金融库生态 极丰富 几乎没有 统计强、交易弱 收费且生态小
AI/ML 支持 最强 效率低 有限 有但社区小
社区资源 全球最大 偏底层 偏学术 偏高校
费用 免费 免费 免费 商业授权极贵

结论:Python 在"易学、生态丰富、AI支持、免费"四个维度同时最优。


Python 量化工具链全景

复制代码
获取数据(yfinance/akshare/tushare) → 数据处理(pandas/numpy) → 
分析建模(numpy/scipy/sklearn) → 策略回测(backtrader/zipline/vnpy) → 
可视化(matplotlib/plotly/seaborn)

核心库一句话总结

  • pandas:表格数据处理的瑞士军刀(读取CSV、计算均线)
  • numpy:高性能数值计算(批量收益率、矩阵运算)
  • matplotlib:基础绑图(K线图、收益曲线)
  • backtrader:策略回测框架(模拟历史交易)

关键概念速查

量化金融(Quantitative Finance)

用数学模型、统计方法和计算机程序来分析金融市场、制定交易策略的学科。
*

回测(Backtesting)

用历史数据模拟执行策略,检验策略在过去的收益和风险表现。是量化策略上线前的必经环节。
*

策略(Strategy)

一套明确的、可复制的交易规则。包含:什么时候买入、什么时候卖出、仓位怎么管理。
*

正期望收益(Positive Expected Value)

长期来看,策略的平均收益 > 0。量化追求的不是每次都赚,而是"赢的概率和赢的幅度 > 输的概率和输的幅度"。
*

概率优势(Edge)

策略在统计上存在的微小优势。量化交易的核心目标就是找到并放大这个优势。
*

随机策略(Random Strategy)

作为对照组的"瞎买瞎卖"策略。用来验证:如果我的策略连随机都不如,那它就是无效的。


思维转变(重点)

普通人炒股 量化交易
凭感觉、听消息 凭数据、靠规则
情绪化决策 系统化执行
单次交易成败定英雄 长期统计概率优势
手工盯盘 程序自动执行

量化交易和普通人炒股最大的区别:情绪退出市场,数据掌控一切。


一些AI问答:

  1. 基于过去5年上证指数数据,预测未来3个月上证指数走势及关键影响因素。
    https://chatgpt.com/share/6a302e7c-b2a0-83ee-8852-244cae9af86b
  2. 我是工薪族,年收入30万元,现有闲置资金100万元,无专业投资经验,请提供适配的投资理财配置方案。
    https://chatgpt.com/share/6a302f1c-0bd4-83e8-ab3a-5c2864a358e4

课后作业

换一只股票,亲手跑出同样的「爽感」:

把上面代码里的 'AAPL' 改成 'TSLA'(特斯拉)或 'NVDA'(英伟达)

重新运行,画出 价格 + 成交量 图

在纸上或评论区回答:最新收盘价是多少?近 6 个月整体是涨还是跌?

python 复制代码
# ========== 作业1:英伟达 NVDA 真实股票数据 ==========
import warnings
warnings.filterwarnings('ignore')

import matplotlib.pyplot as plt
import pandas as pd
import akshare as ak

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 一行下载英伟达 NVDA 最近 6 个月的日线(前复权)
df = ak.stock_us_daily(symbol='NVDA', adjust='qfq')
df = df.tail(120)  # 取最近约6个月(120个交易日)
df['date'] = pd.to_datetime(df['date'])

print('🎉 恭喜!你已经拿到真实股票数据')
print('   共 {} 个交易日'.format(len(df)))
print('   最新收盘价: ${:.2f}'.format(df['close'].iloc[-1]))
print(df.tail(5).to_string())

# ========== 上图收盘价、下图成交量 ==========
fig, axes = plt.subplots(2, 1, figsize=(12, 6), sharex=True,
                         gridspec_kw={'height_ratios': [3, 1]})
axes[0].plot(df['date'], df['close'], color='tab:blue', linewidth=1.5)
axes[0].set_title('真实数据 · 英伟达 NVDA 收盘价(近6个月)', fontsize=14)
axes[0].set_ylabel('美元')
axes[0].grid(True, alpha=0.3)

axes[1].bar(df['date'], df['volume'], width=0.8, color='gray', alpha=0.5)
axes[1].set_ylabel('成交量')
axes[1].set_xlabel('日期')
axes[1].grid(True, alpha=0.3)

plt.tight_layout()
plt.show()
指标 数值
最新收盘价 $205.19 USD
6个月前收盘价 $180.73 USD
近6个月收益 +13.53%
整体趋势 涨 (UP)
相关推荐
Alsn862 小时前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e2 小时前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨2 小时前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
cqbzcsq3 小时前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息
EagleTrader3 小时前
自营交易员张洋斌:如何用书面计划将临场情绪干扰降到最低?
金融
机汇五金_4 小时前
深圳防水钣金机箱加工
金融
YangYang9YangYan4 小时前
2026初入职场学习数据分析的价值
学习·数据挖掘·数据分析
guslegend4 小时前
理论学习:什么是 Coding Agent?
学习
自传.5 小时前
尚硅谷 Vibe Coding|第三章(1) Claude Code深度使用与进阶技巧 学习笔记
笔记·学习·尚硅谷·vibecoding