UNPKG

rxjs-trading-signals

Version:

The user - defined operator helps users quickly output index values. base trading-signals library

43 lines 1.55 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TR = void 0; const big_js_1 = __importDefault(require("big.js")); const rxjs_1 = require("rxjs"); const TR = () => { return (observable) => new rxjs_1.Observable((subscriber) => { let prevCandle = null; const subscription = observable .pipe((0, rxjs_1.concatMap)(candle => { const high = new big_js_1.default(candle.high); const highLow = high.minus(candle.low); if (!prevCandle) { prevCandle = candle; return (0, rxjs_1.of)(highLow); } const highClose = high.minus(prevCandle.close).abs(); const lowClose = new big_js_1.default(candle.low).minus(prevCandle.close).abs(); prevCandle = candle; return (0, rxjs_1.from)([highLow, highClose, lowClose]).pipe((0, rxjs_1.max)((a, b) => (new big_js_1.default(a).lt(b) ? -1 : 1))); })) .subscribe({ next(x) { subscriber.next(x); }, error(err) { subscriber.error(err); }, complete() { subscriber.complete(); }, }); return () => { subscription.unsubscribe(); prevCandle = null; }; }); }; exports.TR = TR; //# sourceMappingURL=TR.js.map