cTrader FIX Engine, Rules of Engagement

API

はじめに

範囲

この仕様書は、cTrader FIXエンジン アプリケーション プログラミング インターフェース(API)の実装ガイドとしてソフトウェア開発者に役立つことを目的としています。

cTrader FIXバージョン

cTraderはFIXバージョン4.4をサポートしています。このバージョンの詳細については、これらの仕様を参照してください。

cTrader 接続性

接続タイプ

cTraderのFIXエンジンへの接続は、インターネット、VPNトンネル、または英国のデータセンタ施設へのクロスコネクトを介して利用できます。詳細についてはお問い合わせください。

シーケンス番号のリセット

FIXセッションを確立する際に、FIXセッションのすべての側がシーケンス番号をリセットする必要があります。ログオンメッセージを参照してください。

cTraderメッセージ

FIXプロトコルで定義されているように、cTrader FIXサーバーはシステムおよびアプリケーションの2つの異なるデータレベルを使用しています。これは必要なワークフローをサポートするために必要な最低限のメッセージセットであることに注意してください。ビジネスニーズやFIX標準の進化に伴い、時間とともに変更される可能性があります。

cTrader FIXエンジン

システムメッセージ

  • ハートビート (クライアント ↔ cTrader)
  • テストリクエスト (クライアント ↔ cTrader)
  • ログオン (クライアント → cTrader)
  • ログアウト (クライアント → cTrader)
  • 再送リクエスト (クライアント ↔ cTrader)
  • リジェクト (クライアント ↔ cTrader)
  • シーケンスリセット (クライアント ↔ cTrader)

アプリケーションメッセージ

    • マーケットデータリクエスト (クライアント → cTrader)
    • マーケットデータスナップショット/フルリフレッシュ (クライアント ← cTrader)
  • マーケットデータインクリメンタルリフレッシュ (クライアント ← cTrader)
  • 新規注文シングル (クライアント → cTrader)
  • 注文ステータスリクエスト (クライアント → cTrader)
  • 注文マスステータスリクエスト (クライアント → cTrader)
  • 実行レポート (クライアント ← cTrader)
  • ビジネスメッセージリジェクト (クライアント ← cTrader)
  • ポジションリクエスト (クライアント → cTrader)
  • ポジションレポート (クライアント ← cTrader)
  • 注文キャンセルリクエスト (クライアント → cTrader)
  • 注文キャンセルリジェクト (クライアント ← cTrader)
  • 注文キャンセル/置換リクエスト (クライアント → cTrader)
  • 証券リストリクエスト (クライアント → cTrader)
  • 証券リスト (クライアント ← cTrader)

標準ヘッダー

すべての管理メッセージまたはアプリケーションメッセージの前には標準ヘッダーが付いています。ヘッダーは、メッセージタイプ、長さ、宛先、シーケンス番号、発信点、および時刻を識別します。

cTraderに送信されるすべてのメッセージには、以下のフィールドを持つ標準ヘッダーが必要です:

Tag フィールド名 必須 FIX形式 コメント
8 BeginString はい FIX.4.4 文字列 常に暗号化されていない。メッセージ内で最初のフィールドでなければならない。
9 BodyLength はい 任意の有効な値 整数 メッセージ本文の長さ。常に暗号化されていない。メッセージ内で2番目のフィールドでなければならない。
35 MsgType はい A 文字列 メッセージタイプ。常に暗号化されていない。メッセージ内で3番目のフィールドでなければならない。
49 SenderCompID はい 任意の有効な値 文字列 トレーディングパーティのID。形式は<Environment>.<BrokerUID>.<Trader Login>Environmentはサーバーの種類(デモまたはライブ)、BrokerUIDはcTraderから提供される識別子、Trader Loginはトレーダーアカウントの数値識別子。
56 TargetCompID はい CSERVER 文字列 メッセージのターゲット。正しい値はCSERVER
57 TargetSubID はい QUOTEまたはTRADE 文字列 追加のセッション修飾子。可能な値はQUOTEおよびTRADE
50 SenderSubID いいえ 任意の有効な値 文字列 特定のメッセージ送信元を識別するために使用される割り当てられた値。TargetSubID=QUOTEの場合、QUOTEに設定される必要があります。
34 MsgSeqNum はい 1 整数 メッセージのシーケンス番号。
52 SendingTime はい 20131129-15:40:08.155 UTCTimestamp UTC(協定世界時、GMTとしても知られる)で表現されるメッセージ送信時刻。

標準トレーラー

各メッセージ(管理メッセージまたはアプリケーションメッセージ)は標準トレーラーで終了します。トレーラーはメッセージを区切るために使用され、CheckSum(タグ=10)値の3桁の表現を含みます。

Tag フィールド名 必須 FIX形式 コメント
10 CheckSum はい 054 文字列 3バイトの単純なチェックサム。常にメッセージの最後のフィールド(つまり、サーブ)であり、後続の<SOH>がメッセージの終端を示す区切り文字となります。常に暗号化されていない3文字として定義されます。

セッションメッセージ

ハートビート (MsgType(35)=0)

ハートビートメッセージは、cTraderおよびクライアントアプリケーションの両方によって、ライブ接続を確認するために送信されます。

プロバイダのクライアントアプリケーションは、ログオンメッセージのHeartBtInt(タグ=108)フィールドで定義された間隔で定期的なハートビートを送信するか、テストリクエストメッセージに応答してハートビートを送信します。

Tag フィールド名 必須 FIX形式 コメント
  標準ヘッダー はい      
112 TestReqID いいえ 任意の有効な値 文字列 ハートビートがテストリクエストメッセージの結果である場合、TestReqIDが必要です。
  標準トレーラー はい      

テストリクエスト (MsgType(35)=1)

リクエストの受信者からのハートビートを強制します。受信システムからの応答として、TestReqIDを含むハートビートメッセージが送信されます。

