ブローカー (FX業者) を変えたら、
「挙動が変わった??」
「バグっぽい動きしてる??」
等で、困った経験がある方はいらっしゃいませんか?
私Canaryも困ったことがある一人です💧
Canaryが知っている限りで、ブローカーで異なる仕様/挙動/バグ等を本記事にまとめました。
「ブローカーを変えたらEAの成績が落ちた」などの要因も、もしかしたらここで発見できるかも!?
【「最大オーダー数制限」の違い】
ブローカーごとの「最大オーダー数制限」の値は?
最大オーダー数制限について、現在までにCanaryが確認した数値は以下のようになります。
種別 | ブローカー | 口座 | 仕様上の値 (※1) | 実際確認した制限値 |
---|---|---|---|---|
国内 | FXTF | MT4 | 0 (無制限) | 200以上 (※2) |
〃 | FOREX EXCHANGE | 俺のMT4 | 0 (無制限) | 未確認 |
〃 | 外為ファイネスト | MT4 | 0 (無制限) | 未確認 |
〃 | OANDA Japan | MT4 | 建玉数:1,000 注文数:4,000 | 未確認 |
〃 | サクソバンク | MT4 | 0 (無制限) | 100 |
海外 | Alpari | MT4 デモ | 500 | 100 |
〃 | Axiory | MT4 nano | 0 (無制限) | 未確認 |
〃 | Exness | MT4ゼロ | 1000 | 未確認 |
〃 | Focus Markets | MT4 Raw | 400 (※3) | 未確認 |
〃 | GemForex | オールインワン | 0 (無制限) | 30 (※4) |
〃 | ThreeTrader | MT4 Rawゼロ | 200 | 200 |
〃 | TitanFX | MT4 Blade | 200 | 未確認 |
〃 | Tradeview | X Leverage | 200 | 200 |
〃 | XM | MT4 micro / zero | 200 | 未確認 |
上の表で赤字で示しているものは、仕様と実際の動きが異なるため要注意 です。
(※1) MT4のAPI「AccountInfoInteger(ACCOUNT_LIMIT_ORDERS)」経由でブローカーから取得した値。
(※2) 実際に200以上オーダーしても制限が掛からないことを確認済み。
(※3) 「無制限」と記載している紹介サイトあり。
(※4) 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だけでなく《タイムゾーンが+2/+3以外のブローカー全て》で発生する可能性があります。
当サイトのGdTrader EAも利確幅はまさに日足ATRで決定しており、Exnessでは他のブローカーに比べると10%前後利確幅が実際狭くなっています。
GdTraderでの対策としては、パラメータAutoTakeProfitPercentage を10%程度増やせばOKです。 (例:AutoTakeProfitPercentageをデフォルトの100%から110%へ増やす。)
【おわりに】
現時点でCanaryが知ってる限りとなりますが、ブローカーに依存した仕様と「困った」挙動 を記載しました。
スプレッドやスワップポイント等、ブローカーが公表している値は比較しやすいですが、今回取り上げたものは、いずれも
「取引エラーになる」「取引パフォーマンスに直接影響する」等、大変重要な内容であるにも関わらず、ブローカーがWebサイト等で公表していなかったり、注意して見ないと分からない
↓
何かで知る機会がないとほぼ知り得ない
というのがとても怖いところですね。
他にもこのようなパラメータはあると思いますので、見つけ次第、本記事はアップデートしていくつもりです。
間違いや追記して欲しい内容があれば、
下方のコメントまたはTwitterまでご連絡ください!
ではでは~
コメント