yuki
yuki
EAのパラメータに「30」と入力しても、それが30pipsなのか30pointsなのかで、損切り幅やエントリー間隔は大きく変わります。
カオチャイ
カオチャイ
FX通貨ペアでは問題なく動いていたEAが、ゴールドへ入れた途端に注文しなくなる原因にも関係するのですね。
この記事でわかること
  • MT4におけるpointの意味
  • pipsとpointsの違い
  • 桁数によって1pipあたりのpoints数が変わる理由
  • ゴールドなどのCFDで計算がずれる原因
  • EAを複数銘柄へ対応させる際の確認項目

pipsとpointsの違いを先に整理

MT4では、pipsとpointsは同じ意味ではありません。

pointは、MT4が銘柄ごとの価格を扱うために使用する内部単位です。一方のpipは、FXの値幅を人が分かりやすく表すために使う慣用的な単位です。

  • point:MT4が銘柄ごとに持っている価格精度の単位
  • pip:FXの値幅や損益を比較するために使われる単位

5桁表示のEUR/USDでは、通常1pipが10pointsです。

しかし、4桁表示のEUR/USDでは1pipと1pointが同じになります。パラメータへ同じ数値を入力しても、EAがpipsとpointsのどちらで計算しているかによって、実際の値幅が変わります。

MT4のpointとは

MT4におけるpointは、その銘柄の価格精度を表す単位です。

たとえば、EUR/USDが小数点以下5桁まで表示されている場合、末尾の1桁にあたる0.00001が1pointです。

USD/JPYが小数点以下3桁まで表示されている場合は、0.001が1pointになります。

レート表示例 桁数 1point
EUR/USD 1.08542 小数点以下5桁 0.00001
EUR/USD 1.0854 小数点以下4桁 0.0001
USD/JPY 157.246 小数点以下3桁 0.001
USD/JPY 157.24 小数点以下2桁 0.01

MQL4では、現在のチャート銘柄のpointを「Point」または「_Point」で取得できます。

※複数銘柄を同時に扱うEAでは、現在のチャート以外の銘柄に「Point」や「_Point」を流用せず、MarketInfo()で対象銘柄のMODE_POINTなどを個別に取得します。

そのため、固定値で0.00001や0.001を指定するより、MT4から銘柄情報を取得して計算する方が、異なる桁数へ対応しやすくなります。

pointと実際の最小値動きは同じとは限らない

注意したいのは、pointが価格表示上の単位であり、常に実際に約定できる最小価格幅と一致するとは限らないことです。

特にゴールド、株価指数、エネルギーなどのCFDでは、価格の小数点以下の桁数とは別に、取引可能な値幅としてティックサイズが設定されていることがあります。

EAをCFDへ対応させる場合は、pointだけでなく、銘柄のティックサイズや最小ストップ距離も確認する必要があります。

pointsを基準に計算していれば、すべての銘柄で必ず動くというわけではありません。

注文価格を銘柄仕様に合わない幅で計算すると、エントリー条件を満たしていても注文が拒否されることがあります。

MT4のpipsとは

pipは、FX通貨ペアの値幅を比較しやすくするために使われる単位です。

一般的なFX通貨ペアでは、次のように扱われます。

  • 円を含まない主要通貨ペア:1pip=0.0001
  • 円を含む主要通貨ペア:1pip=0.01

EUR/USDが1.0850から1.0851へ上昇した場合は、1pipの上昇です。

USD/JPYが157.20から157.21へ上昇した場合も、1pipの上昇となります。

pipはMT4が内部で共通管理している単位ではありません。EAやインジケーターの開発者が、銘柄の桁数などを確認してpointから換算します。

1pipは何pointsになるのか

1pipあたりのpoints数は、FX会社が採用しているレートの桁数によって変わります。

銘柄例 表示桁数 1pip points換算
EUR/USD 5桁 0.0001 10points
EUR/USD 4桁 0.0001 1point
USD/JPY 3桁 0.01 10points
USD/JPY 2桁 0.01 1point

