5. MetaTraderで注文指示

Bookmark and Share

ここからはMetaTraderでプログラミングする際、必要になる関数をいろいろと紹介していきます。
プログラミングの経験がある方も、ここからは読んでくださいね!

1. そもそも「関数」って!?

 関数、なんだか聞き慣れない単語ですね。変数と同じように数学の時間習った記憶はあるが、何なのかよくわからない、そんな単語だと思います。

でも、安心してください。やはり「関数」も数学のそれとは意味が少し異なります。

関数を一言で説明すると、「機能」というとわかりやすいでしょう。
(そもそも「関数」も「機能」も英語"function"の訳語です) 

すなわち「関数」を使うことで注文を出す(発注)といった機能を使うことができる訳です。
「機能」を自分で作ることももちろんできるのですが、それはもう少し後で触れることにします。 

2. とりあえず、発注!

発注するための関数は、MetaTrader (MetaEditor)では、OrderSend()です。

前の章で以下のような行が出てきたのを思い出してください。

  1. OrderSend(Symbol(),OP_BUY,Lots,Ask,3,NULL,NULL,NULL,0,0,Blue);

さて、OrderSendに続くカッコ内の文字は何でしょうか?
これらは通常「引数」(ひきすう、Argument)と呼ばれ、関数のパラメータとなっています。

・・・何のことかさっぱりわかりませんね。

では想像してみてください。
OrderSend()だけが打ち込まれたとして、いったいコンピュータはどの通貨を買えばいいのでしょうか?
そもそも「買う(ロング)」のではなく、「売る(ショート)」のかも知れません。
何単位を取引するのかだって、指定しないとコンピュータはどうすることもできません。

カッコ内の文字は、そういった重要な情報をコンピュータに伝えるためのものです。
これは関数の内部で処理され、(関数に引数が渡る、といいます)コンピュータは必要な動作を行うことができます。

それでは上の例で、それぞれの引数が持つ意味を見ていきましょう。以下、各番号は引数の順番に対応しています。

  1. 通貨ペア Symbol() - データの型: 文字列(string)
    取引するべき通貨ペア」を表します。
  2. 参入方向 OP_BUY
    買い(ロング)」で市場に参入することを表します。
    売り(ショート)」では"OP_SELL"を入力します。
  3. 取引量 Lots - データの型: 小数(double)
    取引する通貨の量」を指定します。上記の例では、あらかじめ変数Lotsを定義しておく必要があります。
    たとえば0.1を入力すると、0.1建玉すなわち10,000通貨単位の取引が行われます。
  4. 取引値 Ask - データの型: 小数(double)
    取引を行う値段」を表します。通常買いの時にはAsk、売りの時にはBidを指定します。
    Ask、Bidは特殊変数です。それぞれ現在の売値、買値を表します。
  5. スリッページ 3 - データの型: 整数(integer)
    スリッページ」すなわち上の取引を行う値段から、いくら離れた値段までなら取引を実行するかを指定します。
    単位は「ポイント(pips)」です。これは値段の情報がコンピュータに届くまでの、タイムラグ対策として使われます。
  6. ストップロス NULL - データの型: 小数(double)
    6番目のNULLは、StopLossを表しています。指定しない場合は上のようにNULLを入力します。
  7. テイクプロフィット NULL - データの型: 小数(double)
    7番目のNULLは、TakeProfitを表しています。指定しない場合は上のようにNULLを入力します。
  8. コメント NULL - データの型: 文字列(string)
    8番目のNULLは、コメントを表しています。当該取引が行われた際に、何らかのコメントを表示させたい場合、ここに記入します。指定しない場合は上のようにNULLを入力します。
  9. マジックナンバー 0 - データの型: 整数(integer)
  10. 有効期限 0 - データの型: 日付(datetime)
  11.  0 - データの型: 色コード(color)

下の3つ(9~11)に関しては、今は使わないですし話が難しくなるので、とりあえずそんなものがあるのか、程度に考えてください。