rxjs-trading-signals
Version:
The user - defined operator helps users quickly output index values. base trading-signals library
38 lines • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.makeIndicatorOperator = void 0;
const rxjs_1 = require("rxjs");
const trading_signals_1 = require("trading-signals");
const makeIndicatorOperator = (macdParam) => {
return (observable) => new rxjs_1.Observable((subscriber) => {
const [shortInterval, longInterval, signalInterval] = macdParam;
let indicator = new trading_signals_1.MACD({
indicator: trading_signals_1.EMA,
shortInterval: shortInterval,
longInterval: longInterval,
signalInterval: signalInterval,
});
const subscription = observable.subscribe({
next(item) {
const { close } = item;
indicator.update(close);
if (indicator.isStable) {
const { histogram } = indicator.getResult();
subscriber.next([item, histogram]);
}
},
error(err) {
subscriber.error(err);
},
complete() {
subscriber.complete();
},
});
return () => {
subscription.unsubscribe();
indicator = null;
};
});
};
exports.makeIndicatorOperator = makeIndicatorOperator;
//# sourceMappingURL=MACD.rx.js.map