forked from fmzquant/strategies
-
Notifications
You must be signed in to change notification settings - Fork 0
/
【Demo】速度测试 websocket vs rest.js
135 lines (61 loc) · 2.41 KB
/
【Demo】速度测试 websocket vs rest.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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*
策略出处: https://www.botvs.com/strategy/7547
策略名称: 【Demo】速度测试 websocket vs rest
策略作者: momox
策略描述:
websocket 接口 与 REST 接口的 速度测试,支持添加多个交易所测试,注意会短时增加你的api调用频率,请在确保不影响其他机器人运行的情况下运行。如果出现”Futures_OP 4: argument error“的错误,请更新到最新的托管者程序
特别提醒:只能添加支持websocket接口的交易所(有点废话,不支持websocket接口,你还测什么速度),不然会出错,目前 ok,火币提供websocket接口 ,BTCC不提供,其他请咨询查阅相关交易所API介绍或帮助
*/
var Interval=1000;
function _N(v, precision) {
if (typeof (precision) != 'number') {
precision = 4;
}
var d = parseFloat(v.toFixed(Math.max(10, precision + 5)));
s = d.toString().split(".");
if (s.length < 2 || s[1].length <= precision) {
return d;
}
var b = Math.pow(10, precision);
return Math.floor(d * b) / b;
}
function onexit() {
Log("【【【系统退出】】】");
}
function main() {
var start=Date.now();
for (var i = 0; i < exchanges.length; i++) {
var ecg=exchanges[i];
//Log(ecg);
ecg.IO("rest");//rest 模式
var iii=0;
var sum=0;
while (iii<=10) { //连续调用10次,取平均值
var account = null;
start=Date.now();
account = ecg.GetAccount(); //测试执行的API函数,可根据需要自己修改,如 GetTick
iii=iii+1;
if(account){
var delay=(Date.now()-start);
sum=sum+delay;
}
Sleep(1000);
}
Log("平均毫秒数【"+_N(sum/iii,2)+"】"+ecg.GetName()+" rest");
ecg.IO("websocket"); //websocket 模式
sum=0;
iii=0;
while (iii<=10) { //连续调用10次,取平均值
var account = null;
start=Date.now();
account = ecg.GetAccount(); //测试执行的API函数,可根据需要自己修改,如 GetTick
iii=iii+1;
if(account){
var delay=(Date.now()-start);
sum=sum+delay;
}
Sleep(1000);
}
Log("平均毫秒数【"+_N(sum/iii,2)+"】"+ecg.GetName()+" websocket");
}
}