【MT5のワンティップ】メタトレーダー5のコンストラクタと列挙型

日本からグローバル展開を目指すトレーダーに最適
キャンペーンなし、本格派のための本物ブローカー
ゴールドと暗号資産に強い

インジケーターの開発をいたしました。暗号資産にも使える!ぜひご覧ください。
MT5 短期トレード検証用インジケーター【コストアナリシス】
スプレッド水準を把握しながら取引できるインジケーターです。①デイトレード・スキャルピングの際の価格変動対コストの把握や、②トレード可能な商品の選定にも使えます。※MT5のみです。

暗号資産取引所は米国発のFTXをお勧めします。
トレーダーのための取引所でサードパーティーのアルゴボットの提供が豊富です。

初期化に使用されるのがコンストラクタであり、構造体またはクラスのオブジェクトを作成する時に自動的に呼び出されます。コンストラクタ名は、構造体/クラス名と一致する必要があります。

//+——————————————————————+
//| 日付を操作するクラス                                                   |
//+——————————————————————+
class MyDateClass
 {
private:
  int               m_year;         // 年
  int               m_month;         // 月
  int               m_day;           // 日
  int               m_hour;         // 時間
  int               m_minute;       // 分
  int               m_second;       // 秒
public:
  //— デフォルトコンストラクタ
                    MyDateClass(void);

以下の「Defines.mqh」というインクルードファイルをプロジェクトのルートフォルダに置きます。オブジェクトのフィールドをすぐに初期化するために、プライベートのコンストラクタを作成します。オブジェクトの種類(ステータス)とチケットは、後で識別するためにその情報が渡されます。

この「Defines.mqh」というインクルードファイルには、ライブラリに必要なすべての列挙型、マクロ置換、定数、構造体が格納されています。現在、注文状況を記述する列挙型と、「注文、取引、ポジション」のパラメータを記述する列挙型が必要です。注文のパラメータには、整数、実数、文字列の3つの列挙型があります。

※列挙型=いくつかの定数をひとまとめに定義することができる

//+------------------------------------------------------------------+
//| 抽象注文型(ステータス)                                     |
//+------------------------------------------------------------------+
enum ENUM_ORDER_STATUS
  {
   ORDER_STATUS_MARKET_PENDING,                             // 現在の未決注文
   ORDER_STATUS_MARKET_ACTIVE,                              // アクティブな成行注文
   ORDER_STATUS_HISTORY_ORDER,                              // 履歴成行注文
   ORDER_STATUS_HISTORY_PENDING,                            // 削除された未決注文
   ORDER_STATUS_BALANCE,                                    // 残高操作
   ORDER_STATUS_CREDIT,                                     // クレジット操作
   ORDER_STATUS_DEAL,                                       // 取引
   ORDER_STATUS_UNKNOWN                                     // 未知のステータス
  };
//+------------------------------------------------------------------+
//| 注文、取引、ポジションの整数型プロパティ                     |
//+------------------------------------------------------------------+
enum ENUM_ORDER_PROP_INTEGER
  {
   ORDER_PROP_TICKET = 0,                                   // 注文チケット
   ORDER_PROP_MAGIC,                                        // 注文マジック
   ORDER_PROP_TIME_OPEN,                                    // 開始時間
   ORDER_PROP_TIME_CLOSE,                                   // 決済時間
   ORDER_PROP_TIME_EXP,                                     // 注文有効期限(未決注文用)
   ORDER_PROP_TYPE,                                         // 注文と取引タイプ
   ORDER_PROP_STATUS,                                       // 注文ステータス(ENUM_ORDER_STATUS列挙体から)
   ORDER_PROP_REASON,                                       // 取引/注文/ポジション理由またはソース
   ORDER_PROP_POSITION_ID,                                  // ポジションID
   ORDER_PROP_POSITION_BY_ID,                               // 反対側のポジションID
   ORDER_PROP_DEAL_ORDER,                                   // 取引が実行された注文
   ORDER_PROP_DEAL_ENTRY,                                   // 取引の方向 – IN、OUT、IN/OUT
   ORDER_PROP_TIME_OPEN_MSC,                                // 開始時間(ミリ秒)
   ORDER_PROP_TIME_CLOSE_MSC,                               // 決済時間(ミリ秒)(実行または削除の時間 - ORDER_TIME_DONE_MSC)
   ORDER_PROP_TIME_UPDATE,                                  // ポジション変更時間(秒)
   ORDER_PROP_TIME_UPDATE_MSC,                              // ポジション変更時間(ミリ秒)
   ORDER_PROP_TICKET_FROM,                                  // 親注文チケット
   ORDER_PROP_TICKET_TO,                                    // 派生注文チケット
   ORDER_PROP_PROFIT_PT,                                    // 利益(ポイント)
   ORDER_PROP_CLOSE_BY_SL,                                  // ストップロスによる決済のフラグ
   ORDER_PROP_CLOSE_BY_TP,                                  // テイクプロフィットによる決済のフラグ
   ORDER_PROP_DIRECTION,                                    // 方向(買または売)
  };
#define ORDER_PROP_INTEGER_TOTAL    (22)                    // 整数型プロパティの総数
//+------------------------------------------------------------------+
//| 注文、取引、ポジションの実数型プロパティ                            |
//+------------------------------------------------------------------+
enum ENUM_ORDER_PROP_DOUBLE
  {
   ORDER_PROP_PRICE_OPEN = ORDER_PROP_INTEGER_TOTAL,        // 始値(MQL5取引価格)
   ORDER_PROP_PRICE_CLOSE,                                  // 終値
   ORDER_PROP_PROFIT,                                       // 利益
   ORDER_PROP_COMMISSION,                                   // 手数料
   ORDER_PROP_SWAP,                                         // スワップ
   ORDER_PROP_VOLUME,                                       // ボリューム
   ORDER_PROP_VOLUME_CURRENT,                               // 実行されていないボリューム
   ORDER_PROP_SL,                                           // ストップロス価格
   ORDER_PROP_TP,                                           // テイクプロフィット価格
   ORDER_PROP_PROFIT_FULL,                                  // 利益+手数料+スワップ
   ORDER_PROP_PRICE_STOP_LIMIT,                             // ストップリミット注文が発動した際のリミット注文価格
  };
#define ORDER_PROP_DOUBLE_TOTAL     (11)                    // 実数型プロパティの総数
//+------------------------------------------------------------------+
//| 注文、取引、ポジションの文字列型プロパティ                          |
//+------------------------------------------------------------------+
enum ENUM_ORDER_PROP_STRING
  {
   ORDER_PROP_SYMBOL = (ORDER_PROP_INTEGER_TOTAL+ORDER_PROP_DOUBLE_TOTAL), // 注文銘柄
   ORDER_PROP_COMMENT,                                      // 注文コメント
   ORDER_PROP_EXT_ID                                        // 外部取引システムの注文ID
  };
#define ORDER_PROP_STRING_TOTAL     (3)                     // 文字列型プロパティの総数
//+------------------------------------------------------------------+

上記の赤文字親注文チケット、派生注文チケット、利益(ポイント)、ストップロスまたはテイクプロフィットによる決済のフラグ、利益+手数料+スワップを考慮した方向)のプロパティが追加されています。

