コードジェネレーターの使用方法
カスタムタグ作成方法
必要なカスタムタグを、データディクショナリ(FIX4X.xml)のフィールド欄に追加する。
追加したフィールドを、使用するコンポーネント、メッセージに登録する。
※下の変更点を参照
+コードジェネレータ(![[QuickFix]]/Jで定義されているクラス)で、カスタムタグが反映されたJarファイルを生成する。
-作成手順は、下記参照。添付ファイルに!CodeGenerateを行うプロジェクトの圧縮ファイルを置く
+!OrderTypeへ指し成り、引け成り追加
{{{
#!textile
<field number="40" name="OrdType" type="CHAR">
<value enum="1" description="MARKET"/>
<value enum="2" description="LIMIT"/>
<value enum="3" description="STOP"/>
<value enum="4" description="STOP_LIMIT"/>
<value enum="5" description="MARKET_ON_CLOSE"/>
<value enum="6" description="WITH_OR_WITHOUT"/>
<value enum="7" description="LIMIT_OR_BETTER"/>
<value enum="8" description="LIMIT_WITH_OR_WITHOUT"/>
<value enum="9" description="ON_BASIS"/>
<value enum="A" description="ON_CLOSE"/>
<value enum="B" description="LIMIT_ON_CLOSE"/>
<value enum="C" description="FOREX_MARKET"/>
<value enum="D" description="PREVIOUSLY_QUOTED"/>
<value enum="E" description="PREVIOUSLY_INDICATED"/>
<value enum="F" description="FOREX_LIMIT"/>
<value enum="G" description="FOREX_SWAP"/>
<value enum="H" description="FOREX_PREVIOUSLY_QUOTED"/>
<value enum="I" description="FUNARI"/>
<value enum="J" description="MARKET_IF_TOUCHED"/>
<value enum="P" description="PEGGED"/>
◎<value enum="y" description="SASHI_NARI"/>
◎<value enum="z" description="HIKE_NARI"/>
</field>
}}}
0. !SecurityStatusメッセージの!SecurityTradingStatusにFIX4.4で使用できる値を追加。また、フ(100)、ト(101)、コ(102)も追加
{{{
#!textile
<field number="326" name="SecurityTradingStatus" type="INT">
<value enum="1" description="OPENING_DELAY"/>
<value enum="2" description="TRADING_HALT"/>
<value enum="3" description="RESUME"/>
<value enum="4" description="NO_OPENNO_RESUME"/>
<value enum="5" description="PRICE_INDICATION"/>
<value enum="6" description="TRADING_RANGE_INDICATION"/>
<value enum="7" description="MARKET_IMBALANCE_BUY"/>
<value enum="8" description="MARKET_IMBALANCE_SELL"/>
<value enum="9" description="MARKET_ON_CLOSE_IMBALANCE_BUY"/>
<value enum="10" description="MARKET_ON_CLOSE_IMBALANCE_SELL"/>
<value enum="12" description="NO_MARKET_IMBALANCE"/>
<value enum="13" description="NO_MARKET_ON_CLOSE_IMBALANCE"/>
<value enum="14" description="ITS_PREOPENING"/>
<value enum="15" description="NEW_PRICE_INDICATION"/>
<value enum="16" description="TRADE_DISSEMINATION_TIME"/>
<value enum="17" description="READY_TO_TRADE"/>
<value enum="18" description="NOT_AVAILABLE_FOR_TRADING"/>
<value enum="19" description="NOT_TRADED_ON_THIS_MARKET"/>
<value enum="20" description="UNKNOWN_OR_INVALID"/>
◎<value enum="21" description="PRE_OPEN"/>
◎<value enum="22" description="OPENING_ROTATION"/>
◎<value enum="23" description="FAST_MARKET"/>
◎<value enum="100" description="ORDER_LACK"/>
◎<value enum="101" description="SPECIAL_SIGN"/>
◎<value enum="102" description="WARNING_POINT"/>
</field>
}}}
0. !OpenCloseSettleFlagに3(Expected)を追加
{{{
#!textile
<field number="286" name="OpenCloseSettleFlag" type="CHAR">
<value enum="0" description="DAILY_OPEN_CLOSE__SETTLEMENT_PRICE"/>
<value enum="1" description="SESSION_OPEN_CLOSE__SETTLEMENT_PRICE"/>
<value enum="2" description="DELIVERY_SETTLEMENT_PRICE"/>
◎<value enum="3" description="EXPECTED"/>
</field>
}}}
0. MDEntryTypeに'''W,X,Y,Z'''を追加
{{{
#!textile
<field number="269" name="MDEntryType" type="CHAR">
<value enum="0" description="BID"/>
<value enum="1" description="OFFER"/>
<value enum="2" description="TRADE"/>
<value enum="3" description="INDEX_VALUE"/>
<value enum="4" description="OPENING_PRICE"/>
<value enum="5" description="CLOSING_PRICE"/>
<value enum="6" description="SETTLEMENT_PRICE"/>
<value enum="7" description="TRADING_SESSION_HIGH_PRICE"/>
<value enum="8" description="TRADING_SESSION_LOW_PRICE"/>
<value enum="9" description="TRADING_SESSION_VWAP_PRICE"/>
◎<value enum="W" description="MARKET_ORDER_BUY"/>
◎<value enum="X" description="MARKET_ORDER_SELL"/>
◎<value enum="Y" description="TOTAL_BUY_BOOK"/>
◎<value enum="Z" description="TOTAL_SELL_BOOK"/>
</field>
}}}
0. カスタムタグ10044(!LocalTransactTime)を追加
{{{
#!textile
まず、カスタムタグ10044(LocalTransactTime)を定義
◎<field number="10044" name="LocalTransactTime" type="UTCTIMESTAMP" />
その後
「執行レポート」タグに10044タグを追加
<message name="ExecutionReport" msgtype="8" msgcat="app">
<field name="OrderID" required="Y"/>
<field name="SecondaryOrderID" required="N"/>
<field name="ClOrdID" required="N"/>
(省略)
<field name="TransactTime" required="N"/>
◎<field name="LocalTransactTime" required="N"/>
(省略)
</message>
「取り消し拒否」タグに10044タグを追加
<message name="OrderCancelReject" msgtype="9" msgcat="app">
<field name="OrderID" required="Y"/>
<field name="SecondaryOrderID" required="N"/>
<field name="ClOrdID" required="Y"/>
<field name="OrigClOrdID" required="Y"/>
<field name="OrdStatus" required="Y"/>
<field name="ClientID" required="N"/>
<field name="ExecBroker" required="N"/>
<field name="ListID" required="N"/>
<field name="Account" required="N"/>
<field name="TransactTime" required="N"/>
◎<field name="LocalTransactTime" required="N"/>
<field name="CxlRejResponseTo" required="Y"/>
<field name="CxlRejReason" required="N"/>
<field name="Text" required="N"/>
<field name="EncodedTextLen" required="N"/>
<field name="EncodedText" required="N"/>
</message>
}}}
0. カスタムタグ6209(ClRefID)を追加
{{{
#!textile
まず、カスタムタグ6209(ClRefID)を定義
◎<field number="6209" name="ClRefId" type="STRING" />
その後
「執行レポート」タグに6209タグを追加
<message name="ExecutionReport" msgtype="8" msgcat="app">
<field name="OrderID" required="Y"/>
<field name="SecondaryOrderID" required="N"/>
<field name="ClOrdID" required="N"/>
(省略)
<field name="TransactTime" required="N"/>
<field name="LocalTransactTime" required="N"/>
◎<filed name="ClRefId" required="N"/>
(省略)
</message>
「シングル新規発注」タグに6209タグを追加
<message name="NewOrderSingle" msgtype="D" msgcat="app">
<field name="ClOrdID" required="Y"/>
<field name="ClientID" required="N"/>
(省略)
<field name="ClearingAccount" required="N"/>
◎<field name="ClRefId" required="N"/>
</message>
}}}
!CodeGenerat(添付ファイルのプロジェクト)の使用方法
{{{
1. このページの添付ファイルをローカルマシンに落とす。
2. ファイルをEclipseへインポートする。(インポート方法はEclipseの使用方法を参照)
3. CodeGenerate - spec に変更した Fix42.xml ファイルを置く(更新する)
4. build.xmlを実行する。その時のタスクは、clean -> jar
※CodeGenerate - readme.txt を参照すること。
}}}
最終更新:2009年05月27日 06:01