現在は5桁・3桁表示のFX会社が多いため、「1pip=10points」と説明されることが増えています。

ただし、これはすべての銘柄に共通するルールではありません。

yuki
yuki
FX通貨ペアだけを扱うEAでは、3桁・5桁なら10倍、2桁・4桁なら1倍という換算をよく使います。ただし、この方法をそのままゴールドへ持ち込むと計算が合わないことがあります。

ゴールドやCFDではpipの定義が統一されていない

FX通貨ペアでは、1pipの扱いがある程度共通しています。

一方、XAU/USDなどのCFDでは、「1pipをいくらとするか」がFX会社やツールによって異なる場合があります。

たとえば、同じゴールドでも、0.01ドルの値動きを1pipと呼ぶツールもあれば、0.1ドルを1pipとして扱うものもあります。

そのため、パラメータに「StopLoss=50pips」と表示されていても、実際の損切り幅はEAの換算方法によって変わります。

ゴールドへEAを入れる前に、パラメータの単位がpips、points、価格差のどれなのかを確認してください。

pips前提のEAがゴールドで動かない主な原因

pips表記を使っていること自体が、ゴールドやCFDでEAが動かない原因ではありません。

問題になるのは、FX通貨ペアの3桁・5桁表示だけを前提に、pointからpipへの換算倍率を固定している場合です。

pips表記を使用したEAのパラメータパラメータがpips表記になっているEAの例

FX通貨ペア向けのEAでは、次のような換算がよく使われます。

  • 3桁・5桁表示:1pip=10points
  • 2桁・4桁表示:1pip=1point

この処理をXAU/USDへそのまま使うと、開発者が想定した値幅と実際の価格差が一致しないことがあります。

yuki
yuki
ゴールドは、同じ銘柄名でもFX会社によって表示桁数やティックサイズが異なります。通貨ペアで動いていたEAをそのまま入れると、損切り幅や利確幅が想定から大きくずれることがあります。

損切り・利確価格がずれる

EA内部で「50pips」を価格へ変換する処理が銘柄仕様に合っていないと、想定より近い位置や遠い位置へストップロスが設定されます。

たとえば、利用者は0.5ドル幅を想定していても、EA内部では5ドル幅として計算されることがあります。

反対に、損切り価格が現在値へ近づきすぎると、FX会社が設定している最小ストップ距離を満たせず、注文が拒否される場合があります。

スプレッド判定が合わなくなる

最大スプレッドをpipsで指定するEAも注意が必要です。

通貨ペア用の換算倍率をゴールドへ使うと、実際には取引できるスプレッドでも「広すぎる」と判定され、EAが注文を出さないことがあります。

反対に、設定より大きなスプレッドを許可してしまうケースもあります。

ゴールドでEAがエントリーしない場合は、売買ロジックだけでなく、最大スプレッド、損切り幅、利確幅、注文間隔の単位も確認してください。

エントリー間隔やトレーリングストップも影響を受ける

換算のずれは、損切りと利確だけに起こるものではありません。

次のような距離計算にも影響します。

  • 前回注文からの最低価格差
  • ナンピンや追加注文の間隔
  • ブレイク判定に使う値幅
  • トレーリングストップの開始位置
  • 指値・逆指値注文を置く距離

EAが一度も注文しない場合だけでなく、注文するタイミングや決済位置が不自然な場合も、単位換算を確認する必要があります。

Invalid stopsはpipsの換算だけが原因ではない

注文時に「Invalid stops」などのエラーが出た場合、pipsとpointsの換算ミスは原因の一つです。

ただし、それだけで原因を断定することはできません。

  • 損切り・利確価格が現在値へ近すぎる
  • 価格がティックサイズに合っていない
  • 買い注文と売り注文で基準価格を間違えている
  • 損切り・利確価格が、最小ストップ距離や発注可能な価格刻みに合っていない
  • 発注時点で最小ストップ距離が変化している

たとえば、point単位では正しく見える価格でも、実際に発注可能なティックサイズへ合っていなければ注文が通らないことがあります。

