MT4 で指定したシンボル(USDJPY などの通貨ペア)に対して、成行注文や指値注文を出すには OrderSend 関数 を使用します。
MT4 バージョンと、MT5 バージョンでは関数のパラメータや戻り値が異なるので注意してください。
多くの環境では、まだ MT4 が使われているので、ここでは MT4 バージョンの OrderSend
関数の使い方を説明します。
OrderSend 関数 (MT4) の使い方
OrderSend のパラメーター
symbol
… 注文する通貨ペアのシンボル名。例えば、"USDJPY"
などを指定します。選択中のチャートのシンボルを使いたい場合は、Symbol()
を指定すれば OK です。cmd
… 注文の種類 (Order Properties) を指定します。OP_BUY
… 成行買いOP_SELL
… 成行売りOP_BUYLIMIT
… 指値買い(今より安くなったら買う)OP_SELLLIMIT
… 指値売り(今より高くなったら売る)OP_BUYSTOP
… 逆指値買い(今より高くなったら買う)OP_SELLSTOP
… 逆指値売り(今より安くなったら売る)
volume
… ロット数。多くの場合0.1
で 1 万通貨です。price
… 価格。例えば、1 ドル 110.5 円で売買するなら110.5
と指定します。スリッページを考慮するため、成行注文の場合でも指定する必要があります。slippage
… 最大許容スリッページ(ポイント)。price
で指定した価格から、どれだけずれて約定してもいいかをポイントで指定します。例えば、USDJPY が小数点以下 3 桁の価格まで表示される FX 会社の場合、1ポイント=0.001円 になります。プログラムで 1 ポイントがいくらかを調べる こともできます。stoploss
… 損切り価格(決済逆指値)。設定しない場合は 0。takeprofit
… 利食い価格(決済指値)。設定しない場合は 0。comment=NULL
… 注文のコメント。magic=0
… 注文のマジックナンバー。expiration=0
… 注文の有効期限。待機注文(指値/逆指値)のときのみ有効です。arrow_color=clrNONE
… 矢印の色。指定すると、ポジションをオープンしたときにチャート上に矢印が表示されます。
OrderSend 戻り値
OrderSend
関数は、注文に成功するとチケット番号を返します。注文に失敗すると、-1
を返します。
-1
が返された場合は、GetLastError()
を使ってエラーの原因を調べることができます。
OrderSend による注文の例
下記のサンプルスクリプトを実行すると、カレントチャートの通貨ペアを 0.01 ロット(USDJPY であれば通常 1000 通貨)成行注文で購入します。
関連記事
- MetaTrader/MQL: アカウント情報(口座情報)を取得する (AccountInfo*) (MT5)
- MetaTrader/MQL: GitHub で MetaTrader 用のプログラムを管理する
- MetaTrader/MQL: 基本データ型一覧
- MetaTrader/MQL: EA のマジックナンバーについて理解する
- MetaTrader/MQL5: シンボル名を取得する (Symbol, ChartSymbol, SymbolsTotal, SymbolName)
- MetaTrader/MQL: 表示しているチャートを列挙する (ChartFirst, ChartNext)
- MetaTrader/MQL: CTrade クラスで注文を出す (MT5)