「レバレッジ1000倍」が効かない銘柄がある件。MT5の証拠金計算式13種類を公式リファレンスで全部追った

本記事はプロモーションを含みます。掲載している海外FX業者のリンクから口座開設等が行われた場合、当サイトが提携先企業から成果報酬を受け取ることがあります。

海外FX業者を選ぶとき、まず目に入るのが「最大レバレッジ1000倍」みたいな数字なんですよね。私もそうでした。口座スペック表の一番上にデカデカと書いてあるので、どうしてもそこで比較しちゃう。

でも、ちょっと前にゴールドとドル円で同じくらいの名目金額のポジションを持とうとしたとき、必要証拠金が全然揃わなくて「あれ?」ってなったんですよ。同じ口座・同じレバレッジ設定なのに、です。

で、気になって調べてみたら、原因は業者が何か特別なことをしていたわけじゃなくて、MT5の仕様としてそもそも「証拠金の計算式」が銘柄ごとに別物だったんですよね。しかも式が何種類もある。

今回はそこを、MQL5の公式リファレンスに載っている計算式そのものから整理してみます。結論を先に言っておくと、公式に定義されている13種類の計算方式のうち、式の中に「レバレッジ」が出てくるのは2種類だけでした。

POINT

MT5には銘柄ごとに「証拠金・損益の計算方式」を指定する設定項目があります(SYMBOL_TRADE_CALC_MODE)。この値によって必要証拠金の計算式自体が入れ替わるので、「レバレッジ○倍」という口座単位の数字だけでは、ある銘柄にいくら証拠金が要るかは決まりません。

そもそも「計算方式」が銘柄ごとに設定されている

MT5では、1つ1つの銘柄(シンボル)に対して業者が細かい設定値を持たせています。その中にSYMBOL_TRADE_CALC_MODEというプロパティがあって、公式リファレンスでは「Contract price calculation mode(契約価格の計算方式)」と説明されています。

この値が取りうる選択肢がENUM_SYMBOL_CALC_MODEという一覧で定義されていて、公式リファレンスにはこう書いてあります。

The ENUM_SYMBOL_CALC_MODE enumeration is used for obtaining information about how the margin requirements for a symbol are calculated.
(ENUM_SYMBOL_CALC_MODEは、その銘柄の証拠金所要額がどう計算されるかの情報を得るために使われる)

ポイントは、この一覧に13個のモードが並んでいて、しかも各モードに「Formula(計算式)」が明記されていることなんですよ。つまり「どういう理屈で証拠金が決まるか」は公式に公開されていて、誰でも読めるんですよね。

で、その13個の式を全部書き出して並べてみたんですけど、これが思った以上にバラバラでした。

噛み合った真鍮の歯車の中に、1つだけ噛み合っていない色違いの歯車がある様子

13個の式のうち、レバレッジが出てくるのは2個だけ

公式リファレンスの「Formula」列をそのまま書き写して、証拠金の式に何が登場するかを数えてみました。

計算方式 証拠金の式(公式リファレンスの原文) レバレッジが入るか
FOREX Lots × Contract_Size / Leverage × Margin_Rate 入る
FOREX_NO_LEVERAGE Lots × Contract_Size × Margin_Rate 入らない
FUTURES Lots × InitialMargin × Margin_Rate 入らない
CFD Lots × ContractSize × MarketPrice × Margin_Rate 入らない
CFDINDEX (Lots × ContractSize × MarketPrice) × TickPrice / TickSize × Margin_Rate 入らない
CFDLEVERAGE (Lots × ContractSize × MarketPrice) / Leverage × Margin_Rate 入る
EXCH_STOCKS Lots × ContractSize × LastPrice × Margin_Rate 入らない
EXCH_FUTURES Lots × InitialMargin × Margin_Rate 入らない
EXCH_FUTURES_FORTS Lots × InitialMargin × Margin_Rate 入らない
EXCH_BONDS Lots × ContractSize × FaceValue × open_price / 100 入らない
EXCH_STOCKS_MOEX Lots × ContractSize × LastPrice × Margin_Rate 入らない
EXCH_BONDS_MOEX Lots × ContractSize × FaceValue × open_price / 100 入らない
SERV_COLLATERAL 証拠金なし(担保として余剰証拠金に加算される) 入らない

数えると13個中2個。FOREXとCFDLEVERAGEだけなんですよね。

