hedgequantx 2.9.157 → 2.9.158
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/lib/m/hqx-2b.js +18 -0
- package/package.json +1 -1
- package/src/lib/smart-logs-hqx2b.js +52 -52
package/dist/lib/m/hqx-2b.js
CHANGED
|
@@ -531,8 +531,17 @@ var require_core = __commonJS({
|
|
|
531
531
|
const { contractId, price, volume, timestamp } = tick;
|
|
532
532
|
const ts = timestamp || Date.now();
|
|
533
533
|
const vol = volume || 1;
|
|
534
|
+
if (!this._tickCount) this._tickCount = /* @__PURE__ */ new Map();
|
|
535
|
+
const count = (this._tickCount.get(contractId) || 0) + 1;
|
|
536
|
+
this._tickCount.set(contractId, count);
|
|
534
537
|
let bar = this.currentBar.get(contractId);
|
|
535
538
|
const barStartTime = Math.floor(ts / this.barIntervalMs) * this.barIntervalMs;
|
|
539
|
+
if (count === 1) {
|
|
540
|
+
this.emit("log", {
|
|
541
|
+
type: "debug",
|
|
542
|
+
message: `[2B] First tick ${contractId}: price=${price}, ts=${ts}, barStart=${barStartTime}`
|
|
543
|
+
});
|
|
544
|
+
}
|
|
536
545
|
if (!bar || bar.startTime !== barStartTime) {
|
|
537
546
|
if (bar) {
|
|
538
547
|
const closedBar = {
|
|
@@ -543,6 +552,11 @@ var require_core = __commonJS({
|
|
|
543
552
|
close: bar.close,
|
|
544
553
|
volume: bar.volume
|
|
545
554
|
};
|
|
555
|
+
const bars = this.barHistory.get(contractId) || [];
|
|
556
|
+
this.emit("log", {
|
|
557
|
+
type: "debug",
|
|
558
|
+
message: `[2B] BAR CLOSE ${contractId} #${bars.length + 1}: O=${closedBar.open.toFixed(2)} H=${closedBar.high.toFixed(2)} L=${closedBar.low.toFixed(2)} C=${closedBar.close.toFixed(2)} V=${closedBar.volume}`
|
|
559
|
+
});
|
|
546
560
|
const signal = this.processBar(contractId, closedBar);
|
|
547
561
|
this.currentBar.set(contractId, {
|
|
548
562
|
startTime: barStartTime,
|
|
@@ -554,6 +568,10 @@ var require_core = __commonJS({
|
|
|
554
568
|
});
|
|
555
569
|
return signal;
|
|
556
570
|
} else {
|
|
571
|
+
this.emit("log", {
|
|
572
|
+
type: "debug",
|
|
573
|
+
message: `[2B] First bar start ${contractId} @ ${new Date(barStartTime).toISOString()}`
|
|
574
|
+
});
|
|
557
575
|
this.currentBar.set(contractId, {
|
|
558
576
|
startTime: barStartTime,
|
|
559
577
|
open: price,
|
package/package.json
CHANGED
|
@@ -276,59 +276,59 @@ module.exports = {
|
|
|
276
276
|
]),
|
|
277
277
|
|
|
278
278
|
ready: (d) => {
|
|
279
|
-
const
|
|
280
|
-
const
|
|
279
|
+
const bias = d.delta > 0 ? 'bullish' : d.delta < 0 ? 'bearish' : 'neutral';
|
|
280
|
+
const biasColor = d.delta > 0 ? chalk.green : d.delta < 0 ? chalk.red : chalk.gray;
|
|
281
281
|
return pick([
|
|
282
|
-
chalk.
|
|
283
|
-
chalk.
|
|
284
|
-
chalk.
|
|
285
|
-
chalk.
|
|
286
|
-
chalk.
|
|
287
|
-
chalk.
|
|
288
|
-
chalk.
|
|
289
|
-
chalk.
|
|
290
|
-
chalk.
|
|
291
|
-
chalk.
|
|
292
|
-
chalk.
|
|
293
|
-
chalk.
|
|
294
|
-
chalk.
|
|
295
|
-
chalk.
|
|
296
|
-
chalk.
|
|
297
|
-
chalk.
|
|
298
|
-
chalk.
|
|
299
|
-
chalk.
|
|
300
|
-
chalk.
|
|
301
|
-
chalk.
|
|
302
|
-
chalk.
|
|
303
|
-
chalk.
|
|
304
|
-
chalk.
|
|
305
|
-
chalk.
|
|
306
|
-
chalk.
|
|
307
|
-
chalk.
|
|
308
|
-
chalk.
|
|
309
|
-
chalk.
|
|
310
|
-
chalk.
|
|
311
|
-
chalk.
|
|
312
|
-
chalk.
|
|
313
|
-
chalk.
|
|
314
|
-
chalk.
|
|
315
|
-
chalk.
|
|
316
|
-
chalk.
|
|
317
|
-
chalk.
|
|
318
|
-
chalk.
|
|
319
|
-
chalk.
|
|
320
|
-
chalk.
|
|
321
|
-
chalk.
|
|
322
|
-
chalk.
|
|
323
|
-
chalk.
|
|
324
|
-
chalk.
|
|
325
|
-
chalk.
|
|
326
|
-
chalk.
|
|
327
|
-
chalk.
|
|
328
|
-
chalk.
|
|
329
|
-
chalk.
|
|
330
|
-
chalk.
|
|
331
|
-
chalk.
|
|
282
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | ${chalk.yellow(d.zones + ' zones')} | ${biasColor(bias)} bias`,
|
|
283
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Watching @ ${chalk.white(d.price)} | ${chalk.yellow(d.swings + ' swings')} mapped`,
|
|
284
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | Delta: ${chalk.white(d.delta)} | Sweep watch`,
|
|
285
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Zones active | ${chalk.white(d.price)} | OFI: ${chalk.white(d.delta)}`,
|
|
286
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | ${chalk.yellow(d.zones + ' levels')} | Awaiting sweep`,
|
|
287
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Liquidity mapped | ${chalk.white(d.price)} | ${biasColor(bias)}`,
|
|
288
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | ${chalk.yellow(d.swings)} pivots | Delta: ${chalk.white(d.delta)}`,
|
|
289
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Monitoring @ ${chalk.white(d.price)} | ${chalk.yellow(d.zones + ' zones')}`,
|
|
290
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | OFI: ${chalk.white(d.delta)} | Zones ready`,
|
|
291
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Structure set | ${chalk.white(d.price)} | ${chalk.yellow(d.swings + ' swings')}`,
|
|
292
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | ${biasColor(bias)} flow | ${chalk.yellow(d.zones)} zones`,
|
|
293
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Sweep zones mapped | ${chalk.white(d.price)} | Delta: ${chalk.white(d.delta)}`,
|
|
294
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | ${chalk.yellow(d.zones + ' targets')} | ${biasColor(bias)}`,
|
|
295
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Watching levels | ${chalk.white(d.price)} | OFI: ${chalk.white(d.delta)}`,
|
|
296
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | Liquidity hunt active | ${chalk.yellow(d.zones)} zones`,
|
|
297
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Zones locked | ${chalk.white(d.price)} | ${biasColor(bias)} bias`,
|
|
298
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | ${chalk.yellow(d.swings + ' pivots')} | Sweep imminent`,
|
|
299
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Hunting liquidity | ${chalk.white(d.price)} | Delta: ${chalk.white(d.delta)}`,
|
|
300
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | ${chalk.yellow(d.zones)} zones | Primed`,
|
|
301
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} 2B setup forming | ${chalk.white(d.price)} | ${biasColor(bias)}`,
|
|
302
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | Stop hunt watch | ${chalk.yellow(d.zones + ' levels')}`,
|
|
303
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Armed @ ${chalk.white(d.price)} | ${chalk.yellow(d.swings)} swings | ${biasColor(bias)}`,
|
|
304
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | Delta: ${chalk.white(d.delta)} | Zones primed`,
|
|
305
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Liquidity levels set | ${chalk.white(d.price)} | ${chalk.yellow(d.zones)} zones`,
|
|
306
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | ${biasColor(bias)} | Awaiting trigger`,
|
|
307
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Pattern forming | ${chalk.white(d.price)} | OFI: ${chalk.white(d.delta)}`,
|
|
308
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | ${chalk.yellow(d.zones + ' zones')} | Sweep watch`,
|
|
309
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Targets locked | ${chalk.white(d.price)} | ${biasColor(bias)} flow`,
|
|
310
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | ${chalk.yellow(d.swings)} pivots | Delta: ${chalk.white(d.delta)}`,
|
|
311
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Monitoring zones | ${chalk.white(d.price)} | ${biasColor(bias)}`,
|
|
312
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | ${chalk.yellow(d.zones + ' levels')} | Armed`,
|
|
313
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Ready state | ${chalk.white(d.price)} | OFI: ${chalk.white(d.delta)}`,
|
|
314
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | Sweep zones active | ${biasColor(bias)}`,
|
|
315
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Watching @ ${chalk.white(d.price)} | ${chalk.yellow(d.zones)} zones ready`,
|
|
316
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | Delta: ${chalk.white(d.delta)} | Primed`,
|
|
317
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Structure ready | ${chalk.white(d.price)} | ${chalk.yellow(d.swings + ' swings')}`,
|
|
318
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | ${biasColor(bias)} bias | ${chalk.yellow(d.zones)} zones`,
|
|
319
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Levels mapped | ${chalk.white(d.price)} | OFI: ${chalk.white(d.delta)}`,
|
|
320
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | ${chalk.yellow(d.zones + ' targets')} | Watching`,
|
|
321
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Zones active | ${chalk.white(d.price)} | ${biasColor(bias)} flow`,
|
|
322
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | ${chalk.yellow(d.swings)} pivots | Sweep watch`,
|
|
323
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Liquidity hunt | ${chalk.white(d.price)} | Delta: ${chalk.white(d.delta)}`,
|
|
324
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | ${chalk.yellow(d.zones)} zones | Armed`,
|
|
325
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Awaiting sweep | ${chalk.white(d.price)} | ${biasColor(bias)}`,
|
|
326
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | OFI: ${chalk.white(d.delta)} | ${chalk.yellow(d.zones + ' levels')}`,
|
|
327
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Pattern watch | ${chalk.white(d.price)} | ${biasColor(bias)} flow`,
|
|
328
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | ${chalk.yellow(d.swings + ' swings')} | Primed`,
|
|
329
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Stop hunt mode | ${chalk.white(d.price)} | Delta: ${chalk.white(d.delta)}`,
|
|
330
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} ${chalk.white(d.price)} | ${chalk.yellow(d.zones)} zones | ${biasColor(bias)}`,
|
|
331
|
+
chalk.bgCyan.black(' RDY ') + ` ${chalk.cyan(`[${d.sym}]`)} Sweep ready | ${chalk.white(d.price)} | OFI: ${chalk.white(d.delta)}`,
|
|
332
332
|
]);
|
|
333
333
|
},
|
|
334
334
|
};
|