提到量化金融,很多人会觉得这是专业从业者的 “专属领域”,满是复杂的数学模型和晦涩的编程代码。但其实量化金融的核心,是用数据科学的思维和工具把投资决策变得理性、可量化,而 Python 早已为我们搭建好了从入门到实操的完整桥梁。从零开始讲解数据处理、收益计算、风险建模的核心技巧,全程干货无废话,无论是编程小白接触金融概念,还是金融从业者重温基础,都能收获满满。今天就把python量化课程的核心知识点和学习感悟整理出来,带你推开 Python 量化金融的大门。准备工具
实操前,先准备好3个核心工具,都是免费的,新手跟着步骤来,不用额外花钱,也不用懂编程原理。
1. 安装Python(核心运行环境)
这是所有操作的基础,步骤超简单,全程下一步即可:
打开官网(https://www.python.org/),点击“Downloads”,选择对应自己电脑系统(Windows/Mac)的版本(建议选3.9-3.11版本,兼容性最好);
下载完成后,双击安装,重点勾选“Add Python to PATH”(一定要勾,不然后续无法正常运行代码);
安装完成后,打开电脑“命令提示符”(Windows按Win+R,输入cmd;Mac按Command+空格,输入terminal),输入“python --version”,能显示版本号,就说明安装成功了。
安装核心工具包(量化交易的“必备插件”)
就像手机需要装APP才能用,Python也需要装“工具包”才能处理金融数据、执行交易策略。我们只需要装4个核心包,输入指令就能自动安装:
打开“命令提示符”(和上面步骤一样);
依次输入以下4行指令,每输完一行按回车,等待自动安装(安装速度看网络,耐心等1-5分钟即可):
pip install pandaspip install matplotlibpip install tusharepip install easytrader
2.全部安装完成后,输入“pip list”,能看到这4个工具包的名称,就说明安装成功。
小提醒:如果安装失败,大概率是网络问题,多试两次,或者换个网络即可。
3.准备代码编辑器(写代码、运行代码的工具)
新手不用装复杂的编辑器,用Python自带的“IDLE”即可,安装Python后自动生成,无需额外下载:
打开电脑开始菜单(Windows)或启动台(Mac),搜索“IDLE”,点击打开,出现一个白色的编辑窗口,就可以开始写代码、运行代码了。
获取金融数据(实操核心,免费抓取股票/基金数据)
量化交易的前提是“有数据”——我们需要获取股票、基金的历史价格、收益等数据,才能分析和制定策略。这里用“tushare”工具包,免费抓取数据,新手直接套用代码即可。
实操步骤(直接复制代码,改个参数就能用)
打开IDLE,点击“File”→“New File”,新建一个空白编辑窗口;
复制下面的代码,粘贴到空白窗口(代码里的注释已经写清楚,不用改,只需要改最后一行的“股票代码”和“时间范围”):
# 导入工具包(固定代码,不用改)import tushare as tsimport pandas as pd# 设置token(免费获取,步骤看下面)ts.set_token('你的token')pro = ts.pro_api()# 抓取股票数据(只需要改这一行的参数)# 股票代码:比如贵州茅台是600519.SH,五粮液是000858.SZ(沪市加.SH,深市加.SZ)# start和end:时间格式是YYYYMMDD,比如20230101就是2023年1月1日df = pro.daily(ts_code='600519.SH', start_date='20230101', end_date='20240101')# 查看数据(固定代码,不用改)print(df.head())
获取免费token(关键步骤,不然无法抓取数据): ① 打开tushare官网(https://tushare.pro/),注册一个账号(免费); ② 登录后,点击右上角“个人中心”→“接口token”,复制自己的token; ③ 把复制的token,替换掉代码里“你的token”这几个字(注意保留引号)。
运行代码:点击编辑窗口的“Run”→“Run Module”,等待1-2秒,下方会出现抓取到的股票数据(包含日期、开盘价、收盘价、涨跌幅等),就说明数据获取成功了。
小技巧:如果想抓取基金数据,把最后一行的“pro.daily”改成“pro.fund_daily”,股票代码换成基金代码即可(基金代码可以在基金APP上查询)。
制定简单交易策略(新手首选,风险低、易执行)
新手不用搞复杂的策略,先从“简单有效”的策略入手,比如“均线策略”——核心逻辑很简单:当短期均线(比如5日均线)上穿长期均线(比如20日均线),就买入;当短期均线下穿长期均线,就卖出。
这个策略风险低,适合新手实操,而且代码可以直接套用,不用自己编写。
实操步骤(继续在之前的代码基础上添加)
在刚才的代码后面,继续粘贴下面的代码(所有代码连在一起,不用分开):
# 计算均线(5日均线和20日均线,固定代码,不用改)df['ma5'] = df['close'].rolling(window=5).mean() # 5日均线df['ma20'] = df['close'].rolling(window=20).mean() # 20日均线# 制定交易信号(核心策略,不用改)# 买入信号:5日均线上穿20日均线df['buy_signal'] = (df['ma5'] > df['ma20']) & (df['ma5'].shift(1) <= df['ma20'].shift(1))# 卖出信号:5日均线下穿20日均线df['sell_signal'] = (df['ma5']< df['ma20']) & (df['ma5'].shift(1) >= df['ma20'].shift(1))# 查看交易信号(固定代码,不用改)print(df[['trade_date', 'close', 'ma5', 'ma20', 'buy_signal', 'sell_signal']].tail(20))
运行代码:再次点击“Run”→“Run Module”,下方会显示包含“买入信号”“卖出信号”的数据——“True”表示出现信号,“False”表示没有信号。
解读信号:比如某一行的“buy_signal”是True,就说明当天出现了买入信号;“sell_signal”是True,就说明当天出现了卖出信号,跟着信号操作即可。
小提醒:新手可以先用“历史数据回测”——看看这个策略在过去的时间里,能赚多少、亏多少,再决定是否实际执行,避免盲目操作。
回测策略(检验策略好坏,新手必做)
回测就是“用历史数据模拟交易”,看看我们制定的策略,在过去的市场中表现如何,比如年化收益多少、最大亏损多少,避免实际操作时踩坑。
继续在代码后面粘贴以下代码,直接运行,就能得到回测结果:
# 回测策略(固定代码,不用改)# 初始化资金(假设初始有10000元)capital = 10000# 初始化持仓(0表示空仓,1表示持仓)position = 0# 模拟交易过程for index, row in df.iterrows(): if row['buy_signal'] and position == 0: # 买入:用全部资金买入股票 shares = capital / row['close'] capital = 0 position = 1 print(f"买入日期:{row['trade_date']},买入价格:{row['close']}") elif row['sell_signal'] and position == 1: # 卖出:卖出全部股票 capital = shares * row['close'] position = 0 print(f"卖出日期:{row['trade_date']},卖出价格:{row['close']}")# 回测结果final_capital = capital if position == 0 else shares * df.iloc[-1]['close']profit_rate = (final_capital - 10000) / 10000 * 100print(f"初始资金:10000元")print(f"最终资金:{final_capital:.2f}元")print(f"收益率:{profit_rate:.2f}%")
运行后,下方会显示“买入日期、卖出日期、最终资金、收益率”——如果收益率为正,说明策略在历史数据中有效;如果为负,说明策略需要调整(比如换均线周期、换股票)。
实际执行交易(新手谨慎,小额试水)
如果回测结果满意,就可以尝试实际执行交易了。这里用“easytrader”工具包,能对接券商账户,自动执行交易信号(目前支持大部分主流券商)。
新手注意:首次实操,一定要小额试水(比如1000-2000元),不要投入大量资金,避免风险!
实操步骤(简单指引,具体细节看券商对接说明)# 对接券商账户(需要提前在券商APP开通量化交易权限)from easytrader import XueQiuTrader # 以雪球为例,其他券商替换对应接口# 登录券商账户(替换成自己的账号密码)trader = XueQiuTrader()trader.login(account='你的券商账号', password='你的券商密码')# 实际执行交易(根据信号自动买卖)latest_data = df.iloc[-1] # 获取最新数据if latest_data['buy_signal'] and position == 0: trader.buy(ts_code='600519.SH', price=latest_data['close'], amount=100) # 买入100股 print("已执行买入操作")elif latest_data['sell_signal'] and position == 1: trader.sell(ts_code='600519.SH', price=latest_data['close'], amount=100) # 卖出100股 print("已执行卖出操作")
提前在券商APP开通“量化交易权限”(一般在“我的-业务办理”里,免费开通);
运行代码,即可自动执行交易(执行后,去券商APP查看持仓,确认是否成功)。
最后想说:实操才是学会量化交易的关键
很多新手学量化,总停留在“看文章、记理论”,却从来不动手实操,最后还是什么都不会。
其实Python量化交易,没有想象中那么难——工具准备10分钟,数据获取5分钟,策略套用10分钟,全程30分钟就能完成一次完整的实操。
对于新手来说,不用追求“精通”,先跟着上面的步骤,完成从“数据获取”到“实际交易”的全流程,熟悉操作逻辑,再慢慢优化策略、积累经验。
如果你正在学习python,这些Python资料、数据分析、Python从入门到实践第三版pdf书籍、Python+Pycharm安装包&永久激活插件、直播课程,可以在这里免费领取哈👇