株式市場はハイテク産業です。物理ITインフラストラクチャとハイテク取引ロボットに加えて、この市場のプレーヤーはデータ転送プロトコルの技術標準を開発しています。 今日の資料では、金融情報転送プロトコルに関する一連のトピックを公開しています。 最初の問題は、最も古いプロトコルの1つ、Financial Information eXchange、または略してFIXに関する情報を提供します。
ちょっとした歴史
FIXプロトコルの作成は、1992年に米国の多くの金融機関によって開始されました。ブローカーと投資ファンドは、取引所での取引プロセスを高速化することを望んでいました。 当時、取引操作の大部分は電話を使用して行われ、FIXプロトコルにより相互作用を電子形式に変換することができました。
その結果、電子形式で情報を送信するためのオープンスタンダードが誕生しました。これは、大規模な組織では管理されていません。 今日、FIXは、さまざまな国の金融市場参加者が製品を伝えるために使用する業界標準になっています。
仕組み
現在、プロトコルは、セッション(データ配信に関する作業)とアプリケーション(データコンテンツの説明)の2つのレベルで定義されています。 プロトコル構文には2つのバージョンがあります。従来のタグ=値形式とXML形式(FIXML)です。 それぞれについて考えてみましょう。
タグ値の構文
FIXプロトコルメッセージには通常、ヘッダーと実際にはメッセージ本文が含まれます。 各メッセージは、特殊文字で区切られた=フィールドのストリームです-FIX仕様は、ASCII文字SOH(#001、0x01)を使用してデータを分離します。
タグには
TagNum
形式のデータが含まれ、タグフィールドを空にすることはできません(さらに、値は正で、ゼロで始まらない必要があります)。 タグフィールドが空のメッセージは拒否されます。
通常、メッセージの本文は、見出し、メッセージの本文、および最終要素(トレーラー)で構成されます。 メッセージの最初のフィールドは常に行の先頭( BeginString 、タグ#8)であり、メッセージ本文の長さ( BodyLengthタグ#9)とメッセージのタイプ( MsgType 、タグ#35)が示されます 。 トレーラーの最後の文字は常にチェックサム(タグ#10)です。
多くの場合、メッセージには暗号化された部分とテキスト形式で送信された文字の両方が含まれます。このスキームは通常、データの検証と検証に使用されます。 たとえば、送信者を指す暗号化されたSenderCompID値を渡すことは、古い検証方法です。
柔軟性を高めるために、FIXプロトコルにはいわゆるユーザーフィールド(ユーザー定義フィールド)が含まれています。 これらは、協力する金融機関間でデータを転送するときに使用されます。 5000〜9999のタグ番号はユーザーフィールド用に予約されていました。標準の公式Webサイトで予約できます。 将来、これらの数値は使い果たされたため、新しい間隔が割り当てられました-20,000から39999まで。
タグ値形式のメッセージは次のとおりです(^文字はSOH区切り文字です)。
8=FIX.4.2^9=251^35=D^49=AFUNDMGR^56=ABROKER^34=2^52=20030615-01:14:49^11=12345^ 1=111111^63=0^64=20030621^21=3^110=1000^111=50000^ 55=IBM^48=459200101^22=1^54=1^60=2003061501:14:49 38=5000^40=1^44=15.75^15=USD^59=0^10=127
FIXML構文
XML形式で構文を作成する作業は1998年に始まり、FIXMLの最初のバージョンは1999年1月に登場しました。
FIXML形式のトランザクションの新しいアプリケーションは、次のとおりです。
<Order ClOrdID="123456" Side="2" TransactTm="2001-09-11T09:30:47-05:00" OrdTyp="2" Px="93.25" Acct="26522154">
ここで、ClOrdIDはid-orders、side =” 2”は売り注文を意味し、取引時間、注文のタイプ(2は指値注文に対応)、および価格pXが示されます。 Acctフィールドは、ユーザーアカウント番号を示します。
さらに、証券のメッセージ情報には、売買する必要がある証券の数が示されています。 その結果、単純なメッセージは次のようになります。
<FIXML> <Order ClOrdID="123456" Side="2" TransactTm="2001-09-11T09:30:47-05:00" OrdTyp="2" Px="93.25" Acct="26522154"> <Instrmt Sym="IBM" ID="459200101" IDSrc="1"/> <OrdQty Qty="1000"/> </Order> </FIXML>
XMLバージョンのFIXのパスの最初に、DTD構文決定メカニズムのみが使用されました。 さらに、W3C組織は新しいメカニズム-XMLスキーマを開発しました。これにより、FIX開発者はこの構文バリアントを使用するために標準を適合させる必要がありました。
このステップにより、FIXプロトコルのXMLバージョンを改善することが可能になりました。特に、ユーザーはメッセージに属性とコンテキストの略語を追加できました。
XMLスキーマの基本的な構成は、別のファイルに含まれるフィールドで使用されるデータ型の存在を前提としています。 FIXフィールドは特別な共有ファイルで定義され、コンポーネントとFIXML構文要素は特別なコンポーネントファイルで定義されます。 FIXMLメッセージは、カテゴリを示す特別なファイルを使用して定義されます。
FIXML(スキーマ)のアプリケーションの送信に関するメッセージの例:
<FIXML v="4.4" r="20030618" s="20040109"> <Order ClOrdID="123456" Side="2" TransactTm="2001-09-11T09:30:47-05:00" OrdTyp="2" Px="93.25" Acct="26522154"> <Instrmt Sym="IBM" ID="459200101" IDSrc="1"/> <OrdQty Qty="1000"/> </Order> </FIXML>
FIXメッセージ
FIXプロトコルの形式で送信される各メッセージは、必須、オプション、および条件付き必須(メッセージの他の部分の意味による)フィールドで構成されます。
メッセージは3つのカテゴリに分類されます。
- 取引前のメッセージ。
- トレーディングメッセージ(アプリケーションおよびトランザクションに関する情報の転送);
- 取引後のメッセージ。
ロシア取引所の修正
FIXプロトコルを使用すると、だれでも直接モスクワ取引所に接続できます。 さらに、取引所は、利用可能なすべての市場(株式、デリバティブ、外国為替)のFIXアクセスを統一するために取り組んでいます。
ITinvest は 、FIXプロトコルを介した直接接続を通じて、モスクワ取引所市場へのアクセスも顧客に提供します。 さらに、M1データセンターのサーバーコロケーションから、トレーディングロボットをホストするための仮想マシンへのアクセスの提供まで、高周波トレーダーおよびアルゴリズムトレーダー向けに特別なITサービスが作成されました。
その他のプロトコル
市場情報(市場データ)を取得するために、FASTプロトコル(Fix Adapted for STreaming)が使用されます-FIXプロトコルの作成者によって開発された標準であり、大幅なデータ圧縮機能により、最小限の時間遅延で大量の市場情報を転送できます。 モスクワ取引所に加えて、NYSE、Nasdaq-OMX、および他の多くの世界のサイトで使用されています。
また、直接接続のために、いわゆるネイティブプロトコルが使用されます。これは、MICEXおよびRTS交換がモスクワ交換に統合される前に発生しました。
そのため、RTS交換に関連する市場(FORTS- 先物とオプション 、標準)では、 Plaza II プロトコルを使用して、トランザクションを直接実行し、接続モードでデータを取得します。 以前にMICEX(通貨および株式市場)と呼ばれていたサイトで取引操作を実行し、交換データを取得するために、MICEXBridge(TEAP)双方向ゲートウェイが使用されます。
これらのプロトコルについては、次回の記事で説明します。 今日はこれですべてです。ご注意いただきありがとうございます。コメントの質問にお答えします。
PSタイプミスやエラーに気付いた場合は、個人的なメッセージを書いてください。すぐに修正します。