取引サーバーのリターンコード

取引操作を実行するためのすべてのリクエストは、取引リクエストの構造体 MqlTradeRequest として送信されます(関数 OrderSend()を使用)。関数の実行結果は構造体 MqlTradeResultに配置され、 retcode フィールドには取引サーバーのリターンコードが含まれます。

コード

定数

説明

10004

TRADE_RETCODE_REQUOTE

リクオート

10006

TRADE_RETCODE_REJECT

リクエストが却下されました

10007

TRADE_RETCODE_CANCEL

トレーダーによってリクエストがキャンセルされました

10008

TRADE_RETCODE_PLACED

注文が出されました

10009

TRADE_RETCODE_DONE

リクエストが完了しました

10010

TRADE_RETCODE_DONE_PARTIAL

リクエストの一部のみが完了しました

10011

TRADE_RETCODE_ERROR

リクエスト処理エラーが発生しました

10012

TRADE_RETCODE_TIMEOUT

リクエストがタイムアウトによってキャンセルされました

10013

TRADE_RETCODE_INVALID

リクエストが無効です

10014

TRADE_RETCODE_INVALID_VOLUME

リクエストのボリュームが無効です

10015

TRADE_RETCODE_INVALID_PRICE

リクエストの価格が無効です

10016

TRADE_RETCODE_INVALID_STOPS

リクエストのストップが無効です

10017

TRADE_RETCODE_TRADE_DISABLED

取引が無効になっています

10018

TRADE_RETCODE_MARKET_CLOSED

市場が閉まっています

10019

TRADE_RETCODE_NO_MONEY

リクエストを完了するための十分な資金がありません

10020

TRADE_RETCODE_PRICE_CHANGED

価格が変更されました

10021

TRADE_RETCODE_PRICE_OFF

リクエストを処理するためのクォートがありません

10022

TRADE_RETCODE_INVALID_EXPIRATION

リクエストの注文有効期限が無効です

10023

TRADE_RETCODE_ORDER_CHANGED

注文状態が変更されました

10024

TRADE_RETCODE_TOO_MANY_REQUESTS

リクエストが頻繁すぎます

10025

TRADE_RETCODE_NO_CHANGES

リクエストに変更はありません

10026

TRADE_RETCODE_SERVER_DISABLES_AT

自動売買がサーバーによって無効にされています

10027

TRADE_RETCODE_CLIENT_DISABLES_AT

自動売買がクライアント端末によって無効にされています

10028

TRADE_RETCODE_LOCKED

リクエストは処理のためにロックされています

10029

TRADE_RETCODE_FROZEN

注文またはポジションが凍結されています

10030

TRADE_RETCODE_INVALID_FILL

無効な 注文執行タイプ

10031

TRADE_RETCODE_CONNECTION

取引サーバーに接続されていません

10032

TRADE_RETCODE_ONLY_REAL

操作はライブ口座でのみ許可されています

10033

TRADE_RETCODE_LIMIT_ORDERS

未決注文数が上限に達しました

10034

TRADE_RETCODE_LIMIT_VOLUME

銘柄の注文およびポジションの数量が上限に達しました

10035

TRADE_RETCODE_INVALID_ORDER

誤っているまたは禁止されている 注文タイプ

10036

TRADE_RETCODE_POSITION_CLOSED

指定された POSITION_IDENTIFIER を持つポジションはすでに決済されています

10038

TRADE_RETCODE_INVALID_CLOSE_VOLUME

決済しようとしている数量が現在のポジション数量を超えています

10039

TRADE_RETCODE_CLOSE_ORDER_EXIST

指定されたポジションには既に決済注文が存在します。これはヘッジシステムで取引している場合に発生する可能性があります。

  • 既存のポジションを反対注文で決済しようとした際に、すでにそのポジションに対して決済注文が存在している場合
  • ポジションを全量または部分決済しようとした際に、すでに存在する決済注文と新たに発注しようとしている注文の合計数量が、現在のポジション数量を超えている場合

10040

TRADE_RETCODE_LIMIT_POSITIONS

口座上で同時に保有できるポジション数は、サーバー設定によって制限されている場合があります。制限に達すると、新規注文を出そうとした際にサーバーから TRADE_RETCODE_LIMIT_POSITIONSエラーが返されます。この制限の動作は、ポジション会計の種類によって異なります。

  • ネッティング:保有中のポジションの数が制限の対象となります。制限に達すると、新たなポジション数を増やす可能性のある注文の発注ができなくなります。つまり、すでにポジションを保有している銘柄に対する注文のみが許可されます。なお、現在の未決注文はカウントされません。これは、未決注文の約定によって既存ポジションが変化する可能性はあっても、ポジション数が増えるわけではないためです。
  • ヘッジ:保有中のポジションに加えて未決注文の数も制限の対象となります。これは、未決注文が約定すれば、必ず新たなポジションが追加で発生するためです。制限に達している場合、新たなポジションを開くための成行注文も予約注文も出すことができなくなります。

10041

TRADE_RETCODE_REJECT_CANCEL

未決注文の執行リクエストは却下され、注文はキャンセルされました

10042

TRADE_RETCODE_LONG_ONLY

銘柄に対して「ロングポジションのみ許可」ルールが設定されているため、リクエストは却下されました(POSITION_TYPE_BUY

10043

TRADE_RETCODE_SHORT_ONLY

銘柄に対して「ショートポジションのみ許可」ルールが設定されているため、リクエストは却下されましたPOSITION_TYPE_SELL

10044

TRADE_RETCODE_CLOSE_ONLY

銘柄に対して「ポジションの決済のみ許可」ルールが設定されているため、リクエストは却下されました

10045

TRADE_RETCODE_FIFO_CLOSE

取引口座に対して「ポジションの決済はFIFOルールによってのみ許可」が設定されているため、リクエストは却下されました(ACCOUNT_FIFO_CLOSE=true)

10046

TRADE_RETCODE_HEDGE_PROHIBITED

取引口座に対して「単一銘柄での反対ポジションは無効」ルールが設定されているため、リクエストは却下されました。たとえば、口座に買いポジションがある場合、ユーザーは売りポジションを開くことも、売り注文を出すこともできません。このルールはヘッジ会計システムを採用した口座にのみ適用されます(ACCOUNT_MARGIN_MODE=ACCOUNT_MARGIN_MODE_RETAIL_HEDGING)。