EAを作成するには取引を行う必要があります。裁量のポジションを操作するEAも少なからずありますが、やはり自動売買できることがEAの醍醐味ですので重要な機能です。
EAにおける取引は覚えるべきことがいろいろありますが、引き続き最低限の情報で説明していきたいと思います。
ただし、ここに書かれていることは暗記する必要はありません。
なんかそんな感じだったよね!という点だけ頭に留め置いておくのがコツです。
読んで何書いてあるか分からない場合も、実際にEAを作成するときにここに書いてあったとだけ覚えておけば良いです。
取引について
取引には、指値注文もありますが今は省略して説明します。
指値注文については別の機会で説明とし、成り行き注文の説明を先にしていきます。
ただし、その前に取引に関する基本を説明します。
注意点
MT5の取引は、MT4の時と違いかなり複雑になっています。
複雑になった要因として両建てのできない「ネットアカウント(両建て禁止ではなく、両建ては反対の取引する定義=結果的に反対取引で相殺される)」だったり、取引にも成行、指値、カウントダウン、エクスチェンジといった種類の拡充があります。
必要に応じて説明をしますが、MT4からの移行を意識して両建ての出来る「ヘッジアカウント」の成行、指値(別途説明)から取引について説明していきます。
ここに書いてあることと動きが違うことがある場合も想定されるのですが、記述を省略したMT4とは違う点がありますのでご認識下さい。
成行注文
取引において、ポジションの注文を現在の価格で買ったり(BUY)売ったり(SELL)することを成行注文といいます。
その名の通り、成行(現在の価格)に従って取引する方法です。
現在の価格といっても、EAにおいては価格を指定して注文します。
価格を指定して注文しますが、その価格を待つ指値注文と違って、「今この価格で取引する」という要求です。
しかし、今この価格で取引すると要求しても、価格が違えば取引が出来ません。
指定した価格と乖離した価格で取引しても、リクォート(約定拒否)となります。
ただし、EAにおける成行注文にはある程度の誤差を許容する「スリッページ」を指定することが出来ます。
例えば「今100円で取引するが、1円の誤差は許容する」と要求するわけです。
その結果「99円~101円の誤差1円」の範囲なら取引成立(約定)します。
指定した価格とは違った価格で取引成立することを、すべりといいます。すべりの範囲を指定するのがスリッページということです。
ただし、指定した価格ではなく市場の価格で取引されるブローカー(口座の種類)もあることを念頭に置いておいてください。(指定した価格が無視されます)
成行決済
取引成立してポジションを保有できたことを約定といいます。
保有しているポジションを手放すことを決済といいます。
この決済を成行(現在の価格)に従って手放すことを成行決済といいます。
現在の価格といっても、EAにおいては価格を指定して決済します。
価格を指定して決済しますが、「今この価格で決済する」という要求です。
しかし、今この価格で決済すると要求しても、価格が違えば決済が出来ません。
指定した価格と乖離した価格で決済しても、リクォート(約定拒否)となります。
ただし、EAにおける成行決済にはある程度の誤差を許容する「スリッページ」を指定することが出来ます。
例えば「今100円で決済するが、1円の誤差は許容する」と要求するわけです。
その結果「99円~101円の誤差1円」の範囲なら決済成立します。
指定した価格とは違った価格で決済成立することを、すべりといいます。すべりの範囲を指定するのがスリッページということです。
ただし、指定した価格ではなく市場の価格で決済されるブローカー(口座の種類)もあることを念頭に置いておいてください。(指定した価格が無視されます)
取引に必要な情報
成行注文
成行注文をするために、最低限必要な情報(条件)が以下の5つです。
他にも成行注文で指定する条件はありますが、ここでは説明を省略します。
- 通貨
「USDJPY」「EURUSD」など、MT4の気配値表示に表示される「通貨ペア」です。
FXブローカー毎に、「USDJPYm」といった表現の通貨ペアがありますが、その通りの指定が必要です。 - 方向(BUY/SELL)
注文する売買の方向(BUY or SELL)が必要です。 - ロットサイズ
取引するポジションのサイズです。 - 価格
注文する際の価格です。
前述の通り、ブローカーによっては無視される場合もありますが、必須条件でも無視される場合でも動作するためには設定しておくべきです。 - スリッページ
すべりの許容範囲を指定します。
成行決済
成行決済をするために、最低限必要な情報(条件)が以下の4つです。
他にも成行決済で指定する条件はありますが、ここでは説明を省略します。
- 通貨
「USDJPY」「EURUSD」など、MT4の気配値表示に表示される「通貨ペア」です。FXブローカー毎に、「USDJPYm」といった表現の通貨ペアがありますが、その通りの指定が必要です。 - ロットサイズ
決済するポジションのサイズです。
MT4のときもありましたが、分割決済(一部の決済)も可能なので指定します。 - 価格
決済する際の価格です。
前述の通り、ブローカーによっては無視される場合もありますが、必須条件でも無視される場合でも動作するためには設定しておくべきです。 - スリッページ
すべりの許容範囲を指定します。
ポジション、オーダーの区別
MQL5の取引を複雑にしている(個人の意見)点として、ポジション(Position)とオーダー(Order)の明確な区別です。
MQL4において、その差がなかったわけではありませんが今後説明する組み込み関数(API)をポジションとオーダーで使い分ける必要が生じてきました。
簡単に区別しますと、
- ポジション
約定済み - オーダー
約定前
と覚えてください。
ややこしい例として、約定済みのポジションを保有するための取引は、約定前のオーダー系の組込み関数を使う必要があるという点です。
ここでは触れませんが、MQL4では区別していなかった決済済みのオーダー(MQL4でオーダーと表現していたのでオーダーと言っていますがMQL5のオーダーとは別)も区別されています。
コメント