用C#编OQ的接口。上次的问题tomsh兄提到用IExecutionProvider 接口解决。 在调用到 SmartQuant.Providers.IExecutionProvider 接口后,很奇怪的出现下面这个编译错误: 错误 42 无法将文件“.\SmartQuant_nat.dll”复制到“D:\OpenQuant\Bin\SmartQuant_nat.dll”。未能找到文件“.\SmartQuant_nat.dll”。。。 我的调用和SmartQuant_nat.dll 并无关系的,而且这个文件在OpenQuant\Framework\bin 目录下面躺得好好的。如果把它copy到 OpenQuant\Bin\ 下面,启动OQ就会出错了。 OQ带文档的就是OpenQuant.API的dll的。而那些SmartQuant开头的dll没有文档,估计是从OD沿用下来的?是不是在OQ里面调用SmartQuant开头的dll有些限制?
我自己不用OQ(我以前给你的答复是基于SQ的),也不了解smartquant_nat.dll的功能。我自己猜测OQ是包着smartquant的一个wrapper,它调用SmartQuant.Providers.IExecutionProvider也许通过了一些中间层,如smartquant_nat.dll,所以调试起来会比较困难。如果要讨论SQ的IExecutionProvider我可能还可以出点想法,OQ或许有自己的交易接口类,不一定与SQ的一致,而且版本上也会新一些。所以我的关于IExecutionProvider的意见对你可能没有帮助。
谢谢tom_sh兄的回复,我再自己摸索一下看看。 openquant也太晕倒了些,接口API的buyingpower属性设为readonly,明摆着不让开发的接口来更新资金数量。 好像确实符合那个结论,OQ因为有QD在,所以功能受限制;OQ的技术支持也比较有限,这种问题在它论坛上作者不回答。真搞不定,可能就要转去RE那里了。
谢谢tomsh兄和WJ兄的帮助。我后来再摸索了一下,已经有了一些进展。 既然OQ的API做了限制,我后面干脆不继承它,而只继承那些QD的dll了。这样做,上面提到的错误一下子解决了。 WLD的下单对我来说不足够。我希望可以对每张单的状态可以单独控制。而OQ有进展后,RE暂时先放一放。