令人痛心。
非常感谢这篇文章。
我认为这篇文章的主要论点非常有趣,尤其是关于机器学习模型的行为会因各经纪商提供的数据源不同而大相径庭这一观点。
然而,在通读分析内容时,我注意到一个重要的方法论问题,这可能会对结论产生重大影响。
这两个历史数据集的起始日期不同,但随后却使用以下方式进行了合并:
pd.concat([A, B], axis=1) 由于这两个DataFrame都具有连续的整数索引,Pandas是根据索引而非时间戳来对齐它们的。这意味着A和B中的许多行实际上可能对应不同的交易日。
例如,如果数据集 A 始于 2019 年,而数据集 B 始于 2020 年,那么两个数据集中的第 0 行并不代表同一时间点。这可能会直接影响报告中的相关系数、均值和方差的差异,以及随后对这两家经纪商进行的若干比较。
我认为在根据这些比较得出结论之前,应首先通过“时间”对这两个数据集进行同步,仅保留共同的时间戳,例如对 datetime 列执行“合并”或“连接”操作。
文章的核心观点似乎成立且极具相关性,但就目前实验的设计而言,我不确定所呈现的结果能否确凿地证明这一点。
如果能将两个数据集的时间轴正确对齐后重复分析,观察结果会发生怎样的变化,那将非常有趣。😉
Miguel Angel Vico Alba #:
太棒了,太棒了,太棒了 <3我觉得这篇文章的主要论点非常有趣,尤其是关于机器学习模型的行为会因各经纪商提供的数据源不同而大相径庭这一观点。
然而,在通读分析内容时,我注意到一个重要的方法论问题,这可能会对结论产生重大影响。
这两个历史数据集的起始日期不同,但随后却使用以下方式进行了合并:
由于这两个 DataFrame 都具有连续的整数索引,Pandas 会根据索引而非时间戳对它们进行对齐。这意味着 A 和 B 中的许多行实际上可能对应不同的交易日。
例如,如果数据集 A 始于 2019 年,而数据集 B 始于 2020 年,则两个数据集中的第 0 行并不代表同一时间点。这可能会直接影响报告的相关系数、均值和方差的差异,以及随后对这两家经纪商进行的若干比较结果。
我认为,在根据这些比较得出结论之前,应首先按“时间”对这两个数据集进行同步,仅保留共同的时间戳,例如通过对日期时间列执行“合并”或“连接”操作。
本文的主要观点似乎是合理的且极具现实意义,但就目前实验的设计而言,我不确定所呈现的结果能否确凿地证明这一点。
如果能将两个数据集在时间上正确对齐后重复分析,看看结果会发生怎样的变化,那将非常有趣。😉
非常感谢米格尔·阿尔巴(Miguel Alba)指出这一关键疏漏。确实,我同意你的观点,这种方法论上的错误可能会对整个分析产生灾难性的影响。 我一定会修改实验设计,并发布一份关于不同数据源所产生影响的修正分析。
确实,三个臭皮匠,胜过一个诸葛亮。
新文章 克服机器学习的局限性(第二部分):缺乏可重复性已发布:
为了便于讨论,我随机选取了用于独立交易的两家经纪商。根据我们的社区准则,禁止推广经纪商,因此将他们的名字隐去,以“经纪商A”和“经纪商B”取而代之。
我使用MetaTrader 5的Python库,从这两家经纪商处获取了四年的欧元兑美元每日历史数据。复核后,我注意到时间戳并不一致:一家经纪商的数据可追溯到2019年9月,而另一家仅到2020年8月。尽管如此,两家经纪商都返回了1460行每日数据,精准地满足了我们的要求。
鉴于经纪商的分散性,他们的运营时区可能不同,这在意料之中。然而,但容易被忽视的是,夏令时转换、公共假期安排以及其他细微差异,都会导致时间戳无法完全对齐。
然后,我们计算了两家经纪商的10日欧元兑美元收益率,同一交易品种的数据特征存在显著差异。经纪商A的10日欧元兑美元平均收益率为0.000267,而经纪商B的平均10日收益率为-0.000352。这就意味着,对于同一标的资产,两者的预期收益率竟然相差了2.3倍之多。
更糟糕的是,经纪商A的预期收益率似乎比经纪商B的预期收益率风险高出21%。从两家经纪商之间的收益率方差也增长了相同的比例(即21%),可以看出这一点。
作者:Gamuchirai Zororo Ndawana