記事「取引におけるニューラルネットワーク:多変量時系列予測のためのLSTMの最適化(最終回)」についてのディスカッション

 

新しい記事「取引におけるニューラルネットワーク:多変量時系列予測のためのLSTMの最適化(最終回)」はパブリッシュされました:

時系列解析および予測のための革新的な手法を提供するDA-CG-LSTMフレームワークの実装を引き続き進めます。CG-LSTMとデュアルアテンション(dual attention)機構を組み合わせることで、データに含まれる長期的および短期的な依存関係をより高い精度で検出できるため、金融市場の分析に特に有効です。

前述したように、DA-CG-LSTMフレームワークは、アテンションモジュールと改良型CG-LSTM再帰ブロックという2つの基本構成要素を中心に構築されています。これらを組み合わせることで、金融市場への適用に求められる柔軟性、ノイズ耐性、および複雑な多段階の時間的依存関係を捉える能力を備えた堅牢なアーキテクチャが実現されています。市場のボラティリティが高く、不確実性が大きい環境では、このような特性は単なる利点ではなく、信頼性の高い取引システムを構築するための不可欠な要件です。

前回の記事の実践的なセクションでは、MQL5CG-LSTMブロックを実装する手順について詳しく解説しました。完成したコンポーネントは、不要なノイズを除去する特徴量フィルタリング、長期的な情報を保持するための内部状態の効率的な管理、および複数の時間スケールにわたるデータの統合という、3つの重要な機能を実現しています。構造化されていないノイズを抑制しながら安定した学習を維持できるため、長期間の履歴データに対しても高い予測精度を維持するモデルを構築できます。

取引におけるニューラルネットワーク:多変量時系列予測のためのLSTMの最適化


作者: Dmitriy Gizlyk

 
自分の経験と感動を皆さんと共有したいと思います。まず、著者に心からの感謝と敬意を表します。あと1、2ヶ月前なら、このような記事を見て怖気づいていたでしょう。「自分には無理だ」と思っていたはずです。しかし今日、状況は一変しました。 ニューラルネットワークは、まさに現代の魔法です。自分でも信じられないのですが、今まさにこのニューラルネットワークを学習させるためのデータを収集しているところです。ちゃんと動いています。この2つの記事と、 ChatGPTの オリジナルガイド 投入しただけで、それが私を正しい方向へと導いてくれています。 それに、数年前から引き出しの奥に眠っていたあるインジケーターのアイデアがあった。MQLの知識がなかったため、Excelでしか形にできなかったものだ。 ところが、わずか数週間で、GrokとChatGPTを使ってMQL5でそれを実装することができました。そして、動作しています!実際に取引もしています!さらに今や、この独自のインジケーターに、この魔法のようなニューラルネットワークを直接組み込むことも可能になりました。 要するに、これほどまでに無限の可能性が瞬く間に広がったことに、私は感動で胸がいっぱいです。
 
ところで、ファームを接続した状態でResearchを実行すると、残念ながらファームはバイナリファイル(DACGLSTM.bd)をローカルのみに出力してしまいます。つまり、このファイルは共有されておらず、各コンピュータごとに独自のローカルファイルが存在することになります。 ニューラルネットワークがここでアイデアを提示してくれましたが、私は深く考えませんでした:

すべてのテストエージェントに、ネットワーク共有フォルダに1つの.bdファイルを書き込ませる方法 — 4つのステップ

  1. 共有フォルダ

    • 「メイン」PCに D:\DACShare を作成します。

    • 右クリック → 「アクセス」 → 「詳細」 → 共有リソース「DACGLSTM」を作成し、「Everyone」に対して読み取り/書き込み 権限を付与します。

    • 最終パス:\\MAINPC\DACGLSTM。

  2. サービス用アカウント

    • compmgmt.msc → 「ユーザー」 →mqlagent を追加(パスワードは任意)。

    • services.msc で、各MetaQuotes Tester Agent …→ 「ログオン」タブ → 「このアカウント」 → MAINPC\mqlagent を選択し、パスワードを入力して、サービスを再起動します。

  3. Researchのコード編集

    input string SharedRoot = "\\\\MAINPC\\DACGLSTM\\"; string FileName = SharedRoot + "trajectories"; int handle = FileOpen(FileName + ".bd", FILE_WRITE|FILE_BIN|FILE_SHARE); // FILE_COMMONの代わりに

    (読み取りの場合も同様の置換)。.ex5をコンパイルし、すべてのエージェントにコピーしてください。


  4. の確認 最適化を実行してください。各エージェントのログに次のようなメッセージが表示されます:
    Saved to: \\MAINPC\DACGLSTM\DACGLSTM.bd size=…
    共有フォルダを開いてください。各パスごとにファイルサイズが増加しています。

