Python期货策略单元测试思路_关键逻辑验证
·
免责声明:本文基于个人使用体验,与任何厂商无商业关系。内容仅供技术交流参考,不构成投资建议。
一、前言
策略逻辑复杂后,单靠回测不够,对信号、仓位、风控等做单元测试可提前发现错误。做了多年期货量化,我习惯对关键函数写简单测试。
今天分享 Python 期货策略单元测试的常见思路。
二、测什么
# 1. 信号函数:给定 K 线序列,输出信号是否与预期一致
# 2. 仓位计算:给定权益、风险比例,手数是否正确
# 3. 止盈止损:给定价格与规则,是否触发
# 4. 边界:空数据、单根 K 线、全平等
三、示例:信号函数测试
import pandas as pd
import numpy as np
def ma_signal(close_series, short=5, long=20):
"""双均线信号:1 多 -1 空 0 无"""
if len(close_series) < long + 1:
return 0
ma_s = close_series.rolling(short).mean().iloc[-1]
ma_l = close_series.rolling(long).mean().iloc[-1]
ma_s_prev = close_series.rolling(short).mean().iloc[-2]
ma_l_prev = close_series.rolling(long).mean().iloc[-2]
if ma_s_prev <= ma_l_prev and ma_s > ma_l:
return 1
if ma_s_prev >= ma_l_prev and ma_s < ma_l:
return -1
return 0
# 单元测试
def test_ma_signal():
# 金叉:前小后大
close = pd.Series([100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
111, 112, 113, 114, 115, 116, 117, 118, 119, 120])
assert ma_signal(close) == 1 # 短期上穿长期
# 可再加死叉、无信号、长度不足等用例
四、用 pytest 跑
# pip install pytest
# 命令行:pytest test_strategy.py -v
# 策略改完后跑一遍,避免改坏逻辑
五、总结
对信号、仓位、风控等关键逻辑做单元测试,能减少回测与实盘中的逻辑错误。用 pytest 或 unittest 均可。我目前策略会为关键函数写简单用例。量化交易有风险,测试只是验证,策略和风控才是核心。
声明:本文基于个人学习经验整理,仅供技术交流参考,不构成任何投资建议。
更多推荐



所有评论(0)