確かに、カレンダーの標準機能は理解しにくい。著者がそれを理解し、記事で例を示したのは素晴らしいことだ。
しかし、提案されている高レベルのカレンダーAPIのシンプルさは明らかではないように思える。難しいのだ。
おそらく、カレンダー・アプリケーションで最も要求されるシナリオのリストを指定すべきだろう。そして、それを実装してみよう。
確かに、カレンダーの標準関数は理解しにくい。著者がそれを理解し、例を示したのは素晴らしいことだ。
しかし、提案されている高レベルのカレンダーAPIのシンプルさは、自明とは思えない。難しいのだ。
おそらく、カレンダー・アプリケーションで最も要求されるシナリオのリストを指定すべきだろう。そして、それを実装してみよう。
ご意見ありがとうございます。)
私の意見では、CiCalendarInfo クラスが 国、イベント、値の3つのエンティティを扱うという 事実が、認識の難しさの原因だと思います。 例えば、SBのトレードクラス CAccountInfo、 CSymbolInfoなどと比較すると 、各クラスには口座、シンボルなど1つのオブジェクトがあります。例えば、基本クラスCiCalendarBaseInfo、子孫クラスCiCalendarCountryInfo、CiCalendarEventInfo、CiCalendarValueInfo。しかし、最後の3つは構造体の形で類似している。だから、このアイデアはあきらめた。
おそらく、カレンダーを使用する最も一般的なシナリオのリストを定義する必要があるだろう。そして、それを実装してみる。
カレンダーのデータを使うという点では、アイデアの数だけあるはずだ。イベントのリリースに関するシンプルなインフォメーターを作ったり、カレンダー・パネルを作ったり、ニュース・リリースの時間を考慮して売買するExpert Advisorを作ったり。マクロ経済指標のデータを取り込み、ニューラルネットワークを使ってレートへの影響を調べることもできる。一言でビッグデータといっても
便利なのは、他の情報源に行く必要がないことだ。すべてがMQL5の環境でできる。
ドミトリー、ここに標準的な関数が あります。
int CalendarValueLast( ulong& change_id, // 識別子を変更する MqlCalendarValue& values[], // 値の説明を得るための配列 const string country_code=NULL, // ISO 3166-1アルファ2による国コード名 const string currency=NULL // 通貨コード名 );
これは、change_idが参照パラメータ であることを示しています。つまり、サーバーはそれを私たちに返します。これはサーバーの定数です。この値が変更された場合、カレンダー・データベースの状態が変更されたことを意味します。ドキュメントにEAの例があります。
そうです、change_id の最後の既知の値を送ることもできます。データベースの状態が変更されると、CalendarValueLast() 関数は新しいイベントの数を返し、 送信したchange_id を新しい値で上書きします。
- www.mql5.com
ヘルプで見つけた:
カレンダー値
change_id = 0 が関数に渡された場合、関数は常にゼロを返しますが、 カレンダー・ベースの現在の状態が change_id に返されます。
はい、そのようなことがあります。
インジケータの例では、prev_calculated==0のときにそのような行があります:
//--- チェンジIDを取得する MqlCalendarValue values[]; gPtrValuesInfo.ValueLastSelectByEvent(gChangeId, values);
そして、ここでは gChangeId=0 です。初期化ブロックの中でゼロになっています。しかし、prev_calculated==0になるたびにgChangeIdを リセットする方が正しいでしょう。そして、この変数をローカルにする。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事「MQL5クックブック - 経済指標カレンダー」はパブリッシュされました:
この記事では、経済指標カレンダーのプログラミング機能に焦点を当て、カレンダーのプロパティに簡単にアクセスしてイベント値を受け取るためのクラスの作成について考察し検討します。実用的な例として役立つように、CFTCの投機筋ネットポジションを使用して指標を開発します。
次の例で時系列構造体を処理してみましょう。Test_TS.mq5スクリプトは、2016年1月1日から2021年11月1日までの米国非農業部門雇用者数に関するデータを受け取り、それらを科学的なチャートに表示します。チャートが2つの曲線(実際の値と予測値)を持つようにしましょう。イベント報告期間をタイムラインとして使用します。
スクリプトを起動した後、最初に時系列値を操作ログに表示し、次にチャートに図を描画します(図2)。
図2 米国非農業部門就業者数(2016-2021)
作者: Denis Kirichenko