现状:ReqInstrument目前是按照instrumentid查单一合约规格 建议:允许使用过滤器条件,查多个符合条件(如product,合约月份,交易所等过滤条件)的instrument,如果过滤期为空,则返回所有上市合约。
你的建议很好, 而且api一直就有这个功能。 ///请求查询合约 virtual int ReqQryInstrument(CThostFtdcQryInstrumentField *pQryInstrument, int nRequestID) = 0; ///查询合约 struct CThostFtdcQryInstrumentField { ///合约代码 TThostFtdcInstrumentIDType InstrumentID; ///交易所代码 TThostFtdcExchangeIDType ExchangeID; ///合约在交易所的代码 TThostFtdcExchangeInstIDType ExchangeInstID; ///产品代码 TThostFtdcInstrumentIDType ProductID; };
拔掉网线后调用方法, api不能马上诊断出网络连接已经不可用了,可能还是可以发送消息。 而是过一段时间后才会通知OnFrontDisconnected()。 所以不要以方法返回值为0就判断服务器已经收到了请求,而是要以收到对应的OnRsp为准。 当然请求方法返回非0,一定是发送请求不成功了。
模拟系统会发出报单,这是否可以理解为,模拟行情并不是该品种当前的真实行情价? 因为我发现MdApi返回的价格信息与真实行情有明显的不同。 可以问下其他合约不使用真实环境的原因么? 大连是有5档盘口的,从大智慧中可以看到
1、 目前模拟帐号的成交方式是按照现价成交的,而没有进入盘口队列是么? A: 在模拟环境中, 撮合成交也是有标准的交易所系统完成的。所以委托都会进队列,按照价格优先、时间优先的原则来交易。不同是模拟环境中,为了保持交易频繁,会有系统发出的OTC报单。 Q: 模拟系统会发出报单,这是否可以理解为,模拟行情并不是该品种当前的真实行情价? 因为我发现MdApi返回的价格信息与真实行情有明显的不同。 A: 模拟环境使用行情均衡器同步真实环境的行情。首先,作为真实环境的客户端取得真实行情数据,然后通过SHFE的OTC报单类型以成对成交方式在模拟交易所系统产生最新价,再以行情插入报价指令生成买一、卖一价即盘口挂单量。该种方式仅是近似真实行情,仅供测试API使用,万不可用于依赖真实行情的策略测试。 2、 模拟行情的盘口单量目前都是假值(固定10000),是否可以使用真实行情的数据呢? A: 除了产品m的买/卖量是参考真实环境的。其余产品合约都是按照合约的最大报单量来设置。 Q: 可以问下其他合约不使用真实环境的原因么? A: 我们有家客户正在该平台进行模拟交易大赛,为防止投资者者对该平台的行情操控,我们使用10000的报单量以防止与真实行情价格的大幅偏离 3、 模拟行情中,大连商品只有一档盘口,是否可以开放为五档盘口呢? A:即使在真实环境中,各个交易所好像都没有开放深度行情。至少上期所一定只有1档行情。所以模拟环境中也是这样。 Q:大连是有5档盘口的,从大智慧中可以看到 A: 交易所通过行情商发布即时及深度行情,CTP通过期货公司的远程席位取得即时行情用于投资者期货交易,不提供超过一档的更深度行情。有行情数据方面的需求请联系pobo这样的行情转发商。
我下载了行情开发实例. 在CMD DOS 窗口下运行. 没发现在示例代码中有把行情打印到屏幕上的语句.但实际上程序不停地把行情数据打印到屏幕上. 显然是thostmduserapi.dll打印出来的. 这只是个接口库, 怎么能在这里打印信息呢? 这合适吗
thostmduserapi.dll输出调试数据, 在调试时会很方便. 如果不需要的话, 可以重定向到空设备. 在开发图形界面时, 不要做任何处理, 这些数据都不会影响程序. 所以,这个问题不是关键问题.
请教LumenXH: 你说的新建WIN32 DLL是指用c++,使用C++/Managed代码来包装已经提供的DLL来新生成可以被c#调用的托管DLL?还是用c#来直接新建这个可以被c#调用的DLL? 如果方便的话能不能针对Api中的一个函数举个简单的例子供借鉴参考。 谢谢
wj2000,我想是你前面说的这种情况,直接C#建DLL是不行的。这个东西我做了一半(基础类验证调通),交给了海洋另一位朋友接着干了。如果你是想自己做这个接口,我就先把我有的代码给你。如果你不打算自己做,就不妨等那一位做完了后再一并给你。
tom_sh: 那还是等做完了再看看吧,我现在还没定下来该学c#还是重新拿起c++,只有点过去unix下的编程基础,看c/c++还能看懂,打算抽时间学学c#。过去编程也主要是采用模仿借鉴的方式。 你的基础类是c#做的吗?