Tag フィールド名 必須 FIX形式 コメント
  標準ヘッダー はい      
112 TestReqID はい 任意の有効な値 文字列 ハートビートメッセージID。TestReqIDは増分である必要があります。
  標準トレーラー はい      

ログオン (双方向) (MsgType(35)=A)

ログオンメッセージは、クライアント側のアプリケーションからcTrader FIXセッションを開始するために送信され、cTraderからクライアント側のアプリケーションに応答が送信されます。ログオンが完了すると、セッションのライフサイクルにわたって引用および取引フローを続行できます。

無効なログオンメッセージがcTraderに受信されると(無効なフィールドを含む)、cTraderは応答としてログアウトメッセージを送信します。

Tag フィールド名 必須 FIX形式 コメント
  標準ヘッダー はい      
98 EncryptMethod はい 0 整数 メッセージ暗号化スキームを定義します。現在、トランスポートレベルのセキュリティのみがサポートされています。正しい値は0 = NONE_OTHER(暗号化は使用されていません)。
108 HeartBtInt はい 任意の有効な値 整数 秒単位のハートビート間隔。この値はconfig.propertiesファイル(クライアント側)でSERVER.POLLING.INTERVALとして設定されます。デフォルトの間隔値は30秒です。HeartBtInt0に設定されている場合、ハートビートメッセージは不要です。
141 ResetSeqNumFlag いいえ Y ブール値 FIXセッションのすべての側がシーケンス番号をリセットする必要があります。正しい値はY(リセット)。
553 Username いいえ 任意の有効な値 文字列 数値のユーザーID。ユーザーはSenderCompID値(ユーザーの組織、タグ=49)にリンクされています。
554 Password いいえ 任意の有効な値 文字列 ユーザーパスワード。
  標準トレーラー はい      

Username(タグ=553)フィールドには数値のトレーダーログイン値を含める必要があり、SenderCompID(タグ=49)フィールドには環境、BrokerUID、およびトレーダーログインがドットで区切られた形式(例:live.theBroker.12345)で含まれている必要があることに注意してください。

以下にログオンメッセージの例を示します。

Request

8=FIX.4.4|9=126|35=A|49=live.theBroker.12345|56=CSERVER|34=1|52=20170117-08:03:04|57=TRADE|50=any_string|98=0|108=30|141=Y|553=12345|554=passw0rd!|10=131|

Response (Success)

8=FIX.4.4|9=106|35=A|34=1|49=CSERVER|50=TRADE|52=20170117-08:03:04.509|56=live.theBroker.12345|57=any_string|98=0|108=30|141=Y|10=066|

Response (Failed)

8=FIX.4.4|9=109|35=5|34=1|49=CSERVER|50=TRADE|52=20170117-08:03:04.509|56=live.theBroker.12345|58=InternalError: 

cTraderログアウト (MsgType(35)=5)

ログアウトメッセージは、クライアントアプリケーションからcTraderへのセッション終了要求として送信され、cTraderからの応答としても送信されます。市場参加者がcTraderにログアウトメッセージを送信することでセッションのログアウトが発生します。セッションを終了する前に、cTraderはリクエスト元に対してまだアクティブにストリーミングされているすべての価格をキャンセルします。cTraderが無効なログオンメッセージ(無効なフィールドを含む)を受信した場合、cTraderは応答としてText(タグ=58)フィールドにエラーディテールを含むログアウトメッセージを送信します。

Tag フィールド名 必須 FIX形式 コメント
  標準ヘッダー はい      
58 Text いいえ 任意の有効な値 文字列 ログオン拒否の詳細。無効なログオンメッセージの応答としてcTraderからクライアントへのメッセージにのみ使用されます。
  標準トレーラー はい      

以下にログアウトメッセージの例を示します。

Request

8=FIX.4.4|9=86|35=5|49=live.theBroker.12345|56=CSERVER|34=161|52=20170117-09:22:33|57=TRADE|50=any_string|10=102|

Response

8=FIX.4.4|9=90|35=5|34=160|49=CSERVER|50=TRADE|52=20170117-09:22:33.077|56=live.theBroker.12345|57=any_string|10=044|

cTrader再送リクエスト (MsgType(35)=2)

シーケンス番号にギャップが検出された場合に、メッセージ(またはメッセージ群)の再送を要求するためにインバウンド/アウトバウンドメッセージが使用されます。

タグ フィールド名 必須 FIX形式 コメント
  標準ヘッダー はい      
7 BeginSeqNo はい 任意の有効な値 整数 再送範囲の最初のレコードのメッセージシーケンス番号。
16 EndSeqNo はい 任意の有効な値 整数 再送範囲の最後のレコードのメッセージシーケンス番号。
  標準トレーラー はい      

cTrader拒否 (双方向) (MsgType(35)=3)

受信したメッセージがセッションレベルの規則違反により処理できない場合に送信されます。拒否されたメッセージは記録され、受信シーケンス番号にインクリメントが適用されなければなりません。

タグ フィールド名 必須 FIX形式 コメント
  標準ヘッダー はい      