これ、最初に見たときちょっと驚いたんですけど、よく考えると当たり前の話で。レバレッジって「証拠金を名目金額の何分の1にするか」という割り算なので、式の中に割り算として出てこないモードでは、レバレッジを何倍に上げようが必要証拠金は1円も変わらないんですよ。

実際に数字を入れて確かめてみた

式を読むだけだとピンと来ないので、同じ条件を入れて計算してみました。

条件は揃えます。名目100万円相当の建玉を1ロット、Margin_Rateは1.0(=割引なし)、先物系で使うInitialMarginは業者設定の仮の値として5万円に置きました。この状態で、口座のレバレッジだけを100倍から1000倍に上げたら必要証拠金がどう動くかを見ます。

計算方式 レバレッジ100倍 レバレッジ1000倍 変化
FOREX 10,000円 1,000円 10分の1
FOREX_NO_LEVERAGE 1,000,000円 1,000,000円 変化なし
FUTURES 50,000円 50,000円 変化なし
CFD 1,000,000円 1,000,000円 変化なし
CFDINDEX 1,000,000円 1,000,000円 変化なし
CFDLEVERAGE 10,000円 1,000円 10分の1
EXCH_STOCKS 1,000,000円 1,000,000円 変化なし
EXCH_FUTURES 50,000円 50,000円 変化なし
EXCH_FUTURES_FORTS 50,000円 50,000円 変化なし
EXCH_BONDS 1,000,000円 1,000,000円 変化なし
EXCH_STOCKS_MOEX 1,000,000円 1,000,000円 変化なし
EXCH_BONDS_MOEX 1,000,000円 1,000,000円 変化なし
SERV_COLLATERAL 0円 0円 —

レバレッジを10倍にしても必要証拠金が1円も動かないモードが13個中10個。これが今回いちばん言いたかったところなんですよね。

そして同じ「レバレッジ1000倍」という条件のもとで、モードをまたぐと必要証拠金は1,000円から1,000,000円まで、1,000倍の開きが出ます。名目金額は全部同じ100万円相当なのに、です。

実効レバレッジ(名目 ÷ 必要証拠金)に直すと、こうなります。

計算方式 必要証拠金 実際に効いているレバレッジ
FOREX / CFDLEVERAGE 1,000円 1,000倍
FUTURES系(3方式) 50,000円 20倍
CFD / 株式 / 債券系(7方式) 1,000,000円 1倍

「レバレッジ1000倍の口座」と書いてあっても、銘柄によっては実効1倍で計算されうるわけです。ここは正直びっくりしました。

注意

上の表のMargin_Rate=1.0・InitialMargin=5万円というのは、式の挙動を比べるために私が置いた仮の条件です。実際の業者がどの銘柄にどの方式・どの数値を設定しているかとは別の話なので、「CFD銘柄は実効1倍になる」という意味ではありません。次の項で説明しますが、実際にはここをMargin_Rateで調整しています。

じゃあCFD銘柄のレバレッジは何で決まっているのか

ここが大事なところなんですけど、CFDモードの式をもう一度見てください。

Margin = Lots × ContractSize × MarketPrice × Margin_Rate

Leverageはどこにも無い。じゃあ証拠金を軽くする余地はどこかというと、Margin_Rateしか残っていないんですよ。

Margin_Rateというのは、公式リファレンスのSymbolInfoMarginRateという関数で読める値で、「1ロットの建玉に必要な証拠金の係数」として定義されています。逆算すると、こうなります。

狙う実効レバレッジ 必要なMargin_Rate 名目100万円での必要証拠金
1倍 1.0 1,000,000円
10倍 0.1 100,000円
25倍 0.04 40,000円
100倍 0.01 10,000円
500倍 0.002 2,000円
1,000倍 0.001 1,000円

つまりCFD系の銘柄では、実際に効く倍率を決めているのは口座のレバレッジ設定ではなく、銘柄ごとに業者が設定したMargin_Rateなんですよね。

そしてこのMargin_Rate、口座スペック表の「最大レバレッジ」欄には出てきません。 銘柄ごとの取引条件ページや、MT5の気配値表示から個別に確認するしかない値です。

FUTURES系はさらに別物で、式が Lots × InitialMargin × Margin_Rate なので、そもそも名目金額すら式に出てこない。公式リファレンスではSYMBOL_MARGIN_INITIALをこう説明しています。

Initial margin means the amount in the margin currency required for opening a position with the volume of one lot.
(初期証拠金とは、1ロットのポジションを建てるのに必要な、証拠金通貨建ての金額のこと)