これらのデータは取引戦略ロジックでよく使用されるため、抽象注文フィールドに格納するだけでなく、カスタムプログラムですぐに更新・受信できるようにしなければなりません。すべての注文プロパティ(整数、実数、文字列)をまとめるには、各プロパティタイプの3つの列挙のそれぞれにパラメータの数を含むマクロ置換を作成します。

整数型プロパティの列挙型の番号付けはゼロから始まりますが、他のプロパティの列挙型の番号付けは前のプロパティの総数から始まります。したがって、必要なプロパティのインデックスは常に、要求されたプロパティの番号と、この列挙の初期プロパティの番号の差として取得できます。

Print Friendly, PDF & Email

日本からグローバル展開を目指すトレーダーに最適
キャンペーンなし、本格派のための本物ブローカー
ゴールドと暗号資産に強い

インジケーターの開発をいたしました。暗号資産にも使える!ぜひご覧ください。
MT5 短期トレード検証用インジケーター【コストアナリシス】
スプレッド水準を把握しながら取引できるインジケーターです。①デイトレード・スキャルピングの際の価格変動対コストの把握や、②トレード可能な商品の選定にも使えます。※MT5のみです。

暗号資産取引所は米国発のFTXをお勧めします。
トレーダーのための取引所でサードパーティーのアルゴボットの提供が豊富です。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

ABOUTこの記事をかいた人

当サイトは、システムトレードに関する専門的な知識、技術、経験を皆様と共有することで、真剣なトレーダーの方々にインスピレーション(アイデアの源泉)の供給をいたします。トレーダーの競争力強化に焦点をあて、トレーディングシステムの構築を目的としてその普及に貢献します。 詳細は「概要とサービス内容」をご覧下さい。 ご要望はこちらで承ります。