レートの表示桁数の違い

FX業者には、レートを、

 

①小数点以下2桁・4桁まで表示する業者

②小数点以下3桁・5桁まで表示する業者

 

があります。

 

これに対応して、PIPSやPOINTの数え方も異なるので、EAを作成するときは注意が必要です。

 

まずは、基本的な理解をしましょう。

通貨ペア  2桁・4桁業者  3桁・5桁業者 
USD/JPY 1PIP 0.01円  1PIP  0.010円 
1POINT 0.01円  1POINT  0.001円 
EUR/USD  1PIP  0.0001ドル  1PIP  0.00010ドル 
1POINT  0.0001ドル  1POINT  0.00001ドル 

通常は、いずれの業者でも対応できるように、EAを作成する際に条件分岐をしてプログラムします。

 

もちろん、いろんなやり方がありますが、私はいつも以下のようなスタイルにしています。

 

まずは、グローバル領域に、

 

上のように記述します。

 

extern int SLIP = 3;

 

は、許容スリッページで、外部パラメーターによってユーザーが任意に変更できるためのものです。

 

その下の

 

double PIP = 0;

 

は、ピップス単位を代入する変数です。

 

いずれもグローバル領域で宣言しておきます。

次に、start()関数ではなくinit()関数に上のように記述します。

 

init()関数は、普段あまり使わない領域ですが、これは、ティックの変動のたびに読み込まれるstart()関数と異なり、EA挿入時に一度だけ読み込まれる領域で、ここへ記述することによって、start()関数の負担を減らして少しでもEAの稼働を速めるための工夫をしているわけです。

 

先ほど、あえてグローバル領域で

 

extern int SLIP = 3;

double PIP = 0;

 

と宣言しておいたのは、そのためです。

 

3桁・5桁業者であれば、PIPはPointの10倍、SLIPは指定値の10倍にし、2桁・4桁業者であれば、それぞれ1倍にします。

これで、

 

許容スリッページは、外部パラメーターにおいて常にピップス単位で指定することができ、指値幅なども、start()関数内において、たとえば、「25*PIP」という具合に常にピップス単位でプログラムしていくことができます。