MQL4で成り行き注文や待機注文を指定する定数の種類

成り行き注文と待機注文の定数

注文方法を指定する定数を紹介します。
ちなみに変数と数字の関係性は下記のようになっています。

#define OP_BUY 0

上記のような形でMQL4であらかじめ変数に数字を代入しており変更(新しく代入すること)が不可能となっている変数のことを定数(定義済み変数)と言います。

注文種類の定数リスト

  • OP_BUY //買いの成行注文
  • OP_SELL //売りの成行注文
  • OP_BUYLIMIT //買いの指値注文
  • OP_SELLLIMIT //売りの指値注文
  • OP_BUYSTOP //買いの逆指値注文
  • OP_SELLSTOP //売りの逆指値注文

数字でも指定できます。

  • 0 //買いの成行注文
  • 1 //売りの成行注文
  • 2 //買いの指値注文
  • 3 //売りの指値注文
  • 4 //買いの逆指値注文
  • 5 //売りの逆指値注文

指値や逆指値はOrderSend()関数で使用します。⇒(int cmd, //注文方法)
関連記事一覧:関数OrderSend(),定義済み変数_Point,関数Symbol()
関連記事一覧:↓
MQL4エラー130を即座に解決するやり方
MQL4エラー4108を防ぐために理解しておきたい注文時のことについて

int OrderSend(
	string symbol, //通貨ペア
	int cmd,       //注文方法
	double volume, //ロットサイズ
	double price,  //注文価格
	int slippage,  //許容スリッページ
	double stoploss,   //損切り価格
	double takeprofit, //利益確定価格
	string comment,    //コメント
	int magic,         //EAの識別番号
	datetime expiration, //有効期限
	color arrow_color    //チャート上のオブジェクトの色
);

OrderSend()関数の2番目の引数に指定してあげます。

買いの成行注文の定数

下記の2番目の引数をご覧下さい。OP_BUYとなっているので注文条件に合致したらその時のお値段で通貨を購入します。(買いポジションを持つ)
関連記事一覧:関数OrderSend(),定義済み変数_Point,関数Symbol(),関数MarketInfo()

int magic = 12345;

int Ticket = OrderSend(
	Symbol(), //開いているチャート且つ選択している通貨ペアを取得
	OP_BUY,   //注文方法 成行買い注文
	MarketInfo(Symbol(),MODE_MAXLOT), //業者の最大ロット
	Ask,       //現在の買値で注文
	30,  //30pointの許容スリッページ_Point
	0,   //損切り価格を指定しない
	0,   //利益確定価格を指定しない
	NULL,      //コメントはなし
	magic,     //EAの識別番号
	0,         //有効期限なし
	clrNONE    //オブジェクトを表示しない。省略可能
);

売りの成行注文の定数

こちらはOP_SELLとなっているので成行売りとなり注文条件に合致した際のお値段で売られます。(売りポジションを持つ)
ちなみにOP_SELLでも1と指定してもOKです。
関連記事一覧:関数OrderSend(),定義済み変数_Point,関数Symbol(),関数MarketInfo()

int magic = 12345;

int Ticket = OrderSend(
	Symbol(), //開いているチャート且つ選択している通貨ペアを取得
	OP_SELL,   //注文方法 成行売り
	MarketInfo(Symbol(),MODE_MINLOT), //業者の最小ロット
	Bid,       //現在の売値で注文
	30,  //30pointの許容スリッページ_Point
	0,   //損切り価格を指定しない
	0,   //利益確定価格を指定しない
	NULL,      //コメントはなし
	magic,     //EAの識別番号
	0,         //有効期限なし
	clrNONE    //オブジェクトを表示しない。省略可能
);

買いの指値注文の定数

指値注文って何?と思われた人もいるでしょう。
指値注文とはポジションにとって損失になる方向(上下方向)で約定する注文のことです。
ここでは買いポジションの指値注文ですから。現在の買いレートより下でお値段を指定して注文を出します。

例えば、現在のUSDJPYが108.00円だったとします。107.00で買いたいなと思ったら買いの指値注文(OP_BUYLIMIT)を使います。
いわゆる逆張りです。下記のサンプルでは107円で指値注文をだして106.5円で損切りを設定しています。
※1point=0.1pips換算です。
※詳しくは定義済み変数_Pointをご覧ください。

int magic = 12345;

int Ticket = OrderSend(
	Symbol(), //開いているチャート且つ選択している通貨ペアを取得
	OP_BUYLIMIT,   //注文方法 指値買い
	MarketInfo(Symbol(),MODE_MINLOT), //業者の最小ロット
	Ask-(1000*_Point),       //現在の買値より100pips下に指値注文
	30,  //30pointの許容スリッページ_Point
	Ask-(1000*_Point)-(500*_Point),   //損切り価格は指値買い注文の50pips下で注文
	0,   //利益確定価格を指定しない
	NULL,      //コメントはなし
	magic,     //EAの識別番号
	0,         //有効期限なし
	clrNONE    //オブジェクトを表示しない。省略可能
);

売りの指値注文の定数

指値注文はそのポジションの損失になる方向での注文なので現在の売値より上に指値注文を出します。

下記のサンプルでは、現在価格が108.00円だとすると109円に指値売り注文をだして損切りを109.5円に設定しています。

※1point=0.1pips換算です。
※詳しくは定義済み変数_Pointをご覧ください。

int magic = 12345;

int Ticket = OrderSend(
	Symbol(), //開いているチャート且つ選択している通貨ペアを取得
	OP_SELLLIMIT,   //注文方法 指値売り
	MarketInfo(Symbol(),MODE_MINLOT), //業者の最小ロット
	Bid+(1000*_Point),       //現在の売値より100pips上に指値注文
	30,  //30pointの許容スリッページ_Point
	Bid+(1000*_Point)+(500*_Point),   //損切り価格は指値売り注文の50pips上で注文
	0,   //利益確定価格を指定しない
	NULL,      //コメントはなし
	magic,     //EAの識別番号
	0,         //有効期限なし
	clrNONE    //オブジェクトを表示しない。省略可能
);

買いの逆指値注文の定数

さぁ逆指値注文とはなんでしょ?
そのポジションに対して利益なる方向お値段を指定して注文を出す方法です。
例えば、現在の買値が108.00円だったとします。利益になる方向ですので現在の買値より上に指定しないといけません。
サンプルでは100pips上に逆指値注文を置いたので、109円に逆指値注文で損切り価格は50pips下の108.5円、利食い価格は50pips上の109.5円に設定しています。
※1point=0.1pips換算です。
※詳しくは定義済み変数_Pointをご覧ください。

int magic = 12345;

int Ticket = OrderSend(
	Symbol(), //開いているチャート且つ選択している通貨ペアを取得
	OP_BUYSTOP,   //注文方法 逆指値買い
	MarketInfo(Symbol(),MODE_MINLOT), //業者の最小ロット
	Ask+(1000*_Point),       //現在の買値より100pips上に指値注文
	30,  //30pointの許容スリッページ_Point
	Ask+(1000*_Point)-(500*_Point),   //損切り価格は逆指値買い注文の50pips下で注文
	Ask+(1000*_Point)+(500*_Point),   //利食い価格は逆指値買い注文の50pips上で注文
	NULL,      //コメントはなし
	magic,     //EAの識別番号
	0,         //有効期限なし
	clrNONE    //オブジェクトを表示しない。省略可能
);

売りの逆指値注文の定数

売りポジションの逆指値は現在の売値より下に注文をおきます。
現在の売値が108.00円なら107円に逆指値注文をいれ、損切りは50pips上の107.5円に、利食い価格は106.5円に設定しています。
※1point=0.1pips換算です。
※詳しくは定義済み変数_Pointをご覧ください。

int magic = 12345;

int Ticket = OrderSend(
	Symbol(), //開いているチャート且つ選択している通貨ペアを取得
	OP_SELLSTOP,   //注文方法 逆指値売り
	MarketInfo(Symbol(),MODE_MINLOT), //業者の最小ロット
	Bid-(1000*_Point),       //現在の売り値より100pips下に注文
	30,  //30pointの許容スリッページ_Point
	Bid-(1000*_Point)+(500*_Point),   //損切り価格は逆指値売り注文の50pips上で注文
	Bid-(1000*_Point)-(500*_Point),   //利益確定価格は逆指値売り注文の50pips下で注文
	NULL,      //コメントはなし
	magic,     //EAの識別番号
	0,         //有効期限なし
	clrNONE    //オブジェクトを表示しない。省略可能
);

シェアする

  • このエントリーをはてなブックマークに追加

フォローする