45 RefSeqNum はい 任意の有効な値 SeqNum 参照されたメッセージのシーケンス番号。
58 Text いいえ 任意の有効な値 文字列 自由形式のテキスト文字列。
354 EncodedTextLen いいえ 任意の有効な値 長さ EncodedText(非ASCII文字)のフィールドのバイト単位の長さ。
355 EncodedText いいえ 任意の有効な値 データ 標準ヘッダーのMessageEncoding(タグ=347)フィールドで指定された形式を使用してエンコードされたText(タグ=58)フィールドの表現。ASCII表現が使用される場合、Text(タグ=58)フィールドにも指定する必要があります。
371 RefTagID いいえ 任意の有効な値 整数 メッセージ拒否を引き起こしたFIXフィールドのタグ番号。
372 RefMsgType いいえ 任意の有効な値 文字列 参照されたFIXメッセージのMsgType(タグ=35)。
373 SessionRejectReason いいえ 任意の有効な値 整数 拒否のコード化された理由。 有効な値は次の通りです:
0 = 無効なタグ番号;
1 = 必須タグが欠落;
2 = このメッセージタイプにはタグが定義されていない;
3 = 未定義のタグ;
4 = 指定されたタグの値がない;
5 = このタグの値が範囲外;
6 = 値のデータ形式が間違っている;
7 = 復号化の問題;
8 = 署名エラー;
9 = CompIDエラー;
10 = 送信時刻の精度エラー;
11 = MsgTypeが無効;
12 = XML検証エラー;
13 = タグが繰り返されている;
14 = 指定されたタグが正しい順序にない;
15 = 繰り返しグループフィールドが正しい順序にない;
16 = 繰り返しグループのNumInGroup数が間違っている;
17 = 非データ値にフィールド区切り文字(SOH文字)が含まれている。
  標準トレーラー はい      

cTraderシーケンスリセット (MsgType(35)=4)

アプリケーションレベルで使用してはならないインバウンド/アウトバウンドメッセージ。シーケンスリセットメッセージはシーケンス番号を増加させるのみです。

タグ フィールド名 必須 FIX形式 コメント
  標準ヘッダー はい      
123 GapFillFlag いいえ Yes または No 文字列 シーケンスリセットメッセージが再送されない管理メッセージまたはアプリケーションメッセージを置き換えていることを示します。
36 NewSeqNo はい 1 整数 新しいシーケンス番号。
  標準トレーラー はい      

cTraderアプリケーションメッセージ

マーケットデータリクエスト (MsgType(35)=V)

タグ フィールド名 必須 FIX形式 コメント
  標準ヘッダー はい      
262 MDReqID はい 任意の有効な値 文字列 一意の見積もりリクエストID。新しいサブスクリプションの場合は新しいID、サブスクリプションの削除の場合は以前に使用したID。
263 SubscriptionRequestType はい 1 または 2 文字 1 = スナップショットおよび更新(サブスクライブ);
2 = 前のスナップショットおよび更新リクエストの無効化(サブスクリプション解除)。
264 MarketDepth はい 0 または 1 整数 フルブックが提供されます。
0 = 深さのサブスクリプション;
1 = スポットサブスクリプション。
265 MDUpdateType はい 任意の有効な値 整数 インクリメンタルリフレッシュのみがサポートされています。
267 NoMDEntryTypes はい 2 整数 常に2(入札とオファーの両方が送信されます)。
269 MDEntryType はい 0 または 1 文字 この繰り返しグループには、要求者が受信したいマーケットデータエントリのすべてのタイプのリストが含まれます。
0 = 入札;
1 = オファー。
146 NoRelatedSym はい 任意の有効な値 整数 要求されたシンボルの数。
55 Symbol はい 任意の有効な値 長整数 スポットウェアによって提供されるインストルメント識別子。
  標準トレーラー はい      

以下にマーケットデータリクエストメッセージの例を示します。

スポット取引の場合

Request

8=FIX.4.4|9=131|35=V|49=live.theBroker.12345|56=CSERVER|34=3|52=20170117-10:26:54|50=QUOTE|262=876316403|263=1|264=1|265=1|146=1|55=1|267=2|269=0|269=1|10=094|

Response

8=FIX.4.4|9=134|35=W|34=2|49=CSERVER|50=QUOTE|52=20170117-10:26:54.630|56=live.theBroker.12345|57=any_string|55=1|268=2|269=0|270=1.06625|269=1|270=1.0663|10=118|

For Depths

Request

8=FIX.4.4|9=131|35=V|49=live.theBroker.12345|56=CSERVER|34=2|52=20170117-11:13:44|50=QUOTE|262=876316411|263=1|264=0|265=1|146=1|55=1|267=2|269=0|269=1|10=087|

Responses

8=FIX.4.4|9=310|35=W|34=2|49=CSERVER|50=QUOTE|52=20180925-12:05:28.284|56=live.theBroker.12345|57=Quote|55=1|268=6|269=1|270=1.11132|271=3000000|278=16|269=1|270=1.11134|271=5000000|278=17|269=1|270=1.11133|271=3000000|278=15|269=0|270=1.1112|271=2000000|278=12|269=0|270=1.11121|271=1000000|278=13|269=0|270=1.11122|271=3000000|278=14|10=247|
8=FIX.4.4|9=693|35=X|34=2|49=CSERVER|50=QUOTE|52=20170117-11:13:44.461|56=live.theBroker.12345|57=any_string|268=12|279=0|269=1|278=7475|55=1|270=1.0691|271=2000000|279=0|269=1|278=7476|55=1|270=1.06911|271=3000000|279=0|269=1|278=7484|55=1|270=1.06931|271=34579000|279=0|269=1|278=7485|55=1|270=1.06908|271=1000000|279=0|269=1|278=7483|55=1|270=1.06906|271=500000|279=0|269=1|278=7482|55=1|270=1.06907|271=500000|279=0|269=1|278=7488|55=1|270=1.06909|271=3000000|279=0|269=0|278=7468|55=1|270=1.06898|271=500000|279=0|269=0|278=7467|55=1|270=1.06874|271=32371000|279=0|269=0|278=7457|55=1|270=1.06899|271=1000000|279=0|269=0|278=7478|55=1|270=1.06896|271=7000000|279=0|269=0|278=7477|55=1|270=1.06897|271=1500000|10=111|
8=FIX.4.4|9=376|35=X|34=3|49=CSERVER|50=QUOTE|52=20170117-11:13:44.555|56=live.theBroker.12345|57=any_string|268=8|279=0|269=0|278=7491|55=1|270=1.06897|271=1000000|279=0|269=0|278=7490|55=1|270=1.06898|271=1000000|279=0|269=0|278=7489|55=1|270=1.06874|271=32373000|279=0|269=1|278=7496|55=1|270=1.06931|271=34580000|279=2|278=7477|55=1|279=2|278=7468|55=1|279=2|278=7467|55=1|279=2|278=7484|55=1|10=192|

