-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.js
116 lines (95 loc) · 3.1 KB
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
'use strict';
const jtp = require('./jtp')
const iconv = require('iconv-lite');
var td_front_addr = "tcp://180.168.146.187:10201"; //simnow
var md_front_addr = "tcp://180.168.146.187:10211"; //simnow
var nRequestID = 0;
var mdapi = new jtp.MdApi();
var tdapi = new jtp.TdApi();
var UserID = '11111'
var BrokerID = '9999'
var Password = '11111'
const AppID = 'simnow_client_test';
const AuthCode = '0000000000000000';
var instruments = [];
mdapi.getEmitter();
mdapi.on('OnFrontConnected', () => {
console.log('js OnFrontConnected');
var req = new jtp.CThostFtdcReqUserLoginField();
req.UserID = UserID;
req.BrokerID = BrokerID;
req.Password = Password;
mdapi.ReqUserLogin(req, nRequestID++);
});
mdapi.on('OnRspUserLogin', (msg) => {
console.log('js OnRspUserLogin');
console.log(msg);
});
mdapi.CreateFtdcMdApi('./conData/md/');
mdapi.RegisterSpi();
mdapi.RegisterFront(md_front_addr);
mdapi.Init();
console.log(mdapi.GetApiVersion());
tdapi.getEmitter();
tdapi.CreateFtdcTraderApi('./conData/td/');
console.log(tdapi.GetApiVersion());
function ReqQryClassifiedInstrument() {
console.log('ReqQryClassifiedInstrument');
var req = new jtp.CThostFtdcQryClassifiedInstrumentField();
// req.ExchangeID = 'SHFE';
req.TradingType = jtp.constant.THOST_FTDC_TD_ALL;
req.ClassType = jtp.constant.THOST_FTDC_INS_FUTURE;
tdapi.ReqQryClassifiedInstrument(req, nRequestID++);
}
tdapi.on('OnFrontConnected', () => {
var req = new jtp.CThostFtdcReqAuthenticateField();
req.AppID = AppID;
req.AuthCode = AuthCode;
req.UserProductInfo = "ctp trader";
req.BrokerID = BrokerID;
tdapi.ReqAuthenticate(req, nRequestID++);
});
tdapi.on('OnRspAuthenticate', (msg) => {
jtp.g2u(msg)
console.log('OnRspAuthenticate');
var req = new jtp.CThostFtdcReqUserLoginField();
req.UserID = UserID
req.Password = Password
req.BrokerID = BrokerID
var ret = tdapi.ReqUserLogin(req, nRequestID++);
});
tdapi.on('OnRspUserLogin', (msg) => {
jtp.g2u(msg)
console.log('td: OnRspUserLogin');
console.log(msg);
//这里需要延时,否则会异常退出。
setTimeout(() => { ReqQryClassifiedInstrument(); }, 100);
// req = new jtp.CThostFtdcQrySettlementInfoField()
// req.AccountID = UserID
// req.BrokerID = BrokerID
// req.InvestorID = UserID
// tdapi.ReqQrySettlementInfo(req, nRequestID++);
});
tdapi.on('OnRspQryClassifiedInstrument', (msg) => {
jtp.g2u(msg)
if ('pInstrument' in msg) {
instruments.push(msg['pInstrument']);
console.log(msg['pInstrument'].InstrumentID);
// console.log(msg);
}
if (msg['bIsLast']) {
// console.log(msg['pInstrument'].InstrumentID);
console.log('==================================');
console.log(instruments.length);
}
});
tdapi.RegisterSpi();
tdapi.SubscribePublicTopic(2); //THOST_TERT_QUICK
tdapi.SubscribePrivateTopic(2); // THOST_TERT_QUICK
tdapi.RegisterFront(td_front_addr);
tdapi.Init();
setTimeout(() => {
mdapi.closeEmitter();
tdapi.closeEmitter();
console.log('bye.....................................');
}, 10000);