跳到正文

研究指南

股票策略开发

AI生成的股票指标代码算对了吗:用短行情核对窗口与阈值

AI生成股票指标代码,应先有数字真值表,再评价策略。用短价格独立手算每个中间量,检查阈值两侧及恰好相等。最终买入信号不能说明窗口、收益端点或标准差分母都正确;多个错误可能在一行输出里互相抵消,或者普通样本根本没触发边界。

本指南使用Python标准库检查三观察滚动计算,价格全部合成。CoTrading公式核验能力仍为规划或待核实。算术通过只证明这里的规则与夹具一致,不证明预测、选股或未来收益。没有真实行情和外部模型运行,也不把这个小例说成全面回测验收。

先固定计算词汇

输入为按交易期排序的完整正收盘,窗口包含当前与前两行。三个价格跨两个收益间隔,不是三个。两间隔收益为当前除两行前减一,端点不能随某库滚动写法不知不觉漂移。规格保存索引位置,比只写“三日收益”更容易独立实现和复算。

离散度另命名。本例对三个价格水平算标准差,单位是价格,不是日收益波动率。真正低波动选股需要先构造收益,再测其离散,同名std函数不表示输入相同。混用可能给高价股票更大数值,不能从函数名看起来像波动就接受为风险指标。

Python统计官方文档区分总体与样本标准差,脚本故意两者都算。分母选择明确,不凭熟悉库的默认推断。样本计算分母比总体少一。这里展示两口径是为了验收差异,不表示可以看哪个结果更有利再选择。

独立手算第一条完整行

收盘十、十二、十四、十二、十。索引二窗口十、十二、十四,均值十二;离差负二、零、二,平方和八。总体方差八除三,样本方差八除二。把窗口原值和算式写在表旁,检查者无需信任被测代码,就可以算出不同分母应产生不同结果。

总体标准差为八除三开平方,约一点六三二九九三;样本标准差二。两间隔收益十四除十减一,百分之四十。当前十四严格高于均值十二,所以完成该观察后目标一。它是决策结果,不证明可以回到当期更早的价格买入,执行时点仍需另验。

预期值不能只调用同一个生成助手两次,重复实现可能保留同样差一行或分母错误。原窗口与独立数学真值一起保存。测试应能让常见错误失败,而不是验证程序重复给相同答案;确定性与正确性是不同要求,不应由一条重复调用相同断言代替。

每次只推进一条窗口

索引三窗口十二、十四、十二,均值三十八除三,约十二点六六六六六七,当前十二低于均值,目标零。收益起点是索引一的十二,终点也十二,所以为零,不再使用原来十。滚动收益的起点随窗口前进,是很容易被固定引用写错的地方。

索引四窗口十四、十二、十,均值又十二,当前十更低。收益十除十四减一为负二除七,约负百分之二十八点五七一四二九。若错误沿用最初十,会报告零,之后阈值决策可能完全不同。保留每行起止索引,能比最终收益图更快定位。

前两行不完整,中间量为null,本教学目标按明确热身规则为零。完整信号[0,0,1,0,0]。它与有些稀疏接口保留未知目标不同,属于显式契约选择,不能把两种表示随意互换。实际适配需要把热身与已就绪零区分,否则零成交诊断容易走错阶段。

相等边界独立测试

另给十、十二、十一,均值恰十一,严格大于得到零。最后改十一点零一,均值约十一点零零三三三三,得到一;改十点九九,均值约十点九九六六六七,得到零。三行相邻数值用于区分比较符,不是调整到某个盈利阈值,也不估计经济显著性。

生成实现若写大于等于,可能通过明显上涨下跌样本,却在相等行失败。边界输入要能区分合理但错误的代码,不只是重复正常例子。若指标还有中性区间,需要另写上下边界和相等含义,不能用浮点容忍偷偷代替策略里的交易带。

计算容忍与交易容忍分开。规则仍严格比较算出的当前与均值,测试epsilon只比较独立中间真值。不能把验证误差变成未声明“不交易区”。否则某次为了让测试通过的技术调整,会无声改变实际策略,而规格仍写相同大于符号,后续无法解释。

先定数值容忍再运行

验收助手使用绝对误差十的负十二次方,相对误差零。Python数学说明介绍近似相等控制,明确相对为零,防止较大数值下另一未声明容忍主导。文章显示六位小数只是展示,不是内部验收门槛,更不能按显示值替换原计算。

本例可精确表示的预期也用精确断言,例如均值十二、样本标准差二;分数与开平方使用声明近似。真实来源精度或量纲不同,可能需要另一政策,但必须在看失败前确定。不能一直放宽到错误分母也过,样本和总体差异远大于允许舍入误差。

误差报告应包含实际、预期、差值和单位,避免一个“近似失败”让实现者盲猜。这里工具输出完整中间表,读者可直接复算。若价格单位从元变分,数值与容忍都需重审,不应拿旧绝对epsilon未经解释覆盖新尺度。单位变化也属于计算契约版本变化。

执行滚动真值文件

下载完整示例,保存R579.py,用Python 3.12及以上运行python R579.py。仅标准库统计和数学工具,合成数据,源文件docs/growth/research/round-5/examples/R579.py不联网,也不需要隐藏笔记本变量和真实行情文件。

断言连接原窗口、均值、两间隔收益、两种标准差和目标,覆盖阈值三种情况,并要求样本与总体确实不同。输出中间行,失败可在传播成不透明信号前定位。只断言一组买卖序列太弱,因为不参与本信号比较的标准差即使算错,也可能不影响最终输出。

同时验证时间边界

五价每个前缀运行必须复现原来共同历史,末尾再追加很大未来价,前五行也不变。尾部切片只读当前及之前,因此测试核的是代码信息边界,不只是一次数值恰好正确。新增居中窗口或全样本归一化后,必须重新做这样的扰动,旧结论不自动覆盖。

它不证明传入复权历史当年就以此版本可得,也不验模型训练资料或引擎位移。这些是独立层。准确结论是本滚动逻辑只读声明完整前缀,并匹配独立真值表。把范围写清,后续研究者才能知道仍需核哪条数据或执行路径,而不被一个总通过状态误导。

从首个错误中间量修复

发现不一致,先比包含的行,再比均值、收益端点、分母和阈值,修最早证据错误。一次改多项可能最终信号凑对,却解释不了原问题。规格、真值、容忍、版本和实际输出归档,依赖升级、滚动默认或单位变化后重跑,不能只留一段作者说已经检查的文字。

完成条件是所有声明量与边界可以独立复现。指标是否有投资价值,需要另有真实数据设计,算术绿色不暗示这一点。正确计算也可能没有预测力,错误计算也可能偶然赚得更多;验收不能按利润决定谁是正确公式,而应先保持定义一致,再让经济假设接受独立评价。

中间滚动窗口另有离散度断言:样本标准差为四除三开平方,总体为八除九开平方,不只验证第一条完整窗。另用大数比较,要求十的负八次方差异被拒,确认相对容忍确为零。这样书面分母与误差政策落实到执行,而不是库调用旁注释写得正确、实际默认仍用另一口径。

对于这些边界,测试输入应随源码长期保存。下一次替换统计库或向量化实现,只要契约未改,就先跑同一真值表;若确实要改样本口径,应先更新规格并明确旧结果不再可比,不能仅改预期让测试变绿。验收的目标是保护已确认定义,不是维护一个永不失败的状态标记。

常见问题

三个价格等于三个收益间隔吗?

不是,本例跨两个间隔,起止明确指定。

信号正确能证明标准差正确吗?

不能,需要单独断言中间量和分母。

相关阅读