マーケットデータスナップショット/フルリフレッシュ (MsgType(35)=W)

Tag フィールド名 必須 FIXフォーマット コメント
  Standard Header はい      
262 MDReqID いいえ 任意の有効な値 String 以前に送信されたマーケットデータリクエストのID。
55 Symbol はい 任意の有効な値 Long 銘柄識別子はSpotwareが提供。
268 NoMDEntries はい 任意の有効な値 Integer 以下のエントリーの数。
269 MDEntryType いいえ 0 または 1 Char 有効な値は:
0 = Bid;
1 = Offer.
NoMDEntries (tag=268)が 0より大きい場合のみ必須。
299 QuoteEntryID いいえ 任意の有効な値 String QuoteSetの一部としての見積もりの一意の識別子。
270 MDEntryPx いいえ 1.2345 Price マーケットデータエントリーの価格。NoMDEntries (tag=268)が 0より大きい場合のみ必須。
271 MDEntrySize いいえ 500000 Volume マーケットデータエントリーのボリューム。NoMDEntries (tag=268)が 0より大きい場合のみ必須。
278 MDEntryID いいえ 任意の有効な値 String 一意のマーケットデータエントリー識別子。
  Standard Trailer はい      

マーケットデータインクリメンタルリフレッシュ (MsgType(35)=X)

Tag フィールド名 必須 FIXフォーマット コメント
  Standard Header はい      
262 MDReqID いいえ 任意の有効な値 String 以前に送信されたマーケットデータリクエストのID。
268 NoMDEntries はい 任意の有効な値 Integer 以下のエントリーの数。この繰り返しグループには、リクエスターが受け取りたいすべての種類のマーケットデータエントリーのリストが含まれます。
279 MDUpdateAction はい 0 または 2 Char マーケットデータ更新アクションのタイプ。有効な値は:
0 = 新規;
2 = 削除。
269 MDEntryType いいえ 0 または 1 Char 有効な値は:
0 = Bid;
1 = Offer。
278 MDEntryID はい 任意の有効な値 String マーケットデータエントリーのID。
55 Symbol はい 任意の有効な値 Long 銘柄識別子はSpotwareが提供。
270 MDEntryPx いいえ 1.2345 Price MDUpdateAction (tag=279)が 0の場合のみ必須。
271 MDEntrySize いいえ 10000 Double MDUpdateAction (tag=279)が 0の場合のみ必須。
  Standard Trailer はい      

cTrader新規注文シングル (MsgType(35)=D)

新規注文シングルメッセージの形式は以下の通りです。

Tag フィールド名 必須 FIXフォーマット コメント
  Standard Header はい      
11 ClOrdID はい 任意の有効な値 String クライアントによって割り当てられた注文の一意の識別子。
55 Symbol はい 任意の有効な値 Long 銘柄識別子はSpotwareが提供。
54 Side はい 1 または 2 Integer 1 = 買い;
2 = 売り。
60 TransactTime はい 任意の有効な値 Timestamp クライアントによって生成されたリクエスト時間。
38 OrderQty はい 任意の有効な値 Qty 注文された株数。これは株式の場合は株数を、通常の慣行に基づいてオプション、先物、転換社債などの場合は契約数を表します。最大精度は0.01です。FIX 4.2以前は、このフィールドのタイプは’Integer’でした。
40 OrdType はい 12 または 3 Char 1 = マーケット、注文は即時またはキャンセル(IOC)スキーム(TimeInForce、タグ=59)で処理されます;
2 = リミット、注文はキャンセルまで有効(GTC)スキーム(TimeInForce、タグ=59)で処理されます;
3 = ストップ、注文はキャンセルまで有効(GTC)スキーム(TimeInForce、タグ=59)で処理されます。
44 Price いいえ 任意の有効な値 Price クライアントが受け入れる最悪の価格。OrdType (tag=40)が 2の場合のみ必須、この場合、この価格が満たされるまで注文は成立しません。
99 StopPx いいえ 任意の有効な値 Price ストップ注文を引き起こす価格。OrdType (tag=40)が 3の場合のみ必須、この場合、この価格が満たされるまで注文は成立しません。
59 TimeInForce いいえ 13 または 6 String 廃止されたため、この値は無視されます。TimeInForceは、OrdType(タグ=40)およびExpireTime(タグ=126)に依存して自動的に検出されます:
1 = キャンセルまで有効(GTC)、リミットおよびストップ注文(OrdType、タグ=40)のみで使用され、ExpireTime(タグ=126)が定義されていない場合;
3 = 即時またはキャンセル(IOC)、マーケット注文(OrdType、タグ=40)のみで使用されます;
6 = 日付まで有効(GTD)、リミットおよびストップ注文(OrdType、タグ=40)のみで使用され、ExpireTime(タグ=126)が定義されている場合。
126 ExpireTime いいえ 20140215-07:24:55 Timestamp ‘YYYYMMDD-HH:MM:SS’形式の有効期限。割り当てられた場合、注文はGTDスキーム(TimeInForce: GTD)で処理されます。
721 PosMaintRptID いいえ 任意の有効な値 String この注文が配置されるポジションID。設定されていない場合、新しいポジションが作成され、そのIDが実行報告メッセージで返されます。ヘッジアカウントの場合のみ指定できます。
494 Designation いいえ 任意の有効な値 String カスタム注文ラベル。
  Standard Trailer はい      

以下に新規注文シングルメッセージの例を示します。

Market Order to New Position

Request

