インクルードファイル「 Order.mqh」に記載する処理の内容です。注文データからプロパティを受け取るためのプライベートメソッドを宣言し、実装しました。
注文/取引/ポジションの整数プロパティを取得するためのメソッド
・チケットを返す
・親注文チケットを返す
・子注文チケットを返す
・ポジションIDを返す
・反対側のポジションIDを返す
・開始時間(ミリ秒)を返す
・終了時間(ミリ秒)を返す
・型を返す
・方向別に型を返す
・実行タイプを返す
・注文の有効期限を返す
・注文の理由またはソース
・取引が実行された注文
・取引の方向 – IN, OUT, IN/OUT
・ストップロスによる決済のフラグを返す
・テイクプロフィットによる決済のフラグを返す
・開始時間を返す
・終了時間を返す
・有効期限を返す
・ポジション変更時間(秒)
・ポジション変更時間(ミリ秒)
注文/取引/ポジションの実数プロパティを取得するためのメソッド:
・始値を返す
・終値を返す
・利益を返す
・手数料を返す
・スワップを返す
・ボリュームを返す
・実行されていないボリュームを返す
・ストップロス価格を返す
・テイクプロフィット価格を返す
・リミット注文価格を返す(ストップリミット注文の発動
注文/取引/ポジションの文字列プロパティを取得するためのメソッド:
・銘柄を返す
・コメントを返す
・取引所によって使用されるIDを返す
次に、チケットがコンストラクタに渡された注文のすべてのプロパティを保存するメソッドを書き込んで、プロテクトされたクラスのコンストラクタを実装しましょう。
⇒プロテクトクラスのコンストラクタを実装する。
ループの中で履歴やマーケットの注文/取引/ポジションを渡したり、新しい注文/取引/ポジションを選択したりすると、COrder クラスから派生した新しいオブジェクトが作成されます。注文ステータスとチケットを特徴としたクラスコンストラクタは、注文チケットのみを受け取るクラスコンストラクタで呼び出されます。次に、注文のプロパティ配列は、上述のメソッドを使用して COrder クラスのコンストラクタに単純に入力されます。
このようにして、新しい注文/取引/ポジションはそれぞれ固有のプロパティを持つことになります。これらはすべてリストに格納されますが、そのようなリストを扱うことがこのライブラリの主な活動です。リストは、注文/取引/ポジションのプロパティのいずれかでソートすることができます。また、選択したリストから新しいリストを生成することも可能です。
この段階では、COrder抽象注文クラスの基本的な機能が実装されています。これは、様々なタイプの注文/取引/ポジションを格納するための基本クラスです。他のすべてのクラスは、注文/取引/ポジションの種類ごとに分けられたオブジェクトを作成するために、このクラスから派生します。
このライブラリは、データへのアクセスを簡素化し、プログラムの開発を容易にするために作成されています。
現在の状態では、GetProperty(XXX)という抽象的な注文のプロパティにアクセスするための3つのパブリックメソッドがあります。これらを利用することもできますが、特定のオーダーのプロパティを記述する列挙体のメンバ名を覚えておく必要があるため、あまり便利ではありません。そこで、必要なデータを取得するために、さらにいくつかのパブリックメソッドを追加します。これらのメソッドは、どのようなプロパティを取得できるのかが一目でわかるように、適切な名前を付けます。
これらのメソッドは、カスタムプログラムで、選択した注文/取引/ポジションのプロパティを読み取るために使用できます。
ポイント単位の利益を受信するメソッドの実装:
また、注文オブジェクトのいくつかのプロパティを記述するパブリックメソッドを追加して、必要に応じて便利な方法で表示できるようにしましょう。これらのメソッドを実装する前に、さらに別の問題を解決しましょう。このライブラリとそれをベースにしたプログラムは、さまざまなサービス機能を必要とします。例えば、今回のケースでは、時間をミリ秒単位で表示する機能と、2つの言語のうち1つでメッセージを受信する機能が必要です。メッセージの言語は、端末の言語に依存します。
コメントを残す