tradeblocks-mcp 2.2.0-beta.5 → 2.2.0-beta.6

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.
@@ -5231,7 +5231,17 @@ function evaluateTrigger(trigger, pnlPath, legs) {
5231
5231
  }
5232
5232
  case "positionDelta": {
5233
5233
  const netDelta = point.netDelta ?? 0;
5234
- if (Math.abs(netDelta) >= threshold) {
5234
+ if (trigger.exitAbove != null) {
5235
+ if (netDelta > trigger.exitAbove) {
5236
+ fired = true;
5237
+ detail = `Net delta ${netDelta.toFixed(4)} > exitAbove ${trigger.exitAbove}`;
5238
+ }
5239
+ } else if (trigger.exitBelow != null) {
5240
+ if (netDelta < trigger.exitBelow) {
5241
+ fired = true;
5242
+ detail = `Net delta ${netDelta.toFixed(4)} < exitBelow ${trigger.exitBelow}`;
5243
+ }
5244
+ } else if (Math.abs(netDelta) >= threshold) {
5235
5245
  fired = true;
5236
5246
  detail = `Net delta ${netDelta.toFixed(4)} >= threshold ${threshold}`;
5237
5247
  }
@@ -5239,12 +5249,33 @@ function evaluateTrigger(trigger, pnlPath, legs) {
5239
5249
  }
5240
5250
  case "perLegDelta": {
5241
5251
  if (!point.legGreeks) break;
5242
- for (let li = 0; li < point.legGreeks.length; li++) {
5243
- const legDelta = point.legGreeks[li].delta ?? 0;
5244
- if (Math.abs(legDelta) >= threshold) {
5245
- fired = true;
5246
- detail = `Leg ${li} delta ${legDelta.toFixed(4)} >= threshold ${threshold}`;
5247
- break;
5252
+ if (trigger.legIndex != null) {
5253
+ if (trigger.legIndex >= point.legGreeks.length) break;
5254
+ const legDelta = point.legGreeks[trigger.legIndex].delta ?? 0;
5255
+ if (trigger.exitAbove != null) {
5256
+ if (legDelta > trigger.exitAbove) {
5257
+ fired = true;
5258
+ detail = `Leg ${trigger.legIndex} delta ${legDelta.toFixed(4)} > exitAbove ${trigger.exitAbove}`;
5259
+ }
5260
+ } else if (trigger.exitBelow != null) {
5261
+ if (legDelta < trigger.exitBelow) {
5262
+ fired = true;
5263
+ detail = `Leg ${trigger.legIndex} delta ${legDelta.toFixed(4)} < exitBelow ${trigger.exitBelow}`;
5264
+ }
5265
+ } else {
5266
+ if (Math.abs(legDelta) >= threshold) {
5267
+ fired = true;
5268
+ detail = `Leg ${trigger.legIndex} delta ${legDelta.toFixed(4)} >= threshold ${threshold}`;
5269
+ }
5270
+ }
5271
+ } else {
5272
+ for (let li = 0; li < point.legGreeks.length; li++) {
5273
+ const legDelta = point.legGreeks[li].delta ?? 0;
5274
+ if (Math.abs(legDelta) >= threshold) {
5275
+ fired = true;
5276
+ detail = `Leg ${li} delta ${legDelta.toFixed(4)} >= threshold ${threshold}`;
5277
+ break;
5278
+ }
5248
5279
  }
5249
5280
  }
5250
5281
  break;
@@ -5500,7 +5531,10 @@ var triggerConfigSchema = z7.object({
5500
5531
  closeAllocationPct: z7.number().min(0).max(1).optional().describe("Fraction of REMAINING position to close at this milestone (0-1)")
5501
5532
  })).optional(),
5502
5533
  spreadWidth: z7.number().optional(),
5503
- contracts: z7.number().optional()
5534
+ contracts: z7.number().optional(),
5535
+ legIndex: z7.number().optional().describe("0-based leg index for perLegDelta \u2014 targets specific leg"),
5536
+ exitAbove: z7.number().optional().describe("Fire when value exceeds this (directional, no abs)"),
5537
+ exitBelow: z7.number().optional().describe("Fire when value drops below this (directional, no abs)")
5504
5538
  });
5505
5539
  var legSchema = z7.object({
5506
5540
  ticker: z7.string(),
@@ -6016,7 +6050,10 @@ var triggerConfigSchema2 = z8.object({
6016
6050
  closeAllocationPct: z8.number().min(0).max(1).optional().describe("Fraction of REMAINING position to close at this milestone (0-1)")
6017
6051
  })).optional(),
6018
6052
  spreadWidth: z8.number().optional(),
6019
- contracts: z8.number().optional()
6053
+ contracts: z8.number().optional(),
6054
+ legIndex: z8.number().optional().describe("0-based leg index for perLegDelta \u2014 targets specific leg"),
6055
+ exitAbove: z8.number().optional().describe("Fire when value exceeds this (directional, no abs)"),
6056
+ exitBelow: z8.number().optional().describe("Fire when value drops below this (directional, no abs)")
6020
6057
  });
6021
6058
  var batchExitAnalysisSchema = z8.object({
6022
6059
  block_id: z8.string().describe("Block ID to analyze trades from"),