8=FIX.4.4|9=143|35=D|49=live.theBroker.12345|56=CSERVER|34=77|52=20170117-10:02:14|50=any_string|57=TRADE|11=876316397|55=1|54=1|60=20170117-10:02:14|40=1|38=10000|10=010|

Responses

8=FIX.4.4|9=197|35=8|34=77|49=CSERVER|50=TRADE|52=20170117-10:02:14.720|56=live.theBroker.12345|57=any_string|11=876316397|14=0|37=101|38=10000|39=0|40=1|54=1|55=1|59=3|60=20170117-10:02:14.591|150=0|151=10000|721=101|10=149|
8=FIX.4.4|9=206|35=8|34=78|49=CSERVER|50=TRADE|52=20170117-10:02:15.045|56=live.theBroker.12345|57=any_string|6=1.0674|11=876316397|14=10000|32=10000|37=101|38=10000|39=2|40=1|54=1|55=1|59=3|60=20170117-10:02:14.963|150=F|151=0|721=101|10=077|

既存のポジションへの市場注文

Request

8=FIX.4.4|9=151|35=D|49=live.theBroker.12345|56=CSERVER|34=80|52=20170117-10:02:55|50=any_string|57=TRADE|11=876316398|55=1|54=1|60=20170117-10:02:55|40=1|38=10000|721=101|10=120|

Responses

8=FIX.4.4|9=197|35=8|34=80|49=CSERVER|50=TRADE|52=20170117-10:02:56.003|56=live.theBroker.12345|57=any_string|11=876316398|14=0|37=102|38=10000|39=0|40=1|54=1|55=1|59=3|60=20170117-10:02:55.984|150=0|151=10000|721=101|10=156|
8=FIX.4.4|9=207|35=8|34=81|49=CSERVER|50=TRADE|52=20170117-10:02:56.239|56=live.theBroker.12345|57=any_string|6=1.06735|11=876316398|14=10000|32=10000|37=102|38=10000|39=2|40=1|54=1|55=1|59=3|60=20170117-10:02:56.210|150=F|151=0|721=101|10=127

既存のポジションへの指値注文

Request

8=FIX.4.4|9=162|35=D|49=live.theBroker.12345|56=CSERVER|34=89|52=20170117-10:06:22|50=any_string|57=TRADE|11=876316400|55=1|54=2|60=20170117-10:06:22|40=2|44=1.07162|38=50000|721=101|10=122|

Response

8=FIX.4.4|9=208|35=8|34=90|49=CSERVER|50=TRADE|52=20170117-10:06:22.466|56=live.theBroker.12345|57=any_string|11=876316400|14=0|37=104|38=50000|39=0|40=2|44=1.07162|54=2|55=1|59=1|60=20170117-10:06:22.436|150=0|151=50000|721=101|10=149|

新しいポジションへのストップ注文

Request

8=FIX.4.4|9=153|35=D|49=live.theBroker.12345|56=CSERVER|34=9|52=20170117-12:10:48|57=TRADE|50=any_string|11=876316418|55=1|54=1|60=20170117-12:10:48|40=3|38=50000|99=1.07148|10=249|

Response

8=FIX.4.4|9=207|35=8|34=8|49=CSERVER|50=TRADE|52=20170117-12:10:48.400|56=live.theBroker.12345|57=any_string|11=876316418|14=0|37=205|38=50000|39=0|40=3|54=1|55=1|59=1|60=20170117-12:10:48.362|99=1.07148|150=0|151=50000|721=202|10=122|

cTrader実行レポート(MsgType(35)=8)

受け入れられた注文の実行レポートメッセージの形式は次のとおりです。

タグ フィールド名 Req’d FIXフォーマット コメント
  標準ヘッダー はい      
