ブローカー (FX業者) を変えたら、
「挙動が変わった??」
「バグっぽい動きしてる??」
等で、困った経験がある方はいらっしゃいませんか?

私Canaryも困ったことがある一人です💧
Canaryが知っている限りで、
ブローカーで異なる仕様/挙動/バグ等を本記事にまとめました。
「ブローカーを変えたらEAの成績が落ちた」などの要因も、もしかしたらここで発見できるかも!?
【「最大オーダー数制限」の違い】
ブローカーごとの「最大オーダー数制限」の値は?
最大オーダー数制限 について、
現在までにCanaryが確認した数値は以下のようになります。
種別 | ブローカー | 口座 | 仕様上の値 (※1) | 実際確認した制限値 |
---|---|---|---|---|
国内 | FXTF | MT4 | 0 (無制限) | 200以上 (※2) |
〃 | FOREX EXCHANGE | 俺のMT4 | 0 (無制限) | 未確認 |
〃 | OANDA Japan | MT4 ベーシック | 0 (無制限) | 未確認 |
〃 | サクソバンク | MT4 | 0 (無制限) | 100 |
海外 | Tradeview | X Leverage | 200 | 200 |
〃 | XM | MT4 micro / zero | 200 | 未確認 |
〃 | GemForex | MT4 | 0 (無制限) | 30 (※3) |
〃 | Axiory | MT4 nano | 0 (無制限) | 未確認 |
〃 | TitanFX | MT4 Blade | 200 | 未確認 |
〃 | Alpari | MT4 デモ | 500 | 100 |
〃 | ThreeTrader | MT4 Rawゼロ | 200 | 未確認 |
上の表で赤字で示しているものは、
仕様と実際の動きが異なり要注意です。
(※1) MT4のAPI「AccountInfoInteger(ACCOUNT_LIMIT_ORDERS)」経由でブローカーから取得した値です。
(※2) 実際に200以上オーダーしても制限が掛からないことを確認済み。
(※3) GemForexの公式サイト情報より。
最大オーダー数制限とは?
最大オーダー数制限 とは、
その口座で同時に持つことが可能な「ポジション数 + 待機注文数」の最大値 です。
※プログラム上では AccountInfoInteger(ACCOUNT_LIMIT_ORDERS) で取得できます。
※「待機注文」は、指値または逆指値注文のことです。

ポジション数だけでなく、
待機注文数も含まれることに注意してね!
この値を超えて新規注文を行うと
「148: ERR_TRADE_TOO_MANY_ORDERS」
等が返ってきてエラーになります。
(エラー種別はブローカーで異なる可能性があります。)
これに関して困るのは、
《エラーを引き起こすかも知れない重要な数値であるにも関わらず》
ほとんどのブローカーが公表していない
と言うことです。
#GemForexは公式サイトで「30個まで」とちゃんと明記していますね。
【参考】仕様と実際が異なる場合の対策方法
Canaryが制作したGdTrader EAにおいては、以下のような
《本当の最大オーダー数制限値》を返すAPI
を導入して対策しています。
/* ------------------------------------------------------------------ * [Function] GetActualMaxOrderLimit * ------------------------------------------------------------------ */ int GetActualMaxOrderLimit() { const string serverName = AccountServer(); if (StringCompare(serverName, "SaxoBank-Live") == 0) { return 100; } if (StringCompare(serverName, "Alpari-Demo") == 0) { return 100; } return int(AccountInfoInteger(ACCOUNT_LIMIT_ORDERS)); }
力技で全く美しくないですが、こんな対応策しかできないかと…
【「許容スリッページ幅設定」が効くかどうか】
許容スリッページ幅設定 が効くかどうかは、
使用しているブローカーによって変わってきます。
- 正確には、(お取引の通貨ペアがご利用のブローカーにおいてどう扱われるかに依存するため) 同じブローカーでも、口座タイプ/通貨ペアによって変わってくることもあり得ます。
Canaryがこれまで確認した限り、
許容スリッページ幅設定が効くブローカーはほとんどありません。
- 唯一効くことを確認したブローカーは、海外ブローカーの Alpari (のデモ口座) だけです。
- FXTF、サクソバンク、OANDA、XMでは「許容スリッページ幅設定」を設定しても効果せずでした。