「1ロットいくら」が業者によって直接決め打ちされている、ということです。レバレッジを上げても下げても動かないのは、そりゃそうだよなという感じなんですけど。

ついでに見つけた、買いと売りで証拠金が違う話

Margin_Rateを調べていて気づいたんですけど、この値、注文の種類ごとに別々に設定できるんですよね。SymbolInfoMarginRateという関数の引数に、銘柄名だけじゃなく「注文タイプ」が入っているんです。

公式リファレンスのサンプルコードには、実際の出力例まで載っていました。ある銘柄で買いと売りの証拠金率を表示させた結果がこれです。

注文方向 初期証拠金率 維持証拠金率
買い(Buy) 0.225600 0.112800
売り(Sell) 0.254400 0.127200

同じ銘柄・同じロット数なのに、売りのほうが初期証拠金率が約12.8%高い。公式のサンプルにそのまま出ている数字です。

これは株式銘柄の例なのでFXの通貨ペアでそのまま起きるとは限らないんですけど、「仕様として、買いと売りで必要証拠金を変えられる」こと自体は公式に定義されているわけです。両建てやヘッジを考えている人は、頭の片隅に置いておく価値があると思うんですよね。

ちなみに維持証拠金率は、買いも売りもきっちり初期証拠金率の0.5倍になっていました。これは業者が設定した値がたまたまそうだっただけで、仕様上決まっている比率ではありません。

損益の計算式も2系統ある

ここまで証拠金の話をしてきましたけど、実は損益(Profit)の式も方式によって変わります。公式リファレンスを見ると、大きく2系統に分かれていました。

  • FX・CFD・株式系: Profit = (close − open) × Contract_Size × Lots
  • 先物系(3方式): Profit = (close − open) × TickPrice / TickSize × Lots

これ、地味に効いてくるんですよ。というのも、私たちは普段「1ロット=10万通貨だから1pipsで1,000円」みたいに、契約サイズから損益を暗算するクセがついてるじゃないですか。でも先物系の方式では契約サイズは損益の式に出てこなくて、代わりに「ティック1つあたりの価値 ÷ ティックの刻み幅」で決まります。

どれくらいズレるのか、いくつかの刻み設定で計算してみました(価格が1.0動いたときの1ロットあたり損益)。

銘柄設定の例 契約サイズ式で見積もると ティック式(正) ズレ
ContractSize 100 / TickPrice 1.0 / TickSize 0.01 100 100 1.0倍(一致)
ContractSize 1000 / TickPrice 12.5 / TickSize 0.25 1,000 50 20倍
ContractSize 1000 / TickPrice 5.0 / TickSize 0.5 1,000 10 100倍
ContractSize 10 / TickPrice 100 / TickSize 1.0 10 100 0.1倍

設定の組み合わせ次第では100倍外れることもあるし、逆に見積もりより大きく動く(最後の行)こともある。方向すら一定じゃないんですよね。

もちろんこれは私が式の挙動を見るために置いた仮の数値なので、実在の銘柄がこうだという話ではありません。ただ「契約サイズから損益を暗算する方法は、先物系の方式の銘柄では成立しない」という点は、式からそのまま言えることです。

ノートに手書きの計算と電卓、ターミナルを開いたノートパソコンが置かれた机

自分の口座でどう確かめるか

ここまで仕様の話をしてきましたけど、結局いちばん確実なのは自分の口座で実際の数字を出してみることなんですよね。やり方は2つあります。

1. MT5の「気配値表示」から仕様を見る

MT5の気配値表示で銘柄を右クリックして仕様(スペック)を開くと、契約サイズ・証拠金通貨・ティック価値などが一覧で出てきます。銘柄を切り替えながら眺めてみると、同じ口座の中でも銘柄ごとに数字が全然違うのが見えてくるはずです。

2. 注文画面で必要証拠金を読む

もっと手っ取り早いのは、新規注文の画面でロット数を入れたときに表示される必要証拠金を、銘柄ごとにメモしていくことです。私はこれを何銘柄か横に並べてスプレッドシートに書き出してみたんですけど、名目金額を揃えたつもりでも必要証拠金が全然揃わないのが一目でわかって、正直いちばん納得感がありました。

MQL5でEAやスクリプトを書ける人なら、OrderCalcMarginという関数が使えます。公式リファレンスでは「計画中の取引に必要な証拠金を評価できる」関数として定義されていて、注文タイプ・銘柄・ロット数・価格を渡すと、口座通貨建ての必要証拠金が返ってきます。方式が何であれ、業者が設定した値を踏まえた実際の数字が出るので、手計算より確実なんですよね。

