UNPKG

rxjs-trading-signals

Version:

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

50 lines 1.62 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.tradeRx = void 0; const big_js_1 = __importDefault(require("big.js")); const rxjs_1 = require("rxjs"); const tradeRx = (upper, lower) => { return (observable) => new rxjs_1.Observable((subscriber) => { let prev = 0; const subscription = observable.pipe((0, rxjs_1.map)(x => new big_js_1.default(x))).subscribe({ next(r) { if (r.gt(upper)) { if (prev !== 0 && prev !== 1) { subscriber.next(1); } prev = 1; } else if (r.gt(lower)) { if (prev === 1) { subscriber.next(2); } else if (prev === 3) { subscriber.next(3); } prev = 2; } else { if (prev !== 0 && prev !== 3) { subscriber.next(4); } prev = 3; } }, error(err) { subscriber.error(err); }, complete() { subscriber.complete(); }, }); return () => { subscription.unsubscribe(); prev = null; }; }); }; exports.tradeRx = tradeRx; //# sourceMappingURL=trade.js.map