37 OrderID はい 任意の有効な値 文字列 cTrader注文ID。
11 ClOrdID いいえ 任意の有効な値 文字列 クライアントによって割り当てられた注文の一意の識別子。
911 TotNumReports いいえ 任意の有効な値 整数 Order Mass Status Requestメッセージへの応答として返されるレポートの総数。
150 ExecType はい 任意の有効な値 文字 0 = 新規;
4 = キャンセル;
5 = 置換;
8 = 拒否;
C = 期限切れ;
F = 取引;
I = 注文状態。
39 OrdStatus はい 任意の有効な値 文字 0 = 新規;
1 = 部分的に埋められた;
2 = 埋められた;
8 = 拒否;
4 = キャンセル(注文が部分的に埋められている場合、キャンセル が返され、LeavesQty がキャンセルされ、その後には埋められません);
C = 期限切れ。
55 Symbol いいえ 任意の有効な値 ロング Instrument identificators are provided by Spotware.
54 Side いいえ 1 または 2 整数 1 = 購入;
2 = 売却。
60 TransactTime いいえ 任意の有効な値 タイムスタンプ 取引の実行時間を示す実行レポートメッセージ(UTC時間)。
6 AvgPx いいえ 任意の有効な値 整数 取引が埋められた価格。IOCまたはGTD注文の場合、これは埋められた注文の加重平均価格(VWAP)です。
38 OrderQty いいえ 任意の有効な値 数量 これは、株式の場合は株式の数、オプション、先物、転換社債などの場合は通常の規則に基づく契約の数を表します。FIX 4.2以前では、このフィールドのタイプは ‘Integer’でした。
151 LeavesQty いいえ 任意の有効な値 数量 まだ埋められていない注文の数。可能な値は0(完全に埋められた)からOrderQty(部分的に埋められた)までです。
14 CumQty いいえ 任意の有効な値 数量 埋められた注文の合計数。
32 LastQty No 任意の有効な値 数量 この(最後の)取引で埋められた注文の買い注文/売り注文数量。
40 OrdType No 1または2 Char 1 = マーケット;
2 = 指値。
44 Price No 任意の有効な値 価格 新規注文シングルメッセージで指定された場合、この実行レポートメッセージでエコーバックされます。
99 StopPx No 任意の有効な値 価格 新規注文シングルメッセージで指定された場合、この実行レポートメッセージでエコーバックされます。
59 TimeInForce No 1, 3または6 文字列 1 = 指値取消 (GTC);
3 = 即時取消 (IOC);
6 = 指値有効期限 (GTD)。
126 ExpireTime No 20140215-07:24:55 タイムスタンプ 新規注文シングルメッセージで指定された場合、この実行レポートメッセージでエコーバックされます。
58 Text No 任意の有効な値 文字列 可能な限り、メッセージが実行レポートを説明します。
103 OrdRejReason No 0 整数 0 = OrdRejReason.BROKER_EXCHANGE_OPTION
721 PosMaintRptID No 任意の有効な値 文字列 ポジションID。
494 Designation No 任意の有効な値 文字列 クライアントのカスタム注文ラベル。
584 MassStatusReqID No 任意の有効な値 文字列 クライアントによって割り当てられたマスステータスリクエストの一意のID。
1000 AbsoluteTP No 任意の有効な値 価格 テイクプロフィットがトリガーされる絶対価格。
1001 RelativeTP No 任意の有効な値 価格 テイクプロフィットがトリガーされるエントリ価格からのpip単位の距離。
1002 AbsoluteSL No 任意の有効な値 価格 ストップロスがトリガーされる絶対価格。
1003 RelativeSL No 任意の有効な値 価格 エントリ価格からのpip単位の
1004 TrailingSL No NまたはY Boolean ストップロスがトレーリングかどうかを示します。
N = ストップロスはトレーリングしていません;
Y = ストップロスはトレーリングしています。
1005 TriggerMethodSL No 任意の有効な値 整数 ストップロスの指定されたトリガーメソッド。
1 = 取引側によってストップロスがトリガーされます;
2 = 逆側によってストップロスがトリガーされます(買いポジションに対しては買い注文、売りポジションに対しては売り注文);
3 = 取引側によって2つの連続したチック後にストップロスがトリガーされます;
4 = 逆側によって2つの連続したチック後にストップロスがトリガーされます(買いポジションに対しては2番目の買いチック、売りポジションに対しては2番目の売りチック)。
1006 GuaranteedSL No NまたはY Boolean ストップロスが保証されているかどうかを示します。
N = ストップロスは保証されていません;
Y = ストップロスは保証されています。
  標準トレーラー はい      

ガイドの最後に新規注文シングルの例を参照してください。

cTraderビジネスメッセージリジェクト(MsgType(35)=j)

このメッセージタイプは、システムが購読リクエストを処理できない場合や注文が実行できない場合に送信されます。

タグ フィールド名 Req’d FIXフォーマット コメント
  標準ヘッダー はい      
45 RefSeqNum いいえ 任意の有効な値 整数 リジェクトされたメッセージのMsgSeqNum(tag=34)。
372 RefMsgType いいえ 任意の有効な値 文字列 参照されているFIXメッセージのMsgType(tag=35)。
379 BusinessRejectRefID いいえ 任意の有効な値 文字列 参照されているメッセージのビジネスレベルのIDフィールドの値。対応するIDフィールドが指定されていない場合は必須。
380 BusinessRejectReason はい 0 整数 ビジネスメッセージリジェクトメッセージの理由を識別するコード。
0 = その他。
58 Text いいえ 任意の有効な値 文字列 可能な限り、拒否の理由を説明するメッセージ。
  標準トレーラー はい      

以下に、ビジネスメッセージリジェクトメッセージの例をご覧ください。

8=FIX.4.4|9=149|35=j|34=2|49=CSERVER|52=20170105-06:36:00.912|56=live.theBroker.12345|57=any_string|58=Message to explain reason for rejection|379=u4Jr7Rr5t2VS7HSP|380=0|10=123|

以下に、ビジネスメッセージリジェクトメッセージの例をご覧ください。

Request

8=FIX.4.4|9=100|35=AN|49=live.theBroker.12345|56=CSERVER|34=99|52=20170117-10:09:54|50=any_string|57=TRADE|710=876316401|10=103|

Response

8=FIX.4.4|9=163|35=AP|34=98|49=CSERVER|50=TRADE|52=20170117-10:09:54.076|56=live.theBroker.12345|57=any_string|55=1|710=876316401|721=101|727=1|728=0|730=1.06671|702=1|704=0|705=30000|10=182|

cTraderポジションレポート(MsgType(35)=AP)

タグ フィールド名 Req’d FIXフォーマット コメント
  標準ヘッダー はい      
