記事「MQL5で自己最適化エキスパートアドバイザーを構築する」についてのディスカッション

 

新しい記事「MQL5で自己最適化エキスパートアドバイザーを構築する」はパブリッシュされました:

どのような市場にも対応できる専門的なエキスパートアドバイザー(EA)を構築します。

現在の市場環境に適応できる取引ボットを開発することは、安定したアルゴリズム取引戦略の鍵となります。私たちの目標は、数個の銘柄に限定した狭い範囲のボットを作ることではありません。学習能力を備え、どのような取引銘柄にも適応できるシステムを設計するつもりです。このガイドでは、MQL5を使用して、どのような取引環境にも自己最適化できるボットを開発することに焦点を当てています。

MQL5は、ある種の信念に反して、このタスクに理想的に適しています。そのAPIは広範な行列関数とベクトル関数を提供し、コンパクトな機械学習モデルの作成を可能にします。この紹介では、自己最適化ボットを構築するためにMQL5を使用することに重点を置いています。オブジェクト指向プログラミングのアプローチは、反復的なコーディングを減らし、さまざまな時間枠や市場条件への適応性を高めます。

ONNXやPythonのような代用品ではなく、MQL5の行列とベクトルの機能を選択することには、かなりの利点があります。ONNXモデルを使用する場合、各取引銘柄ごとに個別のモデルインスタンスが必要となり、時間枠の調整など細かなパラメータ変更のために新しいモデルが必要となります。しかしMQL5は、様々な条件下で多数のモデルを管理する必要なく、適応性を提供します。

作者: Gamuchirai Zororo Ndawana

 

この情報を分かち合ってくれて、また時間を割いてとても楽しく読みやすく説明してくれて、本当にありがとう。素晴らしい。

ありがとう、

アントニオ

 
Antonio Simon Del Vecchio #:

この情報を分かち合ってくれて、また時間を割いてとても楽しく読みやすく説明してくれて、本当にありがとう。素晴らしい。

ありがとう、

アントニオ

アントニオ、ご親切にありがとう。
 
これは素晴らしく、タイミングが良く、私たちのEAトレーディングの時代に適切です。

あなたは最高です :-)
 
Douglas I #:
これは素晴らしく、タイミングが良く、私たちのEAトレーディング時代に適切です。

あなたは最高です :-)
ダグラスさん、ありがとうございます。

行きましょう🔥。
 

今回も非常にユニークなアプローチを投稿してくれてありがとう。私はその鑑定を理解し、実行することに興奮しています。私はこのような有益な説明と一緒に来て、それは読む喜びであり、私の理解を大幅に向上させます。これを作成するために費やされたあなたの時間に感謝

ニール

 
linfo2 #:

今回も非常にユニークなアプローチをありがとう。私はその鑑定を理解し、実行することに興奮しています。私はこのような有益な説明と一緒に来て、それは読む喜びであり、私の理解を大幅に向上させます。あなたがこれを作成するために費やした時間に感謝

ニール

ニール、ありがとう。ラシッドや他のコンテンツモデレーターのように、舞台裏で助けてくれる人たちがたくさんいるからこそ、このようなことが可能になるのだ。価値を高めることができたならうれしい。実際、それが唯一の目標だ。

 
週末に LinearRegressionEA を試してみると、LinearRegression,mqh, class Predict() metod thus returns undefined -nan, doing back testing inStrategy Tester.
その時点でメソッド Trained() が true を返しています。
取引時間外であることと関係があるのでしょうか?