POINT

業者を比較するときは「最大レバレッジ」だけを見るんじゃなくて、自分が実際に触る銘柄(ドル円なのか、ゴールドなのか、株価指数なのか)で必要証拠金がいくらになるかを確認するのがおすすめです。特にFX以外の銘柄も触る予定があるなら、そこが一番ブレます。

スキャルピング・高レバ運用で気をつけたいところ

スキャルピングや高レバレッジでの運用を考えている人にとって、今回の話は結構実務的に効いてくると思っています。

というのも、必要証拠金が価格に連動するモードが13個中8個あるんですよ。CFDや株式系の式には MarketPrice や LastPrice が入っているので、ポジションを持っている最中に価格が上がると、必要証拠金のほうも一緒に増えます。

一方でFXのFOREXモードは Lots × Contract_Size / Leverage × Margin_Rate なので、価格が式に入っていません。建てたときの必要証拠金が、そのまま維持されるイメージです(厳密には口座通貨への換算レートの影響は受けますが)。

この違いを知らないまま「FXと同じ感覚で」証拠金ギリギリまでゴールドや指数を建てると、価格が動いただけで余剰証拠金が削られていく、ということが起きうるわけです。

Exnessのように高レバレッジとスキャルピングのしやすさを前面に出している業者を使う場合でも、その「高レバレッジ」がどの銘柄にどこまで効いているのかは、銘柄別に確認しておいたほうがいいと思うんですよね。私自身、そこを1回整理してからのほうが建玉のサイズ感を決めやすくなりました。

裏取りできた範囲と、できていない範囲

今回の内容は、すべてMQL5公式リファレンス(MetaQuotes社によるMT5の公式ドキュメント)に書かれている定義と計算式が出発点です。13個の方式も、証拠金・損益の式も、買いと売りで証拠金率が違う例も、公式ページに載っているものをそのまま使いました。

一方で、「どの業者がどの銘柄にどの方式を設定しているか」は確認できていません。 これは業者が各銘柄に対して個別に設定する値で、外部から一覧で読めるものではないからです。本記事の数値例は、あくまで公式の式に仮の条件を入れて計算したものだと理解してください。

各社の実際の必要証拠金やレバレッジの適用条件は変更されることもあるので、最新の内容は必ず各社の公式サイトでご確認ください。

FX取引はレバレッジを用いた取引であり、預けた資金(元本)を上回る損失が生じる可能性があります。本記事は情報提供を目的としたものであり、投資を勧誘するものではありません。取引を行う際は自己責任・余裕資金の範囲で行い、各社公式サイトで最新のリスク説明書・規約を必ずご確認ください。

まとめ

長くなったので整理します。

  • MT5には銘柄ごとに証拠金・損益の計算方式を決める設定があり、公式に13種類定義されている
  • そのうち証拠金の式にレバレッジが入るのは2種類だけ。残り10種類(担保専用の1つを除く)は、レバレッジを10倍にしても必要証拠金が1円も変わらない
  • レバレッジが効かない方式では、実効倍率を決めているのは銘柄ごとのMargin_Rateや1ロットあたりの固定額。口座スペック表の「最大レバレッジ」には出てこない値
  • 必要証拠金が価格に連動する方式が8種類ある。持っている間に証拠金が増えることがある
  • 損益の式も2系統あり、先物系では契約サイズからの暗算が成立しない
  • 確実なのは、自分が使う銘柄で実際の必要証拠金を見ること。MT5の注文画面か、OrderCalcMarginで出せる

初心者の方へ: 全部覚える必要はまったくなくて、「レバレッジ○倍という数字は、FX通貨ペア以外ではそのまま効かないことがある」とだけ知っておけば十分だと思います。その上で、新しい銘柄を触るときは必ず注文画面で必要証拠金を確認するクセをつけておくと安心です。

中上級者の方へ: 複数の銘柄で資金配分を考えている場合、名目金額ベースのリスク管理と証拠金ベースの資金効率がモードによって一致しないのが実務上の肝だと思います。OrderCalcMarginで銘柄ごとの実効レバレッジを一覧にしておくと、ポジションサイジングの精度が上がるはずです。

「レバレッジ1000倍」という数字は確かにインパクトがあるんですけど、それが自分の触る銘柄でどこまで効いているかは、式を1回追ってみないと分からないんですよね。今回それを確かめられたのは個人的に収穫でした。