-
Notifications
You must be signed in to change notification settings - Fork 16
/
talib.js
65 lines (49 loc) · 1.4 KB
/
talib.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
import * as talib from './node_modules/talib-web/lib/index.esm'
import data from './data/1minute.js'
import talibParams from './talib-params.js';
const wasm = "./node_modules/talib-web/lib/talib.wasm"
/**
* main
* @async
*/
async function main(talib, wasm, data) {
try {
await talib.init(wasm);
const inReal = []
const period = 12
const fastD_Period = 20
const fastK_Period = 20
let i = 0
for (let v of data.ohlcv) {
// if (i++ < period+((fastD_Period+fastK_Period)*2))
if (i++ < 52) // data.ohlcv.length)
inReal.push(v[4])
}
console.time()
// const result = talib.BBANDS({inReal: inReal, timePeriod: 20, startIdx: 0, endIndex: 29})
// const p = {inReal: inReal, timePeriod: 20, startIdx: 0, endIndex: 29}
// const p = {inReal, timePeriod: period, fastK_Period: 5}
const p = {
inReal,
fastPeriod: 12,
slowPeriod: 26,
signalPeriod: 9,
startIdx:10
}
const params = talibParams
console.log(p.inReal)
console.log(talibParams.inReal)
// p.inReal = talibParams.inReal
// talibParams.inReal = p.inReal
const result = talib.MACD(p)
// const result = talib.RSI(p)
console.timeEnd()
document.write(JSON.stringify(result))
console.log(result)
} catch (e) {
console.error(e)
}
};
(async (talib, wasm, data) => {
await main(talib, wasm, data)
})(talib, wasm, data)