Excel自动化交易盈亏序列多维度统计公式实现求助
Excel交易核心指标统计实现方案
近期我完成了自动化交易机器人的集成开发,计划使用Excel开展交易数据分析,但暂未掌握合理的数据组织方法提取核心交易指标,检索相关教程未找到匹配内容,以下是9项待实现的统计需求,对应可落地的Excel实现方案如下,也欢迎推荐相关参考教程。
统一前提:交易盈亏结果按交易时间顺序逐行存储在H列,盈利为正、亏损为负、平局为0。
前置辅助列配置(大幅降低公式复杂度,易维护)
建议先配置3列辅助列,不需要复杂数组公式即可完成所有统计:
- 盈亏标记列(I列):I2输入
=SIGN(H2),下拉填充全列,盈利返回1、亏损返回-1、平局返回0 - 连续盈亏计数列(J列):J2输入
=I2,J3输入=IF(I3=I2,J2+I3,I3)下拉填充全列,自动统计当前连续盈利/亏损的笔数 - 分页标记列(K列):K2输入
=ROUNDUP((ROW()-1)/10,0),下拉填充全列,从第1笔交易开始每10笔自动分配页码,从1开始递增
9项统计需求及实现方法
- 最大连续亏损交易次数统计
- 规则:统计最长连续亏损的交易笔数,例如最多连续亏3次则返回3,示例中H22:H27区间最大连续亏损值为6
- 实现公式:
=MAX(IF(J:J<0,ABS(J:J),0)),Excel 2019及更早版本输入后按Ctrl+Shift+Enter触发数组计算,365/2021及以上版本直接回车即可
- 最大连续盈利交易次数统计
- 规则:统计逻辑同最大连续亏损,统计对象为盈利交易,示例中H1:H5区间最大连续盈利值为5
- 实现公式:
=MAX(IF(J:J>0,J:J,0)),旧版本同样需要数组回车
- 亏损“页”数统计
- 规则:每10笔为1页,单页内亏损交易≥6笔即判定为亏损页,连续多页满足条件累计计数;示例中亏损页共2个,对应区间H20:H29、H30:H39
- 实现方法:先在空白区域按页码列去重得到所有页码,用
=COUNTIFS(K:K,目标页码,H:H,"<0")统计单页亏损笔数,再用=COUNTIF(单页亏损笔数区域,">=6")即可得到总亏损页数
- 盈利“页”数统计
- 规则:逻辑同亏损页统计,单页内盈利交易≥6笔即判定为盈利页;示例中盈利页共2个,对应区间H1:H10、H41:H50
- 实现方法:用
=COUNTIFS(K:K,目标页码,H:H,">0")统计单页盈利笔数,再用=COUNTIF(单页盈利笔数区域,">=6")得到总盈利页数
- 平局“页”数统计
- 规则:每10笔为1页,单页内盈利、亏损各5笔即判定为平局页;示例中平局页共1个,对应区间H60:H69
- 实现公式:
=SUMPRODUCT((单页盈利笔数区域=5)*(单页亏损笔数区域=5)*1)
- 最大连续盈利页数统计
- 规则:基于盈利页判定规则,统计最长连续出现盈利页的数量;示例中无连续盈利页,返回0
- 实现方法:新增辅助列标记每页是否为盈利页(是记1,否记0),参考J列连续计数逻辑生成连续盈利页计数序列,取序列最大值即可
- 最大连续亏损页数统计
- 规则:基于亏损页判定规则,统计最长连续出现亏损页的数量;示例中连续亏损页数为2,对应区间H20:H39
- 实现方法:新增辅助列标记每页是否为亏损页(是记1,否记0),同连续计数逻辑生成序列后取最大值
- 连续盈利交易平均长度
- 规则:计算公式为
总盈利交易次数/连续盈利序列总个数,例如100笔盈利分为10个连续盈利序列,平均值为10 - 实现公式(数据范围按实际行数调整,示例为H2:H1000):
=COUNTIF(H:H,">0")/SUMPRODUCT((H2:H1000>0)*(H1:H999<=0)*1),公式中后半段统计所有“当前行盈利、上一行非盈利”的序列起始节点,即为连续盈利序列总个数
- 规则:计算公式为
- 连续亏损交易平均长度
- 规则:计算公式为
总亏损交易次数/连续亏损序列总个数,逻辑同连续盈利平均长度 - 实现公式(数据范围按实际行数调整):
=COUNTIF(H:H,"<0")/SUMPRODUCT((H2:H1000<0)*(H1:H999>=0)*1)
- 规则:计算公式为
内容的提问来源于stack exchange,提问作者Christos Nikitopoulos
相关产品推荐
相关产品推荐

