一、 核心前置准备(手机可落地)
1. 环境:安装Python+核心库( pip install numpy pandas matplotlib backtrader tushare )
2. 数据:用 tushare 获取免费股票/基金数据,需注册获取token
3. 核心逻辑:数据获取→策略编写→回测验证→模拟交易
二、 4步入门量化(极简流程)
1. 获取行情数据(示例:茅台日线)
python
import tushare as ts
ts.set_token('你的token')
pro = ts.pro_api()
df = pro.daily(ts_code='600519.SH', start_date='20240101', end_date='20250101')
df = df.sort_values('trade_date') # 按时间排序
2. 写基础策略(以均线金叉死叉为例)
核心思路:5日均线上穿20日均线买入,下穿卖出
python
# 计算均线
df['ma5'] = df['close'].rolling(5).mean()
df['ma20'] = df['close'].rolling(20).mean()
# 生成信号(1买入,-1卖出,0持仓)
df['signal'] = 0
df.loc[(df['ma5']>df['ma20'])&(df['ma5'].shift(1)<=df['ma20'].shift(1)), 'signal']=1
df.loc[(df['ma5']<df['ma20'])&(df['ma5'].shift(1)>=df['ma20'].shift(1)), 'signal']=-1
3. 回测验证(算收益、胜率)
python
# 计算策略收益(假设全仓买卖,忽略手续费)
df['return'] = df['close'].pct_change() # 股价日收益
df['strategy_return'] = df['signal'].shift(1) * df['return'] # 信号滞后1天执行
df['cum_return'] = (1+df['strategy_return']).cumprod() # 策略累计收益
df['stock_cum_return'] = (1+df['return']).cumprod() # 持股累计收益
# 输出结果
print('策略最终收益:', round((df['cum_return'].iloc[-1]-1)*100,2),'%')
print('持股最终收益:', round((df['stock_cum_return'].iloc[-1]-1)*100,2),'%')
4. 进阶工具(回测框架backtrader)
简单策略用pandas,复杂策略用框架(支持多标的、手续费、仓位管理),核心是继承 bt.Strategy 写逻辑。
三、 关键注意点(避坑)
- 免费数据有局限,实盘需对接券商API(如同花顺、通达信)
- 回测≠实盘,要考虑滑点、手续费、停牌风险
- 新手先做单标的策略,再拓展多因子、择时、仓位管理
四、 学习路径(从易到难)
1. 基础:Python数据处理(pandas)+ 技术指标(均线、MACD、KDJ)
2. 入门:用backtrader写策略+回测,验证有效性
3. 进阶:多因子模型、机器学习选股、仓位风控(止损止盈)
4. 实盘:对接合规券商,小资金模拟→轻仓实盘