この記事の内容
この記事を読むと…
- MT4とMT5を分けてcodeを読む。
- 価格刻み・距離・最小数量を別確認する。
- 修正後の数量・残量とriskを再計算する。
記事内で用語を調べる
ストップロス ロット 必要証拠金MT4・MT5が注文を拒否したら、正確なmessageと口座状態を先に読みます。価格、数量、stop距離、権限、時間など原因の候補があります。数量を増やす、保護を外す、連打するのは診断ではありません。MetaQuotes platformの説明で、業者が口座・銘柄の設定を決めます。日本の全業者が同じ仕様とは限りません。
errorなら口座では何も起きていない?
確認済み拒否、実約定、応答が不明な状態を分けます。接続errorやtimeout後は再送前に建玉、有効注文、履歴を確認。既にserverへ届いていた可能性があります。ticket、銘柄、数量、時刻を照合し、一つの画面に新行が見えないだけで判断しません。
MQL5のOrderSend=trueは約定証明ではありません。result構造体、retcodeと後続eventを確認し、要求数量ではなく実際の約定数量を読みます。riskを減らす際も正しい建玉決済操作が必要。hedging口座の反対売買は別建玉を作る場合があるため、売注文を送れば既存買いが閉じるとは限りません。
MT4とMT5のどのcodeを読むか
二つの番号表は交換可能ではありません。MQL4はGetLastError()、MQL5の要求結果はretcode。次は似た問題分類であり、全操作が同じ手順になる意味ではありません。
| 分類 | MT4 | MT5 | 最初の確認 |
|---|---|---|---|
| Invalid stops | 130 | 10016 | 価格side・距離・grid |
| Invalid volume | 131 | 10014 | 最小・刻み・最大 |
| Trading disabled | 133 | 10017 | 権限と銘柄mode |
| Market closed | 132 | 10018 | その銘柄のsession |
| Insufficient funds | 134 | 10019 | 必要証拠金と口座状態 |
| No quotes | 136 | 10021 | quote時刻とserver応答 |
新規・変更・決済のどの操作かもmessageと一緒に保存。新しい価格提示はrequoteで別に確認します。program独自のlogもあるため、番号だけを一つの表へ当てはめません。
表示価格は正しそうでもstopが拒否される理由
小数桁は表示形式で、有効価格grid全体ではありません。Point、Tick size、Stops Level、Freeze Levelを分けます。Stops Levelは最小距離、Freeze Levelは一定範囲での操作制限。片方で代替しません。
元の架空線形銘柄はpoint0.00001、tick size0.00005、Stops Level20points、Bid1.10000、Ask1.10010。新規買建玉のSLはBidから距離確認。1.09983は17pointsで、1.09983/0.00005=21996.6なのでgrid外です。1.09980はgrid上で距離20points。このsnapshotで二条件を確認しただけで受理・約定を保証しません。
Ask1.10010で買えた場合、修正SLへの距離は0.00030。10000base単位、USD評価、正確な約定、費用・滑りなしなら価格損失3USDで、元の1.09983なら2.70USD。距離変更は損失予算を増やすため、数量を再計算するか新規を見送ります。
MQL4のMODE_STOPLEVEL=0は制限なしの場合と、端末で表せないdynamic server制御の場合があります。全stopが通る保証ではなく、このMT4注意を他platformの全読値へ自動移転しません。再試行前は新quoteを読み、元snapshotのままと考えません。SL・TPの価格sideも確認。
変更拒否ならfreeze範囲と単位を記録。MT4はMODE_FREEZELEVEL、MT5はSYMBOL_TRADE_FREEZE_LEVEL。フォームの小数表示を変えても操作制限を縮められません。
刻みだけ合えば数量は正しい?
lotの最小・最大・刻みを別確認。元模型は最小0.10lot、刻み0.01。計算した0.04は刻みの倍数でも最小未満。0.10へ増やすとexposure2.5倍で、元の計画の修理ではありません。
刻みへの適合と最小数量は別
横にスクロールすると図全体を確認できます。
利用可能証拠金と逆指値損失は別の問いです。証拠金不足に対し高いleverageを選んで解決したことにせず、許容数量、費用、口座余力を記録。制限を破る構成は採用しません。一部決済では残る数量も確認。数量計算へ戻ります。
新しい円例:一部決済後の残量も別条件
架空USD/JPY模型で1lot=100000USD、既存買い0.25lot。決済数量・残る非zero建玉の双方に最小0.10lot、刻み0.01という明示的な規則を仮定します。全決済も可能とします。これは日本やMT5全口座の共通仕様ではありません。
0.18lotを決済すると残り0.07で、両方とも刻みには合っても残量が最小未満。0.15を決済すれば0.10が残り模型の数量条件は満たします。しかし現在からSL約定仮定まで0.20JPY、将来の追加価格損失予算1400JPYなら、残り0.10lot×100000×0.20=2000JPYで予算超過です。
残り0.07なら1400JPYですが模型上維持できません。既存0.25の同じ仮定損失は5000JPY。数量条件を通すため0.10を残すのはrisk計画を満たす修理ではなく、別の構成か全決済・見送りを検討します。実際の決済までの既発生損益・費用と、この先の追加損失模型は別。通常SLは約定価格保証でもありません。
刻みを通す修正がriskを通す修正とは限らない。実契約を確認し、制約内の別構成や全決済を検討します。
小さな画面では横にスクロールするか、図を拡大できます。数値と要点は下のテキストにも記載しています。
- 0.18決済・残0.07
- 1400JPY模型 – 残量が最小未満で不適合。
- 0.15決済・残0.10
- 2000JPY模型 – 数量条件は適合、損失予算は超過。
- 元0.25のまま
- 5000JPY模型 – 要求前後の数量・残量・追加riskを別確認。
取引不可・価格なしの確認
正しい口座、server、suffixを含む銘柄名を確認。その銘柄の取引sessionを読み、別pairや別取引所の時間で判断しません。最終quoteの時刻、接続状態、許可操作を確認。close-onlyを新規反対売買で回避しません。
自動programでは端末の許可、program設定、server権限を分けます。quoteが動くことは取引権限の証明ではなく、全許可を無条件に有効化しません。support用にplatform/version、maskした口座識別子、銘柄、時刻とtimezone、要求type、parameter、正確な応答をまとめます。password・login codeは送りません。JSTを使う記録にはUTC+9も併記しserver時刻と区別。
記事後に残す診断記録
- 元要求・応答・確認済み口座状態を分け、既知と欠落を記録。不明なら業者の公式supportへ。
- demoの仕様からpoint、tick、距離、最小数量と刻みを写し、発注せず模型を計算してフォーム確認。本番で故意にerrorを起こしません。
- 修正前後の距離、数量、費用、証拠金を比較。riskを超えればその構成を止めます。目的は承認表示を何としても得ることではなく正確な診断です。
理解度を確認
練習の目安: 約2分.
答えと解説を見る
0.04は刻みに合っても最小未満。riskを増やして強行しません。
よくある質問
注文を通すためSLを外す?
Stops Levelが0なら全て許可?
同じerror番号は同じ意味?
接続error後すぐ再送できる?
出典と検証
- docs.mql4.com
内容の参考資料。記事に記載した範囲と前提を確認してください。
- www.mql5.com
内容の参考資料。記事に記載した範囲と前提を確認してください。
- docs.mql4.com
内容の参考資料。記事に記載した範囲と前提を確認してください。
- www.mql5.com
内容の参考資料。記事に記載した範囲と前提を確認してください。
計算例には前提条件を明記しています。現在の市場データや提供会社の取引条件の代わりにはなりません。