UPDATE:ヒストリカルデータの問題だと思われます。私は'real ticks'モードで実行しています。1ヶ月後のデータでバックテストを試してみると、うまくいきました。未定義のデータが検出されないようにするコードを追加できるかどうか試してみます。m[0]とd[0]が未定義であることをチェックするコードはあるのですが、もっと必要かもしれません。明日確認してみよう。



 
Gunnar Forsgren Strategy Tester. その時点でメソッド Trained() が true を返しています。 取引時間外であることと関係があるのでしょうか?UPDATE:ヒストリカルデータの問題だと思われます。私は'real ticks'モードで実行しています。1ヶ月後のデータでバックテストを試してみると、うまくいきました。未定義のデータが検出されないようにするコードを追加できるかどうか試してみます。m[0]とd[0]が未定義であることをチェックするコードはあるのですが、もっと必要かもしれません。明日確認してみよう。







私の'毎ティック'バックテスト観測は、シンボル・リストからティックとバーの履歴データ・ファイルを明示的にエクスポートし、テスターが参照するファイル・パスに保存することで解決しました。
ファイルはテストが実行される日数の範囲をカバーする必要があります。
デフォルトでは、テスターはテストを実行するたびにこのデータをネットからダウンロードしますが、どうやらこれは信頼できないことがあるようです。
通常、最初にテスターにローカルで参照させようとすると、適切なパスが分かるようになるまで、ファイルパスのアクロバティックな操作が必要になる。
例として、私の場合、Windowsのパスは "C:◆Users<ユーザー名>Appdata◆Roaming◆MetaQuotes◆Terminal◆CommonFiles "である。
この投稿がヒントになった: https://www.mql5.com/en/forum/367098#comment_21816898

Where to locate files for Strategy tester to find them
Where to locate files for Strategy tester to find them
  • 2021.04.12
  • Anthony Eric Gillon Dawson
  • www.mql5.com
MT5 has a very bizarre way of handling files...
 
Gunnar Forsgren Strategy Tester. その時点でメソッド Trained() が true を返しています。 取引時間外であることと関係があるのでしょうか?UPDATE:ヒストリカルデータの問題だと思われます。私は'real ticks'モードで実行しています。1ヶ月後のデータでバックテストを試してみると、うまくいきました。未定義のデータが検出されないようにするコードを追加できるかどうか試してみます。m[0]とd[0]が未定義であることをチェックするコードはあるのですが、もっと必要かもしれません。明日確認してみよう。







あなたの積極的なアプローチには好感が持てる。おっしゃる通り、過去のデータをフェッチしようとすると、いくつかの例外が発生する可能性があります。たとえば、取引セッションの途中でタイムフレームを変更しようとすると、「-nan」問題が再び発生する可能性があります。


メッセージをわかりやすく保つことと、私が観察したバグをすべて修正することとは、本質的にトレードオフの関係にありました。もし後者を選んだとしたら、コードは必然的に複雑になり、現在のようにわかりやすくなかったかもしれない。だから、私は、あなたがそれを素早く拡張できるようにすることを意図して、それを簡単にフォローし続けることにしました。

あなたのソリューションはとても期待できそうですね。

 
Gunnar Forsgren #:

私の "毎ティック "バックテスト観察は、シンボルリストからティックとバーの履歴データファイルを明示的にエクスポートし、テスターが参照するファイルパスに保存することで解決しました。
ファイルはテストが実行される日数の範囲をカバーする必要があります。
デフォルトでは、テスターはテストを実行するたびにこのデータをネットからダウンロードしますが、どうやらこれは信頼できないことがあるようです。
通常、最初にテスターにローカルで参照させようとすると、適切なパスが分かるようになるまで、ファイルパスのアクロバティックな操作が必要になる。
例として、私の場合、Windowsのパスは "C:◆Users<ユーザー名>Appdata◆Roaming◆MetaQuotes◆Terminal◆CommonFiles "である。
この投稿はヒントを提供した: https://www.mql5.com/en/forum/367098#comment_21816898

確かに、ローカルにデータを持つことは大きな改善だ。ローカルにデータを持つことで、線形回帰の係数を修正するだけでなく、テクニカル指標のパラメータをその場で最適化できるようになる。

リンクを共有してくれてありがとう。時間を見つけて調べてみます。