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