13.9 MATLAB对接个股期权接口
LTS能接入个股期权,但门槛太高,而13.7节提到的变通的接口在处理个股期权时就太不方便了,主要原因是委托与成交回报不是由柜台主动推送过来的,而是通过API主动查询后分析出订单状态变化。
所以还是有必要介绍一下其他接口。证券公司的个股期权接口被牵连后,现在只好去期货公司开个股期权账号进行交易。在这里介绍金仕达的个股期权接口。
test_Kingstar.m是一个示例。对比一下代码会发现,只是引用的.dll、服务器和账号不同,其他代码没有区别。
但其实还有一个必须要注意的地方,否则无法登录。金仕达接口需要授权证书才能使用,这需要找对应的经纪公司客户经理或技术人员申请。但金仕达接口授权只从当前主程序所在目录下查找,这下就比较尴尬了。
以.NET或进程内COM方式运行接口:
%调用的路径指定Kingstar的C封装
md=XApiWrapper(fullfile(cd,' XAPI\x86\Kingstar\Kingstar_Quote_x86.dll'));
大家一定以为MATLAB双击后运行的主程序是MATLAB\R2015b\bin\matlab.exe,所以把授权文件KSlnterB2C.lkc 复制到此目录下,但会发现还是无法登录,特别是金仕达找不到授权文件报的错,不是找不到授权文件,而是提示授权文件无效,容易让人误解经纪公司提供了一个错误的授权文件。
其实这个matJab.exe只是一个启动器,它其实启动了其后的另一个主程序MATLAB\R2015b\bin\win32\MATLAB .exe,应当将授权文件放于此目录。
这只是笔者计算机中的目录。用户自己如何确定主程序目录呢?打开MATLAB程序,然后打开任务管理器,找到MATLAB进程,右键打开文件位置即可定位到主程序所在路径。
以进程外COM运行接口:
%调用的路径指定Kingstar的C封装
md=actxserver('XAPI.COM');
md.SetLibPath(fullfile(cd, 'XAPI\x86\Kingstar\Kingstar_Quote_x86.dll'));
很明显,这与MATLAB是两个进程,哪个进程实际加载金仕达的接口呢?XAPI_CSharp.exe便是。若不知道这个.exe文件在哪里,在启动actxserver('XAPI.COM')后,打开任务管理器来定位即可。