FutuQuant量化接口Nodejs版本
说明
基于 FutuQuant v3.2 底层协议封装的 nodejs 版本接口,数据格式使用 protobuf,使用前请先在本地或者服务端启动 FutuOpenD 服务。
为了方便使用,请注意部分接口参数及返回结果和富途官方版本不完全一致,详细请参考API文档。
安装
npm install futuquant --save
或者
yarn add futuquant
使用
const fs = require('fs');
const path = require('path');
const FtQuant = require('./src/futuquant');
const bunyan = require('bunyan');
const bunyanDebugStream = require('bunyan-debug-stream');
const bunyanLogger = bunyan.createLogger({
name: 'sys',
streams: [{
level: 'debug',
type: 'raw',
serializers: bunyanDebugStream.serializers,
stream: bunyanDebugStream({ forceColor: true }),
}],
});
const FutuOpenDXMLPath = path.join(__dirname, '../FutuOpenD_1.01_Mac/FutuOpenD.xml');
const ftOpenDConfig = fs.readFileSync(FutuOpenDXMLPath);
const userID = ftOpenDConfig.match(/login_account>(\d*?)<\/login_account/)[1];
const pwdMd5 = ftOpenDConfig.match(/trade_pwd_md5>(.*?)<\/trade_pwd_md5/)[1];
const ftConfig = {
ip: '127.0.0.1',
port: 11111,
userID,
market: 1,
pwdMd5,
env: 1,
};
const ft = new FtQuant(ftConfig, bunyanLogger);
const init = async () => {
await ft.init();
let res = null;
res = await ft.getGlobalState();
console.log('getGlobalState', res);
await ft.trdGetHistoryOrderFillList({
beginTime: '2018-01-01 00:00:00',
endTime: '2018-02-01 00:00:00',
});
};
init();
测试
请先修改test/futuquant.test.js
中FutuOpenDXMLPath
的路径,然后执行npm install
或yarn
安装相关依赖。
运行测试:
npm test