2018年5月11日金曜日
[MT4] pips とpoint の使い分け
Metatrader の point(s) と pip(s) の使い分け方について私見ですが書いてみようと思います。 まずは簡単に違いから。 > 詳しい違いについては以下を参考にしてください > > [MT4のpoint(ポイント)とpips(ピップス)の違い | MT4ラボ|メタトレーダーの使い方/EA・インジケーター検証](http://mt4.click/chart_sosa/point_pips_chigai/) ### pip pip(s) は為替取引で使われる単位で、**一般的には** 以下で表されます。 - 対円 0.01円 = 1pip - その他 0.0001 = 1pip ただし、ブローカーによっては、変動の最小単位(後に説明する Point と同等)を pip として扱っているところがある(らしい)ので注意が必要。 > 参考 > > - [FXのpipsについて - GBP/JPYの144.321では1pipsとはどこを指しますか?... - Yahoo!知恵袋](https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1331219748) > - [為替差益を「Pips」表記する理由 - FX初心者の外為入門](http://mituwasou.com/fxblog_beginner/free/pips-signage.html) ### point point(s) は Metatrader 独自の単位です 。 各通貨ペアで扱える最小変動幅を指します。 たとえば、以下の例だと - EURUSD $0.00001 = 1 point - USDJPY 0.001円 = 1 point となります。 重要なのは、この Point の値が **ブローカーによって異なる** ということ。 上記の数値は他のブローカーに接続すると変わる可能性があるのです。 ### どう使い分けるべきか あくまで私個人の意見ですが、基本的に MQL プログラムの中では pip は使わず point で統一するのが良いかと思います。 Metatrader の中に pip という概念はなく、全てが point で処理されているからです。 もちろん、一度 pip に変換することによってブローカー間の差分を吸収することが出来るというメリットはあります。 ただ、私個人は数年間 Metatrader を使ってきてそのメリットを感じたことがありません。 というのも、以下のルールを守っているからです。 - **point の値をハードコーディングしない** 。 このルールを守ることにより、ブローカーの差分は全てパラメータに出て行くので、それらを吸収する必要がありません。 例えば、スプレッドの最大値を設定したい場合、コードの中にその値を書くのではなく、パラメータにします 。 ```mq4 `first-line: 11; input uint MaxSpread = 0; // Max Spread (point) ``` このルールは point に限らず、あらゆるパラメータに適用しておくことで無用なトラブルを避けることができます。