710 PosReqID はい 任意の有効な値 文字列 ポジションリクエストメッセージのID。
721 PosMaintRptID いいえ 任意の有効な値 文字列 PosReqResult(タグ=728)がVALID_REQUESTでない場合には設定されていません。
727 TotalNumPosReports はい 任意の有効な値 文字列 PosReqResult(タグ=728)がVALID_REQUESTの場合、シーケンス内のポジションレポートの総数、それ以外の場合は0
728 PosReqResult はい 0または2 文字列 0 = 有効なリクエスト;
2 = 条件に一致するオープンポジションが見つかりません。
55 Symbol いいえ 任意の有効な値 文字列 現在のポジションレポートが準備されているシンボル。PosReqResult(タグ=728)がVALID_REQUESTでない場合には設定されていません。
702 NoPositions いいえ 1 文字列 PosReqResult(タグ=728)がVALID_REQUESTの場合に1、それ以外の場合は設定されません。
704 LongQty いいえ 任意の有効な値 文字列 買い取引側のオープンボリューム。売り取引側の場合は0に等しい。 PosReqResult(タグ=728)がVALID_REQUESTでない場合には設定されません。
705 ShortQty いいえ 任意の有効な値 文字列 売り取引側のオープンボリューム。買い取引側の場合は0に等しい。 PosReqResult(タグ=728)がVALID_REQUESTでない場合には設定されません。
730 SettlPrice いいえ 任意の有効な値 文字列 現在のポジションレポートのオープンボリュームの平均価格。
1000 AbsoluteTP いいえ 任意の有効な値 価格 テイクプロフィットがトリガーされる絶対価格。
1002 AbsoluteSL いいえ 任意の有効な値 価格 ストップロスがトリガーされる絶対価格。
1004 TrailingSL いいえ 任意の有効な値 ブール値 ストップロスがトレーリングされているかどうかを示します。
N = ストップロスはトレーリングされていません;
Y = ストップロスはトレーリングされています。
1005 TriggerMethodSL いいえ 任意の有効な値 整数 ストップロスのトリガーメソッドを示します。
1 = トレード側によってストップロスがトリガーされます;
2 = 逆側によってストップロスがトリガーされます(買いポジションの場合は買い注文、売りポジションの場合は売り注文);
3 = トレード側によって2つの連続したティック後にストップロスがトリガーされます;
4 = 逆側によって2つの連続したティック後にストップロスがトリガーされます(買いポジションの場合は2番目の買いティック、売りポジションの場合は2番目の売りティック)。
1006 GuaranteedSL いいえ 任意の有効な値 ブール値 ストップロスが保証されているかどうかを示します。
N = ストップロスは保証されていません;
Y = ストップロスは保証されています。
  標準トレーラー はい      

cTrader注文キャンセルリクエスト(MsgType(35)=F)

タグ フィールド名 Req’d FIXフォーマット コメント
  標準ヘッダー はい      
41 OrigClOrdID はい 任意の有効な値 文字列 クライアントによって割り当てられたキャンセルされる注文の一意の識別子。
37 OrderID いいえ 任意の有効な値 文字列 cServerによって返される注文の一意のID。
11 ClOrdID はい 任意の有効な値 文字列 クライアントによって割り当てられたキャンセルリクエストの一意のID。
  標準トレーラー はい      

以下は、注文キャンセルリクエストメッセージの例です。

リクエスト

8=FIX.4.4|9=115|35=F|34=2|49=live.theBroker.12345|50=Trade|52=20170721-13:41:21.694|56=CSERVER|57=TRADE|11=jR8dBPcZEQa9|41=n9Tm8x1AavO5|10=182|

レスポンス(成功)

8=FIX.4.4|9=221|35=8|34=3|49=CSERVER|50=TRADE|52=20170721-13:41:21.784|56=live.theBroker.12345|57=Trade|11=jR8dBPcZEQa9|14=0|37=641|38=100000|39=4|40=2|41=n9Tm8x1AavO5|44=1.499|54=1|55=1|59=1|60=20170721-13:41:21.760|150=4|151=100000|721=624|10=180|

レスポンス(失敗)

8=FIX.4.4|9=174|35=j|34=3|49=CSERVER|50=TRADE|52=20170721-13:41:21.856|56=live.theBroker.12345|57=Trade|58=ORDER_NOT_FOUND:Order with clientOrderId=n9Tm8x1AavO5 not found.|379=jR8dBPcZEQa9|380=0|10=075|

cTrader 注文キャンセルリジェクト(MsgType(35)=9)

タグ フィールド名 Req’d FIXフォーマット コメント
  標準ヘッダー はい      
37 OrderID はい 任意の有効な値 文字列 システムがキャンセルできなかった注文の一意の識別子。
11 ClOrdID はい 任意の有効な値 文字列 注文キャンセルリクエストの一意の識別子。
41 OrigClOrdID いいえ 任意の有効な値 文字列 クライアントによって割り当てられた、キャンセルしようとした注文の一意の識別子。
39 OrdStatus はい 任意の有効な値 文字 0 = 新規;
1 = 部分的に埋められました;
2 = 埋められました;
8 = 拒否されました;
4 = キャンセルされました(注文が部分的に埋められた場合、キャンセルされましたとして返され、(tag=151)、LeavesQtyはキャンセルされ、その後は埋められません);
C = 期限切れ。
434 CxlRejResponseTo はい 1または2 文字 1 = キャンセル注文を拒否;
2 = 他の端末からの修正注文を拒否。
58 Text いいえ 任意の有効な値 文字列 注文は実行中です。
  標準トレーラー はい      

以下は、注文キャンセルリジェクトメッセージの例です。

レスポンス

8=FIX.4.4|9=156|35=9|34=3|49=CSERVER|50=TRADE|52=20181024-12:35:02.896|56=live.theBroker.12345|57=Trade|11=gBljx7YOg5jY|37=629|39=0|41=FdXLfS0tTyUL|58=Order is under execution|434=1|10=109|

cTrader 注文キャンセル/置換リクエスト(MsgType(35)=G)

タグ フィールド名 Req’d FIXフォーマット コメント
  標準ヘッダー はい      
41 cTraderOrigClOrdID はい 任意の有効な値 文字列 クライアントによって割り当てられた、修正される注文の一意の識別子。
37 OrderID いいえ 任意の有効な値 文字列 サーバーによって割り当てられた、修正される元の注文の一意のID。好ましい方法です。
11 ClOrdID はい 任意の有効な値 文字列 クライアントによって割り当てられた、修正リクエストの一意のID。
38 OrderQty はい 任意の有効な値 数量 古い値を置き換えるための既存または新しく指定された数量。
44 Price いいえ 任意の有効な値 価格 古い値を置き換えるための既存または新しく指定された制限価格。限界注文にのみ有効です。
99 StopPx いいえ 任意の有効な値 価格 古い値を置き換えるための既存または新しく指定されたストップ価格。ストップ注文にのみ有効です。
126 ExpireTime いいえ 20140215-07:24:55 タイムスタンプ 既存または新しく指定された有効期限。ペンディング注文にのみ有効です。
  標準トレーラー はい      

