@quantform/core 0.3.214 → 0.3.220
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapter/paper/model/paper-margin-model.d.ts +2 -2
- package/dist/adapter/paper/model/paper-margin-model.js +2 -2
- package/dist/adapter/paper/model/paper-margin-model.js.map +1 -1
- package/dist/adapter/paper/model/paper-model.d.ts +4 -4
- package/dist/adapter/paper/model/paper-model.js +26 -12
- package/dist/adapter/paper/model/paper-model.js.map +1 -1
- package/dist/adapter/paper/model/paper-spot-model.d.ts +3 -2
- package/dist/adapter/paper/model/paper-spot-model.js +2 -2
- package/dist/adapter/paper/model/paper-spot-model.js.map +1 -1
- package/dist/indicator/atr.d.ts +1 -2
- package/dist/indicator/atr.js +4 -1
- package/dist/indicator/atr.js.map +1 -1
- package/dist/indicator/donchian.d.ts +7 -6
- package/dist/indicator/donchian.js +6 -15
- package/dist/indicator/donchian.js.map +1 -1
- package/dist/indicator/ema.d.ts +1 -10
- package/dist/indicator/ema.js +13 -32
- package/dist/indicator/ema.js.map +1 -1
- package/dist/indicator/ema.spec.js +4 -23
- package/dist/indicator/ema.spec.js.map +1 -1
- package/dist/indicator/envelope.js +4 -8
- package/dist/indicator/envelope.js.map +1 -1
- package/dist/indicator/index.d.ts +1 -1
- package/dist/indicator/index.js +1 -1
- package/dist/indicator/index.js.map +1 -1
- package/dist/indicator/macd.js +3 -12
- package/dist/indicator/macd.js.map +1 -1
- package/dist/indicator/min-max.d.ts +4 -11
- package/dist/indicator/min-max.js +12 -29
- package/dist/indicator/min-max.js.map +1 -1
- package/dist/indicator/rma.d.ts +1 -10
- package/dist/indicator/rma.js +13 -32
- package/dist/indicator/rma.js.map +1 -1
- package/dist/indicator/sma.d.ts +1 -10
- package/dist/indicator/sma.js +11 -22
- package/dist/indicator/sma.js.map +1 -1
- package/dist/indicator/sma.spec.js +1 -1
- package/dist/indicator/sma.spec.js.map +1 -1
- package/dist/indicator/swma.d.ts +1 -9
- package/dist/indicator/swma.js +11 -26
- package/dist/indicator/swma.js.map +1 -1
- package/dist/indicator/tma.d.ts +1 -2
- package/dist/indicator/tma.js +4 -1
- package/dist/indicator/tma.js.map +1 -1
- package/dist/indicator/tma.spec.js +1 -1
- package/dist/indicator/tma.spec.js.map +1 -1
- package/dist/indicator/truerange.d.ts +1 -1
- package/dist/indicator/truerange.js +3 -1
- package/dist/indicator/truerange.js.map +1 -1
- package/dist/indicator/truerange.spec.js +2 -2
- package/dist/indicator/truerange.spec.js.map +1 -1
- package/dist/indicator/window.d.ts +3 -0
- package/dist/indicator/window.js +22 -0
- package/dist/indicator/window.js.map +1 -0
- package/dist/indicator/wma.d.ts +1 -11
- package/dist/indicator/wma.js +13 -33
- package/dist/indicator/wma.js.map +1 -1
- package/dist/indicator/wma.spec.js +1 -1
- package/dist/indicator/wma.spec.js.map +1 -1
- package/dist/session/session-descriptor.d.ts +0 -1
- package/dist/session/session-optimizer.js.map +1 -1
- package/dist/session/session.d.ts +4 -4
- package/dist/session/session.js +13 -13
- package/dist/session/session.js.map +1 -1
- package/dist/store/event/store-candle.event.d.ts +2 -0
- package/dist/store/event/store-candle.event.js +12 -1
- package/dist/store/event/store-candle.event.js.map +1 -1
- package/dist/store/store.d.ts +2 -1
- package/dist/store/store.js +9 -0
- package/dist/store/store.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/adapter/paper/model/paper-margin-model.ts +5 -5
- package/src/adapter/paper/model/paper-model.ts +35 -18
- package/src/adapter/paper/model/paper-spot-model.ts +5 -5
- package/src/indicator/atr.ts +9 -4
- package/src/indicator/donchian.ts +26 -26
- package/src/indicator/ema.spec.ts +4 -23
- package/src/indicator/ema.ts +15 -42
- package/src/indicator/envelope.ts +8 -14
- package/src/indicator/index.ts +1 -1
- package/src/indicator/macd.ts +8 -19
- package/src/indicator/min-max.ts +15 -37
- package/src/indicator/rma.ts +15 -43
- package/src/indicator/sma.spec.ts +1 -1
- package/src/indicator/sma.ts +13 -29
- package/src/indicator/swma.ts +14 -35
- package/src/indicator/tma.spec.ts +1 -1
- package/src/indicator/tma.ts +9 -4
- package/src/indicator/truerange.spec.ts +2 -2
- package/src/indicator/truerange.ts +15 -10
- package/src/indicator/window.ts +27 -0
- package/src/indicator/wma.spec.ts +1 -1
- package/src/indicator/wma.ts +16 -44
- package/src/session/session-descriptor.ts +0 -2
- package/src/session/session-optimizer.ts +1 -1
- package/src/session/session.ts +19 -14
- package/src/store/event/store-candle.event.ts +15 -0
- package/src/store/store.ts +10 -0
- package/dist/indicator/window-indicator.d.ts +0 -10
- package/dist/indicator/window-indicator.js +0 -28
- package/dist/indicator/window-indicator.js.map +0 -1
- package/src/indicator/window-indicator.ts +0 -35
package/dist/indicator/rma.js
CHANGED
|
@@ -1,41 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.rma =
|
|
3
|
+
exports.rma = void 0;
|
|
4
4
|
const operators_1 = require("rxjs/operators");
|
|
5
5
|
const _1 = require(".");
|
|
6
|
-
const window_indicator_1 = require("./window-indicator");
|
|
7
|
-
class RMA extends window_indicator_1.WindowIndicator {
|
|
8
|
-
constructor(capacity) {
|
|
9
|
-
super(capacity);
|
|
10
|
-
this._alpha = 0;
|
|
11
|
-
this._value = null;
|
|
12
|
-
this._alpha = 1.0 / capacity;
|
|
13
|
-
this._sma = new _1.SMA(capacity);
|
|
14
|
-
}
|
|
15
|
-
get value() {
|
|
16
|
-
return this._value;
|
|
17
|
-
}
|
|
18
|
-
calculate(added) {
|
|
19
|
-
this._sma.append(added);
|
|
20
|
-
if (!this._sma.isCompleted) {
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
if (!this.value) {
|
|
24
|
-
this._value = this._sma.value;
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
this._value = this._alpha * added + (1.0 - this._alpha) * this._value;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
exports.RMA = RMA;
|
|
32
6
|
function rma(length, fn) {
|
|
33
7
|
return function (source) {
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
8
|
+
const alpha = 1.0 / length;
|
|
9
|
+
let value = null;
|
|
10
|
+
return source.pipe((0, _1.sma)(length, fn), (0, operators_1.map)(([it, sma]) => {
|
|
11
|
+
if (!value) {
|
|
12
|
+
value = sma;
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
value = alpha * fn(it) + (1.0 - alpha) * value;
|
|
16
|
+
}
|
|
17
|
+
const tuple = [it, value];
|
|
18
|
+
return tuple;
|
|
19
|
+
}), (0, operators_1.share)());
|
|
39
20
|
};
|
|
40
21
|
}
|
|
41
22
|
exports.rma = rma;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rma.js","sourceRoot":"","sources":["../../src/indicator/rma.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"rma.js","sourceRoot":"","sources":["../../src/indicator/rma.ts"],"names":[],"mappings":";;;AACA,8CAA4C;AAC5C,wBAAwB;AAExB,SAAgB,GAAG,CAAI,MAAc,EAAE,EAAqB;IAC1D,OAAO,UAAU,MAAqB;QACpC,MAAM,KAAK,GAAG,GAAG,GAAG,MAAM,CAAC;QAC3B,IAAI,KAAK,GAAW,IAAI,CAAC;QAEzB,OAAO,MAAM,CAAC,IAAI,CAChB,IAAA,MAAG,EAAC,MAAM,EAAE,EAAE,CAAC,EACf,IAAA,eAAG,EAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;YAChB,IAAI,CAAC,KAAK,EAAE;gBACV,KAAK,GAAG,GAAG,CAAC;aACb;iBAAM;gBACL,KAAK,GAAG,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;aAChD;YAED,MAAM,KAAK,GAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,EACF,IAAA,iBAAK,GAAE,CACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AApBD,kBAoBC"}
|
package/dist/indicator/sma.d.ts
CHANGED
|
@@ -1,11 +1,2 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
|
|
3
|
-
import { WindowIndicator } from './window-indicator';
|
|
4
|
-
export declare class SMA extends WindowIndicator<number> {
|
|
5
|
-
private _accmulated;
|
|
6
|
-
private _value;
|
|
7
|
-
get value(): number;
|
|
8
|
-
constructor(capacity: number);
|
|
9
|
-
calculate(added: number, removed: number, buffer: RingBuffer<number>): void;
|
|
10
|
-
}
|
|
11
|
-
export declare function sma<T>(length: number, fn: (it: T) => number): (source: Observable<T>) => Observable<SMA>;
|
|
2
|
+
export declare function sma<T>(length: number, fn: (it: T) => number): (source: Observable<T>) => Observable<[T, number]>;
|
package/dist/indicator/sma.js
CHANGED
|
@@ -1,30 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sma =
|
|
3
|
+
exports.sma = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
4
5
|
const operators_1 = require("rxjs/operators");
|
|
5
|
-
const
|
|
6
|
-
class SMA extends window_indicator_1.WindowIndicator {
|
|
7
|
-
constructor(capacity) {
|
|
8
|
-
super(capacity);
|
|
9
|
-
this._accmulated = 0;
|
|
10
|
-
}
|
|
11
|
-
get value() {
|
|
12
|
-
return this._value;
|
|
13
|
-
}
|
|
14
|
-
calculate(added, removed, buffer) {
|
|
15
|
-
this._accmulated += added;
|
|
16
|
-
this._accmulated -= removed;
|
|
17
|
-
this._value = this._accmulated / buffer.size;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
exports.SMA = SMA;
|
|
6
|
+
const window_1 = require("./window");
|
|
21
7
|
function sma(length, fn) {
|
|
22
8
|
return function (source) {
|
|
23
|
-
|
|
24
|
-
return source.pipe((0,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
}), (0, operators_1.
|
|
9
|
+
let accumulated = 0;
|
|
10
|
+
return source.pipe((0, window_1.window)(length, fn), (0, rxjs_1.tap)(([, , added, removed]) => {
|
|
11
|
+
accumulated += added;
|
|
12
|
+
accumulated -= removed;
|
|
13
|
+
}), (0, operators_1.filter)(([, buffer]) => buffer.isFull), (0, operators_1.map)(([it, buffer]) => {
|
|
14
|
+
const tuple = [it, accumulated / buffer.size];
|
|
15
|
+
return tuple;
|
|
16
|
+
}), (0, operators_1.share)());
|
|
28
17
|
};
|
|
29
18
|
}
|
|
30
19
|
exports.sma = sma;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sma.js","sourceRoot":"","sources":["../../src/indicator/sma.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"sma.js","sourceRoot":"","sources":["../../src/indicator/sma.ts"],"names":[],"mappings":";;;AAAA,+BAAuC;AACvC,8CAAoD;AACpD,qCAAkC;AAElC,SAAgB,GAAG,CAAI,MAAc,EAAE,EAAqB;IAC1D,OAAO,UAAU,MAAqB;QACpC,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,OAAO,MAAM,CAAC,IAAI,CAChB,IAAA,eAAM,EAAC,MAAM,EAAE,EAAE,CAAC,EAClB,IAAA,UAAG,EAAC,CAAC,CAAC,EAAE,AAAD,EAAG,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE;YAC3B,WAAW,IAAI,KAAK,CAAC;YACrB,WAAW,IAAI,OAAO,CAAC;QACzB,CAAC,CAAC,EACF,IAAA,kBAAM,EAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EACrC,IAAA,eAAG,EAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACnB,MAAM,KAAK,GAAgB,CAAC,EAAE,EAAE,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAE3D,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,EACF,IAAA,iBAAK,GAAE,CACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAnBD,kBAmBC"}
|
|
@@ -8,7 +8,7 @@ describe('sma tests', () => {
|
|
|
8
8
|
(0, rxjs_1.from)([18136.17, 18092.15, 18082.39, 18065.4, 18046.47])
|
|
9
9
|
.pipe((0, sma_1.sma)(5, it => it))
|
|
10
10
|
.subscribe({
|
|
11
|
-
next: it => (value = it
|
|
11
|
+
next: ([, it]) => (value = it),
|
|
12
12
|
complete: () => {
|
|
13
13
|
expect(parseFloat(value.toFixed(2))).toBe(18084.52);
|
|
14
14
|
done();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sma.spec.js","sourceRoot":"","sources":["../../src/indicator/sma.spec.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAC5B,+BAA4B;AAE5B,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,EAAE;QAC1C,IAAI,KAAK,CAAC;QAGV,IAAA,WAAI,EAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;aACpD,IAAI,CAAC,IAAA,SAAG,EAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACtB,SAAS,CAAC;YACT,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"sma.spec.js","sourceRoot":"","sources":["../../src/indicator/sma.spec.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAC5B,+BAA4B;AAE5B,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,EAAE;QAC1C,IAAI,KAAK,CAAC;QAGV,IAAA,WAAI,EAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;aACpD,IAAI,CAAC,IAAA,SAAG,EAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACtB,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC9B,QAAQ,EAAE,GAAG,EAAE;gBACb,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpD,IAAI,EAAE,CAAC;YACT,CAAC;SACF,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/indicator/swma.d.ts
CHANGED
|
@@ -1,10 +1,2 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
|
|
3
|
-
import { WindowIndicator } from './window-indicator';
|
|
4
|
-
export declare class SWMA extends WindowIndicator<number> {
|
|
5
|
-
private _value;
|
|
6
|
-
get value(): number;
|
|
7
|
-
constructor();
|
|
8
|
-
calculate(added: number, removed: number, buffer: RingBuffer<number>): void;
|
|
9
|
-
}
|
|
10
|
-
export declare function swma<T>(fn: (it: T) => number): (source: Observable<T>) => Observable<SWMA>;
|
|
2
|
+
export declare function swma<T>(fn: (it: T) => number): (source: Observable<T>) => Observable<[T, number]>;
|
package/dist/indicator/swma.js
CHANGED
|
@@ -1,34 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.swma =
|
|
3
|
+
exports.swma = void 0;
|
|
4
4
|
const operators_1 = require("rxjs/operators");
|
|
5
|
-
const
|
|
6
|
-
class SWMA extends window_indicator_1.WindowIndicator {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(4);
|
|
9
|
-
}
|
|
10
|
-
get value() {
|
|
11
|
-
return this._value;
|
|
12
|
-
}
|
|
13
|
-
calculate(added, removed, buffer) {
|
|
14
|
-
if (!this.isCompleted) {
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
const x3 = buffer.at(this.capacity - (3 + 1));
|
|
18
|
-
const x2 = buffer.at(this.capacity - (2 + 1));
|
|
19
|
-
const x1 = buffer.at(this.capacity - (1 + 1));
|
|
20
|
-
const x0 = buffer.at(this.capacity - (0 + 1));
|
|
21
|
-
this._value = (x3 * 1) / 6 + (x2 * 2) / 6 + (x1 * 2) / 6 + (x0 * 1) / 6;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
exports.SWMA = SWMA;
|
|
5
|
+
const window_1 = require("./window");
|
|
25
6
|
function swma(fn) {
|
|
26
7
|
return function (source) {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
8
|
+
return source.pipe((0, window_1.window)(4, fn), (0, operators_1.filter)(([, buffer]) => buffer.isFull), (0, operators_1.map)(([it, buffer]) => {
|
|
9
|
+
const x3 = buffer.at(buffer.capacity - (3 + 1));
|
|
10
|
+
const x2 = buffer.at(buffer.capacity - (2 + 1));
|
|
11
|
+
const x1 = buffer.at(buffer.capacity - (1 + 1));
|
|
12
|
+
const x0 = buffer.at(buffer.capacity - (0 + 1));
|
|
13
|
+
const value = (x3 * 1) / 6 + (x2 * 2) / 6 + (x1 * 2) / 6 + (x0 * 1) / 6;
|
|
14
|
+
const tuple = [it, value];
|
|
15
|
+
return tuple;
|
|
16
|
+
}), (0, operators_1.share)());
|
|
32
17
|
};
|
|
33
18
|
}
|
|
34
19
|
exports.swma = swma;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swma.js","sourceRoot":"","sources":["../../src/indicator/swma.ts"],"names":[],"mappings":";;;AACA,8CAAoD;
|
|
1
|
+
{"version":3,"file":"swma.js","sourceRoot":"","sources":["../../src/indicator/swma.ts"],"names":[],"mappings":";;;AACA,8CAAoD;AACpD,qCAAkC;AAElC,SAAgB,IAAI,CAAI,EAAqB;IAC3C,OAAO,UAAU,MAAqB;QACpC,OAAO,MAAM,CAAC,IAAI,CAChB,IAAA,eAAM,EAAC,CAAC,EAAE,EAAE,CAAC,EACb,IAAA,kBAAM,EAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EACrC,IAAA,eAAG,EAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACnB,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAEhD,MAAM,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAExE,MAAM,KAAK,GAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,EACF,IAAA,iBAAK,GAAE,CACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAnBD,oBAmBC"}
|
package/dist/indicator/tma.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
|
|
3
|
-
export declare function tma<T>(length: number, fn: (it: T) => number): (source: Observable<T>) => Observable<SWMA>;
|
|
2
|
+
export declare function tma<T>(length: number, fn: (it: T) => number): (source: Observable<T>) => Observable<[T, number]>;
|
package/dist/indicator/tma.js
CHANGED
|
@@ -6,7 +6,10 @@ const swma_1 = require("./swma");
|
|
|
6
6
|
const wma_1 = require("./wma");
|
|
7
7
|
function tma(length, fn) {
|
|
8
8
|
return function (source) {
|
|
9
|
-
return source.pipe((0, wma_1.wma)(length, fn), (0, swma_1.swma)(it => it
|
|
9
|
+
return source.pipe((0, wma_1.wma)(length, fn), (0, swma_1.swma)(([, it]) => it), (0, operators_1.map)(([[it], swma]) => {
|
|
10
|
+
const tuple = [it, swma];
|
|
11
|
+
return tuple;
|
|
12
|
+
}), (0, operators_1.share)());
|
|
10
13
|
};
|
|
11
14
|
}
|
|
12
15
|
exports.tma = tma;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tma.js","sourceRoot":"","sources":["../../src/indicator/tma.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"tma.js","sourceRoot":"","sources":["../../src/indicator/tma.ts"],"names":[],"mappings":";;;AACA,8CAA4C;AAC5C,iCAA8B;AAC9B,+BAA4B;AAE5B,SAAgB,GAAG,CAAI,MAAc,EAAE,EAAqB;IAC1D,OAAO,UAAU,MAAqB;QACpC,OAAO,MAAM,CAAC,IAAI,CAChB,IAAA,SAAG,EAAC,MAAM,EAAE,EAAE,CAAC,EACf,IAAA,WAAI,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EACpB,IAAA,eAAG,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE;YACnB,MAAM,KAAK,GAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAEtC,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,EACF,IAAA,iBAAK,GAAE,CACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAbD,kBAaC"}
|
|
@@ -8,7 +8,7 @@ describe('tma tests', () => {
|
|
|
8
8
|
(0, rxjs_1.from)([18086.36, 18116.15, 18127.81, 18136.17, 18092.15, 18082.39, 18065.4, 18046.47])
|
|
9
9
|
.pipe((0, tma_1.tma)(4, it => it))
|
|
10
10
|
.subscribe({
|
|
11
|
-
next: it => (value = it
|
|
11
|
+
next: ([, it]) => (value = it),
|
|
12
12
|
complete: () => {
|
|
13
13
|
expect(parseFloat(value.toFixed(2))).toBe(18090.98);
|
|
14
14
|
done();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tma.spec.js","sourceRoot":"","sources":["../../src/indicator/tma.spec.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAC5B,+BAA4B;AAE5B,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,EAAE;QAC1C,IAAI,KAAK,CAAC;QAGV,IAAA,WAAI,EAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;aAClF,IAAI,CAAC,IAAA,SAAG,EAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACtB,SAAS,CAAC;YACT,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"tma.spec.js","sourceRoot":"","sources":["../../src/indicator/tma.spec.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAC5B,+BAA4B;AAE5B,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,EAAE;QAC1C,IAAI,KAAK,CAAC;QAGV,IAAA,WAAI,EAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;aAClF,IAAI,CAAC,IAAA,SAAG,EAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACtB,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC9B,QAAQ,EAAE,GAAG,EAAE;gBACb,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpD,IAAI,EAAE,CAAC;YACT,CAAC;SACF,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { Candle } from '../domain';
|
|
3
|
-
export declare function truerange<T>(fn: (it: T) => Candle): (source: Observable<T>) => Observable<number>;
|
|
3
|
+
export declare function truerange<T>(fn: (it: T) => Candle): (source: Observable<T>) => Observable<[T, number]>;
|
|
@@ -7,9 +7,11 @@ function truerange(fn) {
|
|
|
7
7
|
let previous;
|
|
8
8
|
return source.pipe((0, operators_1.map)(it => {
|
|
9
9
|
const current = fn(it);
|
|
10
|
-
|
|
10
|
+
const value = previous == null
|
|
11
11
|
? current.high - current.low
|
|
12
12
|
: Math.max(Math.max(current.high - current.low, Math.abs(current.high - previous.close)), Math.abs(current.low - previous.close));
|
|
13
|
+
const tuple = [it, value];
|
|
14
|
+
return tuple;
|
|
13
15
|
}), (0, operators_1.share)());
|
|
14
16
|
};
|
|
15
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"truerange.js","sourceRoot":"","sources":["../../src/indicator/truerange.ts"],"names":[],"mappings":";;;AACA,8CAA4C;AAG5C,SAAgB,SAAS,CAAI,EAAqB;IAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"truerange.js","sourceRoot":"","sources":["../../src/indicator/truerange.ts"],"names":[],"mappings":";;;AACA,8CAA4C;AAG5C,SAAgB,SAAS,CAAI,EAAqB;IAChD,OAAO,UAAU,MAAqB;QACpC,IAAI,QAAQ,CAAC;QAEb,OAAO,MAAM,CAAC,IAAI,CAChB,IAAA,eAAG,EAAC,EAAE,CAAC,EAAE;YACP,MAAM,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAEvB,MAAM,KAAK,GACT,QAAQ,IAAI,IAAI;gBACd,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG;gBAC5B,CAAC,CAAC,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,GAAG,CACN,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,GAAG,EAC1B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CACxC,EACD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CACvC,CAAC;YAER,MAAM,KAAK,GAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAEvC,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,EACF,IAAA,iBAAK,GAAE,CACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AA1BD,8BA0BC"}
|
|
@@ -15,9 +15,9 @@ describe('truerange atr tests', () => {
|
|
|
15
15
|
new domain_1.Candle((0, common_1.now)(), 18082.39, 18087.04, 18041.0, 18065.4),
|
|
16
16
|
new domain_1.Candle((0, common_1.now)(), 18066.11, 18079.15, 18041.0, 18046.47)
|
|
17
17
|
])
|
|
18
|
-
.pipe((0, truerange_1.truerange)(it => it), (0, sma_1.sma)(4, it => it))
|
|
18
|
+
.pipe((0, truerange_1.truerange)(it => it), (0, sma_1.sma)(4, ([, it]) => it))
|
|
19
19
|
.subscribe({
|
|
20
|
-
next: it => (value = it
|
|
20
|
+
next: ([, it]) => (value = it),
|
|
21
21
|
complete: () => {
|
|
22
22
|
expect(parseFloat(value.toFixed(2))).toBe(42.41);
|
|
23
23
|
done();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"truerange.spec.js","sourceRoot":"","sources":["../../src/indicator/truerange.spec.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAC5B,sCAAmC;AACnC,2CAAwC;AACxC,+BAA4B;AAC5B,sCAAgC;AAEhC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,EAAE;QAC1C,IAAI,KAAK,CAAC;QAGV,IAAA,WAAI,EAAC;YACH,IAAI,eAAM,CAAC,IAAA,YAAG,GAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;YACxD,IAAI,eAAM,CAAC,IAAA,YAAG,GAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;YACzD,IAAI,eAAM,CAAC,IAAA,YAAG,GAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;YACxD,IAAI,eAAM,CAAC,IAAA,YAAG,GAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;YACvD,IAAI,eAAM,CAAC,IAAA,YAAG,GAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;SACzD,CAAC;aACC,IAAI,CACH,IAAA,qBAAS,EAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACnB,IAAA,SAAG,EAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"truerange.spec.js","sourceRoot":"","sources":["../../src/indicator/truerange.spec.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAC5B,sCAAmC;AACnC,2CAAwC;AACxC,+BAA4B;AAC5B,sCAAgC;AAEhC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,EAAE;QAC1C,IAAI,KAAK,CAAC;QAGV,IAAA,WAAI,EAAC;YACH,IAAI,eAAM,CAAC,IAAA,YAAG,GAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;YACxD,IAAI,eAAM,CAAC,IAAA,YAAG,GAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;YACzD,IAAI,eAAM,CAAC,IAAA,YAAG,GAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;YACxD,IAAI,eAAM,CAAC,IAAA,YAAG,GAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;YACvD,IAAI,eAAM,CAAC,IAAA,YAAG,GAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;SACzD,CAAC;aACC,IAAI,CACH,IAAA,qBAAS,EAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EACnB,IAAA,SAAG,EAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CACvB;aACA,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC9B,QAAQ,EAAE,GAAG,EAAE;gBACb,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjD,IAAI,EAAE,CAAC;YACT,CAAC;SACF,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.window = void 0;
|
|
4
|
+
const rxjs_1 = require("rxjs");
|
|
5
|
+
const ring_buffer_1 = require("./ring-buffer");
|
|
6
|
+
function window(length, fn) {
|
|
7
|
+
return function (source) {
|
|
8
|
+
const buffer = new ring_buffer_1.RingBuffer(length);
|
|
9
|
+
return source.pipe((0, rxjs_1.map)(it => {
|
|
10
|
+
let removed = null;
|
|
11
|
+
if (buffer.isFull) {
|
|
12
|
+
removed = buffer.peek();
|
|
13
|
+
}
|
|
14
|
+
const value = fn(it);
|
|
15
|
+
buffer.enqueue(value);
|
|
16
|
+
const tuple = [it, buffer, value, removed];
|
|
17
|
+
return tuple;
|
|
18
|
+
}), (0, rxjs_1.share)());
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
exports.window = window;
|
|
22
|
+
//# sourceMappingURL=window.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window.js","sourceRoot":"","sources":["../../src/indicator/window.ts"],"names":[],"mappings":";;;AAAA,+BAA8C;AAC9C,+CAA2C;AAE3C,SAAgB,MAAM,CAAO,MAAc,EAAE,EAAmB;IAC9D,OAAO,UAAU,MAAqB;QACpC,MAAM,MAAM,GAAG,IAAI,wBAAU,CAAI,MAAM,CAAC,CAAC;QAEzC,OAAO,MAAM,CAAC,IAAI,CAChB,IAAA,UAAG,EAAC,EAAE,CAAC,EAAE;YACP,IAAI,OAAO,GAAG,IAAI,CAAC;YAEnB,IAAI,MAAM,CAAC,MAAM,EAAE;gBACjB,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;aACzB;YAED,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAErB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEtB,MAAM,KAAK,GAA6B,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAErE,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,EACF,IAAA,YAAK,GAAE,CACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAvBD,wBAuBC"}
|
package/dist/indicator/wma.d.ts
CHANGED
|
@@ -1,12 +1,2 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
|
|
3
|
-
import { WindowIndicator } from './window-indicator';
|
|
4
|
-
export declare class WMA extends WindowIndicator<number> {
|
|
5
|
-
private _k;
|
|
6
|
-
private _sma;
|
|
7
|
-
private _value;
|
|
8
|
-
get value(): number;
|
|
9
|
-
constructor(capacity: number);
|
|
10
|
-
calculate(added: number, removed: number, buffer: RingBuffer<number>): void;
|
|
11
|
-
}
|
|
12
|
-
export declare function wma<T>(length: number, fn: (it: T) => number): (source: Observable<T>) => Observable<WMA>;
|
|
2
|
+
export declare function wma<T>(length: number, fn: (it: T) => number): (source: Observable<T>) => Observable<[T, number]>;
|
package/dist/indicator/wma.js
CHANGED
|
@@ -1,41 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.wma =
|
|
3
|
+
exports.wma = void 0;
|
|
4
4
|
const operators_1 = require("rxjs/operators");
|
|
5
|
-
const
|
|
6
|
-
const window_indicator_1 = require("./window-indicator");
|
|
7
|
-
class WMA extends window_indicator_1.WindowIndicator {
|
|
8
|
-
constructor(capacity) {
|
|
9
|
-
super(capacity);
|
|
10
|
-
this._k = 0;
|
|
11
|
-
this._k = 1.0 / capacity;
|
|
12
|
-
this._sma = new sma_1.SMA(capacity);
|
|
13
|
-
}
|
|
14
|
-
get value() {
|
|
15
|
-
return this._value;
|
|
16
|
-
}
|
|
17
|
-
calculate(added, removed, buffer) {
|
|
18
|
-
if (!this.isCompleted) {
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
let norm = 0.0;
|
|
22
|
-
let sum = 0.0;
|
|
23
|
-
for (let i = 0; i < this.capacity; i++) {
|
|
24
|
-
const weight = (this.capacity - i) * this.capacity;
|
|
25
|
-
norm = norm + weight;
|
|
26
|
-
sum = sum + buffer.at(this.capacity - (i + 1)) * weight;
|
|
27
|
-
}
|
|
28
|
-
this._value = sum / norm;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
exports.WMA = WMA;
|
|
5
|
+
const window_1 = require("./window");
|
|
32
6
|
function wma(length, fn) {
|
|
33
7
|
return function (source) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
8
|
+
return source.pipe((0, window_1.window)(length, fn), (0, operators_1.filter)(([, buffer]) => buffer.isFull), (0, operators_1.map)(([it, buffer]) => {
|
|
9
|
+
let norm = 0.0;
|
|
10
|
+
let sum = 0.0;
|
|
11
|
+
for (let i = 0; i < buffer.capacity; i++) {
|
|
12
|
+
const weight = (buffer.capacity - i) * buffer.capacity;
|
|
13
|
+
norm = norm + weight;
|
|
14
|
+
sum = sum + buffer.at(buffer.capacity - (i + 1)) * weight;
|
|
15
|
+
}
|
|
16
|
+
const tuple = [it, sum / norm];
|
|
17
|
+
return tuple;
|
|
18
|
+
}), (0, operators_1.share)());
|
|
39
19
|
};
|
|
40
20
|
}
|
|
41
21
|
exports.wma = wma;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wma.js","sourceRoot":"","sources":["../../src/indicator/wma.ts"],"names":[],"mappings":";;;AACA,8CAAoD;
|
|
1
|
+
{"version":3,"file":"wma.js","sourceRoot":"","sources":["../../src/indicator/wma.ts"],"names":[],"mappings":";;;AACA,8CAAoD;AACpD,qCAAkC;AAElC,SAAgB,GAAG,CAAI,MAAc,EAAE,EAAqB;IAC1D,OAAO,UAAU,MAAqB;QACpC,OAAO,MAAM,CAAC,IAAI,CAChB,IAAA,eAAM,EAAC,MAAM,EAAE,EAAE,CAAC,EAClB,IAAA,kBAAM,EAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EACrC,IAAA,eAAG,EAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACnB,IAAI,IAAI,GAAG,GAAG,CAAC;YACf,IAAI,GAAG,GAAG,GAAG,CAAC;YAEd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;gBACxC,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;gBAEvD,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;gBACrB,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;aAC3D;YAED,MAAM,KAAK,GAAgB,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC,CAAC;YAE5C,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,EACF,IAAA,iBAAK,GAAE,CACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAvBD,kBAuBC"}
|
|
@@ -8,7 +8,7 @@ describe('wma tests', () => {
|
|
|
8
8
|
(0, rxjs_1.from)([18136.17, 18092.15, 18082.39, 18065.4, 18046.47])
|
|
9
9
|
.pipe((0, wma_1.wma)(5, it => it))
|
|
10
10
|
.subscribe({
|
|
11
|
-
next: it => (value = it
|
|
11
|
+
next: ([, it]) => (value = it),
|
|
12
12
|
complete: () => {
|
|
13
13
|
expect(parseFloat(value.toFixed(2))).toBe(18070.77);
|
|
14
14
|
done();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wma.spec.js","sourceRoot":"","sources":["../../src/indicator/wma.spec.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAC5B,+BAA4B;AAE5B,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,EAAE;QAC1C,IAAI,KAAK,CAAC;QAEV,IAAA,WAAI,EAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;aACpD,IAAI,CAAC,IAAA,SAAG,EAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACtB,SAAS,CAAC;YACT,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"wma.spec.js","sourceRoot":"","sources":["../../src/indicator/wma.spec.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAC5B,+BAA4B;AAE5B,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAI,CAAC,8BAA8B,EAAE,IAAI,CAAC,EAAE;QAC1C,IAAI,KAAK,CAAC;QAEV,IAAA,WAAI,EAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;aACpD,IAAI,CAAC,IAAA,SAAG,EAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;aACtB,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;YAC9B,QAAQ,EAAE,GAAG,EAAE;gBACb,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpD,IAAI,EAAE,CAAC;YACT,CAAC;SACF,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-optimizer.js","sourceRoot":"","sources":["../../src/session/session-optimizer.ts"],"names":[],"mappings":";;;AAAA,SAAgB,GAAG,CAAC,GAAW,EAAE,SAAiB;IAChD,OAAO,
|
|
1
|
+
{"version":3,"file":"session-optimizer.js","sourceRoot":"","sources":["../../src/session/session-optimizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,12 +16,12 @@ export declare class Session {
|
|
|
16
16
|
constructor(store: Store, aggregate: AdapterAggregate, descriptor?: SessionDescriptor);
|
|
17
17
|
awake(): Promise<void>;
|
|
18
18
|
dispose(): Promise<void>;
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
statement(output: Record<string, any>): void;
|
|
20
|
+
useMeasure<T extends Measure>(params: {
|
|
21
21
|
type: string;
|
|
22
22
|
timestamp?: number;
|
|
23
|
-
}): Observable<
|
|
24
|
-
|
|
23
|
+
}, defaultValue?: T): (Observable<T> | ((value: T) => void))[];
|
|
24
|
+
useOptimizer(path: string): any;
|
|
25
25
|
subscribe(instrument: Array<InstrumentSelector>): Promise<void>;
|
|
26
26
|
open(...orders: Order[]): Promise<void>;
|
|
27
27
|
cancel(order: Order): Promise<void>;
|
package/dist/session/session.js
CHANGED
|
@@ -46,28 +46,28 @@ class Session {
|
|
|
46
46
|
await this.aggregate.dispose();
|
|
47
47
|
await this.worker.wait();
|
|
48
48
|
}
|
|
49
|
-
|
|
49
|
+
statement(output) {
|
|
50
50
|
var _a;
|
|
51
|
-
if (!((_a = this.
|
|
51
|
+
if (!((_a = this.behaviour) === null || _a === void 0 ? void 0 : _a.statement)) {
|
|
52
52
|
return;
|
|
53
53
|
}
|
|
54
|
-
this.
|
|
54
|
+
this.behaviour.statement(output);
|
|
55
55
|
}
|
|
56
|
-
|
|
56
|
+
useMeasure(params, defaultValue = undefined) {
|
|
57
57
|
var _a;
|
|
58
|
-
|
|
58
|
+
const query$ = (0, rxjs_1.from)(this.descriptor.measurement.query(this.descriptor.id, {
|
|
59
59
|
type: params.type,
|
|
60
60
|
timestamp: (_a = params.timestamp) !== null && _a !== void 0 ? _a : this.store.snapshot.timestamp,
|
|
61
61
|
limit: 1,
|
|
62
62
|
direction: 'BACKWARD'
|
|
63
|
-
})).pipe((0, operators_1.map)(it => it[0]));
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
63
|
+
})).pipe((0, operators_1.map)(it => (it.length ? it[0] : defaultValue)));
|
|
64
|
+
const setter = (value) => {
|
|
65
|
+
this.worker.enqueue(() => this.descriptor.measurement.save(this.descriptor.id, [value]));
|
|
66
|
+
};
|
|
67
|
+
return [query$, setter];
|
|
68
|
+
}
|
|
69
|
+
useOptimizer(path) {
|
|
70
|
+
return 0;
|
|
71
71
|
}
|
|
72
72
|
async subscribe(instrument) {
|
|
73
73
|
const grouped = instrument
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":";;;AAAA,8CASwB;AACxB,sCAUmB;AAEnB,+BAAsD;AACtD,4CAA+E;AAE/E,sCAAmC;AACnC,2CAAwC;AAGxC,wCAKoB;AAEpB,MAAa,OAAO;IAMlB,YACW,KAAY,EACZ,SAA2B,EAC3B,UAA8B;QAF9B,UAAK,GAAL,KAAK,CAAO;QACZ,cAAS,GAAT,SAAS,CAAkB;QAC3B,eAAU,GAAV,UAAU,CAAoB;QARjC,gBAAW,GAAG,KAAK,CAAC;QAGpB,WAAM,GAAG,IAAI,eAAM,EAAE,CAAC;IAM3B,CAAC;IAEJ,KAAK,CAAC,KAAK;;QACT,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,OAAO;SACR;QAED,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;QAEpD,IAAI,MAAA,IAAI,CAAC,UAAU,0CAAE,SAAS,EAAE;YAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,YAAY,QAAQ,EAAE;gBACjD,IAAI,CAAC,SAAS,GAAG,IAAI,6BAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;aACnE;iBAAM;gBACL,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;oBACvD,CAAC,CAAC,IAAI,6BAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;oBAClD,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;aAC/B;YAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;SAC/D;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACrB,OAAO;SACR;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAErB,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACjC;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { timestamp } from '../../common/datetime';
|
|
2
2
|
import { InstrumentSelector } from '../../domain';
|
|
3
|
+
import { State } from '../store.state';
|
|
3
4
|
import { StoreEvent } from './store.event';
|
|
4
5
|
export declare class CandleEvent implements StoreEvent {
|
|
5
6
|
readonly instrument: InstrumentSelector;
|
|
@@ -13,3 +14,4 @@ export declare class CandleEvent implements StoreEvent {
|
|
|
13
14
|
type: string;
|
|
14
15
|
constructor(instrument: InstrumentSelector, timeframe: number, open: number, high: number, low: number, close: number, volume: number, timestamp: timestamp);
|
|
15
16
|
}
|
|
17
|
+
export declare function CandleEventHandler(event: CandleEvent, state: State): import("../../domain").Trade;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CandleEvent = void 0;
|
|
3
|
+
exports.CandleEventHandler = exports.CandleEvent = void 0;
|
|
4
|
+
const store_trade_event_1 = require("./store-trade.event");
|
|
4
5
|
class CandleEvent {
|
|
5
6
|
constructor(instrument, timeframe, open, high, low, close, volume, timestamp) {
|
|
6
7
|
this.instrument = instrument;
|
|
@@ -15,4 +16,14 @@ class CandleEvent {
|
|
|
15
16
|
}
|
|
16
17
|
}
|
|
17
18
|
exports.CandleEvent = CandleEvent;
|
|
19
|
+
function CandleEventHandler(event, state) {
|
|
20
|
+
return (0, store_trade_event_1.TradePatchEventHandler)({
|
|
21
|
+
type: 'trade-patch',
|
|
22
|
+
instrument: event.instrument,
|
|
23
|
+
quantity: event.volume,
|
|
24
|
+
rate: event.close,
|
|
25
|
+
timestamp: event.timestamp
|
|
26
|
+
}, state);
|
|
27
|
+
}
|
|
28
|
+
exports.CandleEventHandler = CandleEventHandler;
|
|
18
29
|
//# sourceMappingURL=store-candle.event.js.map
|