forked from caozihao/node-websocket-tradeview
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathutils.js
122 lines (106 loc) · 2.56 KB
/
utils.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
const dayTime = 1000 * 60 * 60 * 24 //1天;
const hourTime = 1000 * 60 * 60;
const minuteTime = 1000 * 60;
const secondTime = 1000;
const vnum = 2554477;
const setRandomValue = (integerNum, decimalNum) => {
let randomNum = Math.random() * Math.pow(10, integerNum) + Math.pow(10, integerNum);
// 整数部分
let integerPart = 0;
if (integerNum) {
integerPart = Math.floor(randomNum);
}
// 小数部分
let decimalPart = 0.00;
if (decimalNum) {
decimalPart = randomNum.toString().split(".")[1].substring(0, decimalNum);
decimalPart = '0.' + decimalPart;
decimalPart = parseFloat(decimalPart);
}
return integerPart + decimalPart;
}
/**
*
* @param {*长度} length
* @param {*从第几位开始} startLength
*/
let setRandomData = (params) => {
let { step, length, type, increasingNum, startTime, endTime } = params;
let t = [];
let c = [];
let o = [];
let h = [];
let l = [];
let v = [];
let s = "ok";
let num = "";
let time = ""
for (let i = 0; i < length; i++) {
num = setRandomValue(2, 2);
h.push(num);
l.push(num - setRandomValue(1));
o.push(num - setRandomValue(1));
c.push(num - setRandomValue(1));
v.push(vnum - setRandomValue(6));
if (type === "front") {
time = Math.floor((endTime - step * (i + 1)) / 1000);
t.unshift(time);
} else if (type === "back") {
time = Math.floor((endTime + step * (increasingNum + i + 1)) / 1000);
// time = Math.floor(new Date().getTime() / 1000);//最新时间
t.push(time);
}
}
return {
t,
c,
o,
h,
l,
v,
s
}
}
const filteringTime = (time) => {
let minuteTime = 60;
let dayTime = 60 * 60 * 24;
let longTime = 0;
switch (time) {
case "1D":
longTime = dayTime * 1;
break;
default:
longTime = parseInt(time) * minuteTime;
break;
}
return longTime;
}
const transformTime = (time) => {
let number = 0;
if (time.indexOf('min') !== -1) {
number = parseInt(time.split('min')[0]);
return number * minuteTime
}
if (time.indexOf('hour') !== -1) {
number = parseInt(time.split('hour')[0]);
return number * hourTime
}
if (time.indexOf('D') !== -1) {
number = parseInt(time.split('D')[0]);
return number * dayTime
}
if (time.indexOf('W') !== -1) {
number = parseInt(time.split('W')[0]);
return number * dayTime * 7
}
if (time.indexOf('M') !== -1) {
number = parseInt(time.split('W')[0]);
return number * dayTime * 30
}
}
module.exports = {
setRandomValue,
setRandomData,
filteringTime,
transformTime
}