以下は、注文キャンセル/置換リクエストメッセージの例です。

Request

8=FIX.4.4|9=123|35=G|34=3|49=live.theBroker.12345|50=Trade|52=20170721-13:42:17.680|56=CSERVER|57=TRADE|11=Is03AvsknNYK|38=5000|41=n9Tm8x1AavO5|44=1.1|10=010|

Response (Success)

8=FIX.4.4|9=192|35=8|34=3|49=CSERVER|50=TRADE|52=20170721-13:42:18.784|56=live.theBroker.12345|57=Trade|11=Is03AvsknNYK|14=0|37=629|38=5000|39=0|40=2|44=1.1|54=1|55=1|59=1|60=20170721-13:42:18.760|150=5|151=5000|721=624|10=150|

Response (Failed)

8=FIX.4.4|9=171|35=j|34=3|49=CSERVER|50=TRADE|52=20170721-13:42:18.784|56=live.theBroker.12345|57=Trade|58=ORDER_NOT_FOUND:Order with orderId:4429421711699105367 isn't found|379=NXek3EzJvMme|380=0|10=245|

cTrader 市場データリクエストリジェクト(MsgType(35)=Y)

 

タグ フィールド名 Req’d FIXフォーマット コメント
  標準ヘッダー はい      
262 MDReqID はい 任意の有効な値 文字列 リクエストのMDReqID(tag=262)を参照する必要があります。
281 MDReqRejReason いいえ 任意の有効な値 整数 0 = 不明なシンボル;
4 = サポートされていないSubscriptionRequestType(tag=263);
5 = サポートされていないMarketDepth(tag=264)。
  標準トレーラー はい      

以下は、Market Data Request Rejectメッセージの例です。

Request

8=FIX.4.4|9=148|35=V|34=2|49=live.theBroker.12345|50=Quote|52=20170920-09:52:13.032|56=CSERVER|57=QUOTE|262=CS8260:sXlXex|263=1|264=0|265=1|146=1|55=CS8260|267=2|269=0|269=1|10=129|

Reject

8=FIX.4.4|9=164|35=Y|34=2|49=CSERVER|50=QUOTE|52=20170920-09:52:13.036|56=live.theBroker.12345|57=Quote|58=INVALID_REQUEST: Expected numeric symbolId, but got CS8260|262=CS8260:sXlXex|281=0|10=236|

Request

8=FIX.4.4|9=136|35=V|34=6|49=live.theBroker.12345|50=Quote|52=20170920-09:52:13.199|56=CSERVER|57=QUOTE|262=EwOhiWvMdCpc|263=1|264=3|146=1|55=1|267=2|269=0|269=1|10=182|

Reject

8=FIX.4.4|9=157|35=Y|34=6|49=CSERVER|50=QUOTE|52=20170920-09:52:13.201|56=live.theBroker.12345|57=Quote|58=INVALID_REQUEST: MarketDepth should be either 0 or 1|262=EwOhiWvMdCpc|281=5|10=088|

cTrader セキュリティリストリクエスト(MsgType(35)=x)

タグ フィールド名 Req’d FIXフォーマット コメント
  標準ヘッダー はい      
320 SecurityReqID はい 任意の有効な値 文字列 セキュリティ定義リクエストの一意のID。
559 SecurityListRequestType はい 0 整数 行われているセキュリティリストリクエストのタイプ。サポートされているのは0のみです。Symbol(tag=55)。
55 Symbol いいえ 任意の有効な値 整数 シンボル名を解決するためのID。
  標準トレーラー はい      

以下は、セキュリティリストリクエストメッセージの例です。

Request

8=FIX.4.4|9=107|35=x|34=3|49=live.theBroker.12345|50=Trade|52=20180427-12:24:27.106|56=CSERVER|57=TRADE|55=39|320=ILCea0JkdQEm|559=0|10=248|

Response

8=FIX.4.4|9=158|35=y|34=3|49=CSERVER|50=TRADE|52=20180427-12:24:27.107|56=live.theBroker.12345|57=Trade|320=ILCea0JkdQEm|322=responce:ILCea0JkdQEm|560=0|146=1|55=39|1007=NZDCHF|1008=4|10=088|

セキュリティリスト(MsgType(35)=y)

タグ フィールド名 Req’d FIXフォーマット コメント
  標準ヘッダー はい      
320 SecurityReqID はい 任意の有効な値 文字列 セキュリティ定義リクエストの一意のID。
322 SecurityResponseID はい 任意の有効な値 文字列 セキュリティリストの応答の一意のID。
560 SecurityRequestResult はい 0 整数 セキュリティリクエストメッセージに返される結果。有効な値は次のとおりです:
0 = 有効なリクエスト;
1 = 無効またはサポートされていないリクエスト;
2 = 選択基準に一致するインストゥルメントが見つかりません;
3 = インストゥルメントデータを取得する権限がありません;
4 = インストゥルメントデータが一時的に利用できません;
5 = インストゥルメントデータのリクエストがサポートされていません。
146 NoRelatedSym いいえ 任意の有効な値 整数 繰り返しシンボル(インストゥルメント)の数を指定します。
55 Symbol いいえ 任意の有効な値 整数 インストゥルメント識別子はSpotwareによって提供されます。
1007 SymbolName いいえ 任意の有効な値 文字列 シンボル名。
1008 SymbolDigits いいえ 任意の有効な値 整数 シンボルの桁数。可能な値は0から5までです。
  標準トレーラー はい      

以下は、セキュリティリストメッセージの例です。

Response

8=FIX.4.4|9=3977|35=y|34=2|49=CSERVER|50=TRADE|52=20180426-12:07:37.816|56=live.theBroker.12345|57=Trade|320=Sxo2Xlb
目次
このページについて
このページについて