また、買い注文と売り注文では、ストップロスや指値注文の距離を計算する基準となるBid・Askも異なります。

EAが動かない原因全般については、次の記事で確認できます。

複数のFX会社やCFDへ対応させる方法

複数銘柄へ対応するEAでは、銘柄名や桁数だけで処理を分ける方法は避けた方が無難です。

たとえば「XAUUSDなら0.01」「末尾にGoldが付けば0.1」のように固定すると、別のFX会社で銘柄名や仕様が変わったときに動かなくなります。

開発時は、MT4から銘柄ごとの仕様を取得して計算します。

確認したい銘柄情報

確認項目 主な用途
point 価格差をMT4内部の単位へ変換する
価格桁数 注文価格の小数点以下を整える
ティックサイズ 実際に指定できる価格刻みに合わせる
最小ストップ距離 損切りや予約注文を置ける距離を確認する
最小ロット・ロット刻み 発注量を取引可能な値へ調整する
契約サイズ・ティックバリュー 値幅から損益やロットを計算する

pointだけを取得しても、注文価格やロットまで正しく計算できるとは限りません。

特にゴールドや株価指数では、FX通貨ペアとは契約サイズや1ティックあたりの損益が異なります。

内部計算とパラメータ表示は分けられる

内部処理を銘柄仕様に合わせても、利用者向けのパラメータまで必ずpoints表記にする必要はありません。

入力欄は分かりやすいpipsや価格差で表示し、EA内部でpointやティックサイズへ変換する方法もあります。

  • 利用者向け:pips、ドル幅、価格差など分かりやすい単位
  • EA内部:point、ティックサイズ、銘柄仕様に合わせた価格

重要なのは、パラメータ名だけではなく、入力した数値が実際にどの価格差として使われるかを明記することです。

自動売買時に、既存EAやインジケーターの入力項目、初期値、表示内容を変更したい場合は、次のページで対応内容を案内しています。

利用者がEAを入れる前に確認すること

市販・配布EAをゴールドやCFDへ入れる場合は、次の項目を確認してください。

  • 対象銘柄にゴールドやCFDが含まれているか
  • パラメータの単位がpips・points・価格差のどれか
  • 推奨FX会社や推奨口座が指定されていないか
  • 損切り・利確の数値が実際に何ドル幅になるか
  • 最大スプレッドの設定が銘柄に合っているか
  • デモ口座で注文と決済位置を確認したか

説明書に「全通貨対応」と書かれていても、ゴールドや株価指数まで含むとは限りません。

最初から大きなロットで稼働させず、デモ口座や小さな取引量で、注文価格と決済位置が想定どおりか確認してください。

まとめ|pipsとpointsは使う目的が違う

pointは、MT4が銘柄ごとの価格精度を扱うための単位です。

pipは、FX通貨ペアの値幅を人が比較しやすくするために使われる慣用的な単位であり、MT4内部に共通のpip値が用意されているわけではありません。

  • 5桁・3桁の主要通貨ペアでは、1pip=10pointsとなることが多い
  • 4桁・2桁表示では、1pip=1pointとなることが多い
  • ゴールドやCFDではpipの定義が統一されていない
  • pointだけでなく、ティックサイズや最小ストップ距離も確認する
  • pips表記ではなく、固定換算の実装がCFDで問題になりやすい
yuki
yuki
EAが動かないときは、pips表記だから駄目と判断するのではなく、入力値が内部でどの価格差へ変換されているかを確認しています。
カオチャイ
カオチャイ
通貨ペアで動いていたEAでも、ゴールドへ入れる前に銘柄仕様とパラメータ単位を確認した方がよいのですね。
ABOUT ME
YUKI
執筆・検証担当:YUKI FX自動売買(EA)・バイナリーオプション自動売買ツールの 開発および検証を担当。 MQL(MT4 / MT5)やC#によるプログラミングを専門とし、 ロジック設計から実装・検証まで一貫して行っています。 ▶ 執筆者・検証方針はこちら