👉 これで、すべてのローカルおよびリモートエージェントが単一のデータバッファに書き込みを行うようになり、Study.mq5はどのマシンからでも、同じ.bdファイルを開くだけで学習できるようになります。

 

DACGLSTM.bdが どのように更新されるのか、よく分かりません

1ヶ月間隔でResearch を実行しています。 最適化は完全に行っています。最適化パラメータはAgent 1~8です。その後、翌月になっても…ファイルには全く書き込まれません。ファイルの日付は新しいテストの開始時にのみ更新されるだけで、ファイルサイズはそのままのままであることが確認できます。

 
Vladimir Sanin #:

DACGLSTM.bdが どのように更新されるのか、よく分かりません

1ヶ月間隔でResearch を実行しています。 最適化は完全に行っています。最適化パラメータはAgent 1~8です。その後、翌月になっても……ファイルには何も書き込まれません。ファイルの日付は新しいテストの開始時にのみ更新されるだけで、ファイルサイズはそのままです。

皆さんのDACGLSTM.bd ファイルのサイズと、1ヶ月あたりのトレード数を 教えてください

 
Andrey Yankin #:

DACGLSTM.bd ファイルのサイズと、1ヶ月あたりの取引件数を 教えてください

試行錯誤と数多くの試行を経て、現在800MBの軌跡データを蓄積することができました。10日間、1ヶ月、3・6・12ヶ月など、さまざまな期間を試してみました…… 2024年下半期の最後のシミュレーション実行後、ファイルサイズは200MBから800MB程度に増加しました。その後、2023年下半期も実行してみましたが、ファイルサイズは変わりませんでした。 半年間で約3000~3500件の取引が蓄積され、15分足を使用しています。すべてのティックを記録しています。より短い時間足では処理に非常に時間がかかり、現時点ではそこまで待つ準備ができていません。 そうそう、ちなみにMaxReplayBufferを500から1000000に増やしました。

 
Studyをどのように起動すればよいのか、単体テストモードで起動すべきか、それとも最適化モード で起動すべきか、よく分かりません。
 
Vladimir Sanin #:
Study

Studyはチャートに配置するだけです。設置後、データファイルを読み込み、最適化を開始します。チャートの左上隅に進行状況と結果が表示されます。

15分足チャートで、半年間で3000回の取引…… これは、ほぼ2本に1本のローソク足で取引が成立し、すべてが売り(Sell)であることを意味します。これを確認するには、視覚化機能付きの単一テストを実行するか、デモ口座にインストールしてみてください。取引は成立し、次のローソク足で決済されます。

 
Studyを単体テストで実行しました。反復回数100000(デフォルト)、バッチサイズ128。グラフィックカードはIntel UHD Graphics 730です。 日付の間隔は、ここでは全く関係がないのでしょうか?とにかく、起動はしたのですが、CPUとGPUがフル稼働しているものの、進行状況のパーセンテージは全く進まず、ただ「busy」と表示されたままです。どれくらい待てばいいのか分かりません。別の高性能なPCで、より高性能なグラフィックカードを搭載したものでも試してみます…
 
Andrey Yankin #:

Studyはグラフに配置するだけです。配置すると、データファイルを読み込み、その後最適化を開始します。グラフの左上隅には、進行状況と結果が表示されます。

15分足チャートで、半年間で3000回の取引…… これは、ほぼ2本に1本のローソク足ごとに取引が成立し、すべてが売り(Sell)であることになります。これを確認するには、可視化機能付きの単一テストを実行するか、デモ口座にインストールしてみてください。取引は成立し、次のローソク足で決済されます。

やはり、これをチャートに追加して、最適化を含むテストを実行する必要があるのでしょうか? 今はオンライン版の話ではないですよね? Studyにどの期間のデータを使えばいいのか分かりません。どれでも良いのでしょうか? 視覚化機能付きのテストを実行したところ、左上のデータは変化しているのが見えますが、チャート自体は動いていません。データのパーセンテージは同時に、均等に少しずつ増加しているのに、チャート自体は動いていないのです。


 
Vladimir Sanin #:
Study
Study はグラフのみ。