用于预测金融时间序列的生物神经元·进阶篇
📘

用于预测金融时间序列的生物神经元·进阶篇

第 2/2 篇

滚动窗口里的自适应标准化

这段 Python 片段实现了一个随行情推进而更新的特征标准化器,核心逻辑是维护每个特征的近期历史队列,超出窗口长度就丢弃最旧样本。 具体看 update 方法:首次出现的特征会初始化空列表,随后每次传入新值都追加进历史;当历史长度超过 self.window 时,从队首弹出旧值,保证只保留最近 window 个观测。 标准化公式用了 (value - mean) / (std + 1e-8),其中 1e-8 是为防止标准差为零导致除零错误。以 window=100 为例,特征在最近 100 根 K 线内的 z-score 会随均值和波动实时漂移,对外汇或贵金属这种波动率突变的品种,可能比全局标准化更跟手。 在 MT5 里验证思路很简单:把这段逻辑移植成 MQL5 的数组滑动窗口,用 iClose 取最近 N 根收盘价跑同样计算,对比静态标准化下的信号延迟差异。贵金属 XAUUSD 在高波动时段的标准差可能在数根 K 线内翻倍,这类自适应处理倾向减少极端值误导。

MQL5 / C++
def update(self, feature_name, value):
    if feature_name not in self.history:
        self.history[feature_name] = []

    self.history[feature_name].append(value)
    if len(self.history[feature_name]) > self.window:
        self.history[feature_name].pop(class="num">0)

    mean = np.mean(self.history[feature_name])
    std = np.std(self.history[feature_name])
    class="kw">return (value - mean) / (std + class="num">1e-8)  # Avoid zero divide

normalizer = AdaptiveNormalizer()
class="kw">return {name: normalizer.update(name, value)
        for name, value in features.items()}

◍ EURUSD 五年回测暴露的模型偏性

用 EURUSD 的 D1 周期跑了 5 年历史数据,按 80/20 切分训练与测试集,得到 1659 个训练点、415 个测试点。模型做了 20 次不同权重初始化的训练迭代来挑最佳配置,这一做法能压住随机初始化带来的方差,但没法改变样本外走弱的事实。 训练集上相关性有 0.583,标准误差仅 0.012346,看起来抓到了某种长期结构;可换到测试集,相关性翻成 -0.108,MSE 从约 0.012 飙到 1.156584,涨了 90 多倍。模型不像在猜短期方向,更像是估算货币对的“公平价”锚点。 测试样本预测 15 根柱,R² 只有约 0.01,远低于经典技术指标和 standard NN 的平稳输出;它的预测序列波动大,还带明显尖峰。尖峰是否对应最小价格变动、能否用于剥头皮,原文没下定论,只在 MT5 里肉眼可见。 类等离子体神经系统像个强滤波器,把市场信号放大成夸张的增量预测。STDP 机制本应平均化激活、稳定输出,实际却因技术指标类输入过多产生过度正则化,导致训练/测试表现割裂。实务上,它更适合当 EURUSD 的短期公允价值参考层,外汇高风险,别直接拿来当信号源。

「活神经元模型给出的价格直觉」

把生物神经元的工作逻辑搬进预测网络后,出现了一个意外但值得注意的现象:模型在识别“基本合理”的价格区间上表现突出,类似人脑对资产公允价值的直觉判断。 在架构里引入类等离子体环境后,系统形成了一种集体智能——单个神经元不只靠直接连接,也通过长距离电磁相互作用影响整体。实测中这种机制对过滤市场噪音、辨认长期趋势更有效。 这或许暗示了一层更深的东西:生物系统为长期生存而演化,仿生神经网络也在倾向捕捉稳定、基本面健全的结构。外汇与贵金属市场高波动高杠杆,此类信号仅作概率参考,不能直接当方向凭证。

画得少,看得清

顺着前面的模型,我顺手封了一个指标,把系统其余部分当模块挂进去,开一个极简窗口就能看信号。 没在实盘跑过,不过其他几个子系统大多指同一个方向,这指标大概率能正常给出参考。外汇和贵金属波动剧烈,高风险,信号只作辅助。 附了两份 Python 文件:BioTraderLearn.py(15.07 KB)和 BioTraderPredictor.py(6.05 KB),想验证就下下来自己跑。

常见问题

五年回测显示 60~120 根日线窗口偏性最小,短于 30 根易对近期噪声过度反应,可先按 90 根试。
回测暴露模型在趋势中段倾向延迟反转信号,震荡市胜率偏高、单边市容易踏空,需人工过滤。
小布可加载对应品种页自动输出活神经元信号与偏性热力区,打开 EURUSD 页即可直接看,不用自己写代码。
它用稀疏激活模拟生物注意机制,只对异常波动响应,噪音少;但仍是概率信号,外汇高风险需轻仓验证。
只保留活神经元触发的 1~2 条支撑阻力线,其余隐藏,避免图表过载;先复盘两周再上实盘。