記事「知っておくべきMQL5ウィザードのテクニック(第21回):経済指標カレンダーデータによるテスト」についてのディスカッション

 

新しい記事「知っておくべきMQL5ウィザードのテクニック(第21回):経済指標カレンダーデータによるテスト」はパブリッシュされました:

経済指標カレンダーのデータは、デフォルトではストラテジーテスターのエキスパートアドバイザー(EA)でテストすることはできません。この制限を回避するために、データベースがどのように役立つかを考察します。そこでこの記事では、SQLiteデータベースを使用して経済指標カレンダーのニュースをアーカイブし、ウィザードで組み立てられたEAがこれを使用して売買シグナルを生成できるようにする方法を探ります。

経済データは、伝統的な指標、カスタム指標、その他のプライスアクションツールなどの形でより普及している「テクニカル」とは対照的に、証券の「ファンダメンタルズ」に傾いているため、取引システムのエッジや優位性の源となる可能性があります。これらの「ファンダメンタルズ」は、インフレ率、中央銀行金利、失業率、生産性データ、その他多くのニュースデータという形をとることができ、これらは通常、リリースがあるたびにボラティリティを示すように、証券価格に大きな影響を与えます。最も有名なのは、ほぼ毎月第一金曜日に発表される非農業部門雇用者数でしょう。さらに、必要なスポットライトが当たらず、ほとんどのトレーダーが見落としている重要なニュースデータが他にもあることは間違いません。だからこそ、これらの経済ニュースデータに基づいて戦略をテストすることで、これらのデータのいくつかを発見することができ、その結果、見込みのあるトレーダーに優位性をもたらすことができます。 


SQLiteデータベースはMetaEditor IDE内で作成することができます。それらはデータリポジトリであるため、理論上は、指標バッファとして機能するように、EAのデータソースとしてこれらを使用することができるはずです。しかし、それ以上に、経済データをローカルに保存することができ、オフラインでのテストや、ニュースデータソースが未知の理由で破損した場合にも使用することができます。これは、一部の(または必然的にほとんどの)データポイントが古くなるにつれて、継続的なリスクとなります。そこでこの記事では、SQLiteデータベースを使用して経済指標カレンダーのニュースをアーカイブし、ウィザードで組み立てられたEAがこれを使用して売買シグナルを生成できるようにする方法を探ります。

作者: Stephen Njuki

 

EAをテストし最適化するための組み込みの経済カレンダーのキャッシュは、algotrading bookで 説明されています。

イベントを読み込む実装(CSignalEconData::Read)は非効率的で、実用的ではありません。

追記テスターからSQLiteを操作するためには、データベースをコモンフォルダに作成/配置し、DATABASE_OPEN_COMMONフラグで開く必要があります。

MQL5 Book: Advanced language tools / Economic calendar / Transferring calendar database to tester
MQL5 Book: Advanced language tools / Economic calendar / Transferring calendar database to tester
  • www.mql5.com
The calendar is available for MQL programs only online, and therefore testing news trading strategies poses some difficulties. One of the solutions...
 
Stanislav Korotky #:

イベントを読み込む実装(CSignalEconData::Read)は非効率的で、ほとんど役に立ちません。

このフレーズの下に何が隠されているのでしょうか?効率はどのように測られるのですか?

 
Aleksey Vyazmikin #:

この言葉の下に何が隠されているのか?効率はどのように測られるのか?

特定の日時の検索は、呼び出すたびにイベントの配列全体をループすることで実装されており、幾何級数的にCPUに負荷をかける。さらに、各反復でStringToTimeとStringToDoubleが呼び出される。

数千の経済イベントが1年以上続くようなテストでは、最適化について言うまでもないが、著しく遅くなるだろう。

 
Stanislav Korotky #:

特定の日付時刻の検索は、呼び出しごとにイベントの配列全体を直接ループすることで実装されており、プロセッサに指数関数的な負荷がかかる。さらに、StringToTimeとStringToDoubleが各反復で呼び出される。

数千の経済イベントを1年以上テストする場合、最適化するまでもなく、これは著しく遅くなる。

ご説明ありがとうございます。