//红璟程序化交易平台 //网站: http://www.programtrade.com.cn //QQ群:289246060 //邮件:hj_support@163.com //最新帮助地址:http://www.programtrade.com.cn/webhelp/index.html using System; using DevelopLibrary.Enums; using DevelopLibrary.DevelopAPI; using System.Collections.Generic; namespace DemoStrategy.功能测试 { public class 测试CTP与交易所网速 : EventStrategyBase { //本测试假设服务器的处理时间为0。 DateTime t1;//记录委托后的时间点 DateTime t2;//记录委托后,CTP返回Order的时间点 DateTime t3;//记录委托后,交易所返回Order的时间点 DateTime t4;//记录成交后,交易所返回Order的时间点 DateTime t5;//记录成交后,交易所返回Trade的时间点 public override void OnStart() { OpenBuy(C.LAST + INSTRUMENT.PriceTick * 3, 1); t1 = Now; } public override void OnOrderReturn(Order order) { if (order.OrderSysID == "")//用于判断是CTP返回,还是交易返回,为空就是CTP返回。 t2 = Now; else if (order.OrderSysID != "" && order.OrderStatus != EnumOrderStatusType.AllTraded) t3 = Now; else if (order.OrderSysID != "" && order.OrderStatus == EnumOrderStatusType.AllTraded) t4 = Now; } public override void OnTrade(Trade trade) { t5 = Now; Stop(); } public override void OnStop() { PrintLine("用户端到CTP的网络时间:" + (t2 - t1).TotalMilliseconds / 2 + "ms");//除以2是因为信息来回一趟 PrintLine("用户端到交易所的网络时间:" + (t3 - t1).TotalMilliseconds / 2 + "ms"); PrintLine("CTP到交易所的网络时间:" + ((t3 - t1).TotalMilliseconds / 2 - (t2 - t1).TotalMilliseconds / 2) + "ms"); PrintLine("在成交之后,Trade和Order的延时:" + (t5 - t4).TotalMilliseconds + "ms"); } } }