多くで効かない設定って…💧
「許容スリッページ幅設定」とは?
スリッページ (Slippage) は、
英語で「滑ること」を意味しています。
Q:スリッページとはなんですか?
A:スリッページとは、ストリーミング注文や逆指値注文を発注する際に生じる、注文を発注したときのレートと、実際に注文が約定するときのレートの差(ズレ)をいいます。
例えば、100.000で発注した注文が100.005で約定した場合、0.5pipsのスリッページが発生したこととなります。
ストリーミング注文では、注文の発注時にスリッページの許容幅を設定することができます。設定したスリッページ幅以内であれば注文が約定しますが、設定幅を超えたスリッページが発生した場合、注文が不成立となります。
※スリッページは、お客様端末と当社システムの間の通信及び、お客様の注文を受け付けた後の当社システムにおける約定処理に要する時間の経過に伴い発生するもので、お客様に有利になる場合もあれば、不利になる場合もあります。
引用元:DMM FX
許容スリッページ幅設定 とは、
このスリッページをどのくらいまで許容するかを指定するパラメータです。
- MT4の手動注文では設定できないようですが、プログラム上はパラメータがありますので、EAからは設定が可能です。
- このパラメータを (ちゃんと効くブローカーで) 設定すれば 不利な方向に滑ることを抑制できる と言うメリットがある反面、約定拒否が発生して取引機会損失 というデメリットも発生し得ますので、注意が必要です。
ちなみに、GdTrader EA においては
機会損失を避けることを優先し、許容スリッページ幅は「0」に設定しています。
【「指値が有利な方向にも滑る」かどうか】
指値が有利な方向にも滑るかどうか も、
使用するブローカーによって変わってきます。
※有利な方向に滑ることを「ポジティブスリッページ」とも言います。
結果から言いますと、
「指値が有利な方向にも滑る」ことを確認できたのは、Alpariだけ
でした。

一つ前の「許容スリッページ幅設定」と
同じ結果だね!
「指値が有利な方向に滑る」とは?
下のキャプチャ画像に示す取引履歴が、
実際にAlpariで観測した「有利に滑ったケース」です。

※左右にスクロール可能です。
上の例では、
ロングポジションの新規指値注文を108.4円で待機していたところ、
108.397円とそれより低い値 「=有利な値」
で約定しています。
- 即ちこのケースは 指値が有利な方向に滑った (=ポジティブスリッページが発生した) と言えます。
【利確/損切りが早い(Exness限定)】
利確幅/損切り幅が《日足ATR》に依存しているEA限定 の内容ですが、
海外ブローカーのExnessを使うと、
利確幅/損切り幅が10%前後狭くなります。
- 正確に言うと、(下記ツイートにも記載している通り)Exnessだけでなく「タイムゾーンが0」のブローカー全てで発生する可能性があります。
当サイトのGdTrader EAも利確幅はまさに日足ATRで決定しており、
Exnessでは他のブローカーに比べると10%前後利確幅が狭いです。
- GdTraderの場合は、AutoTakeProfitPercentage を10%程度増やすことによってカバーが可能です。
- 例)デフォルトの100%→110%へ増やす。
【おわりに】
現時点でCanaryが知ってる限りですが、ブローカーに依存した仕様と「困った」挙動を記載しました。
スプレッドやスワップポイント等、ブローカーが公表している値は比較しやすいですが、今回取り上げた
等は、(取引エラーにつながったり、取引パフォーマンスに影響したりと結構重要であるにも関わらず) ブローカーがWebサイト等で公表していなかったり、注意して見ないと分からないのが怖いところ ですね。
他にもこのようなパラメータはあると思いますので、見つけ次第、本記事はアップデートしていくつもりです。

間違いや追記して欲しい内容があれば、下方のコメントまたはTwitterまでご連絡ください! ではでは~
コメント