QuickFix/J (3):自定义字段

自定义Fields

我们在做FIX开发的时候,经常遇到原生的FIX标签并不能满足我们的业务需求;这个时候就需要涉及到自定义的“字段”,“类”,“集合”。
非安全性的自定义Fields
message.setField(new DoubleField(6123), "value");
DoubleField field = message.getField(new DoubleField(6123));
推荐的自定义Fields方法
 上面的自定义方法在团队开发中,经常会引起不必要的麻烦(标签被重用,标签难以理解等问题。)
 FIXJ官网推荐我们使用如下方法自定义Field
 // RemiteNOField.java
 import quickfix.StringField;
 public class RemiteNOField extends StringField
 { 
     public RemiteNOField () { super(C); }
     public RemiteNOField (String data) { super(RemiteNOField , data); 
}}

当然自定义完字段以后!需要在FIX4.4.xml文件中添加相应的Field描述。

 <fields>
      <field number="1" name="RemiteNOField" type="String" />
      ...
      <field number="4" name="AdvSide" type="CHAR">
       <value enum="B" description="BUY" />
       <value enum="S" description="SELL" />
       <value enum="X" description="CROSS" />
       <value enum="T" description="TRADE" />
     </field>

自定义Message

FIX中的Message相当我们理解的JAVA类。你可以自定义Message来描述一个对象。然后再XML文件中添加相应的Message描述。
注意:记得在35标签的位置添加相应的枚举
<value enum="Z6666" description="OrdersAfterSomeIDRequest"/>
JAVA类代码
import quickfix.Message;
import quickfix.field.OrdStatus;
import quickfix.field.OrderID;
import quickfix.field.SecurityType;
import quickfix.field.StrikeCurrency;
import quickfix.field.Symbol;
import quickfix.field.TradeRequestID;
import quickfix.field.TradeRequestType;

import com.okcoin.okfix.okserver.response.future.PageNO;

/**
 * @ClassName: OrdersRequest
 * @Description:获取指定ID的订单号
 * 
 */
public class OrdersAfterSomeIDRequest extends Message {
   

    private static final long serialVersionUID = 7922839466982400795L;
    public static final String MSGTYPE = "Z6666";

    public OrdersAfterSomeIDRequest() {
        getHeader().setField(new quickfix.field.MsgType("Z6666"));
    }

    public void set(Symbol field) { // 55
        setField(field);
    }

    public 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值