同花顺发布自己的数据接口,方便研究人员可以获取需要的数据,研究股票等。
首先我们需要申请用户,地址
同花顺数据接口 (10jqka.com.cn)
此地址有几个方面,可以申请学生,但是目前测试需要学校网络。
申请商用,不需要多复杂,就是电话回复之后,添加客服微信,她们会告诉你账号密码。后面就可以开发了。
至于免费和付费的区别,主要是数据量和数据的丰富程度,一般作为个人开发,练习是不错的。
下载SDK和iFinD客户端
SDK是一个压缩包,目录最外层主要是帮助你管理你的账号,还是选择合适的语言,看他的示例调用。(可以有c++,python,http,java等),我是使用C++ Qt。如果要使用http来开发,就需要使用这个SDK的工具,SuperCommand 有功能可以获取http请求时候需要的token,这个简单。
IFinD是基于这个SDK开发的客户端,也就是只管显示了最终数据。
准备开发
环境Qt 6.3,创建工程
下载数据接口帮助的C++demo,拷贝ExportFunction到Qt工程下,修改InitialFunction的函数签名,因为qt工程之下使用utf8编码,需要使用wchar,
bool InitialFunction(const char* path) --> bool InitialFunction(const wchar_t* path)
编译测试
我这里正常编译通过
测试接口
a. 初始化,这个就是加载解析动态库,把所有的函数指针加载进来,也就是偷懒,使用了demo里面的方法,帮我全部加载,后面直接使用
void MainWindow::on_pushButton_clicked()
{auto path = QFileDialog::getOpenFileName(this,tr("Pah"),this->windowFilePath());if(path.isEmpty()){return;}mTHSSDKPath = path;auto pathStr = mTHSSDKPath.toStdWString();if(!InitialFunction(pathStr.c_str())){qDebug()<<" load failed";return ;}qDebug()<<" load success full";
}
上述代码,就是实现了打开一个dll库,我的路径选了
D:\Programs\THSDataInterface_Windows_20230228\THSDataInterface_Windows\bin\x64\ShellExport.dll
返回值是true,表示后面的接口应该是可以用了
b. 登录,添加两个行编辑器,分别是密码和账号。
void MainWindow::on_loginBtn_clicked()
{auto ret = THS_iFinDLogin(ui->userNameEdit->text().toUtf8(),ui->passwdEdit->text().toUtf8());qDebug()<<" log in "<<ret;}
上述代码实现了点击之后,传入登录信息,这个接口会卡住一会,猜测是内部实现的异步请求,后面可以放其他线程执行。
控制台测试结果:
load success full
log in 0
这里测试没有问题,那么就可以继续后续的开发了。
从同花顺提供的接口来看,免费的可以拿得到一个股票的实时信息,只是要注意一个月的总量限制,所以实时获取频率太高,必然造成超限。所以只能针对自己选好的股票测试。
代码就不用上传了,我附加几个同花顺的下载
同花顺iFinD-金融数据终端 (51ifind.cn)
同花顺数据接口 (10jqka.com.cn) 示例