記事「機械学習の限界を克服する(第2回):再現性の欠如」についてのディスカッション

 

新しい記事「機械学習の限界を克服する(第2回):再現性の欠如」はパブリッシュされました:

本記事では、同一の戦略と金融銘柄を用いても、ブローカーによって取引結果が大きく異なる理由について探ります。その背景には、価格が分散的に形成されていることや、データの不一致があるためです。本記事は、MQL5開発者がMQL5マーケットプレイスで自らの製品に対して賛否両論の評価を受ける理由を理解し、透明性が高く再現可能な成果を確保するためには、特定のブローカーに合わせたアプローチを取る必要があることを示唆しています。この取り組みが広く受け入れられれば、コミュニティにとって重要な実務上のベストプラクティスへと発展する可能性があります。

今回の議論にあたり、私が個人的に取引で利用している2社のブローカーを無作為に選びました。コミュニティのガイドライン(ブローカー名の宣伝禁止)に従い、ここでは「ブローカーA」と「ブローカーB」と記載します。

MetaTrader 5のPythonライブラリを用いて、両ブローカーからEURUSDの日次データを4年分取得しました。その結果、タイムスタンプが一致していないことに気づきました。一方のブローカーは2019年9月まで遡るデータを返したのに対し、もう一方は2020年8月までしか遡れませんでした。しかし、どちらも1,460行のデータを返しており、形式的にはリクエスト通りでした。

ブローカーが異なれば運営上のタイムゾーンが異なることは想定内です。しかし、夏時間の適用、認識する祝日の違い、その他細かな相違が、タイムスタンプのずれをさらに複雑にします。

その後、両ブローカーのデータで10日間のEURUSDリターンを算出したところ、その数値的性質が一貫していないことが判明しました。ブローカーAの平均10日リターンは+0.000267、ブローカーBでは-0.000352となり、同一資産にもかかわらず期待リターンが約232%も異なる結果となったのです。

さらに問題を悪化させているのは、ブローカーAの期待リターンにはブローカーBよりも21%高いリスクが伴っていることです。これはリターン分散の比較により確認されました。 


作者: Gamuchirai Zororo Ndawana