fix协议封装挑战-测试代码

原创 2013年12月03日 12:38:02

初步测试工具采用香港证券交易所的一个离线测试工具,测试数据包正确性。

工具名称叫做OCG Simulator 1.2.1。

测试代码比如:

TC_QM_03测试案例:

package cs.test;

import java.text.SimpleDateFormat;
import java.util.Date;

import cs.mina.SeqenceNum;
import cs.mina.codec.msg.BaseMsg;
import cs.mina.codec.msg.InstrumentTag;
import cs.mina.codec.msg.PartiesTag;
import cs.mina.codec.msg.Party;
import cs.mina.codec.msg.QuotCxlEntriesGrp;
import cs.mina.codec.msg.QuotCxlEntriesGrpTag;
import cs.mina.codec.msg.QuoteCancelMsg;
import cs.mina.codec.msg.QuoteMsg;
import cs.mina.codec.msg.ValueChecksGrp;
import cs.mina.codec.msg.ValueChecksGrpTag;

/*
 *@author(huangxiaoping)
 *@date 2013-12-2
 */
public class TC_QM_03Test {
	public static BaseMsg createMsg1(){
		QuoteMsg msg=new QuoteMsg();
		msg.getHeadEntity().getMsgSeqNum().setTagValue(SeqenceNum.getSeqence()+"");
		msg.getParties().setTagValue("1");
	   	 Party party=new Party();
	   	 party.getPartyID().setTagValue("1200");
	   	 party.getPartyIDSource().setTagValue("D");
	   	 party.getPartyRole().setTagValue("1");
	   	 ((PartiesTag)msg.getParties()).getChildren().add(party);
	   	((InstrumentTag)msg.getInstrument()).getSecurityID().setTagValue("40");
	   	 ((InstrumentTag)msg.getInstrument()).getSecurityIDSource().setTagValue("8");
	   	 ((InstrumentTag)msg.getInstrument()).getSecurityExchange().setTagValue("XHKG");
	   	 msg.getBidID().setTagValue("94");
	   	 msg.getOfferID().setTagValue("95");
	   	 msg.getQuoteType().setTagValue("1");
	   	 //msg.getSide().setTagValue("1");
	   	 msg.getBidSize().setTagValue("5000");
	   	 msg.getOfferSize().setTagValue("6000");
	   	 msg.getBidPx().setTagValue("15");
	   	 msg.getOfferPx().setTagValue("15.1");
	   	 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd-HH:mm:ss.SSS"); 
	   	 msg.getTransactTime().setTagValue(sdf.format(new Date()));
	   	 msg.getValueChecksGrp().setTagValue("2");
	     ValueChecksGrp valueChecksGrp=new ValueChecksGrp();
	     valueChecksGrp.getValueCheckType().setTagValue("1");
	     valueChecksGrp.getValueCheckAction().setTagValue("0");
	     ((ValueChecksGrpTag)msg.getValueChecksGrp()).getChildren().add(valueChecksGrp);
	     ValueChecksGrp valueChecksGrp2=new ValueChecksGrp();
	     valueChecksGrp2.getValueCheckType().setTagValue("2");
	     valueChecksGrp2.getValueCheckAction().setTagValue("0");
	     ((ValueChecksGrpTag)msg.getValueChecksGrp()).getChildren().add(valueChecksGrp2);
	     return msg;
	 }
	
	public static BaseMsg createMsg2(){
		QuoteCancelMsg msg=new QuoteCancelMsg();
		msg.getHeadEntity().getMsgSeqNum().setTagValue(SeqenceNum.getSeqence()+"");
		msg.getQuoteMsgID().setTagValue("96");
		msg.getQuoteCancelType().setTagValue("1");
		msg.getParties().setTagValue("1");
	   	 Party party=new Party();
	   	 party.getPartyID().setTagValue("1200");
	   	 party.getPartyIDSource().setTagValue("D");
	   	 party.getPartyRole().setTagValue("1");
	   	 ((PartiesTag)msg.getParties()).getChildren().add(party);
	   	 ((QuotCxlEntriesGrpTag)msg.getQuotCxlEntriesGrp()).setTagValue("1");
	   	QuotCxlEntriesGrp quotCxlEntriesGrp=new QuotCxlEntriesGrp();
	   	((InstrumentTag)quotCxlEntriesGrp.getInstrument()).getSecurityID().setTagValue("40");
	   	((InstrumentTag)quotCxlEntriesGrp.getInstrument()).getSecurityIDSource().setTagValue("8");
	   	((InstrumentTag)quotCxlEntriesGrp.getInstrument()).getSecurityExchange().setTagValue("XHKG");
	   	((QuotCxlEntriesGrpTag)msg.getQuotCxlEntriesGrp()).getChildren().add(quotCxlEntriesGrp);
	     return msg;
	 }
}
测试数据1;
发送1:
8=FIXT.1.1_9=221_35=S_49=CO99999901_56=HKEXCO_34=2_52=20131202-10:34:51.156_453=1_448=1200_447=D_452=1_48=40_22=8_207=XHKG_390=94_1867=95_537=1_134=5000_135=6000_132=15_133=15.1_60=20131202-10:34:51.157_1868=2_1869=1_1870=0_1869=2_1870=0_10=057_
响应1:
8=FIXT.1.1_9=236_35=8_49=HKEXCO_56=CO99999901_34=2_52=20131202-02:34:51.568_1128=9_11=94_14=0_17=23451564_150=0_151=5000_1093=2_1090=1_453=1_448=1200_447=D_452=1_37=33451464_38=5000_39=0_40=2_44=15_207=XHKG_48=40_22=8_54=1_59=0_60=20131202-02:34:51.565_10=152_

