基于深度神经网络强化学习的量化因子挖掘中心
{品种}_{周期}.parquet,如 XAUUSD_H1.parquet / 002008_60min.parquet(60min/1h 等同 H1)
到目前为止找到的最好因子公式得分,越高表示回测表现越好,曲线阶梯上升说明发现了更优公式。
当前这一步在验证集上的平均得分,反映近期一批公式的整体质量,会有起伏属正常。
—
等待任务…
挖因子这一步计算很重:特征、公式搜索、回测验证会把机器算力用到接近满载。这时再并行开第二个品种或另一个周期,大家只是在抢同一批 CPU,谁也跑不快。
两路一起跑,往往各自都变慢,总完工时间通常不比「先训完一个再训下一个」更短,有时还更拖。所以默认一次只训一路,把算力集中用在当前任务上更划算。
曲线、日志、最优公式都只对应这一组数据,涨没涨分一眼能看清。多品种并行时页面和日志会搅在一起,反而不容易判断「这个品种还值不值得继续挖」。
到目前为止挖到的最好那条公式的得分。它一般只升不降:一旦发现更好的公式,这个数就会抬一截;长时间不动,说明这段时间还没挖到更强的。
当前这一步在验证集上算出来的平均表现,反映「最近这批公式整体好不好」。它会上下波动很正常;更值得看的是整体有没有慢慢抬高,而不是盯着单次跳动。
图上的验证分数不是「当前最优那一条」的得分,而是这一步随机抽出来的一整批公式的平均分。挖着挖着,模型会越来越爱重复同一类公式(探索变少),系统就会主动「搅一搅」——加大随机、换一批新配方继续搜。刚搅完时,新配方里好坏掺半,平均值会突然掉一截;随后又慢慢学到更好的组合,曲线再往上爬。所以会看到锯齿状起伏。
绿色的最优分数只记「历史最好的那一次」,所以不会跟着掉下去,只会阶梯往上抬。锯齿本身多半是在重新探索,不等于训练坏了。
「开始训练」会接着上次的检查点继续挖;「重新训练」会清掉检查点,从零换一条随机路径再搜一遍。因为搜索带随机性,有时能挖到比现在更高的分数。
已有的最优策略会当作分数下限留着——只有找到更好的才会覆盖,不会一开局就被弱公式冲掉。代价是要再花一整轮算力,适合本轮训完或最优分数长期不动时再用。
| 品种 | 周期 | 分数 | 公式 |
|---|
暂无报错
data_file;没有则回退训练页同品种文件。单边手续费/滑点开平仓各扣一次。
| 品种 | 收益 | Sharpe | Sortino | 盈亏比 | 交易数 | 胜率 |
|---|---|---|---|---|---|---|
| 暂无回测结果 | ||||||
等待任务…
回测不会真的下单。它把过去很多天的价格拿出来,按策略规则一步步走一遍,看看如果当时真做了,钱会变多还是变少。
策略公式会给每一根 K 线打分:正分偏向看涨,负分偏向看跌,靠近 0 就先别乱动。
分数的绝对值越大,信号就越明确。比如 +3 比 +0.2 更坚决地看涨,-3 比 -0.2 更坚决地看跌。
仓位不是只有“全仓 / 空仓”两档,而是用 tanh(信号分) 压到大约 -1 到 +1 之间。
可以把它想成:信心越大,下注越多;但再大也不会超过“一整份仓位”。
这一步大概赚多少 ≈ 仓位 × 价格涨跌。仓位大,涨了赚得多,跌了也亏得多。换仓时还会扣掉你设的手续费和滑点。
例如选的是 1 小时周期,就等这一小时走完、K 线正式收盘,才会用最新已收盘的数据重算方向和把握;盘中正在走的那根(未收盘)不会拿来改信号。
训练和回测用的都是「已经收盘」的完整 K 线。若盘中用还在变动的价格去算,同一根线里信号会来回跳,也和回测看到的历史不一致,容易误判、频繁改仓。
等收盘再用完整 OHLC,信号更稳,也和策略当初学到的数据口径一致。
不建议。策略是按训练时的那个周期学出来的;公式里的「10 根、20 根」指的是该周期的 K 线根数,不是固定的钟表时间。
例如在 1 小时上训练时,「10 根」大约看过去 10 小时;若硬套到日线,「10 根」就变成过去 10 天——价格形态、噪声幅度、趋势节奏全变了,信号含义对不上,回测成绩也推不到新周期上。
同品种换周期应重新训练(或至少用该周期单独回测验证);实时监控时,周期尽量与策略文件里记录的周期一致。
倒计时指向下一次收盘、重新判断信号的时刻。到点后会短暂显示「即将重新判断…」,收到新 bar 后再刷新,并开始下一轮倒计时。
仅在信号方向发生变化时推送文字提醒(例如看涨 → 不确定 / 看跌)。 在飞书群添加自定义机器人后,把 Webhook 地址填到下面。