2018年5月11日金曜日

[MT4] pips とpoint の使い分け

Metatrader の point(s) と pip(s) の使い分け方について私見ですが書いてみようと思います。

まずは簡単に違いから。

詳しい違いについては以下を参考にしてください

MT4のpoint(ポイント)とpips(ピップス)の違い | MT4ラボ|メタトレーダーの使い方/EA・インジケーター検証

pip

pip(s) は為替取引で使われる単位で、一般的には 以下で表されます。

  • 対円 0.01円 = 1pip
  • その他 0.0001 = 1pip

ただし、ブローカーによっては、変動の最小単位(後に説明する Point と同等)を pip として扱っているところがある(らしい)ので注意が必要。

参考

point

point(s) は Metatrader 独自の単位です1。 各通貨ペアで扱える最小変動幅を指します。

たとえば、以下の例だと

  • EURUSD $0.00001 = 1 point
  • USDJPY 0.001円 = 1 point

となります。

重要なのは、この Point の値が ブローカーによって異なる ということ。 上記の数値は他のブローカーに接続すると変わる可能性があるのです。

どう使い分けるべきか

あくまで私個人の意見ですが、基本的に MQL プログラムの中では pip は使わず point で統一するのが良いかと思います。 Metatrader の中に pip という概念はなく、全てが point で処理されているからです。

もちろん、一度 pip に変換することによってブローカー間の差分を吸収することが出来るというメリットはあります。 ただ、私個人は数年間 Metatrader を使ってきてそのメリットを感じたことがありません。 というのも、以下のルールを守っているからです。

  • point の値をハードコーディングしない2

このルールを守ることにより、ブローカーの差分は全てパラメータに出て行くので、それらを吸収する必要がありません。

例えば、スプレッドの最大値を設定したい場合、コードの中にその値を書くのではなく、パラメータにします3

11
input uint     MaxSpread = 0; // Max Spread (point)

このルールは point に限らず、あらゆるパラメータに適用しておくことで無用なトラブルを避けることができます。

  1. pip が "Percentage in point" の略であることを考えると、かなりややこしい 
  2. というか、パラメータ全般、ハードコーディングしない 
  3. デフォルト値ではきちんと動作しないようにしています。それによってパラメータの設定忘れに気づきやすくするためです。 
?