8=FIXT.1.1_9=238_35=8_49=HKEXCO_56=CO99999901_34=3_52=20131202-02:34:51.777_1128=9_11=95_14=0_17=23451772_150=0_151=6000_1093=2_1090=1_453=1_448=1200_447=D_452=1_37=33451670_38=6000_39=0_40=2_44=15.1_207=XHKG_48=40_22=8_54=2_59=0_60=20131202-02:34:51.773_10=001_
发送2:
8=FIXT.1.1_9=126_35=Z_49=CO99999901_56=HKEXCO_34=3_52=20131202-10:35:11.577_1166=96_298=1_453=1_448=1200_447=D_452=1_295=1_48=40_22=8_207=XHKG_10=231_
响应2:
8=FIXT.1.1_9=232_35=8_49=HKEXCO_56=CO99999901_34=5_52=20131202-02:35:11.906_1128=9_11=96_14=0_17=23511901_150=4_151=0_1090=1_453=1_448=1200_447=D_452=1_37=33451464_38=5000_39=4_40=2_41=94_44=15_207=XHKG_48=40_22=8_54=1_59=0_60=20131202-02:35:11.902_10=200_
8=FIXT.1.1_9=234_35=8_49=HKEXCO_56=CO99999901_34=6_52=20131202-02:35:12.012_1128=9_11=96_14=0_17=23512007_150=4_151=0_1090=1_453=1_448=1200_447=D_452=1_37=33451670_38=6000_39=4_40=2_41=95_44=15.1_207=XHKG_48=40_22=8_54=2_59=0_60=20131202-02:35:12.008_10=029_



版权声明:本文为博主原创文章,未经博主允许不得转载。

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

fix协议介绍-常用资源

最终要的资料就是规范了: http://old.fixprotocol.org/FIXimate3.0/latestEP/    这个是最新规范的web版,消息结构 http://www.f...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

fix协议封装挑战-将消息字符串解析为实体

这个是真正的有挑战的,我的方法还是递归解析。 举个例子: 比如下面返回消息: 响应: 8=FIXT.1.1_9=239_35=8_49=HKEXCO_56=CO99999901_34=3_52=...

fix协议封装挑战

最近在做金融项目,用到了fix协议,是么是fix协议我就不多说了,由我一个人去封装这个庞然大物,当然很多没用到的我们暂时没封装进去。 下面是我的思路。 msg由个基类BaseMsg compon...

fix协议封装挑战-将一个消息实体编码为协议字符串

消息实体如下: package cs.test; import java.text.SimpleDateFormat; import java.util.Date; import cs.mina...

fix协议介绍5-测试消息

FIX.5.0SP2 Message TestRequest [type '1'] The test request message forces a heartbeat from t...

有了Eclipse为何用Ant

总有那么一批人认为IDE是无比强大的,比如Eclipse,或者更强大的MyEclipse(你是不是在用破解版本?)。Eclipse的确非常、非常、非常的优秀,它能帮你自动编译、帮你执行单元测试、帮你重...
  • ricefcc
  • ricefcc
  • 2015年02月03日 23:14
  • 1480

fix协议封装挑战-数据库脚本

declare @tname varchar(8000) set @tname='' select @tname=@tname+Name+','from sysobjects where xtype=...

fix协议封装挑战-工具类

MsgUtil: /* * @headerAndBody 包含消息头+消息体,包含SOH,不包含checksum域 */ public static String ch...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:fix协议封装挑战-测试代码
举报原因:
原因补充:

(最多只允许输入30个字)