Ypeng12 commited on
Commit
8fd8744
·
1 Parent(s): ce30834

feat(ai): add causal holding research and price replay dashboards

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. backend/app/alpha/support_resistance.py +175 -0
  2. backend/app/dashboard/__init__.py +1 -0
  3. backend/app/dashboard/price_replay.py +36 -0
  4. backend/app/research/calibrated_holding.py +44 -1
  5. backend/app/research/direction_policy.py +14 -4
  6. backend/app/research/holding_policy.py +62 -4
  7. backend/data/charts/dashboard_replay.js +101 -36
  8. backend/data/price_replay/2026-09-14/context/NVDA.json +1 -0
  9. backend/data/price_replay/2026-09-14/context/PLTR.json +1 -0
  10. backend/data/price_replay/2026-09-14/context/SNDK.json +1 -0
  11. backend/data/price_replay/2026-09-14/context/TSLA.json +1 -0
  12. backend/data/price_replay/2026-09-14/levels/NVDA.json +1 -0
  13. backend/data/price_replay/2026-09-14/levels/PLTR.json +1 -0
  14. backend/data/price_replay/2026-09-14/levels/SNDK.json +1 -0
  15. backend/data/price_replay/2026-09-14/levels/TSLA.json +1 -0
  16. backend/data/price_replay/2026-09-14/levels_error_risk/NVDA.json +1 -0
  17. backend/data/price_replay/2026-09-14/levels_error_risk/PLTR.json +1 -0
  18. backend/data/price_replay/2026-09-14/levels_error_risk/SNDK.json +1 -0
  19. backend/data/price_replay/2026-09-14/levels_error_risk/TSLA.json +1 -0
  20. backend/data/price_replay/2026-09-15/context/NVDA.json +1 -0
  21. backend/data/price_replay/2026-09-15/context/PLTR.json +1 -0
  22. backend/data/price_replay/2026-09-15/context/SNDK.json +1 -0
  23. backend/data/price_replay/2026-09-15/context/TSLA.json +1 -0
  24. backend/data/price_replay/2026-09-15/levels/NVDA.json +1 -0
  25. backend/data/price_replay/2026-09-15/levels/PLTR.json +1 -0
  26. backend/data/price_replay/2026-09-15/levels/SNDK.json +1 -0
  27. backend/data/price_replay/2026-09-15/levels/TSLA.json +1 -0
  28. backend/data/price_replay/2026-09-15/levels_error_risk/NVDA.json +1 -0
  29. backend/data/price_replay/2026-09-15/levels_error_risk/PLTR.json +1 -0
  30. backend/data/price_replay/2026-09-15/levels_error_risk/SNDK.json +1 -0
  31. backend/data/price_replay/2026-09-15/levels_error_risk/TSLA.json +1 -0
  32. backend/data/price_replay/manifest.json +48 -0
  33. backend/main_api.py +7 -0
  34. backend/tests/test_direction_forecast_risk.py +65 -0
  35. backend/tests/test_price_replay.py +90 -0
  36. backend/tests/test_session_context_risk.py +84 -0
  37. backend/tests/test_support_resistance.py +135 -0
  38. docs/MANUAL_TRADING_TRANSLATION_20260915.md +80 -0
  39. docs/OPTIONS_DATA_AUDIT_20260915.md +91 -0
  40. docs/PRICE_REPLAY_DISPLAY.md +46 -0
  41. docs/TSLA_REVERSAL_RESEARCH_20260915.md +60 -0
  42. frontend/dist/assets/{index-DCSOhC_L.css → index-7xTfuMOi.css} +1 -1
  43. frontend/dist/assets/index-BBAp5T1V.js +0 -0
  44. frontend/dist/assets/index-BouKarZa.js +0 -0
  45. frontend/dist/index.html +2 -2
  46. frontend/src/App.tsx +1 -1
  47. frontend/src/components/PriceActionReplayChart.css +31 -0
  48. frontend/src/components/PriceActionReplayChart.tsx +224 -0
  49. frontend/src/components/TradeComparisonPanel.tsx +29 -3
  50. reports/alpha_followup_audit_20260914/NVDA_quote_quality.csv +79 -0
backend/app/alpha/support_resistance.py ADDED
@@ -0,0 +1,175 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Causal five-minute support/resistance *descriptors*, not trading rules.
2
+
3
+ Input timestamps are timezone-aware bar OPEN times. A row is usable only after
4
+ that five-minute bar closes. In particular, the 09:40 row's opening-range values
5
+ become available at 09:45; callers must exclude an unfinished current bar.
6
+
7
+ Levels are derived from the preceding XNYS session, the first 15 minutes, and
8
+ strict pivots with two bars on each side. A pivot at 10:00 is confirmed only on
9
+ the 10:10 row (available 10:15). Crossing/rejection always uses levels known on
10
+ the PREVIOUS row, never a pivot newly confirmed by the current row. No ticker,
11
+ date, trade-size, directional veto, or transaction-frequency rules are included.
12
+ """
13
+ from __future__ import annotations
14
+
15
+ import numpy as np
16
+ import pandas as pd
17
+ import exchange_calendars as xcals
18
+
19
+ VERSION = "support_resistance_v1"
20
+ FEATURE_DESCRIPTIONS = {
21
+ "sr_previous_high_distance_bps": "Close / preceding full session high minus one, in bps.",
22
+ "sr_previous_low_distance_bps": "Close / preceding full session low minus one, in bps.",
23
+ "sr_previous_close_distance_bps": "Close / preceding session final bar close minus one, in bps.",
24
+ "sr_opening_high_distance_bps": "Close distance to first 15-minute high; available after 09:45 ET.",
25
+ "sr_opening_low_distance_bps": "Close distance to first 15-minute low; available after 09:45 ET.",
26
+ "sr_pivot_high_distance_bps": "Close distance to last confirmed intraday 2-left/2-right strict high pivot.",
27
+ "sr_pivot_low_distance_bps": "Close distance to last confirmed intraday 2-left/2-right strict low pivot.",
28
+ "sr_vwap_distance_bps": "Close distance to cumulative typical-price volume-weighted OHLCV proxy, not tick VWAP.",
29
+ "sr_running_range_position": "Close within observed session low/high; missing if range is zero or incomplete.",
30
+ "sr_resistance_cross_up": "Close crosses nearest previously known resistance above/equal previous close (0/1).",
31
+ "sr_support_cross_down": "Close crosses nearest previously known support below/equal previous close (0/1).",
32
+ "sr_resistance_rejection_bps": "High overshoot of prior resistance if close returned below it; otherwise zero.",
33
+ "sr_support_rebound_bps": "Low undershoot of prior support if close returned above it; otherwise zero.",
34
+ "sr_last_upbreak_close_distance_bps": "Close distance to the latest resistance crossed by a close this session.",
35
+ "sr_last_upbreak_low_distance_bps": "Current low distance to that retained resistance; describes potential retest.",
36
+ "sr_last_downbreak_close_distance_bps": "Close distance to latest support crossed downward by a close this session.",
37
+ "sr_last_downbreak_high_distance_bps": "Current high distance to that retained support; describes potential retest.",
38
+ "sr_upbreak_age_bars": "Elapsed five-minute grid slots since latest confirmed upward close crossing.",
39
+ "sr_downbreak_age_bars": "Elapsed five-minute grid slots since latest confirmed downward close crossing.",
40
+ }
41
+ FEATURE_COLUMNS = tuple(FEATURE_DESCRIPTIONS)
42
+
43
+
44
+ def _distance(value: float, level: float) -> float:
45
+ if not np.isfinite(value) or not np.isfinite(level) or level <= 0:
46
+ return np.nan
47
+ return (value / level - 1.0) * 10_000.0
48
+
49
+
50
+ def support_resistance_features(frame: pd.DataFrame) -> pd.DataFrame:
51
+ """Return 19 same-index numeric features without imputation or future data.
52
+
53
+ The preceding *calendar trading session* must be present, rather than merely
54
+ the preceding observed date. Prior high/low need every scheduled five-minute
55
+ high/low (including early closes); a missing final close stays missing.
56
+ Opening range requires all three opening bars. Missing slots are explicit in
57
+ pivot windows, running extrema and VWAP. Non-session rows remain NaN. Missing
58
+ current OHLCV makes that output row NaN. A zero imbalance/return is never used
59
+ to stand in for unavailable evidence. Intraday states reset each session.
60
+ """
61
+ required = ["open", "high", "low", "close", "volume"]
62
+ if not isinstance(frame.index, pd.DatetimeIndex) or frame.index.tz is None:
63
+ raise ValueError("Timezone-aware bar-open DatetimeIndex required")
64
+ if not frame.index.is_monotonic_increasing or not frame.index.is_unique:
65
+ raise ValueError("Bar-open timestamps must be sorted and unique")
66
+ if not set(required).issubset(frame.columns):
67
+ raise ValueError("open/high/low/close/volume columns required")
68
+ result = pd.DataFrame(np.nan, index=frame.index, columns=FEATURE_COLUMNS)
69
+ result.attrs.update(feature_version=VERSION, feature_descriptions=FEATURE_DESCRIPTIONS.copy(),
70
+ timestamp_convention="bar_open_available_at_end", frequency="5min",
71
+ vwap_kind="OHLCV typical-price proxy; not true trade VWAP")
72
+ if frame.empty:
73
+ return result
74
+ bars = frame[required].apply(pd.to_numeric, errors="coerce").copy()
75
+ bars.index = bars.index.tz_convert("America/New_York")
76
+ for column in required[:4]:
77
+ bars[column] = bars[column].where(bars[column] > 0)
78
+ bars["volume"] = bars.volume.where(bars.volume >= 0)
79
+ bars = bars.replace([np.inf, -np.inf], np.nan)
80
+ calendar = xcals.get_calendar("XNYS", start=bars.index[0].date()-pd.Timedelta(days=15),
81
+ end=bars.index[-1].date()+pd.Timedelta(days=1))
82
+ output = result.copy()
83
+ output.index = bars.index
84
+ step = pd.Timedelta(minutes=5)
85
+
86
+ for day, observed in bars.groupby(bars.index.date):
87
+ session = pd.Timestamp(day)
88
+ if not calendar.is_session(session):
89
+ continue
90
+ start = calendar.session_open(session).tz_convert("America/New_York")
91
+ end = calendar.session_close(session).tz_convert("America/New_York")
92
+ regular = observed.loc[(observed.index >= start) & (observed.index < end)]
93
+ if regular.empty:
94
+ continue
95
+ if any((regular.index.asi8 - start.value) % step.value):
96
+ raise ValueError("Regular-session rows must align with the five-minute grid")
97
+ grid = pd.date_range(start, regular.index[-1], freq=step)
98
+ b = regular.reindex(grid)
99
+ previous = calendar.previous_session(session)
100
+ prior_grid = pd.date_range(calendar.session_open(previous), calendar.session_close(previous)-step, freq=step)
101
+ prior = bars.reindex(prior_grid)
102
+ previous_high = prior.high.max() if prior.high.notna().all() else np.nan
103
+ previous_low = prior.low.min() if prior.low.notna().all() else np.nan
104
+ previous_close = prior.close.iloc[-1]
105
+ opening_high = opening_low = pivot_high = pivot_low = np.nan
106
+ broken_up = broken_down = np.nan
107
+ up_at = down_at = None
108
+ previous_close_in_day = np.nan
109
+ running_high = running_low = np.nan
110
+ cumulative_pv = cumulative_volume = 0.0
111
+ range_valid = vwap_valid = True
112
+ values = b.to_numpy(dtype=float)
113
+ rows = []
114
+
115
+ for i, (o, h, l, c, v) in enumerate(values):
116
+ row = dict.fromkeys(FEATURE_COLUMNS, np.nan)
117
+ current_valid = bool(np.isfinite([o, h, l, c, v]).all())
118
+ # Candidates are snapshotted before current opening-range/pivot updates.
119
+ if current_valid and np.isfinite(previous_close_in_day):
120
+ resistances = [x for x in (previous_high, opening_high, pivot_high)
121
+ if np.isfinite(x) and x >= previous_close_in_day]
122
+ supports = [x for x in (previous_low, opening_low, pivot_low)
123
+ if np.isfinite(x) and x <= previous_close_in_day]
124
+ if resistances:
125
+ resistance = min(resistances)
126
+ crossed = c > resistance
127
+ row["sr_resistance_cross_up"] = float(crossed)
128
+ row["sr_resistance_rejection_bps"] = max(_distance(h, resistance), 0.0) if c < resistance else 0.0
129
+ if crossed:
130
+ broken_up, up_at = resistance, i
131
+ if supports:
132
+ support = max(supports)
133
+ crossed = c < support
134
+ row["sr_support_cross_down"] = float(crossed)
135
+ row["sr_support_rebound_bps"] = max(-_distance(l, support), 0.0) if c > support else 0.0
136
+ if crossed:
137
+ broken_down, down_at = support, i
138
+
139
+ if i == 2 and np.isfinite(values[:3, 1:3]).all():
140
+ opening_high = float(values[:3, 1].max())
141
+ opening_low = float(values[:3, 2].min())
142
+ if i >= 4:
143
+ highs, lows = values[i-4:i+1, 1], values[i-4:i+1, 2]
144
+ if np.isfinite(highs).all() and highs[2] > np.max(highs[[0, 1, 3, 4]]):
145
+ pivot_high = highs[2]
146
+ if np.isfinite(lows).all() and lows[2] < np.min(lows[[0, 1, 3, 4]]):
147
+ pivot_low = lows[2]
148
+
149
+ range_valid = range_valid and bool(np.isfinite([h, l]).all())
150
+ if range_valid:
151
+ running_high = h if i == 0 else max(running_high, h)
152
+ running_low = l if i == 0 else min(running_low, l)
153
+ vwap_valid = vwap_valid and bool(np.isfinite([h, l, c, v]).all())
154
+ if vwap_valid:
155
+ cumulative_pv += (h+l+c) / 3 * v
156
+ cumulative_volume += v
157
+ vwap = cumulative_pv/cumulative_volume if vwap_valid and cumulative_volume > 0 else np.nan
158
+ for name, level in (("previous_high", previous_high), ("previous_low", previous_low),
159
+ ("previous_close", previous_close), ("opening_high", opening_high),
160
+ ("opening_low", opening_low), ("pivot_high", pivot_high),
161
+ ("pivot_low", pivot_low), ("vwap", vwap)):
162
+ row[f"sr_{name}_distance_bps"] = _distance(c, level)
163
+ if range_valid and running_high > running_low:
164
+ row["sr_running_range_position"] = (c-running_low)/(running_high-running_low)
165
+ row.update(sr_last_upbreak_close_distance_bps=_distance(c, broken_up),
166
+ sr_last_upbreak_low_distance_bps=_distance(l, broken_up),
167
+ sr_last_downbreak_close_distance_bps=_distance(c, broken_down),
168
+ sr_last_downbreak_high_distance_bps=_distance(h, broken_down),
169
+ sr_upbreak_age_bars=i-up_at if up_at is not None else np.nan,
170
+ sr_downbreak_age_bars=i-down_at if down_at is not None else np.nan)
171
+ rows.append(row if current_valid else dict.fromkeys(FEATURE_COLUMNS, np.nan))
172
+ previous_close_in_day = c if current_valid else np.nan
173
+ output.loc[regular.index] = pd.DataFrame(rows, index=grid).loc[regular.index, FEATURE_COLUMNS].to_numpy()
174
+ output.index = frame.index
175
+ return output
backend/app/dashboard/__init__.py ADDED
@@ -0,0 +1 @@
 
 
1
+ """Read-only, source-labelled dashboard datasets."""
backend/app/dashboard/price_replay.py ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Serve portable saved research, without loading models or contacting a broker."""
2
+ from __future__ import annotations
3
+
4
+ import hashlib
5
+ import json
6
+ from pathlib import Path
7
+
8
+
9
+ BUNDLE_ROOT = Path(__file__).resolve().parents[2] / "data" / "price_replay"
10
+
11
+
12
+ def price_replay(ticker="SNDK", date="", variant="levels_error_risk", *, root=None):
13
+ root = Path(root) if root is not None else BUNDLE_ROOT
14
+ ticker = ticker.strip().upper()
15
+ request = {"ticker": ticker, "date": date, "variant": variant}
16
+ metadata = {"available_dates": [], "variants": [], "tickers": []}
17
+ try:
18
+ manifest = json.loads((root / "manifest.json").read_text())
19
+ metadata = {key: manifest[key] for key in metadata}
20
+ date = date or max(metadata["available_dates"])
21
+ request["date"] = date
22
+ if (ticker not in metadata["tickers"] or date not in metadata["available_dates"]
23
+ or variant not in metadata["variants"]):
24
+ raise ValueError("No saved research for the requested ticker, date and model.")
25
+ name = f"{date}/{variant}/{ticker}.json"
26
+ raw = (root / name).read_bytes()
27
+ if hashlib.sha256(raw).hexdigest() != manifest["files"][name]:
28
+ raise ValueError("Saved replay integrity check failed.")
29
+ payload = json.loads(raw)
30
+ if any(payload[key] != value for key, value in request.items()):
31
+ raise ValueError("Saved replay identity does not match the requested data.")
32
+ return {**payload, **metadata, "success": True}
33
+ except (OSError, ValueError, KeyError, TypeError):
34
+ return {"success": False, "status": "unavailable", **request, **metadata,
35
+ "error": "该股票、日期或模型的已保存回放不可用,或数据校验失败。",
36
+ "bars": [], "fills": [], "marks": [], "summary": None}
backend/app/research/calibrated_holding.py CHANGED
@@ -4,7 +4,8 @@ import json
4
  import numpy as np
5
  import pandas as pd
6
  from sklearn.linear_model import Ridge
7
- from .holding_policy import HoldingModel,HoldingSpec,holding_features,executable_labels
 
8
 
9
  VERSION='calibrated_direction_holding_v1'
10
 
@@ -37,6 +38,48 @@ class CalibratedHoldingModel(HoldingModel):
37
  last_label_end=end.reindex(p.index)[valid].max().isoformat())
38
  model.calibration[s]=dict(mean=mean.tolist(),scale=scale.tolist(),state=state,
39
  validation_days=[str(d) for d in validation_days],base_trained_before=validation_start.isoformat())
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40
  return model
41
 
42
  def allocation(self,forecasts,current,stamp,allowed=None,shortable=None,l1_adjustment=None,liquidation_at=None):
 
4
  import numpy as np
5
  import pandas as pd
6
  from sklearn.linear_model import Ridge
7
+ from .holding_policy import HoldingModel,HoldingSpec,holding_features,executable_labels,curve_from_cumulative
8
+ from sklearn.covariance import LedoitWolf
9
 
10
  VERSION='calibrated_direction_holding_v1'
11
 
 
38
  last_label_end=end.reindex(p.index)[valid].max().isoformat())
39
  model.calibration[s]=dict(mean=mean.tolist(),scale=scale.tolist(),state=state,
40
  validation_days=[str(d) for d in validation_days],base_trained_before=validation_start.isoformat())
41
+ if spec.forecast_error_risk:
42
+ # Forward-only second-stage evaluation: earlier base forecasts are
43
+ # frozen; each calibrator learns exclusively from preceding days.
44
+ k=max(spec.horizons);blocks=[];folds=[];last_ends=[]
45
+ labels={s:{h:executable_labels(frames[s],h) for h in spec.horizons} for s in symbols}
46
+ one={s:executable_labels(frames[s],1) for s in symbols}
47
+ for day in validation_days[2:]:
48
+ fold_cutoff=pd.Timestamp(day,tz='America/New_York')
49
+ estimates={};truth={};ends={};training_ends=[]
50
+ for s in symbols:
51
+ p=pd.DataFrame(predictions[s]);past=p.loc[p.index<fold_cutoff]
52
+ mu=past.mean();sd=past.std(ddof=0).replace(0,1)
53
+ z=(p-mu)/sd
54
+ test_index=p.index[p.index.date==day]
55
+ cumulative=[]
56
+ for h in spec.horizons:
57
+ y,end=labels[s][h];y=y.reindex(p.index);end=end.reindex(p.index)
58
+ valid=(p.index<fold_cutoff)&end.lt(fold_cutoff)&y.notna()&np.isfinite(z).all(axis=1)
59
+ if valid.sum()<2:raise ValueError('Insufficient forward error calibration labels')
60
+ fit=Ridge(alpha=spec.ridge_alpha,solver='svd').fit(z.loc[valid],y.loc[valid])
61
+ cumulative.append(fit.predict(z.loc[test_index]))
62
+ training_ends.append(end.loc[valid].max())
63
+ estimates[s]=pd.DataFrame(np.array(cumulative).T,index=test_index,columns=spec.horizons)
64
+ yy,ee=one[s]
65
+ yy=yy.loc[yy.index.date==day];ee=ee.reindex(yy.index)
66
+ truth[s]=pd.concat([yy.shift(-j) for j in range(k)],axis=1).reindex(test_index)
67
+ ends[s]=ee.shift(-(k-1)).reindex(test_index)
68
+ count=0
69
+ for stamp in test_index:
70
+ actual=np.column_stack([truth[s].loc[stamp].to_numpy() for s in symbols])
71
+ if not np.isfinite(actual).all() or any(pd.isna(ends[s].loc[stamp]) or ends[s].loc[stamp]>=cutoff for s in symbols):continue
72
+ if any(ends[s].loc[stamp]-stamp!=pd.Timedelta(minutes=5*(k+1)) for s in symbols):continue
73
+ cumulative=np.column_stack([estimates[s].loc[stamp].to_numpy() for s in symbols])
74
+ blocks.append((actual-curve_from_cumulative(cumulative,spec.horizons,k)).ravel())
75
+ last_ends.extend(ends[s].loc[stamp] for s in symbols);count+=1
76
+ folds.append(dict(day=str(day),rows=count,calibrator_last_label_end=max(training_ends).isoformat()))
77
+ if len(blocks)<2:raise ValueError('Insufficient prior forward prediction errors')
78
+ errors=np.array(blocks);fit=LedoitWolf().fit(errors);bias=errors.mean(axis=0)
79
+ model.forecast_error_covariance=fit.covariance_+np.outer(bias,bias)
80
+ model.error_training=dict(method='prior_forward_calibrator_path_error_second_moment',
81
+ rows=len(blocks),folds=folds,last_label_end=max(last_ends).isoformat(),
82
+ base_trained_before=validation_start.isoformat(),overlapping_windows=True)
83
  return model
84
 
85
  def allocation(self,forecasts,current,stamp,allowed=None,shortable=None,l1_adjustment=None,liquidation_at=None):
backend/app/research/direction_policy.py CHANGED
@@ -55,18 +55,25 @@ def direction_features(frames):
55
  own[s]=f.replace([np.inf,-np.inf],np.nan)
56
  return own
57
 
58
- def planned_target(forecasts,covariance,current,symbols,eligible,spec,*,shortable=None):
 
59
  """Trade only the first step of a fully costed hypothetical holding plan.
60
 
61
  Risk uses a covariance matrix of sequential, cross-stock returns estimated
62
  before the decision date. Intermediate turnover and terminal liquidation
63
  both cost money. Future weights are plans, never claimed future fills.
 
 
 
64
  """
65
  symbols=tuple(symbols);n=len(symbols);mu=np.asarray(forecasts,dtype=float)
66
  if mu.ndim!=2 or mu.shape[1]!=n or not np.isfinite(mu).all():raise ValueError('Finite horizon-by-symbol forecasts required')
67
  k=len(mu);m=k*n
68
  if k<1 or any(v!=0 for s,v in current.items() if s not in symbols):raise ValueError('All current exposure must be budgeted')
69
  old=np.array([current.get(s,0.) for s in symbols]);cov=_validated_covariance(covariance,m)
 
 
 
70
  if not np.isfinite(old).all():raise ValueError('Nonfinite holdings')
71
  limits=np.tile([spec.symbol_limit if eligible.get(s,False) else 0 for s in symbols],k)
72
  d=np.eye(m)
@@ -82,8 +89,8 @@ def planned_target(forecasts,covariance,current,symbols,eligible,spec,*,shortabl
82
  bounds=Bounds(np.r_[lower_weights,np.zeros(2*m)],np.r_[limits,np.full(2*m,np.inf)])
83
  cost=spec.cost_bps/10000
84
  terminal=np.r_[np.zeros(m-n),np.full(n,cost)]
85
- scale=max(abs(mu).max(),spec.risk_aversion*abs(cov).max(),cost,np.finfo(float).eps)
86
- p=sparse.block_diag([spec.risk_aversion*cov/scale,sparse.csc_matrix((2*m,2*m))],format='csc')
87
  q=np.r_[-mu.ravel(),np.full(m,cost),terminal]/scale
88
  matrix=sparse.vstack([sparse.csc_matrix(a),sparse.eye(3*m)],format='csc')
89
  lo=np.r_[lower,bounds.lb];hi=np.r_[np.full(len(lower),np.inf),bounds.ub]
@@ -108,7 +115,10 @@ def planned_target(forecasts,covariance,current,symbols,eligible,spec,*,shortabl
108
  return dict(zip(symbols,map(float,planned[0]))),dict(solver=solver,planned_steps=k,
109
  planned_weights=planned.tolist(),forecast_curve_bps=(mu*10000).tolist(),
110
  estimated_plan_turnover_cost=float(cost*abs(changes).sum()),estimated_terminal_cost=float(cost*abs(planned[-1]).sum()),
111
- forecast_portfolio_return=float((mu*planned).sum()),forecast_variance=float(planned.ravel()@cov@planned.ravel()))
 
 
 
112
 
113
  class DirectionRuntime(LiquidRuntime):
114
  def __init__(self,*args,**kwargs):
 
55
  own[s]=f.replace([np.inf,-np.inf],np.nan)
56
  return own
57
 
58
+ def planned_target(forecasts,covariance,current,symbols,eligible,spec,*,shortable=None,
59
+ forecast_error_covariance=None):
60
  """Trade only the first step of a fully costed hypothetical holding plan.
61
 
62
  Risk uses a covariance matrix of sequential, cross-stock returns estimated
63
  before the decision date. Intermediate turnover and terminal liquidation
64
  both cost money. Future weights are plans, never claimed future fills.
65
+ An optional prior-only forecast-error covariance expresses uncertainty in
66
+ the return curve in the same interval-by-symbol order and return units.
67
+ Its quadratic penalty is added to market risk without overriding direction.
68
  """
69
  symbols=tuple(symbols);n=len(symbols);mu=np.asarray(forecasts,dtype=float)
70
  if mu.ndim!=2 or mu.shape[1]!=n or not np.isfinite(mu).all():raise ValueError('Finite horizon-by-symbol forecasts required')
71
  k=len(mu);m=k*n
72
  if k<1 or any(v!=0 for s,v in current.items() if s not in symbols):raise ValueError('All current exposure must be budgeted')
73
  old=np.array([current.get(s,0.) for s in symbols]);cov=_validated_covariance(covariance,m)
74
+ error_cov = (None if forecast_error_covariance is None else
75
+ _validated_covariance(forecast_error_covariance,m))
76
+ risk_cov = cov if error_cov is None else cov + error_cov
77
  if not np.isfinite(old).all():raise ValueError('Nonfinite holdings')
78
  limits=np.tile([spec.symbol_limit if eligible.get(s,False) else 0 for s in symbols],k)
79
  d=np.eye(m)
 
89
  bounds=Bounds(np.r_[lower_weights,np.zeros(2*m)],np.r_[limits,np.full(2*m,np.inf)])
90
  cost=spec.cost_bps/10000
91
  terminal=np.r_[np.zeros(m-n),np.full(n,cost)]
92
+ scale=max(abs(mu).max(),spec.risk_aversion*abs(risk_cov).max(),cost,np.finfo(float).eps)
93
+ p=sparse.block_diag([spec.risk_aversion*risk_cov/scale,sparse.csc_matrix((2*m,2*m))],format='csc')
94
  q=np.r_[-mu.ravel(),np.full(m,cost),terminal]/scale
95
  matrix=sparse.vstack([sparse.csc_matrix(a),sparse.eye(3*m)],format='csc')
96
  lo=np.r_[lower,bounds.lb];hi=np.r_[np.full(len(lower),np.inf),bounds.ub]
 
115
  return dict(zip(symbols,map(float,planned[0]))),dict(solver=solver,planned_steps=k,
116
  planned_weights=planned.tolist(),forecast_curve_bps=(mu*10000).tolist(),
117
  estimated_plan_turnover_cost=float(cost*abs(changes).sum()),estimated_terminal_cost=float(cost*abs(planned[-1]).sum()),
118
+ forecast_portfolio_return=float((mu*planned).sum()),forecast_variance=float(planned.ravel()@cov@planned.ravel()),
119
+ forecast_error_risk_enabled=error_cov is not None,
120
+ forecast_error_variance=0. if error_cov is None else float(planned.ravel()@error_cov@planned.ravel()),
121
+ total_risk_variance=float(planned.ravel()@risk_cov@planned.ravel()))
122
 
123
  class DirectionRuntime(LiquidRuntime):
124
  def __init__(self,*args,**kwargs):
backend/app/research/holding_policy.py CHANGED
@@ -33,10 +33,15 @@ class HoldingSpec:
33
  seasonal_sessions: int = 20
34
  min_price: float = 10.
35
  min_adv: float = 50_000_000.
 
36
 
37
  def __post_init__(self):
38
- if self.family not in {'legacy', 'paper', 'context'}:
39
  raise ValueError('Unknown feature family')
 
 
 
 
40
  if not self.horizons or tuple(sorted(set(self.horizons))) != tuple(self.horizons):
41
  raise ValueError('Sorted unique horizons required')
42
  if any(type(h) is not int or h < 1 or h > 12 for h in self.horizons):
@@ -62,7 +67,7 @@ def holding_features(frames, symbols=DEFAULT_SYMBOLS, spec=HoldingSpec()):
62
  else:
63
  panel = bar_alpha_panel(bars, BarAlphaSpec(), rank_symbols=symbols)
64
  result = {s: panel[s] for s in symbols}
65
- if spec.family == 'context':
66
  for s, f in result.items():
67
  b = bars[s]
68
  # Every denominator uses only earlier sessions at the SAME time slot.
@@ -86,9 +91,41 @@ def holding_features(frames, symbols=DEFAULT_SYMBOLS, spec=HoldingSpec()):
86
  previous = pd.Series(index.date, index=index).map(prior_close)
87
  f['overnight_gap'] = b.open.groupby(index.date).transform('first') / previous - 1
88
  f['session_fraction'] = (index.hour * 60 + index.minute - 570) / 390
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  for f in result.values():
90
  f.replace([np.inf, -np.inf], np.nan, inplace=True)
91
- f.attrs.update(feature_version=VERSION, spec=asdict(spec), panel_symbols=list(bars),
 
 
92
  rank_symbols=list(symbols), timestamp_convention='bar_open_available_at_end',
93
  window_unit='5min', peer_groups=PEERS)
94
  return result
@@ -192,7 +229,13 @@ class HoldingModel:
192
  eligible = {s: s in allowed and self.eligibility[s]['eligible'] for s in symbols}
193
  cov = self.covariance[:k*len(symbols), :k*len(symbols)]
194
  if self.spec.planning:
195
- weights, explanation = planned_target(curve, cov, current, symbols, eligible, self.spec,shortable=shortable)
 
 
 
 
 
 
196
  else:
197
  selected=tuple(s for s in symbols if eligible[s]);indices=[symbols.index(s) for s in selected]
198
  weights=dict.fromkeys(symbols,0.)
@@ -236,6 +279,9 @@ class HoldingModel:
236
  covariance=self.covariance.tolist(),eligibility=self.eligibility,
237
  history={s:dict(index=[t.isoformat() for t in b.index],values=b.to_numpy().tolist()) for s,b in self.history.items()},
238
  performance_verified=False,deployment='paper_candidate_pending_review')
 
 
 
239
  Path(path).write_text(json.dumps(payload,allow_nan=False)+'\n')
240
 
241
  @classmethod
@@ -245,6 +291,18 @@ class HoldingModel:
245
  obj=cls(); spec=a['spec'];spec['horizons']=tuple(spec['horizons']);obj.spec=HoldingSpec(**spec)
246
  obj.symbols=tuple(a['symbols']);obj.input_symbols=tuple(a['input_symbols'])
247
  obj.trained_before=a['trained_before'];obj.eligibility=a['eligibility'];obj.covariance=np.array(a['covariance'])
 
 
 
 
 
 
 
 
 
 
 
 
248
  obj.models={}
249
  for s,hs in a['models'].items():
250
  obj.models[s]={}
 
33
  seasonal_sessions: int = 20
34
  min_price: float = 10.
35
  min_adv: float = 50_000_000.
36
+ forecast_error_risk: bool = False
37
 
38
  def __post_init__(self):
39
+ if self.family not in {'legacy', 'paper', 'context', 'session_context', 'support_context'}:
40
  raise ValueError('Unknown feature family')
41
+ if not isinstance(self.forecast_error_risk, bool):
42
+ raise ValueError('forecast_error_risk must be boolean')
43
+ if self.forecast_error_risk and not self.planning:
44
+ raise ValueError('Forecast error risk requires a multi-period plan')
45
  if not self.horizons or tuple(sorted(set(self.horizons))) != tuple(self.horizons):
46
  raise ValueError('Sorted unique horizons required')
47
  if any(type(h) is not int or h < 1 or h > 12 for h in self.horizons):
 
67
  else:
68
  panel = bar_alpha_panel(bars, BarAlphaSpec(), rank_symbols=symbols)
69
  result = {s: panel[s] for s in symbols}
70
+ if spec.family in {'context', 'session_context', 'support_context'}:
71
  for s, f in result.items():
72
  b = bars[s]
73
  # Every denominator uses only earlier sessions at the SAME time slot.
 
91
  previous = pd.Series(index.date, index=index).map(prior_close)
92
  f['overnight_gap'] = b.open.groupby(index.date).transform('first') / previous - 1
93
  f['session_fraction'] = (index.hour * 60 + index.minute - 570) / 390
94
+ if spec.family == 'session_context':
95
+ for s, f in result.items():
96
+ b = bars[s]
97
+ groups = b.groupby(b.index.date)
98
+ opening = groups.open.transform('first')
99
+ high, low = groups.high.cummax(), groups.low.cummin()
100
+ typical = (b.high + b.low + b.close) / 3
101
+ vwap_proxy = (typical*b.volume).groupby(index.date).cumsum() / groups.volume.cumsum().replace(0,np.nan)
102
+ # Intraday OHLCV state, not an order-flow or institutional-identity claim.
103
+ f['state_open_return'] = b.close/opening-1
104
+ f['state_high_drawdown'] = b.close/high-1
105
+ f['state_low_rebound'] = b.close/low-1
106
+ f['state_range_location'] = (b.close-low)/(high-low).replace(0,np.nan)
107
+ f['state_bar_vwap_distance'] = b.close/vwap_proxy-1
108
+ for ref in REFERENCES:
109
+ r = bars[ref]
110
+ observed = r.close/r.groupby(index.date).open.transform('first')-1
111
+ f[f'state_{ref}_open_return'] = observed
112
+ f[f'state_{ref}_open_residual'] = f.state_open_return-observed
113
+ f[f'state_{ref}_bar_return'] = r.close/r.open-1
114
+ # Expose lack of lookback explicitly instead of confusing imputation
115
+ # with an actually observed neutral market state.
116
+ f['state_momentum_12_available'] = f.momentum_12.notna().astype(float)
117
+ f['state_beta_available'] = f.xs_market_beta.notna().astype(float)
118
+ if spec.family == 'support_context':
119
+ from ..alpha.support_resistance import support_resistance_features
120
+ for s, f in result.items():
121
+ extra=support_resistance_features(bars[s])
122
+ for name in extra:
123
+ f[name]=extra[name]
124
  for f in result.values():
125
  f.replace([np.inf, -np.inf], np.nan, inplace=True)
126
+ feature_spec=asdict(spec)
127
+ feature_spec.pop('forecast_error_risk') # Allocation-only; preserve old feature contracts.
128
+ f.attrs.update(feature_version=VERSION, spec=feature_spec, panel_symbols=list(bars),
129
  rank_symbols=list(symbols), timestamp_convention='bar_open_available_at_end',
130
  window_unit='5min', peer_groups=PEERS)
131
  return result
 
229
  eligible = {s: s in allowed and self.eligibility[s]['eligible'] for s in symbols}
230
  cov = self.covariance[:k*len(symbols), :k*len(symbols)]
231
  if self.spec.planning:
232
+ error_cov = None
233
+ if self.spec.forecast_error_risk:
234
+ if not hasattr(self, 'forecast_error_covariance'):
235
+ raise ValueError('Prior prediction error evidence required')
236
+ error_cov = self.forecast_error_covariance[:k*len(symbols), :k*len(symbols)]
237
+ weights, explanation = planned_target(curve, cov, current, symbols, eligible, self.spec,
238
+ shortable=shortable, forecast_error_covariance=error_cov)
239
  else:
240
  selected=tuple(s for s in symbols if eligible[s]);indices=[symbols.index(s) for s in selected]
241
  weights=dict.fromkeys(symbols,0.)
 
279
  covariance=self.covariance.tolist(),eligibility=self.eligibility,
280
  history={s:dict(index=[t.isoformat() for t in b.index],values=b.to_numpy().tolist()) for s,b in self.history.items()},
281
  performance_verified=False,deployment='paper_candidate_pending_review')
282
+ if self.spec.forecast_error_risk:
283
+ payload.update(forecast_error_covariance=self.forecast_error_covariance.tolist(),
284
+ error_training=self.error_training)
285
  Path(path).write_text(json.dumps(payload,allow_nan=False)+'\n')
286
 
287
  @classmethod
 
291
  obj=cls(); spec=a['spec'];spec['horizons']=tuple(spec['horizons']);obj.spec=HoldingSpec(**spec)
292
  obj.symbols=tuple(a['symbols']);obj.input_symbols=tuple(a['input_symbols'])
293
  obj.trained_before=a['trained_before'];obj.eligibility=a['eligibility'];obj.covariance=np.array(a['covariance'])
294
+ if obj.spec.forecast_error_risk:
295
+ from ..quant_policy import _validated_covariance
296
+ obj.forecast_error_covariance=_validated_covariance(a['forecast_error_covariance'],max(obj.spec.horizons)*len(obj.symbols))
297
+ obj.error_training=a['error_training']
298
+ error_cutoff=pd.Timestamp(obj.trained_before,tz='America/New_York')
299
+ if pd.Timestamp(obj.error_training['last_label_end'])>=error_cutoff:
300
+ raise ValueError('Immature forecast error evidence')
301
+ for fold in obj.error_training['folds']:
302
+ fold_start=pd.Timestamp(fold['day'],tz='America/New_York')
303
+ if (fold_start>=error_cutoff or pd.Timestamp(fold['calibrator_last_label_end'])>=fold_start
304
+ or pd.Timestamp(obj.error_training['base_trained_before'])>=fold_start):
305
+ raise ValueError('Noncausal forecast error fold')
306
  obj.models={}
307
  for s,hs in a['models'].items():
308
  obj.models[s]={}
backend/data/charts/dashboard_replay.js CHANGED
@@ -2,10 +2,16 @@
2
  'use strict';
3
 
4
  const symbols = ['TSLA', 'NVDA', 'SNDK', 'PLTR'];
5
- const comparison = Boolean(document.getElementById('datePicker'));
6
- let currentTicker = 'TSLA';
7
- let currentDate = '';
8
- let currentTimeframe = '5m';
 
 
 
 
 
 
9
  let currentMode = 'real';
10
  let market = null;
11
  let fills = [];
@@ -17,6 +23,28 @@
17
  const byId = (id) => document.getElementById(id);
18
  const setText = (id, value) => { const node = byId(id); if (node) node.textContent = value; };
19
  const escapeHtml = (value) => String(value).replace(/[&<>"']/g, c => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' }[c]));
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
 
21
  function ema(values, period) {
22
  const factor = 2 / (period + 1);
@@ -39,50 +67,65 @@
39
 
40
  function chartOption(data, limit, includeFills) {
41
  const end = Math.max(1, Math.min(limit, data.time.length));
42
- const times = data.time.slice(0, end);
 
 
 
43
  const closes = data.close.slice(0, end);
44
- const candles = times.map((_, i) => [data.open[i], data.close[i], data.low[i], data.high[i]]);
45
  const volume = data.volume.slice(0, end).map((value, i) => ({
46
- value,
47
  itemStyle: { color: data.close[i] >= data.open[i] ? '#10b981' : '#ef4444' }
48
  }));
49
- const annotations = includeFills ? fills.filter(fill => times.includes(fill.time.slice(11, 16))) : [];
50
- const markerSeries = ['BUY', 'SELL', 'SHORT', 'COVER'].map(action => ({
51
- name: action,
 
52
  type: 'scatter',
53
- symbol: action === 'BUY' || action === 'COVER' ? 'triangle' : 'pin',
54
- symbolRotate: action === 'BUY' || action === 'COVER' ? 0 : 180,
55
- symbolSize: 13,
56
- itemStyle: { color: action === 'BUY' || action === 'COVER' ? '#22c55e' : '#ef4444' },
57
- data: annotations.filter(fill => fill.action === action).map(fill => [fill.time.slice(11, 16), fill.price]),
58
- tooltip: { valueFormatter: value => `$${Number(value).toFixed(2)}` }
 
59
  }));
 
 
 
60
  return {
61
  animation: false,
62
  backgroundColor: '#131722',
63
  title: {
64
  text: `${data.ticker} · ${data.date} · ${data.interval.toUpperCase()}`,
65
- subtext: `${data.data_provenance.bar_count} 根已观测 K 线 · 覆盖至 ${data.data_provenance.last_bar_end.slice(11, 16)} · ${data.data_provenance.source}`,
66
  left: 12, top: 8, textStyle: { color: '#e2e8f0', fontSize: 14 }, subtextStyle: { color: '#94a3b8', fontSize: 11 }
67
  },
68
- legend: { top: 10, right: 18, textStyle: { color: '#94a3b8' }, data: ['K线', 'EMA9', 'EMA21', 'VWAP'] },
69
- tooltip: { trigger: 'axis', axisPointer: { type: 'cross' }, backgroundColor: '#0f172a', borderColor: '#334155', textStyle: { color: '#e2e8f0' } },
 
 
 
 
 
 
 
 
 
70
  axisPointer: { link: [{ xAxisIndex: 'all' }] },
71
- grid: [{ left: 58, right: 22, top: 58, height: '65%' }, { left: 58, right: 22, top: '78%', height: '14%' }],
72
- xAxis: [
73
- { type: 'category', data: times, boundaryGap: true, axisLine: { lineStyle: { color: '#334155' } }, axisLabel: { color: '#94a3b8', interval: Math.max(0, Math.floor(times.length / 8) - 1) }, splitLine: { show: false } },
74
- { type: 'category', gridIndex: 1, data: times, boundaryGap: true, axisLine: { lineStyle: { color: '#334155' } }, axisLabel: { show: false }, splitLine: { show: false } }
75
- ],
76
  yAxis: [
77
  { scale: true, axisLabel: { color: '#94a3b8' }, splitLine: { lineStyle: { color: '#1e293b' } } },
78
- { gridIndex: 1, scale: true, axisLabel: { color: '#64748b' }, splitLine: { show: false } }
79
  ],
80
  dataZoom: [{ type: 'inside', xAxisIndex: [0, 1], start: 0, end: 100 }],
81
  series: [
82
- { name: 'K线', type: 'candlestick', data: candles, itemStyle: { color: '#10b981', color0: '#ef4444', borderColor: '#10b981', borderColor0: '#ef4444' } },
83
- { name: 'EMA9', type: 'line', data: ema(closes, 9), showSymbol: false, lineStyle: { color: '#38bdf8', width: 1.4 } },
84
- { name: 'EMA21', type: 'line', data: ema(closes, 21), showSymbol: false, lineStyle: { color: '#f59e0b', width: 1.2 } },
85
- { name: 'VWAP', type: 'line', data: vwap({ ...data, close: closes, high: data.high.slice(0, end), low: data.low.slice(0, end), volume: data.volume.slice(0, end) }), showSymbol: false, lineStyle: { color: '#a855f7', width: 1.2, type: 'dashed' } },
 
86
  { name: '成交量', type: 'bar', xAxisIndex: 1, yAxisIndex: 1, data: volume },
87
  ...markerSeries
88
  ]
@@ -93,7 +136,10 @@
93
  const node = byId(id);
94
  if (!node || !market || typeof echarts === 'undefined') return;
95
  const chart = echarts.getInstanceByDom(node) || echarts.init(node, null, { renderer: 'canvas' });
96
- chart.setOption(chartOption(market, limit, showFills), true);
 
 
 
97
  }
98
 
99
  function showError(message) {
@@ -148,28 +194,33 @@
148
  }
149
  const pills = byId('tickerPills');
150
  if (pills) pills.innerHTML = symbols.map(symbol => `<button class="ticker-pill${symbol === currentTicker ? ' active' : ''}" onclick="setTicker('${symbol}')">${symbol}</button>`).join('');
 
151
  }
152
 
153
  async function loadData(preferredDate) {
154
  const sequence = ++requestSequence;
 
 
155
  stopReplay();
156
  showError('正在读取完整历史行情…');
157
  try {
158
- const query = new URLSearchParams({ ticker: currentTicker, interval: currentTimeframe });
159
  if (preferredDate) query.set('date', preferredDate);
160
  const response = await fetch(`/api/dashboard/market_data?${query}`);
161
  const data = await response.json();
162
  if (!response.ok || !data.success) throw new Error(data.error || '历史行情不可用');
163
  if (sequence !== requestSequence) return;
 
 
 
164
  market = data;
165
  currentDate = data.date;
166
- const fillResponse = await fetch(`/api/dashboard/trades?ticker=${encodeURIComponent(currentTicker)}&date=${encodeURIComponent(currentDate)}`);
167
- const fillData = await fillResponse.json();
168
  fills = fillData.success && Array.isArray(fillData.fills) ? fillData.fills : [];
169
  replayIndex = data.time.length;
170
  updateStaticLabels();
171
  populateControls();
172
  renderAll();
 
173
  } catch (error) {
174
  if (sequence === requestSequence) showError(error instanceof Error ? error.message : '历史行情不可用');
175
  }
@@ -185,7 +236,8 @@
185
  window.togglePlay = function () {
186
  if (!market) return;
187
  if (timer) { stopReplay(); return; }
188
- if (replayIndex >= market.time.length) replayIndex = Math.min(5, market.time.length);
 
189
  const button = byId('btnPlay');
190
  if (button) button.textContent = '⏸ 暂停';
191
  timer = window.setInterval(() => {
@@ -197,7 +249,7 @@
197
 
198
  window.resetReplay = function () {
199
  stopReplay();
200
- if (market) replayIndex = market.time.length;
201
  renderAll();
202
  const stream = byId('orderStream');
203
  if (stream) stream.innerHTML = '<div style="color:#64748b;font-size:12px;text-align:center;padding:15px">播放使用真实历史 K 线;不会自动生成交易。</div>';
@@ -205,9 +257,11 @@
205
  };
206
 
207
  window.setSpeed = function (value, button) {
 
208
  speed = Number(value) || 1;
209
  document.querySelectorAll('.speed-btn').forEach(node => node.classList.remove('active'));
210
  if (button) button.classList.add('active');
 
211
  };
212
  window.setTicker = function (symbol) { currentTicker = symbols.includes(symbol) ? symbol : 'TSLA'; loadData(currentDate); };
213
  window.setTimeframe = function (interval) {
@@ -235,6 +289,17 @@
235
  window.addEventListener('resize', () => ['dynamicChart', 'plotlyChart'].forEach(id => {
236
  const node = byId(id); const chart = node && typeof echarts !== 'undefined' ? echarts.getInstanceByDom(node) : null; chart?.resize();
237
  }));
 
 
 
 
 
 
 
 
 
 
 
238
  updateStaticLabels();
239
- loadData('');
240
  })();
 
2
  'use strict';
3
 
4
  const symbols = ['TSLA', 'NVDA', 'SNDK', 'PLTR'];
5
+ const parentOrigin = (() => {
6
+ try {
7
+ const referrer = new URL(document.referrer);
8
+ return ['http:', 'https:'].includes(referrer.protocol) ? referrer.origin : window.location.origin;
9
+ } catch { return window.location.origin; }
10
+ })();
11
+ const initial = new URLSearchParams(window.location.search);
12
+ let currentTicker = symbols.includes(initial.get('ticker')) ? initial.get('ticker') : 'TSLA';
13
+ let currentDate = /^\d{4}-\d{2}-\d{2}$/.test(initial.get('date') || '') ? initial.get('date') : '';
14
+ let currentTimeframe = ['1m', '5m', '15m', '30m'].includes(initial.get('interval')) ? initial.get('interval') : '5m';
15
  let currentMode = 'real';
16
  let market = null;
17
  let fills = [];
 
23
  const byId = (id) => document.getElementById(id);
24
  const setText = (id, value) => { const node = byId(id); if (node) node.textContent = value; };
25
  const escapeHtml = (value) => String(value).replace(/[&<>"']/g, c => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' }[c]));
26
+ const etTime = new Intl.DateTimeFormat('en-GB', { timeZone: 'America/New_York', hour: '2-digit', minute: '2-digit', hourCycle: 'h23' });
27
+ const etSeconds = new Intl.DateTimeFormat('en-GB', { timeZone: 'America/New_York', hour: '2-digit', minute: '2-digit', second: '2-digit', hourCycle: 'h23' });
28
+ const actions = {
29
+ BUY: { letter: 'B', label: '买入', color: '#fb7185', rotation: 0 },
30
+ SELL: { letter: 'S', label: '卖出', color: '#10b981', rotation: 180 },
31
+ SHORT: { letter: 'X', label: '做空', color: '#f59e0b', rotation: 180 },
32
+ COVER: { letter: 'C', label: '平空', color: '#a78bfa', rotation: 0 }
33
+ };
34
+
35
+ function fillTimestamp(fill, data) {
36
+ // Broker archives may store an ET wall-clock timestamp without a UTC offset.
37
+ // Anchor those records to the selected session's explicit market-data offset,
38
+ // never the browser's local timezone or a rounded five-minute label.
39
+ let value = String(fill.time || '').replace(' ', 'T');
40
+ if (/^\d{2}:\d{2}/.test(value)) value = `${data.date}T${value}`;
41
+ if (!/(Z|[+-]\d{2}:?\d{2})$/i.test(value)) {
42
+ const offset = String(data.full_time?.[0] || '').match(/(Z|[+-]\d{2}:?\d{2})$/i);
43
+ if (!offset) return NaN;
44
+ value += offset[0];
45
+ }
46
+ return Date.parse(value);
47
+ }
48
 
49
  function ema(values, period) {
50
  const factor = 2 / (period + 1);
 
67
 
68
  function chartOption(data, limit, includeFills) {
69
  const end = Math.max(1, Math.min(limit, data.time.length));
70
+ const intervalMs = Number.parseInt(data.interval, 10) * 60000;
71
+ const starts = data.full_time.map(value => Date.parse(value));
72
+ // A closing price becomes available at the end of its bar.
73
+ const times = starts.slice(0, end).map(value => value + intervalMs);
74
  const closes = data.close.slice(0, end);
75
+ const candles = times.map((time, i) => [time, data.open[i], data.close[i], data.low[i], data.high[i]]);
76
  const volume = data.volume.slice(0, end).map((value, i) => ({
77
+ value: [times[i], value],
78
  itemStyle: { color: data.close[i] >= data.open[i] ? '#10b981' : '#ef4444' }
79
  }));
80
+ const annotations = includeFills ? fills.map(fill => ({ ...fill, timestamp: fillTimestamp(fill, data) }))
81
+ .filter(fill => Number.isFinite(fill.timestamp) && fill.timestamp >= starts[0] && fill.timestamp <= times[end - 1]) : [];
82
+ const markerSeries = Object.entries(actions).map(([action, style]) => ({
83
+ name: `${style.letter} ${style.label}`,
84
  type: 'scatter',
85
+ symbol: 'triangle', symbolRotate: style.rotation, symbolSize: 12, z: 8,
86
+ itemStyle: { color: style.color },
87
+ label: { show: true, position: style.rotation ? 'bottom' : 'top', color: style.color, fontSize: 10,
88
+ formatter: params => `${style.letter}${params.data.shares}` },
89
+ labelLayout: { hideOverlap: true },
90
+ data: annotations.filter(fill => fill.action === action).map(fill => ({ value: [fill.timestamp, fill.price], shares: fill.shares, source: fill.source })),
91
+ tooltip: { trigger: 'item', formatter: params => `${escapeHtml(etSeconds.format(params.value[0]))} ET · ${style.letter} ${style.label}<br>${params.data.shares} 股 · $${Number(params.value[1]).toFixed(4)}<br>${escapeHtml(params.data.source || 'broker_archive')}` }
92
  }));
93
+ const pair = values => values.map((value, index) => [times[index], value]);
94
+ const timeAxis = { type: 'time', min: starts[0], max: starts[starts.length - 1] + intervalMs,
95
+ axisLine: { lineStyle: { color: '#334155' } }, axisLabel: { color: '#94a3b8', formatter: value => etTime.format(value) }, splitLine: { show: false } };
96
  return {
97
  animation: false,
98
  backgroundColor: '#131722',
99
  title: {
100
  text: `${data.ticker} · ${data.date} · ${data.interval.toUpperCase()}`,
101
+ subtext: `${end}/${data.time.length} 根已完成 · 复盘至 ${etTime.format(times[end - 1])} ET · ${data.data_provenance.source}`,
102
  left: 12, top: 8, textStyle: { color: '#e2e8f0', fontSize: 14 }, subtextStyle: { color: '#94a3b8', fontSize: 11 }
103
  },
104
+ legend: { type: 'scroll', top: 54, left: 12, right: 18, textStyle: { color: '#94a3b8', fontSize: 10 },
105
+ data: ['PRICE', 'OHLCV VWAP 近似', 'B 买入', 'S 卖出', 'X 做空', 'C 平空', 'K线', 'EMA9', 'EMA21'],
106
+ selected: { K线: false, EMA9: false, EMA21: false } },
107
+ tooltip: { trigger: 'axis', axisPointer: { type: 'cross', label: { formatter: params => params.axisDimension === 'x' ? `${etTime.format(params.value)} ET` : Number(params.value).toFixed(2) } },
108
+ formatter: params => {
109
+ const rows = params.filter(row => row.seriesType !== 'scatter');
110
+ if (!rows.length) return '';
111
+ return `${etTime.format(rows[0].value[0])} ET<br>` + rows.map(row => row.seriesType === 'candlestick'
112
+ ? `${row.marker} K线 O ${row.value[1]} · C ${row.value[2]} · L ${row.value[3]} · H ${row.value[4]}`
113
+ : `${row.marker} ${escapeHtml(row.seriesName)}: ${row.seriesName === '成交量' ? Number(row.value[1]).toLocaleString() : '$' + Number(row.value[1]).toFixed(2)}`).join('<br>');
114
+ }, backgroundColor: '#0f172a', borderColor: '#334155', textStyle: { color: '#e2e8f0' } },
115
  axisPointer: { link: [{ xAxisIndex: 'all' }] },
116
+ grid: [{ left: 58, right: 22, top: 92, bottom: '29%' }, { left: 58, right: 22, top: '78%', bottom: 28 }],
117
+ xAxis: [timeAxis, { ...timeAxis, gridIndex: 1 }],
 
 
 
118
  yAxis: [
119
  { scale: true, axisLabel: { color: '#94a3b8' }, splitLine: { lineStyle: { color: '#1e293b' } } },
120
+ { gridIndex: 1, scale: true, axisLabel: { color: '#64748b', formatter: value => Math.abs(value) >= 1000000 ? `${(value / 1000000).toFixed(1)}M` : Math.abs(value) >= 1000 ? `${(value / 1000).toFixed(0)}k` : value }, splitLine: { show: false } }
121
  ],
122
  dataZoom: [{ type: 'inside', xAxisIndex: [0, 1], start: 0, end: 100 }],
123
  series: [
124
+ { name: 'PRICE', type: 'line', data: pair(closes), smooth: false, showSymbol: false, itemStyle: { color: '#38bdf8' }, lineStyle: { color: '#38bdf8', width: 2 } },
125
+ { name: 'OHLCV VWAP 近似', type: 'line', data: pair(vwap({ ...data, close: closes })), smooth: false, showSymbol: false, itemStyle: { color: '#f59e0b' }, lineStyle: { color: '#f59e0b', width: 1.6 } },
126
+ { name: 'K线', type: 'candlestick', data: candles, encode: { x: 0, y: [1, 2, 3, 4] }, itemStyle: { color: '#10b981', color0: '#ef4444', borderColor: '#10b981', borderColor0: '#ef4444' } },
127
+ { name: 'EMA9', type: 'line', data: pair(ema(closes, 9)), showSymbol: false, itemStyle: { color: '#a78bfa' }, lineStyle: { color: '#a78bfa', width: 1.2 } },
128
+ { name: 'EMA21', type: 'line', data: pair(ema(closes, 21)), showSymbol: false, itemStyle: { color: '#94a3b8' }, lineStyle: { color: '#94a3b8', width: 1.2 } },
129
  { name: '成交量', type: 'bar', xAxisIndex: 1, yAxisIndex: 1, data: volume },
130
  ...markerSeries
131
  ]
 
136
  const node = byId(id);
137
  if (!node || !market || typeof echarts === 'undefined') return;
138
  const chart = echarts.getInstanceByDom(node) || echarts.init(node, null, { renderer: 'canvas' });
139
+ const option = chartOption(market, limit, showFills);
140
+ const selected = chart.getOption()?.legend?.[0]?.selected;
141
+ if (selected) option.legend.selected = { ...option.legend.selected, ...selected };
142
+ chart.setOption(option, true);
143
  }
144
 
145
  function showError(message) {
 
194
  }
195
  const pills = byId('tickerPills');
196
  if (pills) pills.innerHTML = symbols.map(symbol => `<button class="ticker-pill${symbol === currentTicker ? ' active' : ''}" onclick="setTicker('${symbol}')">${symbol}</button>`).join('');
197
+ document.querySelectorAll('.tf-pill').forEach(node => node.classList.toggle('active', node.textContent.toLowerCase() === currentTimeframe));
198
  }
199
 
200
  async function loadData(preferredDate) {
201
  const sequence = ++requestSequence;
202
+ const requestedTicker = currentTicker;
203
+ const requestedTimeframe = currentTimeframe;
204
  stopReplay();
205
  showError('正在读取完整历史行情…');
206
  try {
207
+ const query = new URLSearchParams({ ticker: requestedTicker, interval: requestedTimeframe });
208
  if (preferredDate) query.set('date', preferredDate);
209
  const response = await fetch(`/api/dashboard/market_data?${query}`);
210
  const data = await response.json();
211
  if (!response.ok || !data.success) throw new Error(data.error || '历史行情不可用');
212
  if (sequence !== requestSequence) return;
213
+ const fillResponse = await fetch(`/api/dashboard/trades?ticker=${encodeURIComponent(requestedTicker)}&date=${encodeURIComponent(data.date)}`);
214
+ const fillData = await fillResponse.json();
215
+ if (sequence !== requestSequence) return;
216
  market = data;
217
  currentDate = data.date;
 
 
218
  fills = fillData.success && Array.isArray(fillData.fills) ? fillData.fills : [];
219
  replayIndex = data.time.length;
220
  updateStaticLabels();
221
  populateControls();
222
  renderAll();
223
+ if (window.parent !== window) window.parent.postMessage({ type: 'quant-replay-selection-change', ticker: currentTicker, date: currentDate, interval: currentTimeframe }, parentOrigin);
224
  } catch (error) {
225
  if (sequence === requestSequence) showError(error instanceof Error ? error.message : '历史行情不可用');
226
  }
 
236
  window.togglePlay = function () {
237
  if (!market) return;
238
  if (timer) { stopReplay(); return; }
239
+ if (replayIndex >= market.time.length) replayIndex = 1;
240
+ draw('dynamicChart', replayIndex, currentMode === 'real');
241
  const button = byId('btnPlay');
242
  if (button) button.textContent = '⏸ 暂停';
243
  timer = window.setInterval(() => {
 
249
 
250
  window.resetReplay = function () {
251
  stopReplay();
252
+ if (market) replayIndex = 1;
253
  renderAll();
254
  const stream = byId('orderStream');
255
  if (stream) stream.innerHTML = '<div style="color:#64748b;font-size:12px;text-align:center;padding:15px">播放使用真实历史 K 线;不会自动生成交易。</div>';
 
257
  };
258
 
259
  window.setSpeed = function (value, button) {
260
+ const playing = Boolean(timer);
261
  speed = Number(value) || 1;
262
  document.querySelectorAll('.speed-btn').forEach(node => node.classList.remove('active'));
263
  if (button) button.classList.add('active');
264
+ if (playing) { stopReplay(); window.togglePlay(); }
265
  };
266
  window.setTicker = function (symbol) { currentTicker = symbols.includes(symbol) ? symbol : 'TSLA'; loadData(currentDate); };
267
  window.setTimeframe = function (interval) {
 
289
  window.addEventListener('resize', () => ['dynamicChart', 'plotlyChart'].forEach(id => {
290
  const node = byId(id); const chart = node && typeof echarts !== 'undefined' ? echarts.getInstanceByDom(node) : null; chart?.resize();
291
  }));
292
+ window.addEventListener('message', event => {
293
+ if (event.source !== window.parent || event.origin !== parentOrigin || event.data?.type !== 'quant-replay-selection') return;
294
+ const { ticker, date, interval } = event.data;
295
+ const symbol = symbols.includes(ticker) ? ticker : currentTicker;
296
+ const day = /^\d{4}-\d{2}-\d{2}$/.test(date || '') ? date : currentDate;
297
+ const timeframe = ['1m', '5m', '15m', '30m'].includes(interval) ? interval : currentTimeframe;
298
+ if (symbol === currentTicker && day === currentDate && timeframe === currentTimeframe) return;
299
+ currentTicker = symbol;
300
+ currentTimeframe = timeframe;
301
+ loadData(day);
302
+ });
303
  updateStaticLabels();
304
+ loadData(currentDate);
305
  })();
backend/data/price_replay/2026-09-14/context/NVDA.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"NVDA","date":"2026-09-14","variant":"context","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-14T16:00:00-04:00","partial":false,"starting_equity":47006.42,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-14T09:30:00-04:00","session_close":"2026-09-14T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-14T09:35:00-04:00","bar_open":"2026-09-14T09:30:00-04:00","open":211.0800018310547,"high":211.5,"low":209.24000549316406,"close":209.67999267578125,"volume":37879921.0,"vwap":210.13999938964844},{"time":"2026-09-14T09:40:00-04:00","bar_open":"2026-09-14T09:35:00-04:00","open":209.6699981689453,"high":209.9199981689453,"low":208.92999267578125,"close":209.27000427246094,"volume":4222767.0,"vwap":210.06310503564376},{"time":"2026-09-14T09:45:00-04:00","bar_open":"2026-09-14T09:40:00-04:00","open":209.27000427246094,"high":209.8699951171875,"low":209.07000732421875,"close":209.86000061035156,"volume":2985779.0,"vwap":210.0324380747793},{"time":"2026-09-14T09:50:00-04:00","bar_open":"2026-09-14T09:45:00-04:00","open":209.86000061035156,"high":211.55999755859375,"low":209.84629821777344,"close":211.30999755859375,"volume":3761159.0,"vwap":210.09965385279932},{"time":"2026-09-14T09:55:00-04:00","bar_open":"2026-09-14T09:50:00-04:00","open":211.30999755859375,"high":211.4398956298828,"low":210.50999450683594,"close":210.6750030517578,"volume":2558628.0,"vwap":210.13824164971098},{"time":"2026-09-14T10:00:00-04:00","bar_open":"2026-09-14T09:55:00-04:00","open":210.6699981689453,"high":210.9600067138672,"low":210.5500030517578,"close":210.7899932861328,"volume":2781755.0,"vwap":210.17050086677048},{"time":"2026-09-14T10:05:00-04:00","bar_open":"2026-09-14T10:00:00-04:00","open":210.7899932861328,"high":211.02999877929688,"low":210.4499969482422,"close":210.74659729003906,"volume":1924556.0,"vwap":210.19010829877496},{"time":"2026-09-14T10:10:00-04:00","bar_open":"2026-09-14T10:05:00-04:00","open":210.77000427246094,"high":211.6300048828125,"low":210.5500030517578,"close":211.22000122070312,"volume":2182683.0,"vwap":210.22542330899853},{"time":"2026-09-14T10:15:00-04:00","bar_open":"2026-09-14T10:10:00-04:00","open":211.22000122070312,"high":211.6999969482422,"low":211.22000122070312,"close":211.4199981689453,"volume":1780727.0,"vwap":210.26162124754143},{"time":"2026-09-14T10:20:00-04:00","bar_open":"2026-09-14T10:15:00-04:00","open":211.4250030517578,"high":211.52999877929688,"low":210.58999633789062,"close":210.6699981689453,"volume":1692851.0,"vwap":210.27993833870275},{"time":"2026-09-14T10:25:00-04:00","bar_open":"2026-09-14T10:20:00-04:00","open":210.69000244140625,"high":210.82000732421875,"low":210.21710205078125,"close":210.22999572753906,"volume":1501442.0,"vwap":210.2833181832077},{"time":"2026-09-14T10:30:00-04:00","bar_open":"2026-09-14T10:25:00-04:00","open":210.23500061035156,"high":210.49000549316406,"low":210.07000732421875,"close":210.4550018310547,"volume":1394723.0,"vwap":210.28450484280347},{"time":"2026-09-14T10:35:00-04:00","bar_open":"2026-09-14T10:30:00-04:00","open":210.4499969482422,"high":211.02000427246094,"low":210.4199981689453,"close":210.92950439453125,"volume":1369176.0,"vwap":210.2949822340975},{"time":"2026-09-14T10:40:00-04:00","bar_open":"2026-09-14T10:35:00-04:00","open":210.9250030517578,"high":210.9250030517578,"low":210.25,"close":210.42990112304688,"volume":1279204.0,"vwap":210.2995427203826},{"time":"2026-09-14T10:45:00-04:00","bar_open":"2026-09-14T10:40:00-04:00","open":210.41000366210938,"high":210.6199951171875,"low":210.3300018310547,"close":210.52000427246094,"volume":1015409.0,"vwap":210.30237295953705},{"time":"2026-09-14T10:50:00-04:00","bar_open":"2026-09-14T10:45:00-04:00","open":210.52999877929688,"high":210.86000061035156,"low":210.47000122070312,"close":210.82980346679688,"volume":894435.0,"vwap":210.30776813516005},{"time":"2026-09-14T10:55:00-04:00","bar_open":"2026-09-14T10:50:00-04:00","open":210.82000732421875,"high":210.83999633789062,"low":210.4600067138672,"close":210.6300048828125,"volume":876075.0,"vwap":210.3119618183017},{"time":"2026-09-14T11:00:00-04:00","bar_open":"2026-09-14T10:55:00-04:00","open":210.625,"high":210.6761932373047,"low":210.3000030517578,"close":210.47999572753906,"volume":965583.0,"vwap":210.31431828036602},{"time":"2026-09-14T11:05:00-04:00","bar_open":"2026-09-14T11:00:00-04:00","open":210.4600067138672,"high":210.6300048828125,"low":210.27999877929688,"close":210.33999633789062,"volume":840168.0,"vwap":210.31551412764088},{"time":"2026-09-14T11:10:00-04:00","bar_open":"2026-09-14T11:05:00-04:00","open":210.34950256347656,"high":211.25999450683594,"low":210.34010314941406,"close":210.86000061035156,"volume":1395672.0,"vwap":210.32512008209483},{"time":"2026-09-14T11:15:00-04:00","bar_open":"2026-09-14T11:10:00-04:00","open":210.8800048828125,"high":211.0500030517578,"low":210.7100067138672,"close":210.74000549316406,"volume":681415.0,"vwap":210.32980091848242},{"time":"2026-09-14T11:20:00-04:00","bar_open":"2026-09-14T11:15:00-04:00","open":210.72999572753906,"high":211.239501953125,"low":210.71800231933594,"close":211.13499450683594,"volume":849556.0,"vwap":210.33775944620297},{"time":"2026-09-14T11:25:00-04:00","bar_open":"2026-09-14T11:20:00-04:00","open":211.13999938964844,"high":211.35000610351562,"low":210.9499969482422,"close":211.25999450683594,"volume":840463.0,"vwap":210.34718769156217},{"time":"2026-09-14T11:30:00-04:00","bar_open":"2026-09-14T11:25:00-04:00","open":211.25999450683594,"high":211.60000610351562,"low":211.16000366210938,"close":211.4600067138672,"volume":1362957.0,"vwap":210.3659323184684},{"time":"2026-09-14T11:35:00-04:00","bar_open":"2026-09-14T11:30:00-04:00","open":211.4499969482422,"high":212.02000427246094,"low":211.1999969482422,"close":211.88999938964844,"volume":1597874.0,"vwap":210.39310850251104},{"time":"2026-09-14T11:40:00-04:00","bar_open":"2026-09-14T11:35:00-04:00","open":211.88999938964844,"high":212.10000610351562,"low":211.80999755859375,"close":211.8800048828125,"volume":1282651.0,"vwap":210.41777513857363},{"time":"2026-09-14T11:45:00-04:00","bar_open":"2026-09-14T11:40:00-04:00","open":211.8800048828125,"high":212.1999969482422,"low":211.6999969482422,"close":212.0500030517578,"volume":1179159.0,"vwap":210.4405385658486},{"time":"2026-09-14T11:50:00-04:00","bar_open":"2026-09-14T11:45:00-04:00","open":212.0574951171875,"high":212.1298065185547,"low":211.76370239257812,"close":211.77200317382812,"volume":1042240.0,"vwap":210.45891140955462},{"time":"2026-09-14T11:55:00-04:00","bar_open":"2026-09-14T11:50:00-04:00","open":211.77000427246094,"high":211.94000244140625,"low":211.67999267578125,"close":211.90260314941406,"volume":780571.0,"vwap":210.47192056250515},{"time":"2026-09-14T12:00:00-04:00","bar_open":"2026-09-14T11:55:00-04:00","open":211.90499877929688,"high":212.3300018310547,"low":211.86000061035156,"close":212.1884002685547,"volume":808243.0,"vwap":210.48788904551742},{"time":"2026-09-14T12:05:00-04:00","bar_open":"2026-09-14T12:00:00-04:00","open":212.17999267578125,"high":212.28500366210938,"low":212.0283966064453,"close":212.0301055908203,"volume":681278.0,"vwap":210.50101766939682},{"time":"2026-09-14T12:10:00-04:00","bar_open":"2026-09-14T12:05:00-04:00","open":212.03289794921875,"high":212.03289794921875,"low":211.75999450683594,"close":211.8000030517578,"volume":676454.0,"vwap":210.51185613154018},{"time":"2026-09-14T12:15:00-04:00","bar_open":"2026-09-14T12:10:00-04:00","open":211.77999877929688,"high":211.92990112304688,"low":211.65150451660156,"close":211.6898956298828,"volume":793115.0,"vwap":210.52335632952716},{"time":"2026-09-14T12:20:00-04:00","bar_open":"2026-09-14T12:15:00-04:00","open":211.6999969482422,"high":212.22999572753906,"low":211.6999969482422,"close":212.14999389648438,"volume":827630.0,"vwap":210.5377056992649},{"time":"2026-09-14T12:25:00-04:00","bar_open":"2026-09-14T12:20:00-04:00","open":212.13999938964844,"high":212.1649932861328,"low":211.9199981689453,"close":211.9600067138672,"volume":642268.0,"vwap":210.54856813558496},{"time":"2026-09-14T12:30:00-04:00","bar_open":"2026-09-14T12:25:00-04:00","open":211.94000244140625,"high":211.99000549316406,"low":211.67999267578125,"close":211.7899932861328,"volume":572572.0,"vwap":210.55684810667373},{"time":"2026-09-14T12:35:00-04:00","bar_open":"2026-09-14T12:30:00-04:00","open":211.77000427246094,"high":211.83999633789062,"low":211.61500549316406,"close":211.67990112304688,"volume":557985.0,"vwap":210.56413065208517},{"time":"2026-09-14T12:40:00-04:00","bar_open":"2026-09-14T12:35:00-04:00","open":211.6699981689453,"high":211.85000610351562,"low":211.50999450683594,"close":211.77499389648438,"volume":561453.0,"vwap":210.57136652573888},{"time":"2026-09-14T12:45:00-04:00","bar_open":"2026-09-14T12:40:00-04:00","open":211.77499389648438,"high":211.86000061035156,"low":211.6199951171875,"close":211.86000061035156,"volume":423368.0,"vwap":210.57708610478866},{"time":"2026-09-14T12:50:00-04:00","bar_open":"2026-09-14T12:45:00-04:00","open":211.85499572753906,"high":212.38999938964844,"low":211.72500610351562,"close":212.25999450683594,"volume":873083.0,"vwap":210.59204627160054},{"time":"2026-09-14T12:55:00-04:00","bar_open":"2026-09-14T12:50:00-04:00","open":212.268798828125,"high":212.36500549316406,"low":211.6999969482422,"close":212.03500366210938,"volume":740420.0,"vwap":210.60376332188827},{"time":"2026-09-14T13:00:00-04:00","bar_open":"2026-09-14T12:55:00-04:00","open":212.02999877929688,"high":212.2198944091797,"low":211.90989685058594,"close":212.10499572753906,"volume":493735.0,"vwap":210.61171354797983},{"time":"2026-09-14T13:05:00-04:00","bar_open":"2026-09-14T13:00:00-04:00","open":212.10989379882812,"high":212.2100067138672,"low":212.05889892578125,"close":212.13499450683594,"volume":456191.0,"vwap":210.61926284707306},{"time":"2026-09-14T13:10:00-04:00","bar_open":"2026-09-14T13:05:00-04:00","open":212.1385955810547,"high":212.24000549316406,"low":212.08999633789062,"close":212.16000366210938,"volume":511491.0,"vwap":210.62779741169047},{"time":"2026-09-14T13:15:00-04:00","bar_open":"2026-09-14T13:10:00-04:00","open":212.1750030517578,"high":212.3800048828125,"low":212.07000732421875,"close":212.0709991455078,"volume":466223.0,"vwap":210.6355466803213},{"time":"2026-09-14T13:20:00-04:00","bar_open":"2026-09-14T13:15:00-04:00","open":212.07000732421875,"high":212.19619750976562,"low":211.9600067138672,"close":212.0449981689453,"volume":490055.0,"vwap":210.64304999808914},{"time":"2026-09-14T13:25:00-04:00","bar_open":"2026-09-14T13:20:00-04:00","open":212.0449981689453,"high":212.3699951171875,"low":212.02200317382812,"close":212.34500122070312,"volume":607194.0,"vwap":210.6533908562531},{"time":"2026-09-14T13:30:00-04:00","bar_open":"2026-09-14T13:25:00-04:00","open":212.35000610351562,"high":212.58999633789062,"low":212.30499267578125,"close":212.5800018310547,"volume":680016.0,"vwap":210.66657954154007},{"time":"2026-09-14T13:35:00-04:00","bar_open":"2026-09-14T13:30:00-04:00","open":212.58999633789062,"high":212.6060028076172,"low":212.3800048828125,"close":212.4199981689453,"volume":549452.0,"vwap":210.67696601476896},{"time":"2026-09-14T13:40:00-04:00","bar_open":"2026-09-14T13:35:00-04:00","open":212.4199981689453,"high":212.47999572753906,"low":212.1667022705078,"close":212.47000122070312,"volume":538733.0,"vwap":210.68649236286882},{"time":"2026-09-14T13:45:00-04:00","bar_open":"2026-09-14T13:40:00-04:00","open":212.4600067138672,"high":212.49000549316406,"low":212.2801055908203,"close":212.37840270996094,"volume":407263.0,"vwap":210.69366804235625},{"time":"2026-09-14T13:50:00-04:00","bar_open":"2026-09-14T13:45:00-04:00","open":212.3699951171875,"high":212.60000610351562,"low":212.3699951171875,"close":212.5749969482422,"volume":499080.0,"vwap":210.70306067674952},{"time":"2026-09-14T13:55:00-04:00","bar_open":"2026-09-14T13:50:00-04:00","open":212.5749969482422,"high":212.77000427246094,"low":212.50999450683594,"close":212.52999877929688,"volume":741665.0,"vwap":210.71751295157353},{"time":"2026-09-14T14:00:00-04:00","bar_open":"2026-09-14T13:55:00-04:00","open":212.52999877929688,"high":212.5800018310547,"low":212.38999938964844,"close":212.41009521484375,"volume":525057.0,"vwap":210.72684473544936},{"time":"2026-09-14T14:05:00-04:00","bar_open":"2026-09-14T14:00:00-04:00","open":212.4199981689453,"high":212.6300048828125,"low":212.22999572753906,"close":212.27999877929688,"volume":634109.0,"vwap":210.73746800861738},{"time":"2026-09-14T14:10:00-04:00","bar_open":"2026-09-14T14:05:00-04:00","open":212.28640747070312,"high":212.5500030517578,"low":212.1999969482422,"close":212.53179931640625,"volume":2134122.0,"vwap":210.7732399527126},{"time":"2026-09-14T14:15:00-04:00","bar_open":"2026-09-14T14:10:00-04:00","open":212.5399932861328,"high":212.5800018310547,"low":212.35000610351562,"close":212.4600067138672,"volume":537042.0,"vwap":210.7821956866911},{"time":"2026-09-14T14:20:00-04:00","bar_open":"2026-09-14T14:15:00-04:00","open":212.4600067138672,"high":212.4949951171875,"low":212.22999572753906,"close":212.24000549316406,"volume":621634.0,"vwap":210.79158062118478},{"time":"2026-09-14T14:25:00-04:00","bar_open":"2026-09-14T14:20:00-04:00","open":212.22999572753906,"high":212.3000030517578,"low":212.08999633789062,"close":212.17999267578125,"volume":445187.0,"vwap":210.79765934590375},{"time":"2026-09-14T14:30:00-04:00","bar_open":"2026-09-14T14:25:00-04:00","open":212.18499755859375,"high":212.2050018310547,"low":212.03500366210938,"close":212.09500122070312,"volume":447518.0,"vwap":210.80337609134443},{"time":"2026-09-14T14:35:00-04:00","bar_open":"2026-09-14T14:30:00-04:00","open":212.11000061035156,"high":212.33999633789062,"low":212.07000732421875,"close":212.28720092773438,"volume":580882.0,"vwap":210.81140066711447},{"time":"2026-09-14T14:40:00-04:00","bar_open":"2026-09-14T14:35:00-04:00","open":212.27999877929688,"high":212.44000244140625,"low":212.25,"close":212.4149932861328,"volume":477880.0,"vwap":210.8185601359799},{"time":"2026-09-14T14:45:00-04:00","bar_open":"2026-09-14T14:40:00-04:00","open":212.4149932861328,"high":212.4499969482422,"low":212.31500244140625,"close":212.39999389648438,"volume":481191.0,"vwap":210.82579516081196},{"time":"2026-09-14T14:50:00-04:00","bar_open":"2026-09-14T14:45:00-04:00","open":212.39999389648438,"high":212.49000549316406,"low":212.27000427246094,"close":212.33999633789062,"volume":531842.0,"vwap":210.83360476705548},{"time":"2026-09-14T14:55:00-04:00","bar_open":"2026-09-14T14:50:00-04:00","open":212.33999633789062,"high":212.4199981689453,"low":212.22999572753906,"close":212.35499572753906,"volume":457830.0,"vwap":210.84012686158846},{"time":"2026-09-14T15:00:00-04:00","bar_open":"2026-09-14T14:55:00-04:00","open":212.33999633789062,"high":212.5800018310547,"low":212.30999755859375,"close":212.55499267578125,"volume":473021.0,"vwap":210.84746143946882},{"time":"2026-09-14T15:05:00-04:00","bar_open":"2026-09-14T15:00:00-04:00","open":212.57000732421875,"high":212.60000610351562,"low":212.25,"close":212.5800018310547,"volume":657559.0,"vwap":210.85751838373517},{"time":"2026-09-14T15:10:00-04:00","bar_open":"2026-09-14T15:05:00-04:00","open":212.58999633789062,"high":212.6199951171875,"low":212.22999572753906,"close":212.40499877929688,"volume":551155.0,"vwap":210.86555249357502},{"time":"2026-09-14T15:15:00-04:00","bar_open":"2026-09-14T15:10:00-04:00","open":212.4199981689453,"high":212.44500732421875,"low":212.19000244140625,"close":212.27999877929688,"volume":1578163.0,"vwap":210.88646026740417},{"time":"2026-09-14T15:20:00-04:00","bar_open":"2026-09-14T15:15:00-04:00","open":212.27000427246094,"high":212.2949981689453,"low":212.1215057373047,"close":212.27999877929688,"volume":553346.0,"vwap":210.89327894988875},{"time":"2026-09-14T15:25:00-04:00","bar_open":"2026-09-14T15:20:00-04:00","open":212.27000427246094,"high":212.32000732421875,"low":212.10000610351562,"close":212.24000549316406,"volume":2592773.0,"vwap":210.92404762093534},{"time":"2026-09-14T15:30:00-04:00","bar_open":"2026-09-14T15:25:00-04:00","open":212.24000549316406,"high":212.36000061035156,"low":212.10000610351562,"close":212.10499572753906,"volume":562227.0,"vwap":210.930373796057},{"time":"2026-09-14T15:35:00-04:00","bar_open":"2026-09-14T15:30:00-04:00","open":212.10000610351562,"high":212.1999969482422,"low":211.72000122070312,"close":211.8000030517578,"volume":1692517.0,"vwap":210.94486165672012},{"time":"2026-09-14T15:40:00-04:00","bar_open":"2026-09-14T15:35:00-04:00","open":211.7935028076172,"high":211.86000061035156,"low":211.67999267578125,"close":211.85000610351562,"volume":845772.0,"vwap":210.95113177387208},{"time":"2026-09-14T15:45:00-04:00","bar_open":"2026-09-14T15:40:00-04:00","open":211.83999633789062,"high":212.13499450683594,"low":211.82000732421875,"close":212.07000732421875,"volume":871936.0,"vwap":210.95909414908058},{"time":"2026-09-14T15:50:00-04:00","bar_open":"2026-09-14T15:45:00-04:00","open":212.0749969482422,"high":212.15460205078125,"low":211.85000610351562,"close":212.07000732421875,"volume":983254.0,"vwap":210.96806964397925},{"time":"2026-09-14T15:55:00-04:00","bar_open":"2026-09-14T15:50:00-04:00","open":212.05999755859375,"high":212.39999389648438,"low":211.38999938964844,"close":211.72000122070312,"volume":2622194.0,"vwap":210.98714894195632},{"time":"2026-09-14T16:00:00-04:00","bar_open":"2026-09-14T15:55:00-04:00","open":211.7100067138672,"high":211.7100067138672,"low":210.7899932861328,"close":210.88999938964844,"volume":6595997.0,"vwap":210.9946286836372}],"fills":[{"time":"2026-09-14T09:35:00-04:00","action":"X","shares":156,"quantity":-156,"price":209.56516316986085,"reference_price":209.6699981689453,"shares_before":0,"shares_after":-156,"assumed_cost":16.354259857177734,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:35:00-04:00","pnl":null},{"time":"2026-09-14T09:40:00-04:00","action":"C","shares":67,"quantity":67,"price":209.37463927459717,"reference_price":209.2700042724609,"shares_before":-156,"shares_after":-89,"assumed_cost":7.010545143127441,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:40:00-04:00","pnl":null},{"time":"2026-09-14T09:45:00-04:00","action":"X","shares":44,"quantity":-44,"price":209.7550706100464,"reference_price":209.8600006103516,"shares_before":-89,"shares_after":-133,"assumed_cost":4.616920013427734,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:45:00-04:00","pnl":null},{"time":"2026-09-14T09:50:00-04:00","action":"C","shares":133,"quantity":133,"price":211.41565255737305,"reference_price":211.30999755859372,"shares_before":-133,"shares_after":0,"assumed_cost":14.052114837646483,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:50:00-04:00","pnl":null},{"time":"2026-09-14T09:55:00-04:00","action":"X","shares":154,"quantity":-154,"price":210.5646631698609,"reference_price":210.6699981689453,"shares_before":0,"shares_after":-154,"assumed_cost":16.221589859008787,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:55:00-04:00","pnl":null},{"time":"2026-09-14T10:00:00-04:00","action":"C","shares":18,"quantity":18,"price":210.89538828277583,"reference_price":210.7899932861328,"shares_before":-154,"shares_after":-136,"assumed_cost":1.8971099395751956,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:00:00-04:00","pnl":null},{"time":"2026-09-14T10:05:00-04:00","action":"X","shares":19,"quantity":-19,"price":210.66461927032472,"reference_price":210.7700042724609,"shares_before":-136,"shares_after":-155,"assumed_cost":2.0023150405883787,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:05:00-04:00","pnl":null},{"time":"2026-09-14T10:10:00-04:00","action":"C","shares":73,"quantity":73,"price":211.3256112213135,"reference_price":211.22000122070312,"shares_before":-155,"shares_after":-82,"assumed_cost":7.709530044555664,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:10:00-04:00","pnl":null},{"time":"2026-09-14T10:15:00-04:00","action":"X","shares":2,"quantity":-2,"price":211.31929055023195,"reference_price":211.4250030517578,"shares_before":-82,"shares_after":-84,"assumed_cost":0.2114250030517578,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:15:00-04:00","pnl":null},{"time":"2026-09-14T10:25:00-04:00","action":"C","shares":1,"quantity":1,"price":210.34011811065676,"reference_price":210.2350006103516,"shares_before":-84,"shares_after":-83,"assumed_cost":0.1051175003051757,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:25:00-04:00","pnl":null},{"time":"2026-09-14T10:30:00-04:00","action":"X","shares":23,"quantity":-23,"price":210.34477194976807,"reference_price":210.4499969482422,"shares_before":-83,"shares_after":-106,"assumed_cost":2.420174964904785,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:30:00-04:00","pnl":null},{"time":"2026-09-14T10:40:00-04:00","action":"C","shares":1,"quantity":1,"price":210.51520866394043,"reference_price":210.41000366210935,"shares_before":-106,"shares_after":-105,"assumed_cost":0.1052050018310546,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:40:00-04:00","pnl":null},{"time":"2026-09-14T10:45:00-04:00","action":"C","shares":20,"quantity":20,"price":210.6352637786865,"reference_price":210.52999877929688,"shares_before":-105,"shares_after":-85,"assumed_cost":2.105299987792969,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:45:00-04:00","pnl":null},{"time":"2026-09-14T10:50:00-04:00","action":"C","shares":29,"quantity":29,"price":210.92541732788084,"reference_price":210.82000732421875,"shares_before":-85,"shares_after":-56,"assumed_cost":3.056890106201172,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:50:00-04:00","pnl":null},{"time":"2026-09-14T11:00:00-04:00","action":"C","shares":1,"quantity":1,"price":210.5652367172241,"reference_price":210.4600067138672,"shares_before":-56,"shares_after":-55,"assumed_cost":0.1052300033569336,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:00:00-04:00","pnl":null},{"time":"2026-09-14T11:05:00-04:00","action":"C","shares":1,"quantity":1,"price":210.4546773147583,"reference_price":210.34950256347656,"shares_before":-55,"shares_after":-54,"assumed_cost":0.1051747512817382,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:05:00-04:00","pnl":null},{"time":"2026-09-14T11:10:00-04:00","action":"C","shares":54,"quantity":54,"price":210.98544488525388,"reference_price":210.8800048828125,"shares_before":-54,"shares_after":0,"assumed_cost":5.693760131835938,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:10:00-04:00","pnl":null},{"time":"2026-09-14T11:20:00-04:00","action":"X","shares":6,"quantity":-6,"price":211.03442938995363,"reference_price":211.13999938964844,"shares_before":0,"shares_after":-6,"assumed_cost":0.6334199981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:20:00-04:00","pnl":null},{"time":"2026-09-14T11:25:00-04:00","action":"X","shares":8,"quantity":-8,"price":211.1543645095825,"reference_price":211.25999450683597,"shares_before":-6,"shares_after":-14,"assumed_cost":0.8450399780273438,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:25:00-04:00","pnl":null},{"time":"2026-09-14T11:30:00-04:00","action":"X","shares":9,"quantity":-9,"price":211.34427194976809,"reference_price":211.4499969482422,"shares_before":-14,"shares_after":-23,"assumed_cost":0.9515249862670898,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:30:00-04:00","pnl":null},{"time":"2026-09-14T11:35:00-04:00","action":"C","shares":1,"quantity":1,"price":211.99594438934324,"reference_price":211.88999938964844,"shares_before":-23,"shares_after":-22,"assumed_cost":0.1059449996948242,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:35:00-04:00","pnl":null},{"time":"2026-09-14T11:40:00-04:00","action":"X","shares":122,"quantity":-122,"price":211.7740648803711,"reference_price":211.8800048828125,"shares_before":-22,"shares_after":-144,"assumed_cost":12.924680297851562,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:40:00-04:00","pnl":null},{"time":"2026-09-14T11:45:00-04:00","action":"X","shares":8,"quantity":-8,"price":211.9514663696289,"reference_price":212.0574951171875,"shares_before":-144,"shares_after":-152,"assumed_cost":0.84822998046875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:45:00-04:00","pnl":null},{"time":"2026-09-14T11:50:00-04:00","action":"C","shares":36,"quantity":36,"price":211.87588927459717,"reference_price":211.7700042724609,"shares_before":-152,"shares_after":-116,"assumed_cost":3.811860076904297,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:50:00-04:00","pnl":null},{"time":"2026-09-14T12:05:00-04:00","action":"C","shares":1,"quantity":1,"price":212.13891439819332,"reference_price":212.03289794921875,"shares_before":-116,"shares_after":-115,"assumed_cost":0.1060164489746093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:05:00-04:00","pnl":null},{"time":"2026-09-14T12:10:00-04:00","action":"C","shares":10,"quantity":10,"price":211.8858887786865,"reference_price":211.77999877929688,"shares_before":-115,"shares_after":-105,"assumed_cost":1.0588999938964845,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:10:00-04:00","pnl":null},{"time":"2026-09-14T12:15:00-04:00","action":"C","shares":1,"quantity":1,"price":211.8058469467163,"reference_price":211.6999969482422,"shares_before":-105,"shares_after":-104,"assumed_cost":0.105849998474121,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:15:00-04:00","pnl":null},{"time":"2026-09-14T12:20:00-04:00","action":"X","shares":9,"quantity":-9,"price":212.0339293899536,"reference_price":212.13999938964844,"shares_before":-104,"shares_after":-113,"assumed_cost":0.954629997253418,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:20:00-04:00","pnl":null},{"time":"2026-09-14T12:25:00-04:00","action":"X","shares":28,"quantity":-28,"price":211.83403244018555,"reference_price":211.94000244140625,"shares_before":-113,"shares_after":-141,"assumed_cost":2.9671600341796878,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:25:00-04:00","pnl":null},{"time":"2026-09-14T12:35:00-04:00","action":"C","shares":1,"quantity":1,"price":211.77583316802975,"reference_price":211.6699981689453,"shares_before":-141,"shares_after":-140,"assumed_cost":0.1058349990844726,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:35:00-04:00","pnl":null},{"time":"2026-09-14T12:50:00-04:00","action":"C","shares":10,"quantity":10,"price":212.37493322753903,"reference_price":212.268798828125,"shares_before":-140,"shares_after":-130,"assumed_cost":1.061343994140625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:50:00-04:00","pnl":null},{"time":"2026-09-14T12:55:00-04:00","action":"C","shares":1,"quantity":1,"price":212.1360137786865,"reference_price":212.02999877929688,"shares_before":-130,"shares_after":-129,"assumed_cost":0.1060149993896484,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:55:00-04:00","pnl":null},{"time":"2026-09-14T13:00:00-04:00","action":"C","shares":1,"quantity":1,"price":212.21594874572756,"reference_price":212.10989379882807,"shares_before":-129,"shares_after":-128,"assumed_cost":0.106054946899414,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:00:00-04:00","pnl":null},{"time":"2026-09-14T13:05:00-04:00","action":"C","shares":1,"quantity":1,"price":212.2446648788452,"reference_price":212.1385955810547,"shares_before":-128,"shares_after":-127,"assumed_cost":0.1060692977905273,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:05:00-04:00","pnl":null},{"time":"2026-09-14T13:10:00-04:00","action":"C","shares":1,"quantity":1,"price":212.2810905532837,"reference_price":212.1750030517578,"shares_before":-127,"shares_after":-126,"assumed_cost":0.1060875015258789,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:10:00-04:00","pnl":null},{"time":"2026-09-14T13:15:00-04:00","action":"C","shares":1,"quantity":1,"price":212.17604232788085,"reference_price":212.07000732421875,"shares_before":-126,"shares_after":-125,"assumed_cost":0.1060350036621093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:15:00-04:00","pnl":null},{"time":"2026-09-14T13:20:00-04:00","action":"C","shares":1,"quantity":1,"price":212.1510206680298,"reference_price":212.0449981689453,"shares_before":-125,"shares_after":-124,"assumed_cost":0.1060224990844726,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:20:00-04:00","pnl":null},{"time":"2026-09-14T13:25:00-04:00","action":"C","shares":1,"quantity":1,"price":212.45618110656736,"reference_price":212.3500061035156,"shares_before":-124,"shares_after":-123,"assumed_cost":0.1061750030517578,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:25:00-04:00","pnl":null},{"time":"2026-09-14T13:30:00-04:00","action":"X","shares":9,"quantity":-9,"price":212.4837013397217,"reference_price":212.58999633789065,"shares_before":-123,"shares_after":-132,"assumed_cost":0.9566549835205078,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:30:00-04:00","pnl":null},{"time":"2026-09-14T13:35:00-04:00","action":"X","shares":6,"quantity":-6,"price":212.31378816986089,"reference_price":212.4199981689453,"shares_before":-132,"shares_after":-138,"assumed_cost":0.6372599945068359,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:35:00-04:00","pnl":null},{"time":"2026-09-14T13:40:00-04:00","action":"X","shares":5,"quantity":-5,"price":212.35377671051023,"reference_price":212.4600067138672,"shares_before":-138,"shares_after":-143,"assumed_cost":0.531150016784668,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:40:00-04:00","pnl":null},{"time":"2026-09-14T13:55:00-04:00","action":"X","shares":9,"quantity":-9,"price":212.42373377990725,"reference_price":212.52999877929688,"shares_before":-143,"shares_after":-152,"assumed_cost":0.956384994506836,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:55:00-04:00","pnl":null},{"time":"2026-09-14T14:00:00-04:00","action":"C","shares":4,"quantity":4,"price":212.52620816802977,"reference_price":212.4199981689453,"shares_before":-152,"shares_after":-148,"assumed_cost":0.4248399963378906,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:00:00-04:00","pnl":null},{"time":"2026-09-14T14:10:00-04:00","action":"C","shares":1,"quantity":1,"price":212.64626328277583,"reference_price":212.5399932861328,"shares_before":-148,"shares_after":-147,"assumed_cost":0.1062699966430664,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:10:00-04:00","pnl":null},{"time":"2026-09-14T14:15:00-04:00","action":"X","shares":5,"quantity":-5,"price":212.35377671051023,"reference_price":212.4600067138672,"shares_before":-147,"shares_after":-152,"assumed_cost":0.531150016784668,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:15:00-04:00","pnl":null},{"time":"2026-09-14T14:30:00-04:00","action":"X","shares":1,"quantity":-1,"price":212.0039456100464,"reference_price":212.1100006103516,"shares_before":-152,"shares_after":-153,"assumed_cost":0.1060550003051757,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:30:00-04:00","pnl":null},{"time":"2026-09-14T14:35:00-04:00","action":"C","shares":1,"quantity":1,"price":212.3861387786865,"reference_price":212.27999877929688,"shares_before":-153,"shares_after":-152,"assumed_cost":0.1061399993896484,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:35:00-04:00","pnl":null},{"time":"2026-09-14T14:55:00-04:00","action":"C","shares":15,"quantity":15,"price":212.44616633605955,"reference_price":212.33999633789065,"shares_before":-152,"shares_after":-137,"assumed_cost":1.5925499725341796,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:55:00-04:00","pnl":null},{"time":"2026-09-14T15:00:00-04:00","action":"C","shares":1,"quantity":1,"price":212.67629232788084,"reference_price":212.57000732421875,"shares_before":-137,"shares_after":-136,"assumed_cost":0.1062850036621093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:00:00-04:00","pnl":null},{"time":"2026-09-14T15:05:00-04:00","action":"C","shares":1,"quantity":1,"price":212.69629133605957,"reference_price":212.58999633789065,"shares_before":-136,"shares_after":-135,"assumed_cost":0.1062949981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:05:00-04:00","pnl":null},{"time":"2026-09-14T15:10:00-04:00","action":"C","shares":21,"quantity":21,"price":212.52620816802977,"reference_price":212.4199981689453,"shares_before":-135,"shares_after":-114,"assumed_cost":2.230409980773926,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:10:00-04:00","pnl":null},{"time":"2026-09-14T15:15:00-04:00","action":"C","shares":81,"quantity":81,"price":212.3761392745972,"reference_price":212.2700042724609,"shares_before":-114,"shares_after":-33,"assumed_cost":8.596935173034668,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:15:00-04:00","pnl":null},{"time":"2026-09-14T15:20:00-04:00","action":"C","shares":1,"quantity":1,"price":212.3761392745972,"reference_price":212.2700042724609,"shares_before":-33,"shares_after":-32,"assumed_cost":0.1061350021362304,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:20:00-04:00","pnl":null},{"time":"2026-09-14T15:30:00-04:00","action":"X","shares":58,"quantity":-58,"price":211.9939561004639,"reference_price":212.1000061035156,"shares_before":-32,"shares_after":-90,"assumed_cost":6.150900177001953,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:30:00-04:00","pnl":null},{"time":"2026-09-14T15:35:00-04:00","action":"C","shares":63,"quantity":63,"price":211.899399559021,"reference_price":211.7935028076172,"shares_before":-90,"shares_after":-27,"assumed_cost":6.671495338439941,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:35:00-04:00","pnl":null},{"time":"2026-09-14T15:45:00-04:00","action":"C","shares":1,"quantity":1,"price":212.1810344467163,"reference_price":212.0749969482422,"shares_before":-27,"shares_after":-26,"assumed_cost":0.1060374984741211,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:45:00-04:00","pnl":null},{"time":"2026-09-14T15:55:00-04:00","action":"C","shares":26,"quantity":26,"price":211.81586171722407,"reference_price":211.7100067138672,"shares_before":-26,"shares_after":0,"assumed_cost":2.7522300872802736,"commission_cost":0.0,"signal_data_cutoff":null,"pnl":null}],"marks":[{"time":"2026-09-14T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-14T09:40:00-04:00","shares":-156,"pnl":46.04478799438584},{"time":"2026-09-14T09:45:00-04:00","shares":-89,"pnl":-13.475431221006149},{"time":"2026-09-14T09:50:00-04:00","shares":-133,"pnl":-210.9419453506416},{"time":"2026-09-14T09:55:00-04:00","shares":0,"pnl":-224.9940601882845},{"time":"2026-09-14T10:00:00-04:00","shares":-154,"pnl":-259.69489809416336},{"time":"2026-09-14T10:05:00-04:00","shares":-136,"pnl":-255.69015256498824},{"time":"2026-09-14T10:10:00-04:00","shares":-155,"pnl":-330.62534419248914},{"time":"2026-09-14T10:15:00-04:00","shares":-82,"pnl":-354.7346239929029},{"time":"2026-09-14T10:20:00-04:00","shares":-84,"pnl":-291.9360392303279},{"time":"2026-09-14T10:25:00-04:00","shares":-84,"pnl":-254.97583415220288},{"time":"2026-09-14T10:30:00-04:00","shares":-83,"pnl":-273.7614631271172},{"time":"2026-09-14T10:35:00-04:00","shares":-106,"pnl":-326.594022125224},{"time":"2026-09-14T10:40:00-04:00","shares":-106,"pnl":-273.63607534788025},{"time":"2026-09-14T10:45:00-04:00","shares":-105,"pnl":-283.18221357724906},{"time":"2026-09-14T10:50:00-04:00","shares":-85,"pnl":-311.82033522031634},{"time":"2026-09-14T10:55:00-04:00","shares":-56,"pnl":-303.40441648862543},{"time":"2026-09-14T11:00:00-04:00","shares":-56,"pnl":-295.00390379331293},{"time":"2026-09-14T11:05:00-04:00","shares":-55,"pnl":-287.38917835233406},{"time":"2026-09-14T11:10:00-04:00","shares":-54,"pnl":-315.5840900420917},{"time":"2026-09-14T11:15:00-04:00","shares":0,"pnl":-322.35808088681733},{"time":"2026-09-14T11:20:00-04:00","shares":0,"pnl":-322.35808088681733},{"time":"2026-09-14T11:25:00-04:00","shares":-6,"pnl":-323.7114715881112},{"time":"2026-09-14T11:30:00-04:00","shares":-14,"pnl":-327.3566824645759},{"time":"2026-09-14T11:35:00-04:00","shares":-23,"pnl":-338.2881268844367},{"time":"2026-09-14T11:40:00-04:00","shares":-22,"pnl":-338.1741927337407},{"time":"2026-09-14T11:45:00-04:00","shares":-144,"pnl":-375.5786093597199},{"time":"2026-09-14T11:50:00-04:00","shares":-152,"pnl":-334.11092137143714},{"time":"2026-09-14T11:55:00-04:00","shares":-116,"pnl":-353.0004181670884},{"time":"2026-09-14T12:00:00-04:00","shares":-116,"pnl":-386.15288398740086},{"time":"2026-09-14T12:05:00-04:00","shares":-116,"pnl":-367.79070137021336},{"time":"2026-09-14T12:10:00-04:00","shares":-115,"pnl":-341.4377181853997},{"time":"2026-09-14T12:15:00-04:00","shares":-105,"pnl":-330.7352961578108},{"time":"2026-09-14T12:20:00-04:00","shares":-104,"pnl":-378.7014672012083},{"time":"2026-09-14T12:25:00-04:00","shares":-113,"pnl":-358.27749612424304},{"time":"2026-09-14T12:30:00-04:00","shares":-141,"pnl":-337.8328824767814},{"time":"2026-09-14T12:35:00-04:00","shares":-141,"pnl":-322.3098874816642},{"time":"2026-09-14T12:40:00-04:00","shares":-140,"pnl":-335.718807807898},{"time":"2026-09-14T12:45:00-04:00","shares":-140,"pnl":-347.6197477493042},{"time":"2026-09-14T12:50:00-04:00","shares":-140,"pnl":-403.6188932571167},{"time":"2026-09-14T12:55:00-04:00","shares":-130,"pnl":-375.519470649695},{"time":"2026-09-14T13:00:00-04:00","shares":-129,"pnl":-384.6494572067022},{"time":"2026-09-14T13:05:00-04:00","shares":-128,"pnl":-388.60025397489153},{"time":"2026-09-14T13:10:00-04:00","shares":-127,"pnl":-391.8860870666285},{"time":"2026-09-14T13:15:00-04:00","shares":-126,"pnl":-380.7926048660047},{"time":"2026-09-14T13:20:00-04:00","shares":-125,"pnl":-377.6475259780637},{"time":"2026-09-14T13:25:00-04:00","shares":-124,"pnl":-414.9539268951157},{"time":"2026-09-14T13:30:00-04:00","shares":-123,"pnl":-443.9701818542235},{"time":"2026-09-14T13:35:00-04:00","shares":-132,"pnl":-423.7164028777843},{"time":"2026-09-14T13:40:00-04:00","shares":-138,"pnl":-431.25408401486857},{"time":"2026-09-14T13:45:00-04:00","shares":-143,"pnl":-418.7366195297},{"time":"2026-09-14T13:50:00-04:00","shares":-143,"pnl":-446.8495956039187},{"time":"2026-09-14T13:55:00-04:00","shares":-143,"pnl":-440.414857444739},{"time":"2026-09-14T14:00:00-04:00","shares":-152,"pnl":-423.145900642372},{"time":"2026-09-14T14:05:00-04:00","shares":-148,"pnl":-404.356079994177},{"time":"2026-09-14T14:10:00-04:00","shares":-148,"pnl":-441.6225594863645},{"time":"2026-09-14T14:15:00-04:00","shares":-147,"pnl":-431.1835108794912},{"time":"2026-09-14T14:20:00-04:00","shares":-152,"pnl":-398.2744753494008},{"time":"2026-09-14T14:25:00-04:00","shares":-152,"pnl":-389.1525271072133},{"time":"2026-09-14T14:30:00-04:00","shares":-152,"pnl":-376.2338259353383},{"time":"2026-09-14T14:35:00-04:00","shares":-153,"pnl":-405.7314367217768},{"time":"2026-09-14T14:40:00-04:00","shares":-152,"pnl":-425.2548130492905},{"time":"2026-09-14T14:45:00-04:00","shares":-152,"pnl":-422.974905822728},{"time":"2026-09-14T14:50:00-04:00","shares":-152,"pnl":-413.855276916478},{"time":"2026-09-14T14:55:00-04:00","shares":-152,"pnl":-416.1351841430405},{"time":"2026-09-14T15:00:00-04:00","shares":-137,"pnl":-444.9023251800281},{"time":"2026-09-14T15:05:00-04:00","shares":-136,"pnl":-448.4248699493146},{"time":"2026-09-14T15:10:00-04:00","shares":-135,"pnl":-424.9157474670137},{"time":"2026-09-14T15:15:00-04:00","shares":-114,"pnl":-413.2111446304043},{"time":"2026-09-14T15:20:00-04:00","shares":-33,"pnl":-420.998524749728},{"time":"2026-09-14T15:25:00-04:00","shares":-32,"pnl":-419.8148800887784},{"time":"2026-09-14T15:30:00-04:00","shares":-32,"pnl":-415.4945675887784},{"time":"2026-09-14T15:35:00-04:00","shares":-90,"pnl":-394.4855251388253},{"time":"2026-09-14T15:40:00-04:00","shares":-27,"pnl":-402.09758749386674},{"time":"2026-09-14T15:45:00-04:00","shares":-27,"pnl":-408.0376204528511},{"time":"2026-09-14T15:50:00-04:00","shares":-26,"pnl":-408.14864757534906},{"time":"2026-09-14T15:55:00-04:00","shares":-26,"pnl":-399.0484888839428},{"time":"2026-09-14T16:00:00-04:00","shares":0,"pnl":-401.54086179348906}],"summary":{"net_pnl":-401.54086179348906,"gross_pnl":-257.77012634274445,"cost":143.7707354507446,"fill_count":57,"ending_shares":0},"source_hashes":{"fills_sha256":"01fcf2df9f64c849643ca0e1fc127cd346a39945be7bb10dae149795e2343da0","marks_sha256":"577b2458e7ae502448b0385c5f47edd9c653ee8f8ad4decb9a64ddb3418662f7","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-14/context/PLTR.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"PLTR","date":"2026-09-14","variant":"context","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-14T16:00:00-04:00","partial":false,"starting_equity":47006.42,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-14T09:30:00-04:00","session_close":"2026-09-14T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-14T09:35:00-04:00","bar_open":"2026-09-14T09:30:00-04:00","open":169.6999969482422,"high":170.1999969482422,"low":167.75999450683594,"close":168.0500030517578,"volume":2164704.0,"vwap":168.6699981689453},{"time":"2026-09-14T09:40:00-04:00","bar_open":"2026-09-14T09:35:00-04:00","open":168.1699981689453,"high":168.3282928466797,"low":166.50999450683594,"close":166.88999938964844,"volume":568454.0,"vwap":168.37315548061062},{"time":"2026-09-14T09:45:00-04:00","bar_open":"2026-09-14T09:40:00-04:00","open":167.05999755859375,"high":167.5800018310547,"low":166.4199981689453,"close":167.2100067138672,"volume":372302.0,"vwap":168.2169253058388},{"time":"2026-09-14T09:50:00-04:00","bar_open":"2026-09-14T09:45:00-04:00","open":167.19000244140625,"high":167.97000122070312,"low":166.44000244140625,"close":167.52999877929688,"volume":552924.0,"vwap":168.08035756504535},{"time":"2026-09-14T09:55:00-04:00","bar_open":"2026-09-14T09:50:00-04:00","open":167.50999450683594,"high":168.8800048828125,"low":167.3907928466797,"close":168.39500427246094,"volume":412747.0,"vwap":168.09471113142945},{"time":"2026-09-14T10:00:00-04:00","bar_open":"2026-09-14T09:55:00-04:00","open":168.4499969482422,"high":168.7790069580078,"low":168.02999877929688,"close":168.38499450683594,"volume":288537.0,"vwap":168.11478378002377},{"time":"2026-09-14T10:05:00-04:00","bar_open":"2026-09-14T10:00:00-04:00","open":168.35499572753906,"high":168.36000061035156,"low":167.30099487304688,"close":167.58999633789062,"volume":214499.0,"vwap":168.0976932712733},{"time":"2026-09-14T10:10:00-04:00","bar_open":"2026-09-14T10:05:00-04:00","open":167.56500244140625,"high":168.13999938964844,"low":167.4199981689453,"close":167.9398956298828,"volume":336071.0,"vwap":168.07959726979192},{"time":"2026-09-14T10:15:00-04:00","bar_open":"2026-09-14T10:10:00-04:00","open":167.94000244140625,"high":167.99000549316406,"low":167.1999969482422,"close":167.4499969482422,"volume":174714.0,"vwap":168.06128628614053},{"time":"2026-09-14T10:20:00-04:00","bar_open":"2026-09-14T10:15:00-04:00","open":167.4499969482422,"high":167.83999633789062,"low":167.16000366210938,"close":167.54649353027344,"volume":172245.0,"vwap":168.04340426073503},{"time":"2026-09-14T10:25:00-04:00","bar_open":"2026-09-14T10:20:00-04:00","open":167.46499633789062,"high":167.77810668945312,"low":167.0,"close":167.0399932861328,"volume":243709.0,"vwap":168.0092594186558},{"time":"2026-09-14T10:30:00-04:00","bar_open":"2026-09-14T10:25:00-04:00","open":167.02000427246094,"high":167.36849975585938,"low":166.8000030517578,"close":167.27999877929688,"volume":200524.0,"vwap":167.9790209887189},{"time":"2026-09-14T10:35:00-04:00","bar_open":"2026-09-14T10:30:00-04:00","open":167.25999450683594,"high":168.74000549316406,"low":167.10060119628906,"close":168.50050354003906,"volume":456114.0,"vwap":167.9889974562558},{"time":"2026-09-14T10:40:00-04:00","bar_open":"2026-09-14T10:35:00-04:00","open":168.5,"high":168.53500366210938,"low":167.64999389648438,"close":168.16470336914062,"volume":261659.0,"vwap":167.9941974340324},{"time":"2026-09-14T10:45:00-04:00","bar_open":"2026-09-14T10:40:00-04:00","open":168.13499450683594,"high":168.8800048828125,"low":167.92999267578125,"close":168.8800048828125,"volume":347980.0,"vwap":168.02346340680506},{"time":"2026-09-14T10:50:00-04:00","bar_open":"2026-09-14T10:45:00-04:00","open":168.82000732421875,"high":169.6793975830078,"low":168.69000244140625,"close":169.41000366210938,"volume":445691.0,"vwap":168.09985800904562},{"time":"2026-09-14T10:55:00-04:00","bar_open":"2026-09-14T10:50:00-04:00","open":169.4149932861328,"high":169.79989624023438,"low":169.06069946289062,"close":169.625,"volume":365064.0,"vwap":168.1670779580222},{"time":"2026-09-14T11:00:00-04:00","bar_open":"2026-09-14T10:55:00-04:00","open":169.5200958251953,"high":169.9199981689453,"low":169.010498046875,"close":169.8699951171875,"volume":372993.0,"vwap":168.23430668622115},{"time":"2026-09-14T11:05:00-04:00","bar_open":"2026-09-14T11:00:00-04:00","open":169.83999633789062,"high":170.0760040283203,"low":169.5500030517578,"close":169.77999877929688,"volume":516236.0,"vwap":168.32988773875093},{"time":"2026-09-14T11:10:00-04:00","bar_open":"2026-09-14T11:05:00-04:00","open":169.75,"high":170.9499969482422,"low":169.59010314941406,"close":170.75,"volume":524522.0,"vwap":168.4523978238568},{"time":"2026-09-14T11:15:00-04:00","bar_open":"2026-09-14T11:10:00-04:00","open":170.8000030517578,"high":171.72999572753906,"low":170.3300018310547,"close":171.38999938964844,"volume":700067.0,"vwap":168.6472543132795},{"time":"2026-09-14T11:20:00-04:00","bar_open":"2026-09-14T11:15:00-04:00","open":171.3800048828125,"high":171.5399932861328,"low":170.8000030517578,"close":171.52499389648438,"volume":395410.0,"vwap":168.75078267478136},{"time":"2026-09-14T11:25:00-04:00","bar_open":"2026-09-14T11:20:00-04:00","open":171.52499389648438,"high":171.6300048828125,"low":171.2100067138672,"close":171.5,"volume":274156.0,"vwap":168.8221146757988},{"time":"2026-09-14T11:30:00-04:00","bar_open":"2026-09-14T11:25:00-04:00","open":171.5,"high":171.5,"low":170.60000610351562,"close":170.8000030517578,"volume":309072.0,"vwap":168.88423252413077},{"time":"2026-09-14T11:35:00-04:00","bar_open":"2026-09-14T11:30:00-04:00","open":170.77000427246094,"high":171.9499969482422,"low":170.73240661621094,"close":171.8199005126953,"volume":370049.0,"vwap":168.97193247836503},{"time":"2026-09-14T11:40:00-04:00","bar_open":"2026-09-14T11:35:00-04:00","open":171.82000732421875,"high":171.94000244140625,"low":171.5,"close":171.56500244140625,"volume":395748.0,"vwap":169.06524115864795},{"time":"2026-09-14T11:45:00-04:00","bar_open":"2026-09-14T11:40:00-04:00","open":171.57200622558594,"high":171.94000244140625,"low":171.24000549316406,"close":171.7899932861328,"volume":322694.0,"vwap":169.13635654026697},{"time":"2026-09-14T11:50:00-04:00","bar_open":"2026-09-14T11:45:00-04:00","open":171.79010009765625,"high":171.8699951171875,"low":171.17999267578125,"close":171.44500732421875,"volume":247682.0,"vwap":169.18508143664508},{"time":"2026-09-14T11:55:00-04:00","bar_open":"2026-09-14T11:50:00-04:00","open":171.44500732421875,"high":171.7899932861328,"low":171.27000427246094,"close":171.6999969482422,"volume":231934.0,"vwap":169.230594268981},{"time":"2026-09-14T12:00:00-04:00","bar_open":"2026-09-14T11:55:00-04:00","open":171.60000610351562,"high":171.67999267578125,"low":171.30999755859375,"close":171.33999633789062,"volume":156376.0,"vwap":169.25851052696422},{"time":"2026-09-14T12:05:00-04:00","bar_open":"2026-09-14T12:00:00-04:00","open":171.33999633789062,"high":171.61199951171875,"low":171.32000732421875,"close":171.55499267578125,"volume":193446.0,"vwap":169.29288912331222},{"time":"2026-09-14T12:10:00-04:00","bar_open":"2026-09-14T12:05:00-04:00","open":171.50999450683594,"high":172.16000366210938,"low":171.49000549316406,"close":172.16000366210938,"volume":455036.0,"vwap":169.38512118580024},{"time":"2026-09-14T12:15:00-04:00","bar_open":"2026-09-14T12:10:00-04:00","open":172.16000366210938,"high":172.9698944091797,"low":172.10000610351562,"close":172.50999450683594,"volume":627758.0,"vwap":169.5293748221735},{"time":"2026-09-14T12:20:00-04:00","bar_open":"2026-09-14T12:15:00-04:00","open":172.5449981689453,"high":173.5399932861328,"low":172.5449981689453,"close":173.39999389648438,"volume":406871.0,"vwap":169.63435233944276},{"time":"2026-09-14T12:25:00-04:00","bar_open":"2026-09-14T12:20:00-04:00","open":173.3699951171875,"high":173.6999969482422,"low":173.25999450683594,"close":173.5915985107422,"volume":294591.0,"vwap":169.71393798582153},{"time":"2026-09-14T12:30:00-04:00","bar_open":"2026-09-14T12:25:00-04:00","open":173.56500244140625,"high":173.75,"low":173.27999877929688,"close":173.34010314941406,"volume":342748.0,"vwap":169.80111405844224},{"time":"2026-09-14T12:35:00-04:00","bar_open":"2026-09-14T12:30:00-04:00","open":173.38499450683594,"high":173.52000427246094,"low":173.25,"close":173.38999938964844,"volume":219790.0,"vwap":169.85388022532663},{"time":"2026-09-14T12:40:00-04:00","bar_open":"2026-09-14T12:35:00-04:00","open":173.3538055419922,"high":173.39999389648438,"low":172.35009765625,"close":172.49000549316406,"volume":310620.0,"vwap":169.91281915183058},{"time":"2026-09-14T12:45:00-04:00","bar_open":"2026-09-14T12:40:00-04:00","open":172.5,"high":172.50999450683594,"low":171.9199981689453,"close":172.0883026123047,"volume":238820.0,"vwap":169.94767454294012},{"time":"2026-09-14T12:50:00-04:00","bar_open":"2026-09-14T12:45:00-04:00","open":172.05499267578125,"high":172.889892578125,"low":171.9508056640625,"close":172.5399932861328,"volume":266346.0,"vwap":169.99016158202946},{"time":"2026-09-14T12:55:00-04:00","bar_open":"2026-09-14T12:50:00-04:00","open":172.47000122070312,"high":172.5399932861328,"low":172.00010681152344,"close":172.13999938964844,"volume":191828.0,"vwap":170.0170723201495},{"time":"2026-09-14T13:00:00-04:00","bar_open":"2026-09-14T12:55:00-04:00","open":172.16000366210938,"high":172.7799072265625,"low":171.85000610351562,"close":172.7799072265625,"volume":206610.0,"vwap":170.04845360249843},{"time":"2026-09-14T13:05:00-04:00","bar_open":"2026-09-14T13:00:00-04:00","open":172.72999572753906,"high":172.9499969482422,"low":172.61000061035156,"close":172.6999969482422,"volume":230179.0,"vwap":170.08646485619167},{"time":"2026-09-14T13:10:00-04:00","bar_open":"2026-09-14T13:05:00-04:00","open":172.67999267578125,"high":172.8300018310547,"low":172.4199981689453,"close":172.47999572753906,"volume":183354.0,"vwap":170.11403182323093},{"time":"2026-09-14T13:15:00-04:00","bar_open":"2026-09-14T13:10:00-04:00","open":172.52000427246094,"high":173.10000610351562,"low":172.4550018310547,"close":172.71499633789062,"volume":200233.0,"vwap":170.14559774879405},{"time":"2026-09-14T13:20:00-04:00","bar_open":"2026-09-14T13:15:00-04:00","open":172.6999969482422,"high":173.15499877929688,"low":172.6999969482422,"close":172.92990112304688,"volume":178414.0,"vwap":170.17490284201128},{"time":"2026-09-14T13:25:00-04:00","bar_open":"2026-09-14T13:20:00-04:00","open":172.87289428710938,"high":173.22999572753906,"low":172.85000610351562,"close":172.91000366210938,"volume":183356.0,"vwap":170.20511547732355},{"time":"2026-09-14T13:30:00-04:00","bar_open":"2026-09-14T13:25:00-04:00","open":172.88999938964844,"high":173.33999633789062,"low":172.88999938964844,"close":173.3000030517578,"volume":218488.0,"vwap":170.24255043803356},{"time":"2026-09-14T13:35:00-04:00","bar_open":"2026-09-14T13:30:00-04:00","open":173.3000030517578,"high":173.3000030517578,"low":172.94000244140625,"close":173.02999877929688,"volume":175085.0,"vwap":170.2710087751527},{"time":"2026-09-14T13:40:00-04:00","bar_open":"2026-09-14T13:35:00-04:00","open":173.02999877929688,"high":173.41000366210938,"low":172.80999755859375,"close":173.38999938964844,"volume":198819.0,"vwap":170.30391462970525},{"time":"2026-09-14T13:45:00-04:00","bar_open":"2026-09-14T13:40:00-04:00","open":173.39999389648438,"high":173.41000366210938,"low":173.1699981689453,"close":173.2550048828125,"volume":197161.0,"vwap":170.33665024045388},{"time":"2026-09-14T13:50:00-04:00","bar_open":"2026-09-14T13:45:00-04:00","open":173.25999450683594,"high":173.3199005126953,"low":172.8800048828125,"close":173.1999969482422,"volume":178744.0,"vwap":170.36427858826417},{"time":"2026-09-14T13:55:00-04:00","bar_open":"2026-09-14T13:50:00-04:00","open":173.20509338378906,"high":173.27000427246094,"low":172.79600524902344,"close":173.05499267578125,"volume":204057.0,"vwap":170.3941228774121},{"time":"2026-09-14T14:00:00-04:00","bar_open":"2026-09-14T13:55:00-04:00","open":173.09950256347656,"high":173.46499633789062,"low":173.0,"close":173.22500610351562,"volume":211339.0,"vwap":170.42650418008427},{"time":"2026-09-14T14:05:00-04:00","bar_open":"2026-09-14T14:00:00-04:00","open":173.23500061035156,"high":173.40499877929688,"low":173.125,"close":173.1649932861328,"volume":137199.0,"vwap":170.44714506248096},{"time":"2026-09-14T14:10:00-04:00","bar_open":"2026-09-14T14:05:00-04:00","open":173.1199951171875,"high":173.25,"low":172.9199981689453,"close":173.10499572753906,"volume":152396.0,"vwap":170.4685840808288},{"time":"2026-09-14T14:15:00-04:00","bar_open":"2026-09-14T14:10:00-04:00","open":173.10499572753906,"high":173.14999389648438,"low":172.8800048828125,"close":173.0225067138672,"volume":144811.0,"vwap":170.4880694736376},{"time":"2026-09-14T14:20:00-04:00","bar_open":"2026-09-14T14:15:00-04:00","open":173.0449981689453,"high":173.08990478515625,"low":172.4600067138672,"close":172.61500549316406,"volume":205692.0,"vwap":170.5120621285043},{"time":"2026-09-14T14:25:00-04:00","bar_open":"2026-09-14T14:20:00-04:00","open":172.61500549316406,"high":172.85000610351562,"low":172.39999389648438,"close":172.68499755859375,"volume":217347.0,"vwap":170.53600032491067},{"time":"2026-09-14T14:30:00-04:00","bar_open":"2026-09-14T14:25:00-04:00","open":172.6999969482422,"high":172.91000366210938,"low":172.58470153808594,"close":172.6999969482422,"volume":197531.0,"vwap":170.55816872712745},{"time":"2026-09-14T14:35:00-04:00","bar_open":"2026-09-14T14:30:00-04:00","open":172.6999969482422,"high":173.02999877929688,"low":172.66000366210938,"close":172.8300018310547,"volume":152805.0,"vwap":170.57585331010475},{"time":"2026-09-14T14:40:00-04:00","bar_open":"2026-09-14T14:35:00-04:00","open":172.8699951171875,"high":172.8699951171875,"low":172.6320037841797,"close":172.78990173339844,"volume":127397.0,"vwap":170.58990101441148},{"time":"2026-09-14T14:45:00-04:00","bar_open":"2026-09-14T14:40:00-04:00","open":172.72999572753906,"high":173.23460388183594,"low":172.72000122070312,"close":173.10000610351562,"volume":204464.0,"vwap":170.61466633949556},{"time":"2026-09-14T14:50:00-04:00","bar_open":"2026-09-14T14:45:00-04:00","open":173.13999938964844,"high":173.44000244140625,"low":172.8249969482422,"close":173.10499572753906,"volume":275890.0,"vwap":170.64872027643653},{"time":"2026-09-14T14:55:00-04:00","bar_open":"2026-09-14T14:50:00-04:00","open":173.11000061035156,"high":173.13999938964844,"low":172.8000030517578,"close":172.91000366210938,"volume":196116.0,"vwap":170.6707141058035},{"time":"2026-09-14T15:00:00-04:00","bar_open":"2026-09-14T14:55:00-04:00","open":172.88999938964844,"high":172.9499969482422,"low":172.5,"close":172.59500122070312,"volume":195031.0,"vwap":170.68964692045904},{"time":"2026-09-14T15:05:00-04:00","bar_open":"2026-09-14T15:00:00-04:00","open":172.57000732421875,"high":172.60000610351562,"low":172.27000427246094,"close":172.5500030517578,"volume":217976.0,"vwap":170.70822035122157},{"time":"2026-09-14T15:10:00-04:00","bar_open":"2026-09-14T15:05:00-04:00","open":172.54249572753906,"high":172.5449981689453,"low":172.3300018310547,"close":172.35000610351562,"volume":152874.0,"vwap":170.72054616753547},{"time":"2026-09-14T15:15:00-04:00","bar_open":"2026-09-14T15:10:00-04:00","open":172.3800048828125,"high":172.58999633789062,"low":172.17999267578125,"close":172.41000366210938,"volume":187623.0,"vwap":170.73529924592694},{"time":"2026-09-14T15:20:00-04:00","bar_open":"2026-09-14T15:15:00-04:00","open":172.40499877929688,"high":172.72000122070312,"low":172.32000732421875,"close":172.7100067138672,"volume":190140.0,"vwap":170.75167030573348},{"time":"2026-09-14T15:25:00-04:00","bar_open":"2026-09-14T15:20:00-04:00","open":172.7100067138672,"high":173.24000549316406,"low":172.64999389648438,"close":173.19000244140625,"volume":286509.0,"vwap":170.78163793742334},{"time":"2026-09-14T15:30:00-04:00","bar_open":"2026-09-14T15:25:00-04:00","open":173.19000244140625,"high":173.62489318847656,"low":173.125,"close":173.4499969482422,"volume":334216.0,"vwap":170.82126223538964},{"time":"2026-09-14T15:35:00-04:00","bar_open":"2026-09-14T15:30:00-04:00","open":173.44430541992188,"high":174.22999572753906,"low":173.44430541992188,"close":173.82000732421875,"volume":926363.0,"vwap":170.9424442702363},{"time":"2026-09-14T15:40:00-04:00","bar_open":"2026-09-14T15:35:00-04:00","open":173.8489990234375,"high":174.10000610351562,"low":173.64999389648438,"close":173.9499969482422,"volume":374091.0,"vwap":170.98975633609746},{"time":"2026-09-14T15:45:00-04:00","bar_open":"2026-09-14T15:40:00-04:00","open":173.9499969482422,"high":174.25999450683594,"low":173.90499877929688,"close":173.99000549316406,"volume":324510.0,"vwap":171.03166435828354},{"time":"2026-09-14T15:50:00-04:00","bar_open":"2026-09-14T15:45:00-04:00","open":173.91000366210938,"high":174.35989379882812,"low":173.83999633789062,"close":174.02499389648438,"volume":364211.0,"vwap":171.07770627888618},{"time":"2026-09-14T15:55:00-04:00","bar_open":"2026-09-14T15:50:00-04:00","open":173.97999572753906,"high":174.08999633789062,"low":173.67999267578125,"close":173.68499755859375,"volume":519482.0,"vwap":171.13559632780948},{"time":"2026-09-14T16:00:00-04:00","bar_open":"2026-09-14T15:55:00-04:00","open":173.66000366210938,"high":173.74000549316406,"low":173.10000610351562,"close":173.30999755859375,"volume":1286016.0,"vwap":171.24729309493134}],"fills":[{"time":"2026-09-14T09:35:00-04:00","action":"X","shares":14,"quantity":-14,"price":168.08591316986085,"reference_price":168.1699981689453,"shares_before":0,"shares_after":-14,"assumed_cost":1.1771899871826172,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:35:00-04:00","pnl":null},{"time":"2026-09-14T09:40:00-04:00","action":"C","shares":14,"quantity":14,"price":167.14352755737303,"reference_price":167.05999755859375,"shares_before":-14,"shares_after":0,"assumed_cost":1.169419982910156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:40:00-04:00","pnl":null},{"time":"2026-09-14T09:40:00-04:00","action":"B","shares":102,"quantity":102,"price":167.14352755737303,"reference_price":167.05999755859375,"shares_before":0,"shares_after":102,"assumed_cost":8.52005987548828,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:40:00-04:00","pnl":null},{"time":"2026-09-14T09:45:00-04:00","action":"S","shares":102,"quantity":-102,"price":167.10640744018556,"reference_price":167.19000244140625,"shares_before":102,"shares_after":0,"assumed_cost":8.526690124511719,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:45:00-04:00","pnl":null},{"time":"2026-09-14T09:50:00-04:00","action":"X","shares":86,"quantity":-86,"price":167.42623950958253,"reference_price":167.50999450683594,"shares_before":0,"shares_after":-86,"assumed_cost":7.202929763793946,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:50:00-04:00","pnl":null},{"time":"2026-09-14T09:55:00-04:00","action":"C","shares":51,"quantity":51,"price":168.5342219467163,"reference_price":168.4499969482422,"shares_before":-86,"shares_after":-35,"assumed_cost":4.295474922180175,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:55:00-04:00","pnl":null},{"time":"2026-09-14T10:00:00-04:00","action":"C","shares":35,"quantity":35,"price":168.4391732254028,"reference_price":168.35499572753906,"shares_before":-35,"shares_after":0,"assumed_cost":2.9462124252319337,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:00:00-04:00","pnl":null},{"time":"2026-09-14T10:10:00-04:00","action":"X","shares":93,"quantity":-93,"price":167.85603244018554,"reference_price":167.94000244140625,"shares_before":0,"shares_after":-93,"assumed_cost":7.80921011352539,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:10:00-04:00","pnl":null},{"time":"2026-09-14T10:15:00-04:00","action":"C","shares":1,"quantity":1,"price":167.5337219467163,"reference_price":167.4499969482422,"shares_before":-93,"shares_after":-92,"assumed_cost":0.0837249984741211,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:15:00-04:00","pnl":null},{"time":"2026-09-14T10:25:00-04:00","action":"C","shares":70,"quantity":70,"price":167.10351427459716,"reference_price":167.02000427246094,"shares_before":-92,"shares_after":-22,"assumed_cost":5.845700149536133,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:25:00-04:00","pnl":null},{"time":"2026-09-14T10:30:00-04:00","action":"X","shares":44,"quantity":-44,"price":167.17636450958253,"reference_price":167.25999450683594,"shares_before":-22,"shares_after":-66,"assumed_cost":3.679719879150391,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:30:00-04:00","pnl":null},{"time":"2026-09-14T10:40:00-04:00","action":"C","shares":21,"quantity":21,"price":168.21906200408935,"reference_price":168.13499450683594,"shares_before":-66,"shares_after":-45,"assumed_cost":1.7654174423217774,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:40:00-04:00","pnl":null},{"time":"2026-09-14T10:45:00-04:00","action":"C","shares":1,"quantity":1,"price":168.90441732788085,"reference_price":168.82000732421875,"shares_before":-45,"shares_after":-44,"assumed_cost":0.0844100036621093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:45:00-04:00","pnl":null},{"time":"2026-09-14T10:50:00-04:00","action":"X","shares":73,"quantity":-73,"price":169.33028578948975,"reference_price":169.4149932861328,"shares_before":-44,"shares_after":-117,"assumed_cost":6.183647254943848,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:50:00-04:00","pnl":null},{"time":"2026-09-14T11:00:00-04:00","action":"C","shares":1,"quantity":1,"price":169.92491633605957,"reference_price":169.83999633789062,"shares_before":-117,"shares_after":-116,"assumed_cost":0.0849199981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:00:00-04:00","pnl":null},{"time":"2026-09-14T11:05:00-04:00","action":"C","shares":1,"quantity":1,"price":169.83487499999998,"reference_price":169.75,"shares_before":-116,"shares_after":-115,"assumed_cost":0.084875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:05:00-04:00","pnl":null},{"time":"2026-09-14T11:10:00-04:00","action":"X","shares":22,"quantity":-22,"price":170.71460305023194,"reference_price":170.8000030517578,"shares_before":-115,"shares_after":-137,"assumed_cost":1.878800033569336,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:10:00-04:00","pnl":null},{"time":"2026-09-14T11:15:00-04:00","action":"C","shares":23,"quantity":23,"price":171.4656948852539,"reference_price":171.3800048828125,"shares_before":-137,"shares_after":-114,"assumed_cost":1.970870056152344,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:15:00-04:00","pnl":null},{"time":"2026-09-14T11:20:00-04:00","action":"C","shares":1,"quantity":1,"price":171.6107563934326,"reference_price":171.52499389648438,"shares_before":-114,"shares_after":-113,"assumed_cost":0.0857624969482421,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:20:00-04:00","pnl":null},{"time":"2026-09-14T11:25:00-04:00","action":"C","shares":1,"quantity":1,"price":171.58575,"reference_price":171.5,"shares_before":-113,"shares_after":-112,"assumed_cost":0.08575,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:25:00-04:00","pnl":null},{"time":"2026-09-14T11:30:00-04:00","action":"C","shares":1,"quantity":1,"price":170.85538927459717,"reference_price":170.77000427246094,"shares_before":-112,"shares_after":-111,"assumed_cost":0.0853850021362304,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:30:00-04:00","pnl":null},{"time":"2026-09-14T11:35:00-04:00","action":"X","shares":67,"quantity":-67,"price":171.73409732055666,"reference_price":171.82000732421875,"shares_before":-111,"shares_after":-178,"assumed_cost":5.755970245361328,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:35:00-04:00","pnl":null},{"time":"2026-09-14T11:40:00-04:00","action":"C","shares":145,"quantity":145,"price":171.65779222869872,"reference_price":171.57200622558594,"shares_before":-178,"shares_after":-33,"assumed_cost":12.43897045135498,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:40:00-04:00","pnl":null},{"time":"2026-09-14T11:45:00-04:00","action":"X","shares":16,"quantity":-16,"price":171.70420504760745,"reference_price":171.79010009765625,"shares_before":-33,"shares_after":-49,"assumed_cost":1.37432080078125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:45:00-04:00","pnl":null},{"time":"2026-09-14T12:00:00-04:00","action":"C","shares":1,"quantity":1,"price":171.42566633605955,"reference_price":171.33999633789062,"shares_before":-49,"shares_after":-48,"assumed_cost":0.0856699981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:00:00-04:00","pnl":null},{"time":"2026-09-14T12:05:00-04:00","action":"C","shares":21,"quantity":21,"price":171.59574950408935,"reference_price":171.50999450683594,"shares_before":-48,"shares_after":-27,"assumed_cost":1.8008549423217777,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:05:00-04:00","pnl":null},{"time":"2026-09-14T12:10:00-04:00","action":"C","shares":27,"quantity":27,"price":172.24608366394042,"reference_price":172.16000366210938,"shares_before":-27,"shares_after":0,"assumed_cost":2.3241600494384764,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:10:00-04:00","pnl":null},{"time":"2026-09-14T12:10:00-04:00","action":"B","shares":34,"quantity":34,"price":172.24608366394042,"reference_price":172.16000366210938,"shares_before":0,"shares_after":34,"assumed_cost":2.92672006225586,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:10:00-04:00","pnl":null},{"time":"2026-09-14T12:15:00-04:00","action":"S","shares":33,"quantity":-33,"price":172.45872566986085,"reference_price":172.5449981689453,"shares_before":34,"shares_after":1,"assumed_cost":2.846992469787597,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:15:00-04:00","pnl":null},{"time":"2026-09-14T12:20:00-04:00","action":"S","shares":1,"quantity":-1,"price":173.2833101196289,"reference_price":173.3699951171875,"shares_before":1,"shares_after":0,"assumed_cost":0.0866849975585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:20:00-04:00","pnl":null},{"time":"2026-09-14T12:25:00-04:00","action":"X","shares":81,"quantity":-81,"price":173.47821994018557,"reference_price":173.56500244140625,"shares_before":0,"shares_after":-81,"assumed_cost":7.029382598876953,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:25:00-04:00","pnl":null},{"time":"2026-09-14T12:30:00-04:00","action":"C","shares":2,"quantity":2,"price":173.47168700408935,"reference_price":173.38499450683594,"shares_before":-81,"shares_after":-79,"assumed_cost":0.1733849945068359,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:30:00-04:00","pnl":null},{"time":"2026-09-14T12:35:00-04:00","action":"X","shares":3,"quantity":-3,"price":173.2671286392212,"reference_price":173.3538055419922,"shares_before":-79,"shares_after":-82,"assumed_cost":0.2600307083129883,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:35:00-04:00","pnl":null},{"time":"2026-09-14T12:45:00-04:00","action":"X","shares":2,"quantity":-2,"price":171.96896517944336,"reference_price":172.05499267578125,"shares_before":-82,"shares_after":-84,"assumed_cost":0.1720549926757812,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:45:00-04:00","pnl":null},{"time":"2026-09-14T12:50:00-04:00","action":"X","shares":10,"quantity":-10,"price":172.38376622009278,"reference_price":172.47000122070312,"shares_before":-84,"shares_after":-94,"assumed_cost":0.8623500061035156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:50:00-04:00","pnl":null},{"time":"2026-09-14T12:55:00-04:00","action":"C","shares":1,"quantity":1,"price":172.24608366394042,"reference_price":172.16000366210938,"shares_before":-94,"shares_after":-93,"assumed_cost":0.0860800018310546,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:55:00-04:00","pnl":null},{"time":"2026-09-14T13:00:00-04:00","action":"C","shares":44,"quantity":44,"price":172.81636072540283,"reference_price":172.72999572753906,"shares_before":-93,"shares_after":-49,"assumed_cost":3.8000599060058593,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:00:00-04:00","pnl":null},{"time":"2026-09-14T13:05:00-04:00","action":"C","shares":35,"quantity":35,"price":172.76633267211912,"reference_price":172.67999267578125,"shares_before":-49,"shares_after":-14,"assumed_cost":3.021899871826172,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:05:00-04:00","pnl":null},{"time":"2026-09-14T13:15:00-04:00","action":"C","shares":1,"quantity":1,"price":172.7863469467163,"reference_price":172.6999969482422,"shares_before":-14,"shares_after":-13,"assumed_cost":0.086349998474121,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:15:00-04:00","pnl":null},{"time":"2026-09-14T13:20:00-04:00","action":"X","shares":45,"quantity":-45,"price":172.78645783996583,"reference_price":172.87289428710938,"shares_before":-13,"shares_after":-58,"assumed_cost":3.8896401214599607,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:20:00-04:00","pnl":null},{"time":"2026-09-14T13:30:00-04:00","action":"C","shares":1,"quantity":1,"price":173.38665305328368,"reference_price":173.3000030517578,"shares_before":-58,"shares_after":-57,"assumed_cost":0.0866500015258789,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:30:00-04:00","pnl":null},{"time":"2026-09-14T13:40:00-04:00","action":"C","shares":1,"quantity":1,"price":173.4866938934326,"reference_price":173.39999389648438,"shares_before":-57,"shares_after":-56,"assumed_cost":0.0866999969482421,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:40:00-04:00","pnl":null},{"time":"2026-09-14T13:45:00-04:00","action":"C","shares":38,"quantity":38,"price":173.34662450408933,"reference_price":173.25999450683594,"shares_before":-56,"shares_after":-18,"assumed_cost":3.291939895629883,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:45:00-04:00","pnl":null},{"time":"2026-09-14T13:55:00-04:00","action":"C","shares":1,"quantity":1,"price":173.18605231475829,"reference_price":173.09950256347656,"shares_before":-18,"shares_after":-17,"assumed_cost":0.0865497512817382,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:55:00-04:00","pnl":null},{"time":"2026-09-14T14:05:00-04:00","action":"X","shares":1,"quantity":-1,"price":173.0334351196289,"reference_price":173.1199951171875,"shares_before":-17,"shares_after":-18,"assumed_cost":0.0865599975585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:05:00-04:00","pnl":null},{"time":"2026-09-14T14:10:00-04:00","action":"X","shares":4,"quantity":-4,"price":173.0184432296753,"reference_price":173.10499572753906,"shares_before":-18,"shares_after":-22,"assumed_cost":0.3462099914550781,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:10:00-04:00","pnl":null},{"time":"2026-09-14T14:15:00-04:00","action":"X","shares":19,"quantity":-19,"price":172.95847566986086,"reference_price":173.0449981689453,"shares_before":-22,"shares_after":-41,"assumed_cost":1.6439274826049806,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:15:00-04:00","pnl":null},{"time":"2026-09-14T14:20:00-04:00","action":"C","shares":1,"quantity":1,"price":172.70131299591063,"reference_price":172.61500549316406,"shares_before":-41,"shares_after":-40,"assumed_cost":0.086307502746582,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:20:00-04:00","pnl":null},{"time":"2026-09-14T14:30:00-04:00","action":"X","shares":6,"quantity":-6,"price":172.61364694976808,"reference_price":172.6999969482422,"shares_before":-40,"shares_after":-46,"assumed_cost":0.5180999908447266,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:30:00-04:00","pnl":null},{"time":"2026-09-14T14:35:00-04:00","action":"C","shares":3,"quantity":3,"price":172.9564301147461,"reference_price":172.8699951171875,"shares_before":-46,"shares_after":-43,"assumed_cost":0.2593049926757813,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:35:00-04:00","pnl":null},{"time":"2026-09-14T14:40:00-04:00","action":"C","shares":1,"quantity":1,"price":172.81636072540283,"reference_price":172.72999572753906,"shares_before":-43,"shares_after":-42,"assumed_cost":0.0863649978637695,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:40:00-04:00","pnl":null},{"time":"2026-09-14T14:45:00-04:00","action":"C","shares":13,"quantity":13,"price":173.22656938934324,"reference_price":173.13999938964844,"shares_before":-42,"shares_after":-29,"assumed_cost":1.1254099960327149,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:45:00-04:00","pnl":null},{"time":"2026-09-14T14:50:00-04:00","action":"C","shares":1,"quantity":1,"price":173.19655561065673,"reference_price":173.11000061035156,"shares_before":-29,"shares_after":-28,"assumed_cost":0.0865550003051757,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:50:00-04:00","pnl":null},{"time":"2026-09-14T15:00:00-04:00","action":"C","shares":1,"quantity":1,"price":172.65629232788086,"reference_price":172.57000732421875,"shares_before":-28,"shares_after":-27,"assumed_cost":0.0862850036621093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:00:00-04:00","pnl":null},{"time":"2026-09-14T15:05:00-04:00","action":"C","shares":1,"quantity":1,"price":172.6287669754028,"reference_price":172.54249572753906,"shares_before":-27,"shares_after":-26,"assumed_cost":0.0862712478637695,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:05:00-04:00","pnl":null},{"time":"2026-09-14T15:10:00-04:00","action":"C","shares":1,"quantity":1,"price":172.46619488525388,"reference_price":172.3800048828125,"shares_before":-26,"shares_after":-25,"assumed_cost":0.0861900024414062,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:10:00-04:00","pnl":null},{"time":"2026-09-14T15:15:00-04:00","action":"C","shares":1,"quantity":1,"price":172.4912012786865,"reference_price":172.40499877929688,"shares_before":-25,"shares_after":-24,"assumed_cost":0.0862024993896484,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:15:00-04:00","pnl":null},{"time":"2026-09-14T15:20:00-04:00","action":"C","shares":24,"quantity":24,"price":172.7963617172241,"reference_price":172.7100067138672,"shares_before":-24,"shares_after":0,"assumed_cost":2.0725200805664064,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:20:00-04:00","pnl":null}],"marks":[{"time":"2026-09-14T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-14T09:40:00-04:00","shares":-14,"pnl":16.742792922973877},{"time":"2026-09-14T09:45:00-04:00","shares":102,"pnl":19.97427253723436},{"time":"2026-09-14T09:50:00-04:00","shares":0,"pnl":9.407146621710126},{"time":"2026-09-14T09:55:00-04:00","shares":-86,"pnl":-73.90662298583266},{"time":"2026-09-14T10:00:00-04:00","shares":-35,"pnl":-80.65638257598039},{"time":"2026-09-14T10:05:00-04:00","shares":0,"pnl":-82.55263772582111},{"time":"2026-09-14T10:10:00-04:00","shares":0,"pnl":-82.55263772582111},{"time":"2026-09-14T10:15:00-04:00","shares":-93,"pnl":-44.79133697508951},{"time":"2026-09-14T10:20:00-04:00","shares":-92,"pnl":-53.75274752043879},{"time":"2026-09-14T10:25:00-04:00","shares":-92,"pnl":-7.154725059501288},{"time":"2026-09-14T10:30:00-04:00","shares":-22,"pnl":-16.881315101614746},{"time":"2026-09-14T10:35:00-04:00","shares":-66,"pnl":-101.99453717803044},{"time":"2026-09-14T10:40:00-04:00","shares":-66,"pnl":-79.83172589873357},{"time":"2026-09-14T10:45:00-04:00","shares":-45,"pnl":-113.16182534789186},{"time":"2026-09-14T10:50:00-04:00","shares":-44,"pnl":-136.50618408202263},{"time":"2026-09-14T10:55:00-04:00","shares":-117,"pnl":-167.48016031645966},{"time":"2026-09-14T11:00:00-04:00","shares":-117,"pnl":-196.1445890273972},{"time":"2026-09-14T11:05:00-04:00","shares":-116,"pnl":-185.7599350509554},{"time":"2026-09-14T11:10:00-04:00","shares":-115,"pnl":-297.3649516525184},{"time":"2026-09-14T11:15:00-04:00","shares":-137,"pnl":-385.8236009292523},{"time":"2026-09-14T11:20:00-04:00","shares":-114,"pnl":-402.9539711074758},{"time":"2026-09-14T11:25:00-04:00","shares":-113,"pnl":-400.2154233016881},{"time":"2026-09-14T11:30:00-04:00","shares":-112,"pnl":-321.9015150985615},{"time":"2026-09-14T11:35:00-04:00","shares":-111,"pnl":-435.1655194854648},{"time":"2026-09-14T11:40:00-04:00","shares":-178,"pnl":-395.5424766693032},{"time":"2026-09-14T11:45:00-04:00","shares":-33,"pnl":-416.4216937026868},{"time":"2026-09-14T11:50:00-04:00","shares":-49,"pnl":-400.8899933853036},{"time":"2026-09-14T11:55:00-04:00","shares":-49,"pnl":-413.384484962452},{"time":"2026-09-14T12:00:00-04:00","shares":-49,"pnl":-395.74445505522544},{"time":"2026-09-14T12:05:00-04:00","shares":-48,"pnl":-406.1499492721441},{"time":"2026-09-14T12:10:00-04:00","shares":-27,"pnl":-423.341139297474},{"time":"2026-09-14T12:15:00-04:00","shares":34,"pnl":-416.6923306884646},{"time":"2026-09-14T12:20:00-04:00","shares":1,"pnl":-417.49420291899423},{"time":"2026-09-14T12:25:00-04:00","shares":0,"pnl":-417.6108866958497},{"time":"2026-09-14T12:30:00-04:00","shares":-81,"pnl":-406.42342664335774},{"time":"2026-09-14T12:35:00-04:00","shares":-79,"pnl":-410.6283973312238},{"time":"2026-09-14T12:40:00-04:00","shares":-82,"pnl":-337.19751007078594},{"time":"2026-09-14T12:45:00-04:00","shares":-82,"pnl":-304.2578738403172},{"time":"2026-09-14T12:50:00-04:00","shares":-84,"pnl":-342.4385653076024},{"time":"2026-09-14T12:55:00-04:00","shares":-94,"pnl":-306.401409698472},{"time":"2026-09-14T13:00:00-04:00","shares":-93,"pnl":-366.0189228057716},{"time":"2026-09-14T13:05:00-04:00","shares":-49,"pnl":-363.7072731170511},{"time":"2026-09-14T13:10:00-04:00","shares":-14,"pnl":-362.9490063629},{"time":"2026-09-14T13:15:00-04:00","shares":-14,"pnl":-366.2390149078219},{"time":"2026-09-14T13:20:00-04:00","shares":-13,"pnl":-369.10412772367886},{"time":"2026-09-14T13:25:00-04:00","shares":-58,"pnl":-374.4050227279513},{"time":"2026-09-14T13:30:00-04:00","shares":-58,"pnl":-397.0249873275607},{"time":"2026-09-14T13:35:00-04:00","shares":-57,"pnl":-381.72139379881264},{"time":"2026-09-14T13:40:00-04:00","shares":-57,"pnl":-402.2414285888517},{"time":"2026-09-14T13:45:00-04:00","shares":-56,"pnl":-394.7784307098227},{"time":"2026-09-14T13:50:00-04:00","shares":-18,"pnl":-397.2698334960769},{"time":"2026-09-14T13:55:00-04:00","shares":-18,"pnl":-394.65975659178},{"time":"2026-09-14T14:00:00-04:00","shares":-17,"pnl":-397.6810445022416},{"time":"2026-09-14T14:05:00-04:00","shares":-17,"pnl":-396.66082660673374},{"time":"2026-09-14T14:10:00-04:00","shares":-18,"pnl":-395.7124287185502},{"time":"2026-09-14T14:15:00-04:00","shares":-22,"pnl":-394.243880409224},{"time":"2026-09-14T14:20:00-04:00","shares":-41,"pnl":-378.7529201965162},{"time":"2026-09-14T14:25:00-04:00","shares":-40,"pnl":-381.63891031645016},{"time":"2026-09-14T14:30:00-04:00","shares":-40,"pnl":-382.23888590238766},{"time":"2026-09-14T14:35:00-04:00","shares":-46,"pnl":-388.737210502607},{"time":"2026-09-14T14:40:00-04:00","shares":-43,"pnl":-387.3921911544621},{"time":"2026-09-14T14:45:00-04:00","shares":-42,"pnl":-400.44303369138834},{"time":"2026-09-14T14:50:00-04:00","shares":-29,"pnl":-402.233055503827},{"time":"2026-09-14T14:55:00-04:00","shares":-28,"pnl":-396.8648375549137},{"time":"2026-09-14T15:00:00-04:00","shares":-28,"pnl":-388.0447691955387},{"time":"2026-09-14T15:05:00-04:00","shares":-27,"pnl":-386.8911097411929},{"time":"2026-09-14T15:10:00-04:00","shares":-26,"pnl":-381.769953010541},{"time":"2026-09-14T15:15:00-04:00","shares":-25,"pnl":-383.3860807571232},{"time":"2026-09-14T15:20:00-04:00","shares":-24,"pnl":-390.667351615888},{"time":"2026-09-14T15:25:00-04:00","shares":0,"pnl":-392.7398716964544},{"time":"2026-09-14T15:30:00-04:00","shares":0,"pnl":-392.7398716964544},{"time":"2026-09-14T15:35:00-04:00","shares":0,"pnl":-392.7398716964544},{"time":"2026-09-14T15:40:00-04:00","shares":0,"pnl":-392.7398716964544},{"time":"2026-09-14T15:45:00-04:00","shares":0,"pnl":-392.7398716964544},{"time":"2026-09-14T15:50:00-04:00","shares":0,"pnl":-392.7398716964544},{"time":"2026-09-14T15:55:00-04:00","shares":0,"pnl":-392.7398716964544},{"time":"2026-09-14T16:00:00-04:00","shares":0,"pnl":-392.7398716964544}],"summary":{"net_pnl":-392.7398716964544,"gross_pnl":-269.94407653806815,"cost":122.79579515838623,"fill_count":58,"ending_shares":0},"source_hashes":{"fills_sha256":"01fcf2df9f64c849643ca0e1fc127cd346a39945be7bb10dae149795e2343da0","marks_sha256":"577b2458e7ae502448b0385c5f47edd9c653ee8f8ad4decb9a64ddb3418662f7","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-14/context/SNDK.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"SNDK","date":"2026-09-14","variant":"context","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-14T16:00:00-04:00","partial":false,"starting_equity":47006.42,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-14T09:30:00-04:00","session_close":"2026-09-14T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-14T09:35:00-04:00","bar_open":"2026-09-14T09:30:00-04:00","open":1521.5250244140625,"high":1544.0,"low":1515.31005859375,"close":1518.5,"volume":1442238.0,"vwap":1525.9366861979167},{"time":"2026-09-14T09:40:00-04:00","bar_open":"2026-09-14T09:35:00-04:00","open":1519.0,"high":1525.7899169921875,"low":1505.0,"close":1513.1400146484375,"volume":400072.0,"vwap":1523.484241504318},{"time":"2026-09-14T09:45:00-04:00","bar_open":"2026-09-14T09:40:00-04:00","open":1513.1199951171875,"high":1521.7900390625,"low":1509.02001953125,"close":1518.3900146484375,"volume":219495.0,"vwap":1522.7300721089457},{"time":"2026-09-14T09:50:00-04:00","bar_open":"2026-09-14T09:45:00-04:00","open":1518.7099609375,"high":1547.6700439453125,"low":1518.3299560546875,"close":1546.0,"volume":366707.0,"vwap":1524.9351747042022},{"time":"2026-09-14T09:55:00-04:00","bar_open":"2026-09-14T09:50:00-04:00","open":1546.699951171875,"high":1548.0,"low":1523.050048828125,"close":1524.77001953125,"volume":244401.0,"vwap":1525.5756713743713},{"time":"2026-09-14T10:00:00-04:00","bar_open":"2026-09-14T09:55:00-04:00","open":1524.7900390625,"high":1536.22998046875,"low":1524.219970703125,"close":1532.4300537109375,"volume":168743.0,"vwap":1525.8954032630731},{"time":"2026-09-14T10:05:00-04:00","bar_open":"2026-09-14T10:00:00-04:00","open":1532.0899658203125,"high":1550.0,"low":1530.9300537109375,"close":1545.655029296875,"volume":210276.0,"vwap":1527.0184360900294},{"time":"2026-09-14T10:10:00-04:00","bar_open":"2026-09-14T10:05:00-04:00","open":1545.6500244140625,"high":1556.6300048828125,"low":1543.949951171875,"close":1553.1650390625,"volume":238532.0,"vwap":1528.7749073539617},{"time":"2026-09-14T10:15:00-04:00","bar_open":"2026-09-14T10:10:00-04:00","open":1553.205078125,"high":1562.9200439453125,"low":1553.205078125,"close":1557.5699462890625,"volume":192192.0,"vwap":1530.3820984934835},{"time":"2026-09-14T10:20:00-04:00","bar_open":"2026-09-14T10:15:00-04:00","open":1558.18994140625,"high":1565.9200439453125,"low":1555.875,"close":1565.690185546875,"volume":143420.0,"vwap":1531.6522437704498},{"time":"2026-09-14T10:25:00-04:00","bar_open":"2026-09-14T10:20:00-04:00","open":1565.5,"high":1565.7196044921875,"low":1555.0,"close":1558.6085205078125,"volume":149350.0,"vwap":1532.7647776184979},{"time":"2026-09-14T10:30:00-04:00","bar_open":"2026-09-14T10:25:00-04:00","open":1557.844970703125,"high":1563.0,"low":1552.1800537109375,"close":1555.8800048828125,"volume":123115.0,"vwap":1533.5307524044724},{"time":"2026-09-14T10:35:00-04:00","bar_open":"2026-09-14T10:30:00-04:00","open":1556.3699951171875,"high":1558.6500244140625,"low":1547.280029296875,"close":1553.1949462890625,"volume":113426.0,"vwap":1534.0823633626642},{"time":"2026-09-14T10:40:00-04:00","bar_open":"2026-09-14T10:35:00-04:00","open":1553.39501953125,"high":1553.9000244140625,"low":1544.1949462890625,"close":1549.0849609375,"volume":109817.0,"vwap":1534.4814130509208},{"time":"2026-09-14T10:45:00-04:00","bar_open":"2026-09-14T10:40:00-04:00","open":1548.9599609375,"high":1558.3699951171875,"low":1548.9599609375,"close":1556.3199462890625,"volume":128309.0,"vwap":1535.0872765334668},{"time":"2026-09-14T10:50:00-04:00","bar_open":"2026-09-14T10:45:00-04:00","open":1555.6650390625,"high":1559.8499755859375,"low":1546.0,"close":1547.574951171875,"volume":125221.0,"vwap":1535.5467506945706},{"time":"2026-09-14T10:55:00-04:00","bar_open":"2026-09-14T10:50:00-04:00","open":1546.630126953125,"high":1547.140380859375,"low":1537.7200927734375,"close":1540.8389892578125,"volume":122980.0,"vwap":1535.7204388931807},{"time":"2026-09-14T11:00:00-04:00","bar_open":"2026-09-14T10:55:00-04:00","open":1540.5574951171875,"high":1544.5299072265625,"low":1538.8319091796875,"close":1543.844970703125,"volume":94279.0,"vwap":1535.8576072377125},{"time":"2026-09-14T11:05:00-04:00","bar_open":"2026-09-14T11:00:00-04:00","open":1543.6700439453125,"high":1545.155029296875,"low":1532.6600341796875,"close":1532.93994140625,"volume":113868.0,"vwap":1535.8832705668372},{"time":"2026-09-14T11:10:00-04:00","bar_open":"2026-09-14T11:05:00-04:00","open":1532.7850341796875,"high":1546.5694580078125,"low":1531.0352783203125,"close":1532.1099853515625,"volume":174054.0,"vwap":1535.9078176562557},{"time":"2026-09-14T11:15:00-04:00","bar_open":"2026-09-14T11:10:00-04:00","open":1532.989990234375,"high":1535.8800048828125,"low":1530.5118408203125,"close":1532.1400146484375,"volume":78850.0,"vwap":1535.8591044304926},{"time":"2026-09-14T11:20:00-04:00","bar_open":"2026-09-14T11:15:00-04:00","open":1532.1400146484375,"high":1536.31005859375,"low":1531.1400146484375,"close":1532.0999755859375,"volume":64268.0,"vwap":1535.824873009632},{"time":"2026-09-14T11:25:00-04:00","bar_open":"2026-09-14T11:20:00-04:00","open":1531.5999755859375,"high":1532.4150390625,"low":1525.6700439453125,"close":1529.6400146484375,"volume":101333.0,"vwap":1535.6947071991528},{"time":"2026-09-14T11:30:00-04:00","bar_open":"2026-09-14T11:25:00-04:00","open":1529.8199462890625,"high":1540.9000244140625,"low":1527.10009765625,"close":1540.5,"volume":193653.0,"vwap":1535.7118929743021},{"time":"2026-09-14T11:35:00-04:00","bar_open":"2026-09-14T11:30:00-04:00","open":1540.5,"high":1552.7900390625,"low":1540.5,"close":1548.56005859375,"volume":163858.0,"vwap":1536.057737621742},{"time":"2026-09-14T11:40:00-04:00","bar_open":"2026-09-14T11:35:00-04:00","open":1549.030029296875,"high":1550.760498046875,"low":1539.0001220703125,"close":1542.375,"volume":109353.0,"vwap":1536.2139399438422},{"time":"2026-09-14T11:45:00-04:00","bar_open":"2026-09-14T11:40:00-04:00","open":1542.5899658203125,"high":1547.1600341796875,"low":1538.68505859375,"close":1542.7000732421875,"volume":89884.0,"vwap":1536.3188964567184},{"time":"2026-09-14T11:50:00-04:00","bar_open":"2026-09-14T11:45:00-04:00","open":1543.18505859375,"high":1543.4000244140625,"low":1533.0,"close":1533.47998046875,"volume":67571.0,"vwap":1536.322513693154},{"time":"2026-09-14T11:55:00-04:00","bar_open":"2026-09-14T11:50:00-04:00","open":1533.4649658203125,"high":1537.0,"low":1529.150146484375,"close":1531.1800537109375,"volume":94146.0,"vwap":1536.2600154311583},{"time":"2026-09-14T12:00:00-04:00","bar_open":"2026-09-14T11:55:00-04:00","open":1531.1800537109375,"high":1535.7099609375,"low":1529.7552490234375,"close":1535.3956298828125,"volume":65475.0,"vwap":1536.2307651324106},{"time":"2026-09-14T12:05:00-04:00","bar_open":"2026-09-14T12:00:00-04:00","open":1535.2239990234375,"high":1536.1376953125,"low":1531.0001220703125,"close":1531.5,"volume":52627.0,"vwap":1536.201178850401},{"time":"2026-09-14T12:10:00-04:00","bar_open":"2026-09-14T12:05:00-04:00","open":1531.77001953125,"high":1533.4300537109375,"low":1528.0,"close":1528.0,"volume":71259.0,"vwap":1536.1256865662729},{"time":"2026-09-14T12:15:00-04:00","bar_open":"2026-09-14T12:10:00-04:00","open":1528.260009765625,"high":1536.5400390625,"low":1527.5999755859375,"close":1536.5400390625,"volume":79936.0,"vwap":1536.0921352678606},{"time":"2026-09-14T12:20:00-04:00","bar_open":"2026-09-14T12:15:00-04:00","open":1536.0,"high":1546.72998046875,"low":1535.0799560546875,"close":1544.8599853515625,"volume":123824.0,"vwap":1536.2138673851136},{"time":"2026-09-14T12:25:00-04:00","bar_open":"2026-09-14T12:20:00-04:00","open":1544.4000244140625,"high":1545.8699951171875,"low":1538.4200439453125,"close":1545.5899658203125,"volume":69485.0,"vwap":1536.2918749141936},{"time":"2026-09-14T12:30:00-04:00","bar_open":"2026-09-14T12:25:00-04:00","open":1545.6600341796875,"high":1546.0,"low":1539.31005859375,"close":1543.4300537109375,"volume":45657.0,"vwap":1536.3394714432673},{"time":"2026-09-14T12:35:00-04:00","bar_open":"2026-09-14T12:30:00-04:00","open":1542.8599853515625,"high":1545.5999755859375,"low":1541.800048828125,"close":1543.1300048828125,"volume":34298.0,"vwap":1536.3779832192945},{"time":"2026-09-14T12:40:00-04:00","bar_open":"2026-09-14T12:35:00-04:00","open":1543.3699951171875,"high":1546.949951171875,"low":1542.75,"close":1546.2900390625,"volume":49502.0,"vwap":1536.4468425719297},{"time":"2026-09-14T12:45:00-04:00","bar_open":"2026-09-14T12:40:00-04:00","open":1545.925048828125,"high":1547.4659423828125,"low":1543.010009765625,"close":1547.10498046875,"volume":38608.0,"vwap":1536.502979516773},{"time":"2026-09-14T12:50:00-04:00","bar_open":"2026-09-14T12:45:00-04:00","open":1547.1199951171875,"high":1549.52001953125,"low":1545.0400390625,"close":1547.824951171875,"volume":58520.0,"vwap":1536.6011490612373},{"time":"2026-09-14T12:55:00-04:00","bar_open":"2026-09-14T12:50:00-04:00","open":1547.974365234375,"high":1554.1199951171875,"low":1547.1400146484375,"close":1550.0849609375,"volume":80298.0,"vwap":1536.7692901821556},{"time":"2026-09-14T13:00:00-04:00","bar_open":"2026-09-14T12:55:00-04:00","open":1550.5699462890625,"high":1555.3199462890625,"low":1549.800048828125,"close":1554.9599609375,"volume":66768.0,"vwap":1536.9351258996},{"time":"2026-09-14T13:05:00-04:00","bar_open":"2026-09-14T13:00:00-04:00","open":1554.5999755859375,"high":1560.5,"low":1553.0899658203125,"close":1558.239990234375,"volume":93408.0,"vwap":1537.2156574146293},{"time":"2026-09-14T13:10:00-04:00","bar_open":"2026-09-14T13:05:00-04:00","open":1559.0,"high":1567.7099609375,"low":1558.677490234375,"close":1566.89501953125,"volume":126313.0,"vwap":1537.7138476513244},{"time":"2026-09-14T13:15:00-04:00","bar_open":"2026-09-14T13:10:00-04:00","open":1567.1473388671875,"high":1570.69189453125,"low":1564.0,"close":1566.2801513671875,"volume":114388.0,"vwap":1538.1913248399496},{"time":"2026-09-14T13:20:00-04:00","bar_open":"2026-09-14T13:15:00-04:00","open":1566.0001220703125,"high":1571.35693359375,"low":1564.0,"close":1567.8499755859375,"volume":91516.0,"vwap":1538.5718548499167},{"time":"2026-09-14T13:25:00-04:00","bar_open":"2026-09-14T13:20:00-04:00","open":1567.81005859375,"high":1571.929931640625,"low":1567.530029296875,"close":1570.114990234375,"volume":62350.0,"vwap":1538.844009994729},{"time":"2026-09-14T13:30:00-04:00","bar_open":"2026-09-14T13:25:00-04:00","open":1570.943359375,"high":1571.760009765625,"low":1567.2900390625,"close":1571.2900390625,"volume":51223.0,"vwap":1539.0658883410024},{"time":"2026-09-14T13:35:00-04:00","bar_open":"2026-09-14T13:30:00-04:00","open":1571.199951171875,"high":1573.2197265625,"low":1568.3797607421875,"close":1569.2950439453125,"volume":66638.0,"vwap":1539.3515593470454},{"time":"2026-09-14T13:40:00-04:00","bar_open":"2026-09-14T13:35:00-04:00","open":1568.8699951171875,"high":1571.989990234375,"low":1566.6800537109375,"close":1571.8499755859375,"volume":52818.0,"vwap":1539.5734009073196},{"time":"2026-09-14T13:45:00-04:00","bar_open":"2026-09-14T13:40:00-04:00","open":1570.77001953125,"high":1573.0999755859375,"low":1568.8634033203125,"close":1571.8599853515625,"volume":42778.0,"vwap":1539.757127950903},{"time":"2026-09-14T13:50:00-04:00","bar_open":"2026-09-14T13:45:00-04:00","open":1572.3299560546875,"high":1577.77001953125,"low":1571.7342529296875,"close":1575.5,"volume":69709.0,"vwap":1540.0868699485836},{"time":"2026-09-14T13:55:00-04:00","bar_open":"2026-09-14T13:50:00-04:00","open":1575.0201416015625,"high":1579.010009765625,"low":1574.8568115234375,"close":1577.3499755859375,"volume":52296.0,"vwap":1540.3446549925482},{"time":"2026-09-14T14:00:00-04:00","bar_open":"2026-09-14T13:55:00-04:00","open":1577.6700439453125,"high":1581.83984375,"low":1576.219970703125,"close":1578.52001953125,"volume":82930.0,"vwap":1540.7657014248732},{"time":"2026-09-14T14:05:00-04:00","bar_open":"2026-09-14T14:00:00-04:00","open":1578.5250244140625,"high":1581.7606201171875,"low":1572.8873291015625,"close":1576.010009765625,"volume":93190.0,"vwap":1541.204033333384},{"time":"2026-09-14T14:10:00-04:00","bar_open":"2026-09-14T14:05:00-04:00","open":1576.1650390625,"high":1580.010009765625,"low":1574.550048828125,"close":1579.4300537109375,"volume":59640.0,"vwap":1541.4875781276935},{"time":"2026-09-14T14:15:00-04:00","bar_open":"2026-09-14T14:10:00-04:00","open":1578.52001953125,"high":1578.52001953125,"low":1571.3712158203125,"close":1572.9549560546875,"volume":51415.0,"vwap":1541.7040181633467},{"time":"2026-09-14T14:20:00-04:00","bar_open":"2026-09-14T14:15:00-04:00","open":1572.81005859375,"high":1574.72802734375,"low":1569.8499755859375,"close":1570.239990234375,"volume":53436.0,"vwap":1541.9077280095041},{"time":"2026-09-14T14:25:00-04:00","bar_open":"2026-09-14T14:20:00-04:00","open":1570.0,"high":1572.1700439453125,"low":1564.000732421875,"close":1565.6700439453125,"volume":85191.0,"vwap":1542.1803396718124},{"time":"2026-09-14T14:30:00-04:00","bar_open":"2026-09-14T14:25:00-04:00","open":1565.0849609375,"high":1567.6199951171875,"low":1563.0,"close":1564.308349609375,"volume":54850.0,"vwap":1542.3369511858841},{"time":"2026-09-14T14:35:00-04:00","bar_open":"2026-09-14T14:30:00-04:00","open":1564.6300048828125,"high":1566.9000244140625,"low":1563.53466796875,"close":1566.300048828125,"volume":45887.0,"vwap":1542.4697682004676},{"time":"2026-09-14T14:40:00-04:00","bar_open":"2026-09-14T14:35:00-04:00","open":1565.6199951171875,"high":1567.0,"low":1563.8555908203125,"close":1564.302001953125,"volume":32531.0,"vwap":1542.5608899950423},{"time":"2026-09-14T14:45:00-04:00","bar_open":"2026-09-14T14:40:00-04:00","open":1564.550048828125,"high":1566.08984375,"low":1562.8485107421875,"close":1564.469970703125,"volume":39101.0,"vwap":1542.666632137571},{"time":"2026-09-14T14:50:00-04:00","bar_open":"2026-09-14T14:45:00-04:00","open":1563.9949951171875,"high":1565.0,"low":1560.5526123046875,"close":1563.8599853515625,"volume":47508.0,"vwap":1542.7859789673425},{"time":"2026-09-14T14:55:00-04:00","bar_open":"2026-09-14T14:50:00-04:00","open":1563.929931640625,"high":1567.659912109375,"low":1562.9000244140625,"close":1566.8612060546875,"volume":47031.0,"vwap":1542.9180834469319},{"time":"2026-09-14T15:00:00-04:00","bar_open":"2026-09-14T14:55:00-04:00","open":1566.625,"high":1567.0953369140625,"low":1562.10009765625,"close":1564.0526123046875,"volume":38180.0,"vwap":1543.0177666566688},{"time":"2026-09-14T15:05:00-04:00","bar_open":"2026-09-14T15:00:00-04:00","open":1564.3199462890625,"high":1565.43994140625,"low":1563.070068359375,"close":1564.6199951171875,"volume":35393.0,"vwap":1543.1091828056824},{"time":"2026-09-14T15:10:00-04:00","bar_open":"2026-09-14T15:05:00-04:00","open":1564.5550537109375,"high":1567.198974609375,"low":1560.8800048828125,"close":1561.7650146484375,"volume":40225.0,"vwap":1543.2068317186233},{"time":"2026-09-14T15:15:00-04:00","bar_open":"2026-09-14T15:10:00-04:00","open":1561.8499755859375,"high":1562.81005859375,"low":1556.0,"close":1558.530029296875,"volume":58856.0,"vwap":1543.3187034102473},{"time":"2026-09-14T15:20:00-04:00","bar_open":"2026-09-14T15:15:00-04:00","open":1558.530029296875,"high":1562.342041015625,"low":1556.7950439453125,"close":1561.6500244140625,"volume":34742.0,"vwap":1543.3887548295706},{"time":"2026-09-14T15:25:00-04:00","bar_open":"2026-09-14T15:20:00-04:00","open":1562.1300048828125,"high":1562.619873046875,"low":1557.300048828125,"close":1559.760009765625,"volume":42467.0,"vwap":1543.4717439001518},{"time":"2026-09-14T15:30:00-04:00","bar_open":"2026-09-14T15:25:00-04:00","open":1559.77001953125,"high":1561.2650146484375,"low":1558.1099853515625,"close":1558.239990234375,"volume":33824.0,"vwap":1543.5345024848207},{"time":"2026-09-14T15:35:00-04:00","bar_open":"2026-09-14T15:30:00-04:00","open":1558.9200439453125,"high":1560.869873046875,"low":1557.489990234375,"close":1559.4300537109375,"volume":42145.0,"vwap":1543.612291486171},{"time":"2026-09-14T15:40:00-04:00","bar_open":"2026-09-14T15:35:00-04:00","open":1559.010009765625,"high":1559.8800048828125,"low":1556.8800048828125,"close":1559.5699462890625,"volume":45411.0,"vwap":1543.692672496329},{"time":"2026-09-14T15:45:00-04:00","bar_open":"2026-09-14T15:40:00-04:00","open":1559.7899169921875,"high":1564.1300048828125,"low":1557.5799560546875,"close":1563.8499755859375,"volume":67925.0,"vwap":1543.8355287648517},{"time":"2026-09-14T15:50:00-04:00","bar_open":"2026-09-14T15:45:00-04:00","open":1563.81005859375,"high":1565.0,"low":1560.76220703125,"close":1564.27001953125,"volume":51134.0,"vwap":1543.9503729500982},{"time":"2026-09-14T15:55:00-04:00","bar_open":"2026-09-14T15:50:00-04:00","open":1563.9599609375,"high":1565.0,"low":1549.9951171875,"close":1552.8558349609375,"volume":163386.0,"vwap":1544.171924705161},{"time":"2026-09-14T16:00:00-04:00","bar_open":"2026-09-14T15:55:00-04:00","open":1553.010009765625,"high":1559.829833984375,"low":1550.5899658203125,"close":1551.2099609375,"volume":216581.0,"vwap":1544.4037607929213}],"fills":[{"time":"2026-09-14T09:45:00-04:00","action":"B","shares":10,"quantity":10,"price":1519.4693159179687,"reference_price":1518.7099609375,"shares_before":0,"shares_after":10,"assumed_cost":7.5935498046875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:45:00-04:00","pnl":null},{"time":"2026-09-14T09:50:00-04:00","action":"B","shares":9,"quantity":9,"price":1547.473301147461,"reference_price":1546.699951171875,"shares_before":10,"shares_after":19,"assumed_cost":6.960149780273437,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:50:00-04:00","pnl":null},{"time":"2026-09-14T09:55:00-04:00","action":"S","shares":16,"quantity":-16,"price":1524.0276440429689,"reference_price":1524.7900390625,"shares_before":19,"shares_after":3,"assumed_cost":12.1983203125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:55:00-04:00","pnl":null},{"time":"2026-09-14T10:00:00-04:00","action":"B","shares":7,"quantity":7,"price":1532.8560108032225,"reference_price":1532.0899658203125,"shares_before":3,"shares_after":10,"assumed_cost":5.362314880371094,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:00:00-04:00","pnl":null},{"time":"2026-09-14T10:05:00-04:00","action":"S","shares":3,"quantity":-3,"price":1544.8771994018557,"reference_price":1545.6500244140625,"shares_before":10,"shares_after":7,"assumed_cost":2.3184750366210936,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:05:00-04:00","pnl":null},{"time":"2026-09-14T10:30:00-04:00","action":"S","shares":1,"quantity":-1,"price":1555.591810119629,"reference_price":1556.3699951171875,"shares_before":7,"shares_after":6,"assumed_cost":0.7781849975585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:30:00-04:00","pnl":null},{"time":"2026-09-14T10:35:00-04:00","action":"B","shares":1,"quantity":1,"price":1554.1717170410154,"reference_price":1553.39501953125,"shares_before":6,"shares_after":7,"assumed_cost":0.776697509765625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:35:00-04:00","pnl":null},{"time":"2026-09-14T10:40:00-04:00","action":"B","shares":2,"quantity":2,"price":1549.7344409179686,"reference_price":1548.9599609375,"shares_before":7,"shares_after":9,"assumed_cost":1.5489599609375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:40:00-04:00","pnl":null},{"time":"2026-09-14T10:45:00-04:00","action":"B","shares":3,"quantity":3,"price":1556.442871582031,"reference_price":1555.6650390625,"shares_before":9,"shares_after":12,"assumed_cost":2.33349755859375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:45:00-04:00","pnl":null},{"time":"2026-09-14T10:50:00-04:00","action":"S","shares":5,"quantity":-5,"price":1545.8568118896485,"reference_price":1546.630126953125,"shares_before":12,"shares_after":7,"assumed_cost":3.866575317382813,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:50:00-04:00","pnl":null},{"time":"2026-09-14T10:55:00-04:00","action":"B","shares":1,"quantity":1,"price":1541.327773864746,"reference_price":1540.5574951171875,"shares_before":7,"shares_after":8,"assumed_cost":0.7702787475585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:55:00-04:00","pnl":null},{"time":"2026-09-14T11:10:00-04:00","action":"B","shares":5,"quantity":5,"price":1533.756485229492,"reference_price":1532.989990234375,"shares_before":8,"shares_after":13,"assumed_cost":3.832474975585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:10:00-04:00","pnl":null},{"time":"2026-09-14T11:15:00-04:00","action":"B","shares":2,"quantity":2,"price":1532.9060846557616,"reference_price":1532.1400146484375,"shares_before":13,"shares_after":15,"assumed_cost":1.5321400146484374,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:15:00-04:00","pnl":null},{"time":"2026-09-14T11:20:00-04:00","action":"S","shares":1,"quantity":-1,"price":1530.8341755981446,"reference_price":1531.5999755859375,"shares_before":15,"shares_after":14,"assumed_cost":0.7657999877929688,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:20:00-04:00","pnl":null},{"time":"2026-09-14T11:25:00-04:00","action":"S","shares":1,"quantity":-1,"price":1529.055036315918,"reference_price":1529.8199462890625,"shares_before":14,"shares_after":13,"assumed_cost":0.7649099731445312,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:25:00-04:00","pnl":null},{"time":"2026-09-14T11:30:00-04:00","action":"S","shares":1,"quantity":-1,"price":1539.7297500000002,"reference_price":1540.5,"shares_before":13,"shares_after":12,"assumed_cost":0.77025,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:30:00-04:00","pnl":null},{"time":"2026-09-14T11:35:00-04:00","action":"S","shares":7,"quantity":-7,"price":1548.2555142822266,"reference_price":1549.030029296875,"shares_before":12,"shares_after":5,"assumed_cost":5.421605102539062,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:35:00-04:00","pnl":null},{"time":"2026-09-14T11:40:00-04:00","action":"S","shares":1,"quantity":-1,"price":1541.8186708374024,"reference_price":1542.5899658203125,"shares_before":5,"shares_after":4,"assumed_cost":0.7712949829101563,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:40:00-04:00","pnl":null},{"time":"2026-09-14T11:45:00-04:00","action":"S","shares":3,"quantity":-3,"price":1542.4134660644531,"reference_price":1543.18505859375,"shares_before":4,"shares_after":1,"assumed_cost":2.314777587890625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:45:00-04:00","pnl":null},{"time":"2026-09-14T11:50:00-04:00","action":"B","shares":6,"quantity":6,"price":1534.2316983032226,"reference_price":1533.4649658203125,"shares_before":1,"shares_after":7,"assumed_cost":4.600394897460937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:50:00-04:00","pnl":null},{"time":"2026-09-14T12:00:00-04:00","action":"S","shares":1,"quantity":-1,"price":1534.4563870239258,"reference_price":1535.2239990234375,"shares_before":7,"shares_after":6,"assumed_cost":0.7676119995117188,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:00:00-04:00","pnl":null},{"time":"2026-09-14T12:20:00-04:00","action":"S","shares":6,"quantity":-6,"price":1543.6278244018556,"reference_price":1544.4000244140625,"shares_before":6,"shares_after":0,"assumed_cost":4.633200073242188,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:20:00-04:00","pnl":null},{"time":"2026-09-14T13:05:00-04:00","action":"B","shares":4,"quantity":4,"price":1559.7795,"reference_price":1559.0,"shares_before":0,"shares_after":4,"assumed_cost":3.118,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:05:00-04:00","pnl":null},{"time":"2026-09-14T13:30:00-04:00","action":"S","shares":1,"quantity":-1,"price":1570.414351196289,"reference_price":1571.199951171875,"shares_before":4,"shares_after":3,"assumed_cost":0.7855999755859375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:30:00-04:00","pnl":null},{"time":"2026-09-14T13:35:00-04:00","action":"S","shares":1,"quantity":-1,"price":1568.085560119629,"reference_price":1568.8699951171875,"shares_before":3,"shares_after":2,"assumed_cost":0.7844349975585938,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:35:00-04:00","pnl":null},{"time":"2026-09-14T13:45:00-04:00","action":"B","shares":4,"quantity":4,"price":1573.1161210327148,"reference_price":1572.3299560546875,"shares_before":2,"shares_after":6,"assumed_cost":3.144659912109375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:45:00-04:00","pnl":null},{"time":"2026-09-14T13:55:00-04:00","action":"S","shares":1,"quantity":-1,"price":1576.88120892334,"reference_price":1577.6700439453125,"shares_before":6,"shares_after":5,"assumed_cost":0.7888350219726562,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:55:00-04:00","pnl":null},{"time":"2026-09-14T14:00:00-04:00","action":"B","shares":1,"quantity":1,"price":1579.3142869262697,"reference_price":1578.5250244140625,"shares_before":5,"shares_after":6,"assumed_cost":0.7892625122070313,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:00:00-04:00","pnl":null},{"time":"2026-09-14T14:10:00-04:00","action":"S","shares":1,"quantity":-1,"price":1577.7307595214843,"reference_price":1578.52001953125,"shares_before":6,"shares_after":5,"assumed_cost":0.789260009765625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:10:00-04:00","pnl":null},{"time":"2026-09-14T14:15:00-04:00","action":"S","shares":3,"quantity":-3,"price":1572.0236535644533,"reference_price":1572.81005859375,"shares_before":5,"shares_after":2,"assumed_cost":2.359215087890625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:15:00-04:00","pnl":null},{"time":"2026-09-14T14:45:00-04:00","action":"S","shares":1,"quantity":-1,"price":1563.212997619629,"reference_price":1563.9949951171875,"shares_before":2,"shares_after":1,"assumed_cost":0.7819974975585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:45:00-04:00","pnl":null},{"time":"2026-09-14T14:50:00-04:00","action":"S","shares":1,"quantity":-1,"price":1563.1479666748048,"reference_price":1563.929931640625,"shares_before":1,"shares_after":0,"assumed_cost":0.7819649658203125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:50:00-04:00","pnl":null},{"time":"2026-09-14T14:50:00-04:00","action":"X","shares":2,"quantity":-2,"price":1563.1479666748048,"reference_price":1563.929931640625,"shares_before":0,"shares_after":-2,"assumed_cost":1.563929931640625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:50:00-04:00","pnl":null},{"time":"2026-09-14T15:00:00-04:00","action":"X","shares":3,"quantity":-3,"price":1563.537786315918,"reference_price":1564.3199462890625,"shares_before":-2,"shares_after":-5,"assumed_cost":2.3464799194335937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:00:00-04:00","pnl":null},{"time":"2026-09-14T15:05:00-04:00","action":"C","shares":1,"quantity":1,"price":1565.3373312377928,"reference_price":1564.5550537109375,"shares_before":-5,"shares_after":-4,"assumed_cost":0.7822775268554687,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:05:00-04:00","pnl":null},{"time":"2026-09-14T15:10:00-04:00","action":"X","shares":3,"quantity":-3,"price":1561.0690505981447,"reference_price":1561.8499755859375,"shares_before":-4,"shares_after":-7,"assumed_cost":2.3427749633789063,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:10:00-04:00","pnl":null},{"time":"2026-09-14T15:15:00-04:00","action":"X","shares":5,"quantity":-5,"price":1557.7507642822266,"reference_price":1558.530029296875,"shares_before":-7,"shares_after":-12,"assumed_cost":3.896325073242188,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:15:00-04:00","pnl":null},{"time":"2026-09-14T15:20:00-04:00","action":"C","shares":1,"quantity":1,"price":1562.9110698852537,"reference_price":1562.1300048828125,"shares_before":-12,"shares_after":-11,"assumed_cost":0.7810650024414062,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:20:00-04:00","pnl":null},{"time":"2026-09-14T15:30:00-04:00","action":"C","shares":4,"quantity":4,"price":1559.6995039672852,"reference_price":1558.9200439453125,"shares_before":-11,"shares_after":-7,"assumed_cost":3.117840087890625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:30:00-04:00","pnl":null},{"time":"2026-09-14T15:35:00-04:00","action":"X","shares":2,"quantity":-2,"price":1558.2305047607422,"reference_price":1559.010009765625,"shares_before":-7,"shares_after":-9,"assumed_cost":1.559010009765625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:35:00-04:00","pnl":null},{"time":"2026-09-14T15:45:00-04:00","action":"C","shares":2,"quantity":2,"price":1564.5919636230467,"reference_price":1563.81005859375,"shares_before":-9,"shares_after":-7,"assumed_cost":1.56381005859375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:45:00-04:00","pnl":null},{"time":"2026-09-14T15:55:00-04:00","action":"C","shares":7,"quantity":7,"price":1553.7865147705077,"reference_price":1553.010009765625,"shares_before":-7,"shares_after":0,"assumed_cost":5.435535034179687,"commission_cost":0.0,"signal_data_cutoff":null,"pnl":null}],"marks":[{"time":"2026-09-14T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-14T09:40:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-14T09:45:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-14T09:50:00-04:00","shares":10,"pnl":265.3068408203126},{"time":"2026-09-14T09:55:00-04:00","shares":19,"pnl":-151.32249841308658},{"time":"2026-09-14T10:00:00-04:00","shares":3,"pnl":-140.22040368652233},{"time":"2026-09-14T10:05:00-04:00","shares":10,"pnl":-10.952347473143163},{"time":"2026-09-14T10:10:00-04:00","shares":7,"pnl":39.28423120117441},{"time":"2026-09-14T10:15:00-04:00","shares":7,"pnl":70.1185817871119},{"time":"2026-09-14T10:20:00-04:00","shares":7,"pnl":126.9602565917994},{"time":"2026-09-14T10:25:00-04:00","shares":7,"pnl":77.3886013183619},{"time":"2026-09-14T10:30:00-04:00","shares":7,"pnl":58.28899194336191},{"time":"2026-09-14T10:35:00-04:00","shares":6,"pnl":41.89044561767878},{"time":"2026-09-14T10:40:00-04:00","shares":7,"pnl":12.143777404788125},{"time":"2026-09-14T10:45:00-04:00","shares":9,"pnl":75.95968560791334},{"time":"2026-09-14T10:50:00-04:00","shares":12,"pnl":-29.349031677244056},{"time":"2026-09-14T10:55:00-04:00","shares":7,"pnl":-85.0914614868143},{"time":"2026-09-14T11:00:00-04:00","shares":8,"pnl":-61.53239453124843},{"time":"2026-09-14T11:05:00-04:00","shares":8,"pnl":-148.77262890624843},{"time":"2026-09-14T11:10:00-04:00","shares":8,"pnl":-155.41227734374843},{"time":"2026-09-14T11:15:00-04:00","shares":13,"pnl":-163.2543958740207},{"time":"2026-09-14T11:20:00-04:00","shares":15,"pnl":-165.3871218261702},{"time":"2026-09-14T11:25:00-04:00","shares":14,"pnl":-201.09237493896217},{"time":"2026-09-14T11:30:00-04:00","shares":13,"pnl":-60.4975437011708},{"time":"2026-09-14T11:35:00-04:00","shares":12,"pnl":35.452909423827805},{"time":"2026-09-14T11:40:00-04:00","shares":5,"pnl":2.3958062744131894},{"time":"2026-09-14T11:45:00-04:00","shares":4,"pnl":3.1397700805655404},{"time":"2026-09-14T11:50:00-04:00","shares":1,"pnl":-6.940144226075063},{"time":"2026-09-14T11:55:00-04:00","shares":7,"pnl":-27.54993853759879},{"time":"2026-09-14T12:00:00-04:00","shares":7,"pnl":1.9590946655262087},{"time":"2026-09-14T12:05:00-04:00","shares":6,"pnl":-22.353927490235947},{"time":"2026-09-14T12:10:00-04:00","shares":6,"pnl":-43.35392749023595},{"time":"2026-09-14T12:15:00-04:00","shares":6,"pnl":7.886306884764053},{"time":"2026-09-14T12:20:00-04:00","shares":6,"pnl":57.80598461913905},{"time":"2026-09-14T12:25:00-04:00","shares":0,"pnl":50.41301892089723},{"time":"2026-09-14T12:30:00-04:00","shares":0,"pnl":50.41301892089723},{"time":"2026-09-14T12:35:00-04:00","shares":0,"pnl":50.41301892089723},{"time":"2026-09-14T12:40:00-04:00","shares":0,"pnl":50.41301892089723},{"time":"2026-09-14T12:45:00-04:00","shares":0,"pnl":50.41301892089723},{"time":"2026-09-14T12:50:00-04:00","shares":0,"pnl":50.41301892089723},{"time":"2026-09-14T12:55:00-04:00","shares":0,"pnl":50.41301892089723},{"time":"2026-09-14T13:00:00-04:00","shares":0,"pnl":50.41301892089723},{"time":"2026-09-14T13:05:00-04:00","shares":0,"pnl":50.41301892089723},{"time":"2026-09-14T13:10:00-04:00","shares":4,"pnl":78.87509704589775},{"time":"2026-09-14T13:15:00-04:00","shares":4,"pnl":76.41562438964775},{"time":"2026-09-14T13:20:00-04:00","shares":4,"pnl":82.69492126464775},{"time":"2026-09-14T13:25:00-04:00","shares":4,"pnl":91.75497985839776},{"time":"2026-09-14T13:30:00-04:00","shares":4,"pnl":96.45517517089776},{"time":"2026-09-14T13:35:00-04:00","shares":3,"pnl":89.59450195312456},{"time":"2026-09-14T13:40:00-04:00","shares":2,"pnl":93.49488140869109},{"time":"2026-09-14T13:45:00-04:00","shares":2,"pnl":93.51490093994109},{"time":"2026-09-14T13:50:00-04:00","shares":6,"pnl":110.33044610595609},{"time":"2026-09-14T13:55:00-04:00","shares":6,"pnl":121.43029962158109},{"time":"2026-09-14T14:00:00-04:00","shares":5,"pnl":126.8117526855458},{"time":"2026-09-14T14:05:00-04:00","shares":6,"pnl":110.95742669677566},{"time":"2026-09-14T14:10:00-04:00","shares":6,"pnl":131.47769036865066},{"time":"2026-09-14T14:15:00-04:00","shares":5,"pnl":97.40290789794744},{"time":"2026-09-14T14:20:00-04:00","shares":2,"pnl":89.17906878661961},{"time":"2026-09-14T14:25:00-04:00","shares":2,"pnl":80.03917620849461},{"time":"2026-09-14T14:30:00-04:00","shares":2,"pnl":77.31578753661961},{"time":"2026-09-14T14:35:00-04:00","shares":2,"pnl":81.29918597411961},{"time":"2026-09-14T14:40:00-04:00","shares":2,"pnl":77.30309222411961},{"time":"2026-09-14T14:45:00-04:00","shares":2,"pnl":77.63902972411961},{"time":"2026-09-14T14:50:00-04:00","shares":1,"pnl":75.77207128906116},{"time":"2026-09-14T14:55:00-04:00","shares":-2,"pnl":67.63357385253812},{"time":"2026-09-14T15:00:00-04:00","shares":-2,"pnl":73.25076135253812},{"time":"2026-09-14T15:05:00-04:00","shares":-5,"pnl":68.86936932372919},{"time":"2026-09-14T15:10:00-04:00","shares":-4,"pnl":79.57195507812412},{"time":"2026-09-14T15:15:00-04:00","shares":-7,"pnl":100.12896038818326},{"time":"2026-09-14T15:20:00-04:00","shares":-12,"pnl":58.792693908690126},{"time":"2026-09-14T15:25:00-04:00","shares":-11,"pnl":78.32180957031233},{"time":"2026-09-14T15:30:00-04:00","shares":-11,"pnl":95.04202441406233},{"time":"2026-09-14T15:35:00-04:00","shares":-7,"pnl":80.8735251464841},{"time":"2026-09-14T15:40:00-04:00","shares":-9,"pnl":77.21539404296891},{"time":"2026-09-14T15:45:00-04:00","shares":-9,"pnl":38.69513037109391},{"time":"2026-09-14T15:50:00-04:00","shares":-7,"pnl":34.270846679688475},{"time":"2026-09-14T15:55:00-04:00","shares":-7,"pnl":114.17013867187596},{"time":"2026-09-14T16:00:00-04:00","shares":0,"pnl":107.65538000488414}],"summary":{"net_pnl":107.65538000488414,"gross_pnl":215.84912109375134,"cost":108.1937410888672,"fill_count":42,"ending_shares":0},"source_hashes":{"fills_sha256":"01fcf2df9f64c849643ca0e1fc127cd346a39945be7bb10dae149795e2343da0","marks_sha256":"577b2458e7ae502448b0385c5f47edd9c653ee8f8ad4decb9a64ddb3418662f7","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-14/context/TSLA.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"TSLA","date":"2026-09-14","variant":"context","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-14T16:00:00-04:00","partial":false,"starting_equity":47006.42,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-14T09:30:00-04:00","session_close":"2026-09-14T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-14T09:35:00-04:00","bar_open":"2026-09-14T09:30:00-04:00","open":359.95001220703125,"high":367.7300109863281,"low":359.08428955078125,"close":365.3699951171875,"volume":2850992.0,"vwap":364.0614318847656},{"time":"2026-09-14T09:40:00-04:00","bar_open":"2026-09-14T09:35:00-04:00","open":365.33099365234375,"high":365.92999267578125,"low":360.92999267578125,"close":361.6700134277344,"volume":1102590.0,"vwap":363.7217238097924},{"time":"2026-09-14T09:45:00-04:00","bar_open":"2026-09-14T09:40:00-04:00","open":361.70001220703125,"high":362.20001220703125,"low":359.9599914550781,"close":361.81500244140625,"volume":1020613.0,"vwap":363.22996074034273},{"time":"2026-09-14T09:50:00-04:00","bar_open":"2026-09-14T09:45:00-04:00","open":361.7300109863281,"high":361.7300109863281,"low":359.91009521484375,"close":360.68560791015625,"volume":699512.0,"vwap":362.92731769099527},{"time":"2026-09-14T09:55:00-04:00","bar_open":"2026-09-14T09:50:00-04:00","open":360.7049865722656,"high":362.4200134277344,"low":360.6199951171875,"close":361.8597106933594,"volume":634621.0,"vwap":362.79713279264},{"time":"2026-09-14T10:00:00-04:00","bar_open":"2026-09-14T09:55:00-04:00","open":361.81500244140625,"high":361.8450012207031,"low":360.05999755859375,"close":360.2099914550781,"volume":436987.0,"vwap":362.6615963121137},{"time":"2026-09-14T10:05:00-04:00","bar_open":"2026-09-14T10:00:00-04:00","open":360.2250061035156,"high":360.7900085449219,"low":359.7601013183594,"close":360.20001220703125,"volume":468674.0,"vwap":362.50492384982},{"time":"2026-09-14T10:10:00-04:00","bar_open":"2026-09-14T10:05:00-04:00","open":360.09039306640625,"high":361.79998779296875,"low":359.9100036621094,"close":360.989990234375,"volume":512315.0,"vwap":362.3985043135135},{"time":"2026-09-14T10:15:00-04:00","bar_open":"2026-09-14T10:10:00-04:00","open":360.9200134277344,"high":361.44989013671875,"low":360.3800048828125,"close":360.8999938964844,"volume":341488.0,"vwap":362.3354983503418},{"time":"2026-09-14T10:20:00-04:00","bar_open":"2026-09-14T10:15:00-04:00","open":360.80999755859375,"high":361.0600891113281,"low":358.6099853515625,"close":358.8349914550781,"volume":973513.0,"vwap":362.0303708722617},{"time":"2026-09-14T10:25:00-04:00","bar_open":"2026-09-14T10:20:00-04:00","open":358.8349914550781,"high":359.3799133300781,"low":357.489990234375,"close":357.489990234375,"volume":652812.0,"vwap":361.7670400150353},{"time":"2026-09-14T10:30:00-04:00","bar_open":"2026-09-14T10:25:00-04:00","open":357.489990234375,"high":358.3815002441406,"low":357.0400085449219,"close":358.3380126953125,"volume":659167.0,"vwap":361.52209870306507},{"time":"2026-09-14T10:35:00-04:00","bar_open":"2026-09-14T10:30:00-04:00","open":358.29168701171875,"high":359.13720703125,"low":357.70001220703125,"close":359.0,"volume":585737.0,"vwap":361.3662973353699},{"time":"2026-09-14T10:40:00-04:00","bar_open":"2026-09-14T10:35:00-04:00","open":359.0,"high":359.2300109863281,"low":358.1199951171875,"close":358.25689697265625,"volume":399648.0,"vwap":361.2665264718505},{"time":"2026-09-14T10:45:00-04:00","bar_open":"2026-09-14T10:40:00-04:00","open":358.20001220703125,"high":358.80999755859375,"low":357.80999755859375,"close":358.760009765625,"volume":354819.0,"vwap":361.1813672500075},{"time":"2026-09-14T10:50:00-04:00","bar_open":"2026-09-14T10:45:00-04:00","open":358.7099914550781,"high":359.3800048828125,"low":358.5899963378906,"close":359.2200012207031,"volume":293048.0,"vwap":361.1295853703443},{"time":"2026-09-14T10:55:00-04:00","bar_open":"2026-09-14T10:50:00-04:00","open":359.19000244140625,"high":359.260009765625,"low":358.4100036621094,"close":358.57501220703125,"volume":257549.0,"vwap":361.0794969496788},{"time":"2026-09-14T11:00:00-04:00","bar_open":"2026-09-14T10:55:00-04:00","open":358.5799865722656,"high":358.7200012207031,"low":358.05999755859375,"close":358.57000732421875,"volume":221596.0,"vwap":361.0327537709288},{"time":"2026-09-14T11:05:00-04:00","bar_open":"2026-09-14T11:00:00-04:00","open":358.6099853515625,"high":359.0299987792969,"low":358.4284973144531,"close":358.5249938964844,"volume":230529.0,"vwap":360.9896920719857},{"time":"2026-09-14T11:10:00-04:00","bar_open":"2026-09-14T11:05:00-04:00","open":358.5249938964844,"high":359.5799865722656,"low":358.45001220703125,"close":359.0799865722656,"volume":323602.0,"vwap":360.9411503182876},{"time":"2026-09-14T11:15:00-04:00","bar_open":"2026-09-14T11:10:00-04:00","open":359.0849914550781,"high":359.79998779296875,"low":359.0400085449219,"close":359.42999267578125,"volume":303053.0,"vwap":360.90662470382296},{"time":"2026-09-14T11:20:00-04:00","bar_open":"2026-09-14T11:15:00-04:00","open":359.4407958984375,"high":359.9490051269531,"low":359.1783142089844,"close":359.3450012207031,"volume":255463.0,"vwap":360.87998684448866},{"time":"2026-09-14T11:25:00-04:00","bar_open":"2026-09-14T11:20:00-04:00","open":359.3301086425781,"high":360.5,"low":359.2001037597656,"close":360.2900085449219,"volume":355101.0,"vwap":360.85747590441093},{"time":"2026-09-14T11:30:00-04:00","bar_open":"2026-09-14T11:25:00-04:00","open":360.260009765625,"high":360.7699890136719,"low":360.0,"close":360.1368103027344,"volume":413640.0,"vwap":360.8414686737108},{"time":"2026-09-14T11:35:00-04:00","bar_open":"2026-09-14T11:30:00-04:00","open":360.114990234375,"high":362.1499938964844,"low":359.90008544921875,"close":362.14990234375,"volume":539979.0,"vwap":360.8617273503314},{"time":"2026-09-14T11:40:00-04:00","bar_open":"2026-09-14T11:35:00-04:00","open":362.0400085449219,"high":363.1499938964844,"low":361.7200012207031,"close":362.9097900390625,"volume":546019.0,"vwap":360.922988709743},{"time":"2026-09-14T11:45:00-04:00","bar_open":"2026-09-14T11:40:00-04:00","open":362.9599914550781,"high":363.7001037597656,"low":362.93499755859375,"close":363.3999938964844,"volume":636244.0,"vwap":361.01888643333854},{"time":"2026-09-14T11:50:00-04:00","bar_open":"2026-09-14T11:45:00-04:00","open":363.4071960449219,"high":363.7550048828125,"low":363.2301940917969,"close":363.672607421875,"volume":409104.0,"vwap":361.0817901305237},{"time":"2026-09-14T11:55:00-04:00","bar_open":"2026-09-14T11:50:00-04:00","open":363.67999267578125,"high":363.8999938964844,"low":363.110107421875,"close":363.6129150390625,"volume":434751.0,"vwap":361.14500397945255},{"time":"2026-09-14T12:00:00-04:00","bar_open":"2026-09-14T11:55:00-04:00","open":363.63958740234375,"high":363.6556091308594,"low":363.05999755859375,"close":363.1542053222656,"volume":281156.0,"vwap":361.1800772369583},{"time":"2026-09-14T12:05:00-04:00","bar_open":"2026-09-14T12:00:00-04:00","open":363.17449951171875,"high":364.2200012207031,"low":362.99169921875,"close":363.8999938964844,"volume":463590.0,"vwap":361.2463375127741},{"time":"2026-09-14T12:10:00-04:00","bar_open":"2026-09-14T12:05:00-04:00","open":363.9100036621094,"high":364.1400146484375,"low":362.8800048828125,"close":362.9200134277344,"volume":292052.0,"vwap":361.27996841431604},{"time":"2026-09-14T12:15:00-04:00","bar_open":"2026-09-14T12:10:00-04:00","open":362.8901062011719,"high":362.9999084472656,"low":362.3299865722656,"close":362.4700012207031,"volume":314366.0,"vwap":361.30268822810706},{"time":"2026-09-14T12:20:00-04:00","bar_open":"2026-09-14T12:15:00-04:00","open":362.4737854003906,"high":363.92999267578125,"low":362.43011474609375,"close":363.80999755859375,"volume":364325.0,"vwap":361.34351096116524},{"time":"2026-09-14T12:25:00-04:00","bar_open":"2026-09-14T12:20:00-04:00","open":363.7699890136719,"high":364.1000061035156,"low":363.2300109863281,"close":363.57501220703125,"volume":268334.0,"vwap":361.3760498508368},{"time":"2026-09-14T12:30:00-04:00","bar_open":"2026-09-14T12:25:00-04:00","open":363.55029296875,"high":363.6400146484375,"low":362.5199890136719,"close":363.2449951171875,"volume":226687.0,"vwap":361.3968999761069},{"time":"2026-09-14T12:35:00-04:00","bar_open":"2026-09-14T12:30:00-04:00","open":363.289306640625,"high":363.35400390625,"low":362.7699890136719,"close":362.92999267578125,"volume":170643.0,"vwap":361.4112372819245},{"time":"2026-09-14T12:40:00-04:00","bar_open":"2026-09-14T12:35:00-04:00","open":362.92999267578125,"high":362.94000244140625,"low":362.55999755859375,"close":362.67498779296875,"volume":175119.0,"vwap":361.42305396101233},{"time":"2026-09-14T12:45:00-04:00","bar_open":"2026-09-14T12:40:00-04:00","open":362.67498779296875,"high":362.67999267578125,"low":362.20001220703125,"close":362.2950134277344,"volume":206541.0,"vwap":361.43322166333934},{"time":"2026-09-14T12:50:00-04:00","bar_open":"2026-09-14T12:45:00-04:00","open":362.2851867675781,"high":363.7099914550781,"low":361.94000244140625,"close":363.4949951171875,"volume":335080.0,"vwap":361.4602662286111},{"time":"2026-09-14T12:55:00-04:00","bar_open":"2026-09-14T12:50:00-04:00","open":363.489990234375,"high":363.5498962402344,"low":362.2699890136719,"close":362.3299865722656,"volume":222933.0,"vwap":361.4741084597502},{"time":"2026-09-14T13:00:00-04:00","bar_open":"2026-09-14T12:55:00-04:00","open":362.29998779296875,"high":362.80499267578125,"low":362.2225036621094,"close":362.7554931640625,"volume":160697.0,"vwap":361.482935081925},{"time":"2026-09-14T13:05:00-04:00","bar_open":"2026-09-14T13:00:00-04:00","open":362.7749938964844,"high":363.1098937988281,"low":362.6499938964844,"close":362.6700134277344,"volume":154249.0,"vwap":361.4928963437994},{"time":"2026-09-14T13:10:00-04:00","bar_open":"2026-09-14T13:05:00-04:00","open":362.6499938964844,"high":362.94989013671875,"low":362.380615234375,"close":362.5299987792969,"volume":137111.0,"vwap":361.5003681114108},{"time":"2026-09-14T13:15:00-04:00","bar_open":"2026-09-14T13:10:00-04:00","open":362.55499267578125,"high":363.0400085449219,"low":362.44000244140625,"close":362.6650085449219,"volume":127034.0,"vwap":361.50778173554227},{"time":"2026-09-14T13:20:00-04:00","bar_open":"2026-09-14T13:15:00-04:00","open":362.6549987792969,"high":362.7898864746094,"low":362.2799987792969,"close":362.3450012207031,"volume":118469.0,"vwap":361.5132369450186},{"time":"2026-09-14T13:25:00-04:00","bar_open":"2026-09-14T13:20:00-04:00","open":362.3450012207031,"high":362.95001220703125,"low":362.25,"close":362.80999755859375,"volume":100826.0,"vwap":361.51878230560465},{"time":"2026-09-14T13:30:00-04:00","bar_open":"2026-09-14T13:25:00-04:00","open":362.8500061035156,"high":363.25,"low":362.7900085449219,"close":362.9093017578125,"volume":453796.0,"vwap":361.5497093134048},{"time":"2026-09-14T13:35:00-04:00","bar_open":"2026-09-14T13:30:00-04:00","open":362.8599853515625,"high":363.0299987792969,"low":362.25,"close":362.5249938964844,"volume":325098.0,"vwap":361.56538874915407},{"time":"2026-09-14T13:40:00-04:00","bar_open":"2026-09-14T13:35:00-04:00","open":362.5899963378906,"high":362.8999938964844,"low":362.3599853515625,"close":362.8699951171875,"volume":137925.0,"vwap":361.5725812367979},{"time":"2026-09-14T13:45:00-04:00","bar_open":"2026-09-14T13:40:00-04:00","open":362.81500244140625,"high":362.8699951171875,"low":362.4100036621094,"close":362.6000061035156,"volume":79751.0,"vwap":361.5763973290108},{"time":"2026-09-14T13:50:00-04:00","bar_open":"2026-09-14T13:45:00-04:00","open":362.6300048828125,"high":362.7200012207031,"low":362.3999938964844,"close":362.5799865722656,"volume":69433.0,"vwap":361.5795087310242},{"time":"2026-09-14T13:55:00-04:00","bar_open":"2026-09-14T13:50:00-04:00","open":362.56500244140625,"high":362.6700134277344,"low":362.0899963378906,"close":362.3500061035156,"volume":179677.0,"vwap":361.5858842441042},{"time":"2026-09-14T14:00:00-04:00","bar_open":"2026-09-14T13:55:00-04:00","open":362.3399963378906,"high":362.4649963378906,"low":362.1099853515625,"close":362.2699890136719,"volume":135249.0,"vwap":361.59008275689297},{"time":"2026-09-14T14:05:00-04:00","bar_open":"2026-09-14T14:00:00-04:00","open":362.2601013183594,"high":362.5,"low":361.6300048828125,"close":361.8299865722656,"volume":193857.0,"vwap":361.5934834494713},{"time":"2026-09-14T14:10:00-04:00","bar_open":"2026-09-14T14:05:00-04:00","open":361.8465881347656,"high":361.8992919921875,"low":361.4700012207031,"close":361.71990966796875,"volume":173395.0,"vwap":361.59426680960695},{"time":"2026-09-14T14:15:00-04:00","bar_open":"2026-09-14T14:10:00-04:00","open":361.69000244140625,"high":361.7499084472656,"low":361.2699890136719,"close":361.45001220703125,"volume":166073.0,"vwap":361.5935119754142},{"time":"2026-09-14T14:20:00-04:00","bar_open":"2026-09-14T14:15:00-04:00","open":361.44500732421875,"high":361.4700012207031,"low":360.8399963378906,"close":361.1000061035156,"volume":391375.0,"vwap":361.58585076617044},{"time":"2026-09-14T14:25:00-04:00","bar_open":"2026-09-14T14:20:00-04:00","open":361.07501220703125,"high":361.1499938964844,"low":360.8599853515625,"close":361.1000061035156,"volume":131376.0,"vwap":361.58277653742994},{"time":"2026-09-14T14:30:00-04:00","bar_open":"2026-09-14T14:25:00-04:00","open":361.0899963378906,"high":361.25,"low":360.8699951171875,"close":361.1000061035156,"volume":211092.0,"vwap":361.57823527299394},{"time":"2026-09-14T14:35:00-04:00","bar_open":"2026-09-14T14:30:00-04:00","open":361.0775146484375,"high":361.2200012207031,"low":360.8699951171875,"close":360.8900146484375,"volume":141881.0,"vwap":361.574751740445},{"time":"2026-09-14T14:40:00-04:00","bar_open":"2026-09-14T14:35:00-04:00","open":360.9043884277344,"high":361.0799865722656,"low":360.7200012207031,"close":360.75,"volume":168546.0,"vwap":361.5696600314021},{"time":"2026-09-14T14:45:00-04:00","bar_open":"2026-09-14T14:40:00-04:00","open":360.7699890136719,"high":360.95001220703125,"low":360.6400146484375,"close":360.8949890136719,"volume":138209.0,"vwap":361.56541382065166},{"time":"2026-09-14T14:50:00-04:00","bar_open":"2026-09-14T14:45:00-04:00","open":360.8699951171875,"high":361.1400146484375,"low":360.7200012207031,"close":360.8999938964844,"volume":154420.0,"vwap":361.561309627587},{"time":"2026-09-14T14:55:00-04:00","bar_open":"2026-09-14T14:50:00-04:00","open":360.94000244140625,"high":361.0,"low":360.70001220703125,"close":360.8800048828125,"volume":112594.0,"vwap":361.55807294082615},{"time":"2026-09-14T15:00:00-04:00","bar_open":"2026-09-14T14:55:00-04:00","open":360.8299865722656,"high":361.0199890136719,"low":360.6199951171875,"close":360.8500061035156,"volume":169630.0,"vwap":361.5530454720944},{"time":"2026-09-14T15:05:00-04:00","bar_open":"2026-09-14T15:00:00-04:00","open":360.8299865722656,"high":361.07000732421875,"low":360.6700134277344,"close":360.6700134277344,"volume":155042.0,"vwap":361.54834355641634},{"time":"2026-09-14T15:10:00-04:00","bar_open":"2026-09-14T15:05:00-04:00","open":360.67999267578125,"high":360.79998779296875,"low":360.010009765625,"close":360.1199951171875,"volume":241728.0,"vwap":361.5363518648162},{"time":"2026-09-14T15:15:00-04:00","bar_open":"2026-09-14T15:10:00-04:00","open":360.1050109863281,"high":360.1700134277344,"low":359.6499938964844,"close":359.70001220703125,"volume":347442.0,"vwap":361.51306532230024},{"time":"2026-09-14T15:20:00-04:00","bar_open":"2026-09-14T15:15:00-04:00","open":359.6960144042969,"high":359.8399963378906,"low":359.5,"close":359.6000061035156,"volume":225384.0,"vwap":361.4965918377108},{"time":"2026-09-14T15:25:00-04:00","bar_open":"2026-09-14T15:20:00-04:00","open":359.614990234375,"high":359.7950134277344,"low":359.3699951171875,"close":359.42999267578125,"volume":257811.0,"vwap":361.47695177890887},{"time":"2026-09-14T15:30:00-04:00","bar_open":"2026-09-14T15:25:00-04:00","open":359.45001220703125,"high":360.49261474609375,"low":359.44500732421875,"close":360.30999755859375,"volume":371295.0,"vwap":361.4571639359057},{"time":"2026-09-14T15:35:00-04:00","bar_open":"2026-09-14T15:30:00-04:00","open":360.2950134277344,"high":360.6400146484375,"low":360.1000061035156,"close":360.239990234375,"volume":400465.0,"vwap":361.4401217958091},{"time":"2026-09-14T15:40:00-04:00","bar_open":"2026-09-14T15:35:00-04:00","open":360.2703857421875,"high":360.4783020019531,"low":360.05999755859375,"close":360.260009765625,"volume":205478.0,"vwap":361.4311105366652},{"time":"2026-09-14T15:45:00-04:00","bar_open":"2026-09-14T15:40:00-04:00","open":360.2349853515625,"high":360.54998779296875,"low":360.1564025878906,"close":360.3900146484375,"volume":176767.0,"vwap":361.4241201775811},{"time":"2026-09-14T15:50:00-04:00","bar_open":"2026-09-14T15:45:00-04:00","open":360.3699951171875,"high":360.489990234375,"low":359.93011474609375,"close":360.18499755859375,"volume":398422.0,"vwap":361.4063096723919},{"time":"2026-09-14T15:55:00-04:00","bar_open":"2026-09-14T15:50:00-04:00","open":360.17999267578125,"high":360.3783874511719,"low":359.29998779296875,"close":359.4399108886719,"volume":560628.0,"vwap":361.3721528484964},{"time":"2026-09-14T16:00:00-04:00","bar_open":"2026-09-14T15:55:00-04:00","open":359.4100036621094,"high":359.4100036621094,"low":358.5299987792969,"close":358.9700012207031,"volume":1158229.0,"vwap":361.2764262112948}],"fills":[{"time":"2026-09-14T09:35:00-04:00","action":"X","shares":25,"quantity":-25,"price":365.1483281555176,"reference_price":365.33099365234375,"shares_before":0,"shares_after":-25,"assumed_cost":4.566637420654297,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:35:00-04:00","pnl":null},{"time":"2026-09-14T09:45:00-04:00","action":"C","shares":25,"quantity":25,"price":361.9108759918213,"reference_price":361.7300109863281,"shares_before":-25,"shares_after":0,"assumed_cost":4.521625137329101,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:45:00-04:00","pnl":null},{"time":"2026-09-14T12:10:00-04:00","action":"X","shares":17,"quantity":-17,"price":362.7086611480713,"reference_price":362.8901062011719,"shares_before":0,"shares_after":-17,"assumed_cost":3.084565902709961,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:10:00-04:00","pnl":null},{"time":"2026-09-14T12:15:00-04:00","action":"C","shares":1,"quantity":1,"price":362.6550222930908,"reference_price":362.4737854003906,"shares_before":-17,"shares_after":-16,"assumed_cost":0.1812368927001953,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:15:00-04:00","pnl":null},{"time":"2026-09-14T12:20:00-04:00","action":"C","shares":1,"quantity":1,"price":363.95187400817866,"reference_price":363.7699890136719,"shares_before":-16,"shares_after":-15,"assumed_cost":0.1818849945068359,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:20:00-04:00","pnl":null},{"time":"2026-09-14T12:25:00-04:00","action":"C","shares":15,"quantity":15,"price":363.7320681152344,"reference_price":363.55029296875,"shares_before":-15,"shares_after":0,"assumed_cost":2.726627197265625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:25:00-04:00","pnl":null},{"time":"2026-09-14T14:15:00-04:00","action":"B","shares":2,"quantity":2,"price":361.6257298278808,"reference_price":361.4450073242188,"shares_before":0,"shares_after":2,"assumed_cost":0.3614450073242187,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:15:00-04:00","pnl":null},{"time":"2026-09-14T14:25:00-04:00","action":"S","shares":2,"quantity":-2,"price":360.9094513397217,"reference_price":361.0899963378906,"shares_before":2,"shares_after":0,"assumed_cost":0.3610899963378906,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:25:00-04:00","pnl":null},{"time":"2026-09-14T15:10:00-04:00","action":"B","shares":11,"quantity":11,"price":360.2850634918213,"reference_price":360.1050109863281,"shares_before":0,"shares_after":11,"assumed_cost":1.9805775604248048,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:10:00-04:00","pnl":null},{"time":"2026-09-14T15:15:00-04:00","action":"B","shares":23,"quantity":23,"price":359.875862411499,"reference_price":359.6960144042969,"shares_before":11,"shares_after":34,"assumed_cost":4.136504165649414,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:15:00-04:00","pnl":null},{"time":"2026-09-14T15:20:00-04:00","action":"B","shares":3,"quantity":3,"price":359.7947977294922,"reference_price":359.614990234375,"shares_before":34,"shares_after":37,"assumed_cost":0.5394224853515625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:20:00-04:00","pnl":null},{"time":"2026-09-14T15:25:00-04:00","action":"S","shares":1,"quantity":-1,"price":359.2702872009278,"reference_price":359.45001220703125,"shares_before":37,"shares_after":36,"assumed_cost":0.1797250061035156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:25:00-04:00","pnl":null},{"time":"2026-09-14T15:30:00-04:00","action":"S","shares":32,"quantity":-32,"price":360.1148659210205,"reference_price":360.2950134277344,"shares_before":36,"shares_after":4,"assumed_cost":5.76472021484375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:30:00-04:00","pnl":null},{"time":"2026-09-14T15:35:00-04:00","action":"S","shares":1,"quantity":-1,"price":360.0902505493164,"reference_price":360.2703857421875,"shares_before":4,"shares_after":3,"assumed_cost":0.1801351928710937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:35:00-04:00","pnl":null},{"time":"2026-09-14T15:40:00-04:00","action":"S","shares":1,"quantity":-1,"price":360.0548678588867,"reference_price":360.2349853515625,"shares_before":3,"shares_after":2,"assumed_cost":0.1801174926757812,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:40:00-04:00","pnl":null},{"time":"2026-09-14T15:55:00-04:00","action":"S","shares":2,"quantity":-2,"price":359.2302986602783,"reference_price":359.4100036621094,"shares_before":2,"shares_after":0,"assumed_cost":0.3594100036621094,"commission_cost":0.0,"signal_data_cutoff":null,"pnl":null}],"marks":[{"time":"2026-09-14T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-14T09:40:00-04:00","shares":-25,"pnl":86.95786819458044},{"time":"2026-09-14T09:45:00-04:00","shares":-25,"pnl":83.33314285278357},{"time":"2026-09-14T09:50:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T09:55:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T10:00:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T10:05:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T10:10:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T10:15:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T10:20:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T10:25:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T10:30:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T10:35:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T10:40:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T10:45:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T10:50:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T10:55:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T11:00:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T11:05:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T11:10:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T11:15:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T11:20:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T11:25:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T11:30:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T11:35:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T11:40:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T11:45:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T11:50:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T11:55:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T12:00:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T12:05:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T12:10:00-04:00","shares":0,"pnl":80.93630409240723},{"time":"2026-09-14T12:15:00-04:00","shares":-17,"pnl":84.9935228576669},{"time":"2026-09-14T12:20:00-04:00","shares":-16,"pnl":63.36856037902908},{"time":"2026-09-14T12:25:00-04:00","shares":-15,"pnl":66.75146420288183},{"time":"2026-09-14T12:30:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T12:35:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T12:40:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T12:45:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T12:50:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T12:55:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T13:00:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T13:05:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T13:10:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T13:15:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T13:20:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T13:25:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T13:30:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T13:35:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T13:40:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T13:45:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T13:50:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T13:55:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T14:00:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T14:05:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T14:10:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T14:15:00-04:00","shares":0,"pnl":64.39562557983481},{"time":"2026-09-14T14:20:00-04:00","shares":2,"pnl":63.3441781311044},{"time":"2026-09-14T14:25:00-04:00","shares":2,"pnl":63.3441781311044},{"time":"2026-09-14T14:30:00-04:00","shares":0,"pnl":62.96306860351661},{"time":"2026-09-14T14:35:00-04:00","shares":0,"pnl":62.96306860351661},{"time":"2026-09-14T14:40:00-04:00","shares":0,"pnl":62.96306860351661},{"time":"2026-09-14T14:45:00-04:00","shares":0,"pnl":62.96306860351661},{"time":"2026-09-14T14:50:00-04:00","shares":0,"pnl":62.96306860351661},{"time":"2026-09-14T14:55:00-04:00","shares":0,"pnl":62.96306860351661},{"time":"2026-09-14T15:00:00-04:00","shares":0,"pnl":62.96306860351661},{"time":"2026-09-14T15:05:00-04:00","shares":0,"pnl":62.96306860351661},{"time":"2026-09-14T15:10:00-04:00","shares":0,"pnl":62.96306860351661},{"time":"2026-09-14T15:15:00-04:00","shares":11,"pnl":56.52750447082599},{"time":"2026-09-14T15:20:00-04:00","shares":34,"pnl":49.082742248538125},{"time":"2026-09-14T15:25:00-04:00","shares":37,"pnl":42.207870544436446},{"time":"2026-09-14T15:30:00-04:00","shares":36,"pnl":73.72834085083377},{"time":"2026-09-14T15:35:00-04:00","shares":4,"pnl":67.20409915161508},{"time":"2026-09-14T15:40:00-04:00","shares":3,"pnl":67.11441806030643},{"time":"2026-09-14T15:45:00-04:00","shares":2,"pnl":67.16928591919316},{"time":"2026-09-14T15:50:00-04:00","shares":2,"pnl":66.75925173950566},{"time":"2026-09-14T15:55:00-04:00","shares":2,"pnl":65.26907839966191},{"time":"2026-09-14T16:00:00-04:00","shares":0,"pnl":64.8498539428748}],"summary":{"net_pnl":64.8498539428748,"gross_pnl":94.15557861328496,"cost":29.305724670410157,"fill_count":16,"ending_shares":0},"source_hashes":{"fills_sha256":"01fcf2df9f64c849643ca0e1fc127cd346a39945be7bb10dae149795e2343da0","marks_sha256":"577b2458e7ae502448b0385c5f47edd9c653ee8f8ad4decb9a64ddb3418662f7","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-14/levels/NVDA.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"NVDA","date":"2026-09-14","variant":"levels","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-14T16:00:00-04:00","partial":false,"starting_equity":47006.42,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-14T09:30:00-04:00","session_close":"2026-09-14T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-14T09:35:00-04:00","bar_open":"2026-09-14T09:30:00-04:00","open":211.0800018310547,"high":211.5,"low":209.24000549316406,"close":209.67999267578125,"volume":37879921.0,"vwap":210.13999938964844},{"time":"2026-09-14T09:40:00-04:00","bar_open":"2026-09-14T09:35:00-04:00","open":209.6699981689453,"high":209.9199981689453,"low":208.92999267578125,"close":209.27000427246094,"volume":4222767.0,"vwap":210.06310503564376},{"time":"2026-09-14T09:45:00-04:00","bar_open":"2026-09-14T09:40:00-04:00","open":209.27000427246094,"high":209.8699951171875,"low":209.07000732421875,"close":209.86000061035156,"volume":2985779.0,"vwap":210.0324380747793},{"time":"2026-09-14T09:50:00-04:00","bar_open":"2026-09-14T09:45:00-04:00","open":209.86000061035156,"high":211.55999755859375,"low":209.84629821777344,"close":211.30999755859375,"volume":3761159.0,"vwap":210.09965385279932},{"time":"2026-09-14T09:55:00-04:00","bar_open":"2026-09-14T09:50:00-04:00","open":211.30999755859375,"high":211.4398956298828,"low":210.50999450683594,"close":210.6750030517578,"volume":2558628.0,"vwap":210.13824164971098},{"time":"2026-09-14T10:00:00-04:00","bar_open":"2026-09-14T09:55:00-04:00","open":210.6699981689453,"high":210.9600067138672,"low":210.5500030517578,"close":210.7899932861328,"volume":2781755.0,"vwap":210.17050086677048},{"time":"2026-09-14T10:05:00-04:00","bar_open":"2026-09-14T10:00:00-04:00","open":210.7899932861328,"high":211.02999877929688,"low":210.4499969482422,"close":210.74659729003906,"volume":1924556.0,"vwap":210.19010829877496},{"time":"2026-09-14T10:10:00-04:00","bar_open":"2026-09-14T10:05:00-04:00","open":210.77000427246094,"high":211.6300048828125,"low":210.5500030517578,"close":211.22000122070312,"volume":2182683.0,"vwap":210.22542330899853},{"time":"2026-09-14T10:15:00-04:00","bar_open":"2026-09-14T10:10:00-04:00","open":211.22000122070312,"high":211.6999969482422,"low":211.22000122070312,"close":211.4199981689453,"volume":1780727.0,"vwap":210.26162124754143},{"time":"2026-09-14T10:20:00-04:00","bar_open":"2026-09-14T10:15:00-04:00","open":211.4250030517578,"high":211.52999877929688,"low":210.58999633789062,"close":210.6699981689453,"volume":1692851.0,"vwap":210.27993833870275},{"time":"2026-09-14T10:25:00-04:00","bar_open":"2026-09-14T10:20:00-04:00","open":210.69000244140625,"high":210.82000732421875,"low":210.21710205078125,"close":210.22999572753906,"volume":1501442.0,"vwap":210.2833181832077},{"time":"2026-09-14T10:30:00-04:00","bar_open":"2026-09-14T10:25:00-04:00","open":210.23500061035156,"high":210.49000549316406,"low":210.07000732421875,"close":210.4550018310547,"volume":1394723.0,"vwap":210.28450484280347},{"time":"2026-09-14T10:35:00-04:00","bar_open":"2026-09-14T10:30:00-04:00","open":210.4499969482422,"high":211.02000427246094,"low":210.4199981689453,"close":210.92950439453125,"volume":1369176.0,"vwap":210.2949822340975},{"time":"2026-09-14T10:40:00-04:00","bar_open":"2026-09-14T10:35:00-04:00","open":210.9250030517578,"high":210.9250030517578,"low":210.25,"close":210.42990112304688,"volume":1279204.0,"vwap":210.2995427203826},{"time":"2026-09-14T10:45:00-04:00","bar_open":"2026-09-14T10:40:00-04:00","open":210.41000366210938,"high":210.6199951171875,"low":210.3300018310547,"close":210.52000427246094,"volume":1015409.0,"vwap":210.30237295953705},{"time":"2026-09-14T10:50:00-04:00","bar_open":"2026-09-14T10:45:00-04:00","open":210.52999877929688,"high":210.86000061035156,"low":210.47000122070312,"close":210.82980346679688,"volume":894435.0,"vwap":210.30776813516005},{"time":"2026-09-14T10:55:00-04:00","bar_open":"2026-09-14T10:50:00-04:00","open":210.82000732421875,"high":210.83999633789062,"low":210.4600067138672,"close":210.6300048828125,"volume":876075.0,"vwap":210.3119618183017},{"time":"2026-09-14T11:00:00-04:00","bar_open":"2026-09-14T10:55:00-04:00","open":210.625,"high":210.6761932373047,"low":210.3000030517578,"close":210.47999572753906,"volume":965583.0,"vwap":210.31431828036602},{"time":"2026-09-14T11:05:00-04:00","bar_open":"2026-09-14T11:00:00-04:00","open":210.4600067138672,"high":210.6300048828125,"low":210.27999877929688,"close":210.33999633789062,"volume":840168.0,"vwap":210.31551412764088},{"time":"2026-09-14T11:10:00-04:00","bar_open":"2026-09-14T11:05:00-04:00","open":210.34950256347656,"high":211.25999450683594,"low":210.34010314941406,"close":210.86000061035156,"volume":1395672.0,"vwap":210.32512008209483},{"time":"2026-09-14T11:15:00-04:00","bar_open":"2026-09-14T11:10:00-04:00","open":210.8800048828125,"high":211.0500030517578,"low":210.7100067138672,"close":210.74000549316406,"volume":681415.0,"vwap":210.32980091848242},{"time":"2026-09-14T11:20:00-04:00","bar_open":"2026-09-14T11:15:00-04:00","open":210.72999572753906,"high":211.239501953125,"low":210.71800231933594,"close":211.13499450683594,"volume":849556.0,"vwap":210.33775944620297},{"time":"2026-09-14T11:25:00-04:00","bar_open":"2026-09-14T11:20:00-04:00","open":211.13999938964844,"high":211.35000610351562,"low":210.9499969482422,"close":211.25999450683594,"volume":840463.0,"vwap":210.34718769156217},{"time":"2026-09-14T11:30:00-04:00","bar_open":"2026-09-14T11:25:00-04:00","open":211.25999450683594,"high":211.60000610351562,"low":211.16000366210938,"close":211.4600067138672,"volume":1362957.0,"vwap":210.3659323184684},{"time":"2026-09-14T11:35:00-04:00","bar_open":"2026-09-14T11:30:00-04:00","open":211.4499969482422,"high":212.02000427246094,"low":211.1999969482422,"close":211.88999938964844,"volume":1597874.0,"vwap":210.39310850251104},{"time":"2026-09-14T11:40:00-04:00","bar_open":"2026-09-14T11:35:00-04:00","open":211.88999938964844,"high":212.10000610351562,"low":211.80999755859375,"close":211.8800048828125,"volume":1282651.0,"vwap":210.41777513857363},{"time":"2026-09-14T11:45:00-04:00","bar_open":"2026-09-14T11:40:00-04:00","open":211.8800048828125,"high":212.1999969482422,"low":211.6999969482422,"close":212.0500030517578,"volume":1179159.0,"vwap":210.4405385658486},{"time":"2026-09-14T11:50:00-04:00","bar_open":"2026-09-14T11:45:00-04:00","open":212.0574951171875,"high":212.1298065185547,"low":211.76370239257812,"close":211.77200317382812,"volume":1042240.0,"vwap":210.45891140955462},{"time":"2026-09-14T11:55:00-04:00","bar_open":"2026-09-14T11:50:00-04:00","open":211.77000427246094,"high":211.94000244140625,"low":211.67999267578125,"close":211.90260314941406,"volume":780571.0,"vwap":210.47192056250515},{"time":"2026-09-14T12:00:00-04:00","bar_open":"2026-09-14T11:55:00-04:00","open":211.90499877929688,"high":212.3300018310547,"low":211.86000061035156,"close":212.1884002685547,"volume":808243.0,"vwap":210.48788904551742},{"time":"2026-09-14T12:05:00-04:00","bar_open":"2026-09-14T12:00:00-04:00","open":212.17999267578125,"high":212.28500366210938,"low":212.0283966064453,"close":212.0301055908203,"volume":681278.0,"vwap":210.50101766939682},{"time":"2026-09-14T12:10:00-04:00","bar_open":"2026-09-14T12:05:00-04:00","open":212.03289794921875,"high":212.03289794921875,"low":211.75999450683594,"close":211.8000030517578,"volume":676454.0,"vwap":210.51185613154018},{"time":"2026-09-14T12:15:00-04:00","bar_open":"2026-09-14T12:10:00-04:00","open":211.77999877929688,"high":211.92990112304688,"low":211.65150451660156,"close":211.6898956298828,"volume":793115.0,"vwap":210.52335632952716},{"time":"2026-09-14T12:20:00-04:00","bar_open":"2026-09-14T12:15:00-04:00","open":211.6999969482422,"high":212.22999572753906,"low":211.6999969482422,"close":212.14999389648438,"volume":827630.0,"vwap":210.5377056992649},{"time":"2026-09-14T12:25:00-04:00","bar_open":"2026-09-14T12:20:00-04:00","open":212.13999938964844,"high":212.1649932861328,"low":211.9199981689453,"close":211.9600067138672,"volume":642268.0,"vwap":210.54856813558496},{"time":"2026-09-14T12:30:00-04:00","bar_open":"2026-09-14T12:25:00-04:00","open":211.94000244140625,"high":211.99000549316406,"low":211.67999267578125,"close":211.7899932861328,"volume":572572.0,"vwap":210.55684810667373},{"time":"2026-09-14T12:35:00-04:00","bar_open":"2026-09-14T12:30:00-04:00","open":211.77000427246094,"high":211.83999633789062,"low":211.61500549316406,"close":211.67990112304688,"volume":557985.0,"vwap":210.56413065208517},{"time":"2026-09-14T12:40:00-04:00","bar_open":"2026-09-14T12:35:00-04:00","open":211.6699981689453,"high":211.85000610351562,"low":211.50999450683594,"close":211.77499389648438,"volume":561453.0,"vwap":210.57136652573888},{"time":"2026-09-14T12:45:00-04:00","bar_open":"2026-09-14T12:40:00-04:00","open":211.77499389648438,"high":211.86000061035156,"low":211.6199951171875,"close":211.86000061035156,"volume":423368.0,"vwap":210.57708610478866},{"time":"2026-09-14T12:50:00-04:00","bar_open":"2026-09-14T12:45:00-04:00","open":211.85499572753906,"high":212.38999938964844,"low":211.72500610351562,"close":212.25999450683594,"volume":873083.0,"vwap":210.59204627160054},{"time":"2026-09-14T12:55:00-04:00","bar_open":"2026-09-14T12:50:00-04:00","open":212.268798828125,"high":212.36500549316406,"low":211.6999969482422,"close":212.03500366210938,"volume":740420.0,"vwap":210.60376332188827},{"time":"2026-09-14T13:00:00-04:00","bar_open":"2026-09-14T12:55:00-04:00","open":212.02999877929688,"high":212.2198944091797,"low":211.90989685058594,"close":212.10499572753906,"volume":493735.0,"vwap":210.61171354797983},{"time":"2026-09-14T13:05:00-04:00","bar_open":"2026-09-14T13:00:00-04:00","open":212.10989379882812,"high":212.2100067138672,"low":212.05889892578125,"close":212.13499450683594,"volume":456191.0,"vwap":210.61926284707306},{"time":"2026-09-14T13:10:00-04:00","bar_open":"2026-09-14T13:05:00-04:00","open":212.1385955810547,"high":212.24000549316406,"low":212.08999633789062,"close":212.16000366210938,"volume":511491.0,"vwap":210.62779741169047},{"time":"2026-09-14T13:15:00-04:00","bar_open":"2026-09-14T13:10:00-04:00","open":212.1750030517578,"high":212.3800048828125,"low":212.07000732421875,"close":212.0709991455078,"volume":466223.0,"vwap":210.6355466803213},{"time":"2026-09-14T13:20:00-04:00","bar_open":"2026-09-14T13:15:00-04:00","open":212.07000732421875,"high":212.19619750976562,"low":211.9600067138672,"close":212.0449981689453,"volume":490055.0,"vwap":210.64304999808914},{"time":"2026-09-14T13:25:00-04:00","bar_open":"2026-09-14T13:20:00-04:00","open":212.0449981689453,"high":212.3699951171875,"low":212.02200317382812,"close":212.34500122070312,"volume":607194.0,"vwap":210.6533908562531},{"time":"2026-09-14T13:30:00-04:00","bar_open":"2026-09-14T13:25:00-04:00","open":212.35000610351562,"high":212.58999633789062,"low":212.30499267578125,"close":212.5800018310547,"volume":680016.0,"vwap":210.66657954154007},{"time":"2026-09-14T13:35:00-04:00","bar_open":"2026-09-14T13:30:00-04:00","open":212.58999633789062,"high":212.6060028076172,"low":212.3800048828125,"close":212.4199981689453,"volume":549452.0,"vwap":210.67696601476896},{"time":"2026-09-14T13:40:00-04:00","bar_open":"2026-09-14T13:35:00-04:00","open":212.4199981689453,"high":212.47999572753906,"low":212.1667022705078,"close":212.47000122070312,"volume":538733.0,"vwap":210.68649236286882},{"time":"2026-09-14T13:45:00-04:00","bar_open":"2026-09-14T13:40:00-04:00","open":212.4600067138672,"high":212.49000549316406,"low":212.2801055908203,"close":212.37840270996094,"volume":407263.0,"vwap":210.69366804235625},{"time":"2026-09-14T13:50:00-04:00","bar_open":"2026-09-14T13:45:00-04:00","open":212.3699951171875,"high":212.60000610351562,"low":212.3699951171875,"close":212.5749969482422,"volume":499080.0,"vwap":210.70306067674952},{"time":"2026-09-14T13:55:00-04:00","bar_open":"2026-09-14T13:50:00-04:00","open":212.5749969482422,"high":212.77000427246094,"low":212.50999450683594,"close":212.52999877929688,"volume":741665.0,"vwap":210.71751295157353},{"time":"2026-09-14T14:00:00-04:00","bar_open":"2026-09-14T13:55:00-04:00","open":212.52999877929688,"high":212.5800018310547,"low":212.38999938964844,"close":212.41009521484375,"volume":525057.0,"vwap":210.72684473544936},{"time":"2026-09-14T14:05:00-04:00","bar_open":"2026-09-14T14:00:00-04:00","open":212.4199981689453,"high":212.6300048828125,"low":212.22999572753906,"close":212.27999877929688,"volume":634109.0,"vwap":210.73746800861738},{"time":"2026-09-14T14:10:00-04:00","bar_open":"2026-09-14T14:05:00-04:00","open":212.28640747070312,"high":212.5500030517578,"low":212.1999969482422,"close":212.53179931640625,"volume":2134122.0,"vwap":210.7732399527126},{"time":"2026-09-14T14:15:00-04:00","bar_open":"2026-09-14T14:10:00-04:00","open":212.5399932861328,"high":212.5800018310547,"low":212.35000610351562,"close":212.4600067138672,"volume":537042.0,"vwap":210.7821956866911},{"time":"2026-09-14T14:20:00-04:00","bar_open":"2026-09-14T14:15:00-04:00","open":212.4600067138672,"high":212.4949951171875,"low":212.22999572753906,"close":212.24000549316406,"volume":621634.0,"vwap":210.79158062118478},{"time":"2026-09-14T14:25:00-04:00","bar_open":"2026-09-14T14:20:00-04:00","open":212.22999572753906,"high":212.3000030517578,"low":212.08999633789062,"close":212.17999267578125,"volume":445187.0,"vwap":210.79765934590375},{"time":"2026-09-14T14:30:00-04:00","bar_open":"2026-09-14T14:25:00-04:00","open":212.18499755859375,"high":212.2050018310547,"low":212.03500366210938,"close":212.09500122070312,"volume":447518.0,"vwap":210.80337609134443},{"time":"2026-09-14T14:35:00-04:00","bar_open":"2026-09-14T14:30:00-04:00","open":212.11000061035156,"high":212.33999633789062,"low":212.07000732421875,"close":212.28720092773438,"volume":580882.0,"vwap":210.81140066711447},{"time":"2026-09-14T14:40:00-04:00","bar_open":"2026-09-14T14:35:00-04:00","open":212.27999877929688,"high":212.44000244140625,"low":212.25,"close":212.4149932861328,"volume":477880.0,"vwap":210.8185601359799},{"time":"2026-09-14T14:45:00-04:00","bar_open":"2026-09-14T14:40:00-04:00","open":212.4149932861328,"high":212.4499969482422,"low":212.31500244140625,"close":212.39999389648438,"volume":481191.0,"vwap":210.82579516081196},{"time":"2026-09-14T14:50:00-04:00","bar_open":"2026-09-14T14:45:00-04:00","open":212.39999389648438,"high":212.49000549316406,"low":212.27000427246094,"close":212.33999633789062,"volume":531842.0,"vwap":210.83360476705548},{"time":"2026-09-14T14:55:00-04:00","bar_open":"2026-09-14T14:50:00-04:00","open":212.33999633789062,"high":212.4199981689453,"low":212.22999572753906,"close":212.35499572753906,"volume":457830.0,"vwap":210.84012686158846},{"time":"2026-09-14T15:00:00-04:00","bar_open":"2026-09-14T14:55:00-04:00","open":212.33999633789062,"high":212.5800018310547,"low":212.30999755859375,"close":212.55499267578125,"volume":473021.0,"vwap":210.84746143946882},{"time":"2026-09-14T15:05:00-04:00","bar_open":"2026-09-14T15:00:00-04:00","open":212.57000732421875,"high":212.60000610351562,"low":212.25,"close":212.5800018310547,"volume":657559.0,"vwap":210.85751838373517},{"time":"2026-09-14T15:10:00-04:00","bar_open":"2026-09-14T15:05:00-04:00","open":212.58999633789062,"high":212.6199951171875,"low":212.22999572753906,"close":212.40499877929688,"volume":551155.0,"vwap":210.86555249357502},{"time":"2026-09-14T15:15:00-04:00","bar_open":"2026-09-14T15:10:00-04:00","open":212.4199981689453,"high":212.44500732421875,"low":212.19000244140625,"close":212.27999877929688,"volume":1578163.0,"vwap":210.88646026740417},{"time":"2026-09-14T15:20:00-04:00","bar_open":"2026-09-14T15:15:00-04:00","open":212.27000427246094,"high":212.2949981689453,"low":212.1215057373047,"close":212.27999877929688,"volume":553346.0,"vwap":210.89327894988875},{"time":"2026-09-14T15:25:00-04:00","bar_open":"2026-09-14T15:20:00-04:00","open":212.27000427246094,"high":212.32000732421875,"low":212.10000610351562,"close":212.24000549316406,"volume":2592773.0,"vwap":210.92404762093534},{"time":"2026-09-14T15:30:00-04:00","bar_open":"2026-09-14T15:25:00-04:00","open":212.24000549316406,"high":212.36000061035156,"low":212.10000610351562,"close":212.10499572753906,"volume":562227.0,"vwap":210.930373796057},{"time":"2026-09-14T15:35:00-04:00","bar_open":"2026-09-14T15:30:00-04:00","open":212.10000610351562,"high":212.1999969482422,"low":211.72000122070312,"close":211.8000030517578,"volume":1692517.0,"vwap":210.94486165672012},{"time":"2026-09-14T15:40:00-04:00","bar_open":"2026-09-14T15:35:00-04:00","open":211.7935028076172,"high":211.86000061035156,"low":211.67999267578125,"close":211.85000610351562,"volume":845772.0,"vwap":210.95113177387208},{"time":"2026-09-14T15:45:00-04:00","bar_open":"2026-09-14T15:40:00-04:00","open":211.83999633789062,"high":212.13499450683594,"low":211.82000732421875,"close":212.07000732421875,"volume":871936.0,"vwap":210.95909414908058},{"time":"2026-09-14T15:50:00-04:00","bar_open":"2026-09-14T15:45:00-04:00","open":212.0749969482422,"high":212.15460205078125,"low":211.85000610351562,"close":212.07000732421875,"volume":983254.0,"vwap":210.96806964397925},{"time":"2026-09-14T15:55:00-04:00","bar_open":"2026-09-14T15:50:00-04:00","open":212.05999755859375,"high":212.39999389648438,"low":211.38999938964844,"close":211.72000122070312,"volume":2622194.0,"vwap":210.98714894195632},{"time":"2026-09-14T16:00:00-04:00","bar_open":"2026-09-14T15:55:00-04:00","open":211.7100067138672,"high":211.7100067138672,"low":210.7899932861328,"close":210.88999938964844,"volume":6595997.0,"vwap":210.9946286836372}],"fills":[{"time":"2026-09-14T09:35:00-04:00","action":"X","shares":112,"quantity":-112,"price":209.56516316986085,"reference_price":209.6699981689453,"shares_before":0,"shares_after":-112,"assumed_cost":11.741519897460938,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:35:00-04:00","pnl":null},{"time":"2026-09-14T09:40:00-04:00","action":"C","shares":78,"quantity":78,"price":209.37463927459717,"reference_price":209.2700042724609,"shares_before":-112,"shares_after":-34,"assumed_cost":8.161530166625976,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:40:00-04:00","pnl":null},{"time":"2026-09-14T09:45:00-04:00","action":"X","shares":88,"quantity":-88,"price":209.7550706100464,"reference_price":209.8600006103516,"shares_before":-34,"shares_after":-122,"assumed_cost":9.233840026855468,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:45:00-04:00","pnl":null},{"time":"2026-09-14T09:50:00-04:00","action":"C","shares":71,"quantity":71,"price":211.41565255737305,"reference_price":211.30999755859372,"shares_before":-122,"shares_after":-51,"assumed_cost":7.501504913330078,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:50:00-04:00","pnl":null},{"time":"2026-09-14T09:55:00-04:00","action":"X","shares":104,"quantity":-104,"price":210.5646631698609,"reference_price":210.6699981689453,"shares_before":-51,"shares_after":-155,"assumed_cost":10.954839904785157,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:55:00-04:00","pnl":null},{"time":"2026-09-14T10:05:00-04:00","action":"C","shares":1,"quantity":1,"price":210.87538927459715,"reference_price":210.7700042724609,"shares_before":-155,"shares_after":-154,"assumed_cost":0.1053850021362304,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:05:00-04:00","pnl":null},{"time":"2026-09-14T10:10:00-04:00","action":"C","shares":26,"quantity":26,"price":211.3256112213135,"reference_price":211.22000122070312,"shares_before":-154,"shares_after":-128,"assumed_cost":2.7458600158691406,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:10:00-04:00","pnl":null},{"time":"2026-09-14T10:20:00-04:00","action":"C","shares":1,"quantity":1,"price":210.79534744262693,"reference_price":210.69000244140625,"shares_before":-128,"shares_after":-127,"assumed_cost":0.1053450012207031,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:20:00-04:00","pnl":null},{"time":"2026-09-14T10:30:00-04:00","action":"X","shares":1,"quantity":-1,"price":210.34477194976807,"reference_price":210.4499969482422,"shares_before":-127,"shares_after":-128,"assumed_cost":0.105224998474121,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:30:00-04:00","pnl":null},{"time":"2026-09-14T10:35:00-04:00","action":"C","shares":60,"quantity":60,"price":211.03046555328368,"reference_price":210.9250030517578,"shares_before":-128,"shares_after":-68,"assumed_cost":6.327750091552734,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:35:00-04:00","pnl":null},{"time":"2026-09-14T10:40:00-04:00","action":"C","shares":1,"quantity":1,"price":210.51520866394043,"reference_price":210.41000366210935,"shares_before":-68,"shares_after":-67,"assumed_cost":0.1052050018310546,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:40:00-04:00","pnl":null},{"time":"2026-09-14T10:45:00-04:00","action":"C","shares":17,"quantity":17,"price":210.6352637786865,"reference_price":210.52999877929688,"shares_before":-67,"shares_after":-50,"assumed_cost":1.7895049896240234,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:45:00-04:00","pnl":null},{"time":"2026-09-14T10:50:00-04:00","action":"X","shares":15,"quantity":-15,"price":210.71459732055663,"reference_price":210.82000732421875,"shares_before":-50,"shares_after":-65,"assumed_cost":1.5811500549316406,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:50:00-04:00","pnl":null},{"time":"2026-09-14T11:00:00-04:00","action":"C","shares":1,"quantity":1,"price":210.5652367172241,"reference_price":210.4600067138672,"shares_before":-65,"shares_after":-64,"assumed_cost":0.1052300033569336,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:00:00-04:00","pnl":null},{"time":"2026-09-14T11:05:00-04:00","action":"C","shares":1,"quantity":1,"price":210.4546773147583,"reference_price":210.34950256347656,"shares_before":-64,"shares_after":-63,"assumed_cost":0.1051747512817382,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:05:00-04:00","pnl":null},{"time":"2026-09-14T11:10:00-04:00","action":"C","shares":4,"quantity":4,"price":210.98544488525388,"reference_price":210.8800048828125,"shares_before":-63,"shares_after":-59,"assumed_cost":0.421760009765625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:10:00-04:00","pnl":null},{"time":"2026-09-14T11:20:00-04:00","action":"X","shares":10,"quantity":-10,"price":211.03442938995363,"reference_price":211.13999938964844,"shares_before":-59,"shares_after":-69,"assumed_cost":1.055699996948242,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:20:00-04:00","pnl":null},{"time":"2026-09-14T11:35:00-04:00","action":"C","shares":43,"quantity":43,"price":211.99594438934324,"reference_price":211.88999938964844,"shares_before":-69,"shares_after":-26,"assumed_cost":4.5556349868774415,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:35:00-04:00","pnl":null},{"time":"2026-09-14T11:40:00-04:00","action":"X","shares":9,"quantity":-9,"price":211.7740648803711,"reference_price":211.8800048828125,"shares_before":-26,"shares_after":-35,"assumed_cost":0.9534600219726562,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:40:00-04:00","pnl":null},{"time":"2026-09-14T11:45:00-04:00","action":"X","shares":16,"quantity":-16,"price":211.9514663696289,"reference_price":212.0574951171875,"shares_before":-35,"shares_after":-51,"assumed_cost":1.6964599609375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:45:00-04:00","pnl":null},{"time":"2026-09-14T11:50:00-04:00","action":"C","shares":1,"quantity":1,"price":211.87588927459717,"reference_price":211.7700042724609,"shares_before":-51,"shares_after":-50,"assumed_cost":0.1058850021362304,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:50:00-04:00","pnl":null},{"time":"2026-09-14T11:55:00-04:00","action":"X","shares":16,"quantity":-16,"price":211.79904627990723,"reference_price":211.90499877929688,"shares_before":-50,"shares_after":-66,"assumed_cost":1.695239990234375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:55:00-04:00","pnl":null},{"time":"2026-09-14T12:00:00-04:00","action":"X","shares":7,"quantity":-7,"price":212.07390267944336,"reference_price":212.17999267578125,"shares_before":-66,"shares_after":-73,"assumed_cost":0.7426299743652344,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:00:00-04:00","pnl":null},{"time":"2026-09-14T12:05:00-04:00","action":"C","shares":1,"quantity":1,"price":212.13891439819332,"reference_price":212.03289794921875,"shares_before":-73,"shares_after":-72,"assumed_cost":0.1060164489746093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:05:00-04:00","pnl":null},{"time":"2026-09-14T12:10:00-04:00","action":"X","shares":8,"quantity":-8,"price":211.67410877990724,"reference_price":211.77999877929688,"shares_before":-72,"shares_after":-80,"assumed_cost":0.8471199951171875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:10:00-04:00","pnl":null},{"time":"2026-09-14T12:20:00-04:00","action":"X","shares":16,"quantity":-16,"price":212.0339293899536,"reference_price":212.13999938964844,"shares_before":-80,"shares_after":-96,"assumed_cost":1.6971199951171876,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:20:00-04:00","pnl":null},{"time":"2026-09-14T12:25:00-04:00","action":"X","shares":57,"quantity":-57,"price":211.83403244018555,"reference_price":211.94000244140625,"shares_before":-96,"shares_after":-153,"assumed_cost":6.040290069580078,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:25:00-04:00","pnl":null},{"time":"2026-09-14T12:40:00-04:00","action":"C","shares":1,"quantity":1,"price":211.88088139343265,"reference_price":211.7749938964844,"shares_before":-153,"shares_after":-152,"assumed_cost":0.1058874969482421,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:40:00-04:00","pnl":null},{"time":"2026-09-14T12:45:00-04:00","action":"C","shares":1,"quantity":1,"price":211.9609232254028,"reference_price":211.85499572753903,"shares_before":-152,"shares_after":-151,"assumed_cost":0.1059274978637695,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:45:00-04:00","pnl":null},{"time":"2026-09-14T12:50:00-04:00","action":"C","shares":1,"quantity":1,"price":212.37493322753903,"reference_price":212.268798828125,"shares_before":-151,"shares_after":-150,"assumed_cost":0.1061343994140625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:50:00-04:00","pnl":null},{"time":"2026-09-14T12:55:00-04:00","action":"X","shares":2,"quantity":-2,"price":211.92398377990725,"reference_price":212.02999877929688,"shares_before":-150,"shares_after":-152,"assumed_cost":0.2120299987792968,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:55:00-04:00","pnl":null},{"time":"2026-09-14T13:00:00-04:00","action":"X","shares":1,"quantity":-1,"price":212.00383885192872,"reference_price":212.10989379882807,"shares_before":-152,"shares_after":-153,"assumed_cost":0.106054946899414,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:00:00-04:00","pnl":null},{"time":"2026-09-14T13:25:00-04:00","action":"C","shares":1,"quantity":1,"price":212.45618110656736,"reference_price":212.3500061035156,"shares_before":-153,"shares_after":-152,"assumed_cost":0.1061750030517578,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:25:00-04:00","pnl":null},{"time":"2026-09-14T13:50:00-04:00","action":"C","shares":1,"quantity":1,"price":212.6812844467163,"reference_price":212.5749969482422,"shares_before":-152,"shares_after":-151,"assumed_cost":0.1062874984741211,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:50:00-04:00","pnl":null},{"time":"2026-09-14T13:55:00-04:00","action":"X","shares":1,"quantity":-1,"price":212.42373377990725,"reference_price":212.52999877929688,"shares_before":-151,"shares_after":-152,"assumed_cost":0.1062649993896484,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:55:00-04:00","pnl":null},{"time":"2026-09-14T14:30:00-04:00","action":"X","shares":1,"quantity":-1,"price":212.0039456100464,"reference_price":212.1100006103516,"shares_before":-152,"shares_after":-153,"assumed_cost":0.1060550003051757,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:30:00-04:00","pnl":null},{"time":"2026-09-14T14:35:00-04:00","action":"C","shares":1,"quantity":1,"price":212.3861387786865,"reference_price":212.27999877929688,"shares_before":-153,"shares_after":-152,"assumed_cost":0.1061399993896484,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:35:00-04:00","pnl":null},{"time":"2026-09-14T15:00:00-04:00","action":"C","shares":1,"quantity":1,"price":212.67629232788084,"reference_price":212.57000732421875,"shares_before":-152,"shares_after":-151,"assumed_cost":0.1062850036621093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:00:00-04:00","pnl":null},{"time":"2026-09-14T15:05:00-04:00","action":"X","shares":1,"quantity":-1,"price":212.4837013397217,"reference_price":212.58999633789065,"shares_before":-151,"shares_after":-152,"assumed_cost":0.1062949981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:05:00-04:00","pnl":null},{"time":"2026-09-14T15:15:00-04:00","action":"C","shares":79,"quantity":79,"price":212.3761392745972,"reference_price":212.2700042724609,"shares_before":-152,"shares_after":-73,"assumed_cost":8.384665168762208,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:15:00-04:00","pnl":null},{"time":"2026-09-14T15:20:00-04:00","action":"C","shares":1,"quantity":1,"price":212.3761392745972,"reference_price":212.2700042724609,"shares_before":-73,"shares_after":-72,"assumed_cost":0.1061350021362304,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:20:00-04:00","pnl":null},{"time":"2026-09-14T15:25:00-04:00","action":"C","shares":1,"quantity":1,"price":212.34612549591063,"reference_price":212.2400054931641,"shares_before":-72,"shares_after":-71,"assumed_cost":0.106120002746582,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:25:00-04:00","pnl":null},{"time":"2026-09-14T15:30:00-04:00","action":"X","shares":27,"quantity":-27,"price":211.9939561004639,"reference_price":212.1000061035156,"shares_before":-71,"shares_after":-98,"assumed_cost":2.863350082397461,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:30:00-04:00","pnl":null},{"time":"2026-09-14T15:35:00-04:00","action":"C","shares":14,"quantity":14,"price":211.899399559021,"reference_price":211.7935028076172,"shares_before":-98,"shares_after":-84,"assumed_cost":1.4825545196533203,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:35:00-04:00","pnl":null},{"time":"2026-09-14T15:40:00-04:00","action":"C","shares":1,"quantity":1,"price":211.94591633605955,"reference_price":211.83999633789065,"shares_before":-84,"shares_after":-83,"assumed_cost":0.1059199981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:40:00-04:00","pnl":null},{"time":"2026-09-14T15:45:00-04:00","action":"C","shares":1,"quantity":1,"price":212.1810344467163,"reference_price":212.0749969482422,"shares_before":-83,"shares_after":-82,"assumed_cost":0.1060374984741211,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:45:00-04:00","pnl":null},{"time":"2026-09-14T15:50:00-04:00","action":"C","shares":1,"quantity":1,"price":212.16602755737304,"reference_price":212.05999755859372,"shares_before":-82,"shares_after":-81,"assumed_cost":0.1060299987792968,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:50:00-04:00","pnl":null},{"time":"2026-09-14T15:55:00-04:00","action":"C","shares":81,"quantity":81,"price":211.81586171722407,"reference_price":211.7100067138672,"shares_before":-81,"shares_after":0,"assumed_cost":8.574255271911621,"commission_cost":0.0,"signal_data_cutoff":null,"pnl":null}],"marks":[{"time":"2026-09-14T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-14T09:40:00-04:00","shares":-112,"pnl":33.05779650879049},{"time":"2026-09-14T09:45:00-04:00","shares":-34,"pnl":4.83639085388495},{"time":"2026-09-14T09:50:00-04:00","shares":-122,"pnl":-181.29707685851463},{"time":"2026-09-14T09:55:00-04:00","shares":-51,"pnl":-156.4138619232108},{"time":"2026-09-14T10:00:00-04:00","shares":-155,"pnl":-185.71269596861748},{"time":"2026-09-14T10:05:00-04:00","shares":-155,"pnl":-178.98631657408623},{"time":"2026-09-14T10:10:00-04:00","shares":-154,"pnl":-252.01931388090816},{"time":"2026-09-14T10:15:00-04:00","shares":-128,"pnl":-280.3647832717761},{"time":"2026-09-14T10:20:00-04:00","shares":-128,"pnl":-184.3647832717761},{"time":"2026-09-14T10:25:00-04:00","shares":-127,"pnl":-128.6098224868656},{"time":"2026-09-14T10:30:00-04:00","shares":-127,"pnl":-157.18559763334997},{"time":"2026-09-14T10:35:00-04:00","shares":-128,"pnl":-218.0321556396375},{"time":"2026-09-14T10:40:00-04:00","shares":-68,"pnl":-190.11680270384568},{"time":"2026-09-14T10:45:00-04:00","shares":-67,"pnl":-196.23902125548196},{"time":"2026-09-14T10:50:00-04:00","shares":-50,"pnl":-213.68839257811487},{"time":"2026-09-14T10:55:00-04:00","shares":-65,"pnl":-202.429576812734},{"time":"2026-09-14T11:00:00-04:00","shares":-65,"pnl":-192.67898171996055},{"time":"2026-09-14T11:05:00-04:00","shares":-64,"pnl":-183.80426177214576},{"time":"2026-09-14T11:10:00-04:00","shares":-63,"pnl":-216.67921191405185},{"time":"2026-09-14T11:15:00-04:00","shares":-59,"pnl":-210.1012770995985},{"time":"2026-09-14T11:20:00-04:00","shares":-59,"pnl":-233.40562890623917},{"time":"2026-09-14T11:25:00-04:00","shares":-69,"pnl":-243.03628007506268},{"time":"2026-09-14T11:30:00-04:00","shares":-69,"pnl":-256.8371223602189},{"time":"2026-09-14T11:35:00-04:00","shares":-69,"pnl":-286.5066169891252},{"time":"2026-09-14T11:40:00-04:00","shares":-26,"pnl":-290.8023947982674},{"time":"2026-09-14T11:45:00-04:00","shares":-35,"pnl":-297.7057907333256},{"time":"2026-09-14T11:50:00-04:00","shares":-51,"pnl":-285.1043838729747},{"time":"2026-09-14T11:55:00-04:00","shares":-50,"pnl":-291.7382687530408},{"time":"2026-09-14T12:00:00-04:00","shares":-66,"pnl":-312.2577885284318},{"time":"2026-09-14T12:05:00-04:00","shares":-73,"pnl":-301.5037601776021},{"time":"2026-09-14T12:10:00-04:00","shares":-72,"pnl":-285.04518617247595},{"time":"2026-09-14T12:15:00-04:00","shares":-80,"pnl":-277.2437465972798},{"time":"2026-09-14T12:20:00-04:00","shares":-80,"pnl":-314.0516079254048},{"time":"2026-09-14T12:25:00-04:00","shares":-96,"pnl":-297.6698704986484},{"time":"2026-09-14T12:30:00-04:00","shares":-153,"pnl":-278.8383496551396},{"time":"2026-09-14T12:35:00-04:00","shares":-153,"pnl":-261.9942487029912},{"time":"2026-09-14T12:40:00-04:00","shares":-153,"pnl":-276.5434430389287},{"time":"2026-09-14T12:45:00-04:00","shares":-152,"pnl":-289.5703510436906},{"time":"2026-09-14T12:50:00-04:00","shares":-151,"pnl":-350.0703520278839},{"time":"2026-09-14T12:55:00-04:00","shares":-150,"pnl":-316.4366640396038},{"time":"2026-09-14T13:00:00-04:00","shares":-152,"pnl":-327.29749774932134},{"time":"2026-09-14T13:05:00-04:00","shares":-153,"pnl":-331.9884678573544},{"time":"2026-09-14T13:10:00-04:00","shares":-153,"pnl":-335.81486861419035},{"time":"2026-09-14T13:15:00-04:00","shares":-153,"pnl":-322.1971775741513},{"time":"2026-09-14T13:20:00-04:00","shares":-153,"pnl":-318.2190281600888},{"time":"2026-09-14T13:25:00-04:00","shares":-153,"pnl":-364.1194950790341},{"time":"2026-09-14T13:30:00-04:00","shares":-152,"pnl":-399.9507677383372},{"time":"2026-09-14T13:35:00-04:00","shares":-152,"pnl":-375.63021109771216},{"time":"2026-09-14T13:40:00-04:00","shares":-152,"pnl":-383.23067496489966},{"time":"2026-09-14T13:45:00-04:00","shares":-152,"pnl":-369.3077013320872},{"time":"2026-09-14T13:50:00-04:00","shares":-152,"pnl":-399.1900255508372},{"time":"2026-09-14T13:55:00-04:00","shares":-151,"pnl":-392.50158953856953},{"time":"2026-09-14T14:00:00-04:00","shares":-152,"pnl":-374.3825127410855},{"time":"2026-09-14T14:05:00-04:00","shares":-152,"pnl":-354.6078545379605},{"time":"2026-09-14T14:10:00-04:00","shares":-152,"pnl":-392.8815361785855},{"time":"2026-09-14T14:15:00-04:00","shares":-152,"pnl":-381.969060592648},{"time":"2026-09-14T14:20:00-04:00","shares":-152,"pnl":-348.528875045773},{"time":"2026-09-14T14:25:00-04:00","shares":-152,"pnl":-339.4069268035855},{"time":"2026-09-14T14:30:00-04:00","shares":-152,"pnl":-326.4882256317105},{"time":"2026-09-14T14:35:00-04:00","shares":-153,"pnl":-355.9858364181491},{"time":"2026-09-14T14:40:00-04:00","shares":-152,"pnl":-375.5092127456628},{"time":"2026-09-14T14:45:00-04:00","shares":-152,"pnl":-373.2293055191003},{"time":"2026-09-14T14:50:00-04:00","shares":-152,"pnl":-364.1096766128503},{"time":"2026-09-14T14:55:00-04:00","shares":-152,"pnl":-366.3895838394128},{"time":"2026-09-14T15:00:00-04:00","shares":-152,"pnl":-396.7891199722253},{"time":"2026-09-14T15:05:00-04:00","shares":-151,"pnl":-400.6868020706133},{"time":"2026-09-14T15:10:00-04:00","shares":-152,"pnl":-374.18263869475777},{"time":"2026-09-14T15:15:00-04:00","shares":-152,"pnl":-355.18263869475777},{"time":"2026-09-14T15:20:00-04:00","shares":-73,"pnl":-362.7777378234823},{"time":"2026-09-14T15:25:00-04:00","shares":-72,"pnl":-359.99436171721936},{"time":"2026-09-14T15:30:00-04:00","shares":-71,"pnl":-350.5147883605914},{"time":"2026-09-14T15:35:00-04:00","shares":-98,"pnl":-323.6235760650597},{"time":"2026-09-14T15:40:00-04:00","shares":-84,"pnl":-329.21538351440176},{"time":"2026-09-14T15:45:00-04:00","shares":-83,"pnl":-347.5713950653044},{"time":"2026-09-14T15:50:00-04:00","shares":-82,"pnl":-347.6824221878014},{"time":"2026-09-14T15:55:00-04:00","shares":-81,"pnl":-319.4279480361911},{"time":"2026-09-14T16:00:00-04:00","shares":0,"pnl":-327.19264825439313}],"summary":{"net_pnl":-327.19264825439313,"gross_pnl":-223.39166259765486,"cost":103.80098565673828,"fill_count":48,"ending_shares":0},"source_hashes":{"fills_sha256":"127c786c405b3869d02c4b15d536b5ff3aa3c414c880e691f849bf2e99551b83","marks_sha256":"d8f2261179539f1e332604ebfdc5dec062de885c2e58240686533a8d2bdac7db","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-14/levels/PLTR.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"PLTR","date":"2026-09-14","variant":"levels","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-14T16:00:00-04:00","partial":false,"starting_equity":47006.42,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-14T09:30:00-04:00","session_close":"2026-09-14T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-14T09:35:00-04:00","bar_open":"2026-09-14T09:30:00-04:00","open":169.6999969482422,"high":170.1999969482422,"low":167.75999450683594,"close":168.0500030517578,"volume":2164704.0,"vwap":168.6699981689453},{"time":"2026-09-14T09:40:00-04:00","bar_open":"2026-09-14T09:35:00-04:00","open":168.1699981689453,"high":168.3282928466797,"low":166.50999450683594,"close":166.88999938964844,"volume":568454.0,"vwap":168.37315548061062},{"time":"2026-09-14T09:45:00-04:00","bar_open":"2026-09-14T09:40:00-04:00","open":167.05999755859375,"high":167.5800018310547,"low":166.4199981689453,"close":167.2100067138672,"volume":372302.0,"vwap":168.2169253058388},{"time":"2026-09-14T09:50:00-04:00","bar_open":"2026-09-14T09:45:00-04:00","open":167.19000244140625,"high":167.97000122070312,"low":166.44000244140625,"close":167.52999877929688,"volume":552924.0,"vwap":168.08035756504535},{"time":"2026-09-14T09:55:00-04:00","bar_open":"2026-09-14T09:50:00-04:00","open":167.50999450683594,"high":168.8800048828125,"low":167.3907928466797,"close":168.39500427246094,"volume":412747.0,"vwap":168.09471113142945},{"time":"2026-09-14T10:00:00-04:00","bar_open":"2026-09-14T09:55:00-04:00","open":168.4499969482422,"high":168.7790069580078,"low":168.02999877929688,"close":168.38499450683594,"volume":288537.0,"vwap":168.11478378002377},{"time":"2026-09-14T10:05:00-04:00","bar_open":"2026-09-14T10:00:00-04:00","open":168.35499572753906,"high":168.36000061035156,"low":167.30099487304688,"close":167.58999633789062,"volume":214499.0,"vwap":168.0976932712733},{"time":"2026-09-14T10:10:00-04:00","bar_open":"2026-09-14T10:05:00-04:00","open":167.56500244140625,"high":168.13999938964844,"low":167.4199981689453,"close":167.9398956298828,"volume":336071.0,"vwap":168.07959726979192},{"time":"2026-09-14T10:15:00-04:00","bar_open":"2026-09-14T10:10:00-04:00","open":167.94000244140625,"high":167.99000549316406,"low":167.1999969482422,"close":167.4499969482422,"volume":174714.0,"vwap":168.06128628614053},{"time":"2026-09-14T10:20:00-04:00","bar_open":"2026-09-14T10:15:00-04:00","open":167.4499969482422,"high":167.83999633789062,"low":167.16000366210938,"close":167.54649353027344,"volume":172245.0,"vwap":168.04340426073503},{"time":"2026-09-14T10:25:00-04:00","bar_open":"2026-09-14T10:20:00-04:00","open":167.46499633789062,"high":167.77810668945312,"low":167.0,"close":167.0399932861328,"volume":243709.0,"vwap":168.0092594186558},{"time":"2026-09-14T10:30:00-04:00","bar_open":"2026-09-14T10:25:00-04:00","open":167.02000427246094,"high":167.36849975585938,"low":166.8000030517578,"close":167.27999877929688,"volume":200524.0,"vwap":167.9790209887189},{"time":"2026-09-14T10:35:00-04:00","bar_open":"2026-09-14T10:30:00-04:00","open":167.25999450683594,"high":168.74000549316406,"low":167.10060119628906,"close":168.50050354003906,"volume":456114.0,"vwap":167.9889974562558},{"time":"2026-09-14T10:40:00-04:00","bar_open":"2026-09-14T10:35:00-04:00","open":168.5,"high":168.53500366210938,"low":167.64999389648438,"close":168.16470336914062,"volume":261659.0,"vwap":167.9941974340324},{"time":"2026-09-14T10:45:00-04:00","bar_open":"2026-09-14T10:40:00-04:00","open":168.13499450683594,"high":168.8800048828125,"low":167.92999267578125,"close":168.8800048828125,"volume":347980.0,"vwap":168.02346340680506},{"time":"2026-09-14T10:50:00-04:00","bar_open":"2026-09-14T10:45:00-04:00","open":168.82000732421875,"high":169.6793975830078,"low":168.69000244140625,"close":169.41000366210938,"volume":445691.0,"vwap":168.09985800904562},{"time":"2026-09-14T10:55:00-04:00","bar_open":"2026-09-14T10:50:00-04:00","open":169.4149932861328,"high":169.79989624023438,"low":169.06069946289062,"close":169.625,"volume":365064.0,"vwap":168.1670779580222},{"time":"2026-09-14T11:00:00-04:00","bar_open":"2026-09-14T10:55:00-04:00","open":169.5200958251953,"high":169.9199981689453,"low":169.010498046875,"close":169.8699951171875,"volume":372993.0,"vwap":168.23430668622115},{"time":"2026-09-14T11:05:00-04:00","bar_open":"2026-09-14T11:00:00-04:00","open":169.83999633789062,"high":170.0760040283203,"low":169.5500030517578,"close":169.77999877929688,"volume":516236.0,"vwap":168.32988773875093},{"time":"2026-09-14T11:10:00-04:00","bar_open":"2026-09-14T11:05:00-04:00","open":169.75,"high":170.9499969482422,"low":169.59010314941406,"close":170.75,"volume":524522.0,"vwap":168.4523978238568},{"time":"2026-09-14T11:15:00-04:00","bar_open":"2026-09-14T11:10:00-04:00","open":170.8000030517578,"high":171.72999572753906,"low":170.3300018310547,"close":171.38999938964844,"volume":700067.0,"vwap":168.6472543132795},{"time":"2026-09-14T11:20:00-04:00","bar_open":"2026-09-14T11:15:00-04:00","open":171.3800048828125,"high":171.5399932861328,"low":170.8000030517578,"close":171.52499389648438,"volume":395410.0,"vwap":168.75078267478136},{"time":"2026-09-14T11:25:00-04:00","bar_open":"2026-09-14T11:20:00-04:00","open":171.52499389648438,"high":171.6300048828125,"low":171.2100067138672,"close":171.5,"volume":274156.0,"vwap":168.8221146757988},{"time":"2026-09-14T11:30:00-04:00","bar_open":"2026-09-14T11:25:00-04:00","open":171.5,"high":171.5,"low":170.60000610351562,"close":170.8000030517578,"volume":309072.0,"vwap":168.88423252413077},{"time":"2026-09-14T11:35:00-04:00","bar_open":"2026-09-14T11:30:00-04:00","open":170.77000427246094,"high":171.9499969482422,"low":170.73240661621094,"close":171.8199005126953,"volume":370049.0,"vwap":168.97193247836503},{"time":"2026-09-14T11:40:00-04:00","bar_open":"2026-09-14T11:35:00-04:00","open":171.82000732421875,"high":171.94000244140625,"low":171.5,"close":171.56500244140625,"volume":395748.0,"vwap":169.06524115864795},{"time":"2026-09-14T11:45:00-04:00","bar_open":"2026-09-14T11:40:00-04:00","open":171.57200622558594,"high":171.94000244140625,"low":171.24000549316406,"close":171.7899932861328,"volume":322694.0,"vwap":169.13635654026697},{"time":"2026-09-14T11:50:00-04:00","bar_open":"2026-09-14T11:45:00-04:00","open":171.79010009765625,"high":171.8699951171875,"low":171.17999267578125,"close":171.44500732421875,"volume":247682.0,"vwap":169.18508143664508},{"time":"2026-09-14T11:55:00-04:00","bar_open":"2026-09-14T11:50:00-04:00","open":171.44500732421875,"high":171.7899932861328,"low":171.27000427246094,"close":171.6999969482422,"volume":231934.0,"vwap":169.230594268981},{"time":"2026-09-14T12:00:00-04:00","bar_open":"2026-09-14T11:55:00-04:00","open":171.60000610351562,"high":171.67999267578125,"low":171.30999755859375,"close":171.33999633789062,"volume":156376.0,"vwap":169.25851052696422},{"time":"2026-09-14T12:05:00-04:00","bar_open":"2026-09-14T12:00:00-04:00","open":171.33999633789062,"high":171.61199951171875,"low":171.32000732421875,"close":171.55499267578125,"volume":193446.0,"vwap":169.29288912331222},{"time":"2026-09-14T12:10:00-04:00","bar_open":"2026-09-14T12:05:00-04:00","open":171.50999450683594,"high":172.16000366210938,"low":171.49000549316406,"close":172.16000366210938,"volume":455036.0,"vwap":169.38512118580024},{"time":"2026-09-14T12:15:00-04:00","bar_open":"2026-09-14T12:10:00-04:00","open":172.16000366210938,"high":172.9698944091797,"low":172.10000610351562,"close":172.50999450683594,"volume":627758.0,"vwap":169.5293748221735},{"time":"2026-09-14T12:20:00-04:00","bar_open":"2026-09-14T12:15:00-04:00","open":172.5449981689453,"high":173.5399932861328,"low":172.5449981689453,"close":173.39999389648438,"volume":406871.0,"vwap":169.63435233944276},{"time":"2026-09-14T12:25:00-04:00","bar_open":"2026-09-14T12:20:00-04:00","open":173.3699951171875,"high":173.6999969482422,"low":173.25999450683594,"close":173.5915985107422,"volume":294591.0,"vwap":169.71393798582153},{"time":"2026-09-14T12:30:00-04:00","bar_open":"2026-09-14T12:25:00-04:00","open":173.56500244140625,"high":173.75,"low":173.27999877929688,"close":173.34010314941406,"volume":342748.0,"vwap":169.80111405844224},{"time":"2026-09-14T12:35:00-04:00","bar_open":"2026-09-14T12:30:00-04:00","open":173.38499450683594,"high":173.52000427246094,"low":173.25,"close":173.38999938964844,"volume":219790.0,"vwap":169.85388022532663},{"time":"2026-09-14T12:40:00-04:00","bar_open":"2026-09-14T12:35:00-04:00","open":173.3538055419922,"high":173.39999389648438,"low":172.35009765625,"close":172.49000549316406,"volume":310620.0,"vwap":169.91281915183058},{"time":"2026-09-14T12:45:00-04:00","bar_open":"2026-09-14T12:40:00-04:00","open":172.5,"high":172.50999450683594,"low":171.9199981689453,"close":172.0883026123047,"volume":238820.0,"vwap":169.94767454294012},{"time":"2026-09-14T12:50:00-04:00","bar_open":"2026-09-14T12:45:00-04:00","open":172.05499267578125,"high":172.889892578125,"low":171.9508056640625,"close":172.5399932861328,"volume":266346.0,"vwap":169.99016158202946},{"time":"2026-09-14T12:55:00-04:00","bar_open":"2026-09-14T12:50:00-04:00","open":172.47000122070312,"high":172.5399932861328,"low":172.00010681152344,"close":172.13999938964844,"volume":191828.0,"vwap":170.0170723201495},{"time":"2026-09-14T13:00:00-04:00","bar_open":"2026-09-14T12:55:00-04:00","open":172.16000366210938,"high":172.7799072265625,"low":171.85000610351562,"close":172.7799072265625,"volume":206610.0,"vwap":170.04845360249843},{"time":"2026-09-14T13:05:00-04:00","bar_open":"2026-09-14T13:00:00-04:00","open":172.72999572753906,"high":172.9499969482422,"low":172.61000061035156,"close":172.6999969482422,"volume":230179.0,"vwap":170.08646485619167},{"time":"2026-09-14T13:10:00-04:00","bar_open":"2026-09-14T13:05:00-04:00","open":172.67999267578125,"high":172.8300018310547,"low":172.4199981689453,"close":172.47999572753906,"volume":183354.0,"vwap":170.11403182323093},{"time":"2026-09-14T13:15:00-04:00","bar_open":"2026-09-14T13:10:00-04:00","open":172.52000427246094,"high":173.10000610351562,"low":172.4550018310547,"close":172.71499633789062,"volume":200233.0,"vwap":170.14559774879405},{"time":"2026-09-14T13:20:00-04:00","bar_open":"2026-09-14T13:15:00-04:00","open":172.6999969482422,"high":173.15499877929688,"low":172.6999969482422,"close":172.92990112304688,"volume":178414.0,"vwap":170.17490284201128},{"time":"2026-09-14T13:25:00-04:00","bar_open":"2026-09-14T13:20:00-04:00","open":172.87289428710938,"high":173.22999572753906,"low":172.85000610351562,"close":172.91000366210938,"volume":183356.0,"vwap":170.20511547732355},{"time":"2026-09-14T13:30:00-04:00","bar_open":"2026-09-14T13:25:00-04:00","open":172.88999938964844,"high":173.33999633789062,"low":172.88999938964844,"close":173.3000030517578,"volume":218488.0,"vwap":170.24255043803356},{"time":"2026-09-14T13:35:00-04:00","bar_open":"2026-09-14T13:30:00-04:00","open":173.3000030517578,"high":173.3000030517578,"low":172.94000244140625,"close":173.02999877929688,"volume":175085.0,"vwap":170.2710087751527},{"time":"2026-09-14T13:40:00-04:00","bar_open":"2026-09-14T13:35:00-04:00","open":173.02999877929688,"high":173.41000366210938,"low":172.80999755859375,"close":173.38999938964844,"volume":198819.0,"vwap":170.30391462970525},{"time":"2026-09-14T13:45:00-04:00","bar_open":"2026-09-14T13:40:00-04:00","open":173.39999389648438,"high":173.41000366210938,"low":173.1699981689453,"close":173.2550048828125,"volume":197161.0,"vwap":170.33665024045388},{"time":"2026-09-14T13:50:00-04:00","bar_open":"2026-09-14T13:45:00-04:00","open":173.25999450683594,"high":173.3199005126953,"low":172.8800048828125,"close":173.1999969482422,"volume":178744.0,"vwap":170.36427858826417},{"time":"2026-09-14T13:55:00-04:00","bar_open":"2026-09-14T13:50:00-04:00","open":173.20509338378906,"high":173.27000427246094,"low":172.79600524902344,"close":173.05499267578125,"volume":204057.0,"vwap":170.3941228774121},{"time":"2026-09-14T14:00:00-04:00","bar_open":"2026-09-14T13:55:00-04:00","open":173.09950256347656,"high":173.46499633789062,"low":173.0,"close":173.22500610351562,"volume":211339.0,"vwap":170.42650418008427},{"time":"2026-09-14T14:05:00-04:00","bar_open":"2026-09-14T14:00:00-04:00","open":173.23500061035156,"high":173.40499877929688,"low":173.125,"close":173.1649932861328,"volume":137199.0,"vwap":170.44714506248096},{"time":"2026-09-14T14:10:00-04:00","bar_open":"2026-09-14T14:05:00-04:00","open":173.1199951171875,"high":173.25,"low":172.9199981689453,"close":173.10499572753906,"volume":152396.0,"vwap":170.4685840808288},{"time":"2026-09-14T14:15:00-04:00","bar_open":"2026-09-14T14:10:00-04:00","open":173.10499572753906,"high":173.14999389648438,"low":172.8800048828125,"close":173.0225067138672,"volume":144811.0,"vwap":170.4880694736376},{"time":"2026-09-14T14:20:00-04:00","bar_open":"2026-09-14T14:15:00-04:00","open":173.0449981689453,"high":173.08990478515625,"low":172.4600067138672,"close":172.61500549316406,"volume":205692.0,"vwap":170.5120621285043},{"time":"2026-09-14T14:25:00-04:00","bar_open":"2026-09-14T14:20:00-04:00","open":172.61500549316406,"high":172.85000610351562,"low":172.39999389648438,"close":172.68499755859375,"volume":217347.0,"vwap":170.53600032491067},{"time":"2026-09-14T14:30:00-04:00","bar_open":"2026-09-14T14:25:00-04:00","open":172.6999969482422,"high":172.91000366210938,"low":172.58470153808594,"close":172.6999969482422,"volume":197531.0,"vwap":170.55816872712745},{"time":"2026-09-14T14:35:00-04:00","bar_open":"2026-09-14T14:30:00-04:00","open":172.6999969482422,"high":173.02999877929688,"low":172.66000366210938,"close":172.8300018310547,"volume":152805.0,"vwap":170.57585331010475},{"time":"2026-09-14T14:40:00-04:00","bar_open":"2026-09-14T14:35:00-04:00","open":172.8699951171875,"high":172.8699951171875,"low":172.6320037841797,"close":172.78990173339844,"volume":127397.0,"vwap":170.58990101441148},{"time":"2026-09-14T14:45:00-04:00","bar_open":"2026-09-14T14:40:00-04:00","open":172.72999572753906,"high":173.23460388183594,"low":172.72000122070312,"close":173.10000610351562,"volume":204464.0,"vwap":170.61466633949556},{"time":"2026-09-14T14:50:00-04:00","bar_open":"2026-09-14T14:45:00-04:00","open":173.13999938964844,"high":173.44000244140625,"low":172.8249969482422,"close":173.10499572753906,"volume":275890.0,"vwap":170.64872027643653},{"time":"2026-09-14T14:55:00-04:00","bar_open":"2026-09-14T14:50:00-04:00","open":173.11000061035156,"high":173.13999938964844,"low":172.8000030517578,"close":172.91000366210938,"volume":196116.0,"vwap":170.6707141058035},{"time":"2026-09-14T15:00:00-04:00","bar_open":"2026-09-14T14:55:00-04:00","open":172.88999938964844,"high":172.9499969482422,"low":172.5,"close":172.59500122070312,"volume":195031.0,"vwap":170.68964692045904},{"time":"2026-09-14T15:05:00-04:00","bar_open":"2026-09-14T15:00:00-04:00","open":172.57000732421875,"high":172.60000610351562,"low":172.27000427246094,"close":172.5500030517578,"volume":217976.0,"vwap":170.70822035122157},{"time":"2026-09-14T15:10:00-04:00","bar_open":"2026-09-14T15:05:00-04:00","open":172.54249572753906,"high":172.5449981689453,"low":172.3300018310547,"close":172.35000610351562,"volume":152874.0,"vwap":170.72054616753547},{"time":"2026-09-14T15:15:00-04:00","bar_open":"2026-09-14T15:10:00-04:00","open":172.3800048828125,"high":172.58999633789062,"low":172.17999267578125,"close":172.41000366210938,"volume":187623.0,"vwap":170.73529924592694},{"time":"2026-09-14T15:20:00-04:00","bar_open":"2026-09-14T15:15:00-04:00","open":172.40499877929688,"high":172.72000122070312,"low":172.32000732421875,"close":172.7100067138672,"volume":190140.0,"vwap":170.75167030573348},{"time":"2026-09-14T15:25:00-04:00","bar_open":"2026-09-14T15:20:00-04:00","open":172.7100067138672,"high":173.24000549316406,"low":172.64999389648438,"close":173.19000244140625,"volume":286509.0,"vwap":170.78163793742334},{"time":"2026-09-14T15:30:00-04:00","bar_open":"2026-09-14T15:25:00-04:00","open":173.19000244140625,"high":173.62489318847656,"low":173.125,"close":173.4499969482422,"volume":334216.0,"vwap":170.82126223538964},{"time":"2026-09-14T15:35:00-04:00","bar_open":"2026-09-14T15:30:00-04:00","open":173.44430541992188,"high":174.22999572753906,"low":173.44430541992188,"close":173.82000732421875,"volume":926363.0,"vwap":170.9424442702363},{"time":"2026-09-14T15:40:00-04:00","bar_open":"2026-09-14T15:35:00-04:00","open":173.8489990234375,"high":174.10000610351562,"low":173.64999389648438,"close":173.9499969482422,"volume":374091.0,"vwap":170.98975633609746},{"time":"2026-09-14T15:45:00-04:00","bar_open":"2026-09-14T15:40:00-04:00","open":173.9499969482422,"high":174.25999450683594,"low":173.90499877929688,"close":173.99000549316406,"volume":324510.0,"vwap":171.03166435828354},{"time":"2026-09-14T15:50:00-04:00","bar_open":"2026-09-14T15:45:00-04:00","open":173.91000366210938,"high":174.35989379882812,"low":173.83999633789062,"close":174.02499389648438,"volume":364211.0,"vwap":171.07770627888618},{"time":"2026-09-14T15:55:00-04:00","bar_open":"2026-09-14T15:50:00-04:00","open":173.97999572753906,"high":174.08999633789062,"low":173.67999267578125,"close":173.68499755859375,"volume":519482.0,"vwap":171.13559632780948},{"time":"2026-09-14T16:00:00-04:00","bar_open":"2026-09-14T15:55:00-04:00","open":173.66000366210938,"high":173.74000549316406,"low":173.10000610351562,"close":173.30999755859375,"volume":1286016.0,"vwap":171.24729309493134}],"fills":[{"time":"2026-09-14T09:40:00-04:00","action":"B","shares":101,"quantity":101,"price":167.14352755737303,"reference_price":167.05999755859375,"shares_before":0,"shares_after":101,"assumed_cost":8.436529876708985,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:40:00-04:00","pnl":null},{"time":"2026-09-14T09:45:00-04:00","action":"S","shares":101,"quantity":-101,"price":167.10640744018556,"reference_price":167.19000244140625,"shares_before":101,"shares_after":0,"assumed_cost":8.443095123291016,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:45:00-04:00","pnl":null},{"time":"2026-09-14T09:50:00-04:00","action":"X","shares":38,"quantity":-38,"price":167.42623950958253,"reference_price":167.50999450683594,"shares_before":0,"shares_after":-38,"assumed_cost":3.182689895629883,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:50:00-04:00","pnl":null},{"time":"2026-09-14T09:55:00-04:00","action":"C","shares":9,"quantity":9,"price":168.5342219467163,"reference_price":168.4499969482422,"shares_before":-38,"shares_after":-29,"assumed_cost":0.7580249862670898,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:55:00-04:00","pnl":null},{"time":"2026-09-14T10:00:00-04:00","action":"C","shares":29,"quantity":29,"price":168.4391732254028,"reference_price":168.35499572753906,"shares_before":-29,"shares_after":0,"assumed_cost":2.4411474380493163,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:00:00-04:00","pnl":null},{"time":"2026-09-14T10:50:00-04:00","action":"X","shares":74,"quantity":-74,"price":169.33028578948975,"reference_price":169.4149932861328,"shares_before":0,"shares_after":-74,"assumed_cost":6.268354751586914,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:50:00-04:00","pnl":null},{"time":"2026-09-14T10:55:00-04:00","action":"C","shares":7,"quantity":7,"price":169.6048558731079,"reference_price":169.5200958251953,"shares_before":-74,"shares_after":-67,"assumed_cost":0.5933203353881836,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:55:00-04:00","pnl":null},{"time":"2026-09-14T11:00:00-04:00","action":"C","shares":34,"quantity":34,"price":169.92491633605957,"reference_price":169.83999633789062,"shares_before":-67,"shares_after":-33,"assumed_cost":2.8872799377441405,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:00:00-04:00","pnl":null},{"time":"2026-09-14T11:10:00-04:00","action":"X","shares":10,"quantity":-10,"price":170.71460305023194,"reference_price":170.8000030517578,"shares_before":-33,"shares_after":-43,"assumed_cost":0.8540000152587891,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:10:00-04:00","pnl":null},{"time":"2026-09-14T11:15:00-04:00","action":"C","shares":43,"quantity":43,"price":171.4656948852539,"reference_price":171.3800048828125,"shares_before":-43,"shares_after":0,"assumed_cost":3.684670104980469,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:15:00-04:00","pnl":null},{"time":"2026-09-14T11:20:00-04:00","action":"X","shares":8,"quantity":-8,"price":171.43923139953614,"reference_price":171.52499389648438,"shares_before":0,"shares_after":-8,"assumed_cost":0.6860999755859375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:20:00-04:00","pnl":null},{"time":"2026-09-14T11:30:00-04:00","action":"C","shares":2,"quantity":2,"price":170.85538927459717,"reference_price":170.77000427246094,"shares_before":-8,"shares_after":-6,"assumed_cost":0.1707700042724609,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:30:00-04:00","pnl":null},{"time":"2026-09-14T11:35:00-04:00","action":"C","shares":1,"quantity":1,"price":171.90591732788084,"reference_price":171.82000732421875,"shares_before":-6,"shares_after":-5,"assumed_cost":0.0859100036621093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:35:00-04:00","pnl":null},{"time":"2026-09-14T11:45:00-04:00","action":"X","shares":1,"quantity":-1,"price":171.70420504760745,"reference_price":171.79010009765625,"shares_before":-5,"shares_after":-6,"assumed_cost":0.0858950500488281,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:45:00-04:00","pnl":null},{"time":"2026-09-14T11:50:00-04:00","action":"C","shares":1,"quantity":1,"price":171.53072982788086,"reference_price":171.44500732421875,"shares_before":-6,"shares_after":-5,"assumed_cost":0.0857225036621093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:50:00-04:00","pnl":null},{"time":"2026-09-14T11:55:00-04:00","action":"C","shares":1,"quantity":1,"price":171.68580610656738,"reference_price":171.60000610351562,"shares_before":-5,"shares_after":-4,"assumed_cost":0.0858000030517578,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:55:00-04:00","pnl":null},{"time":"2026-09-14T12:00:00-04:00","action":"C","shares":1,"quantity":1,"price":171.42566633605955,"reference_price":171.33999633789062,"shares_before":-4,"shares_after":-3,"assumed_cost":0.0856699981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:00:00-04:00","pnl":null},{"time":"2026-09-14T12:05:00-04:00","action":"C","shares":1,"quantity":1,"price":171.59574950408935,"reference_price":171.50999450683594,"shares_before":-3,"shares_after":-2,"assumed_cost":0.0857549972534179,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:05:00-04:00","pnl":null},{"time":"2026-09-14T12:10:00-04:00","action":"C","shares":2,"quantity":2,"price":172.24608366394042,"reference_price":172.16000366210938,"shares_before":-2,"shares_after":0,"assumed_cost":0.1721600036621093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:10:00-04:00","pnl":null},{"time":"2026-09-14T12:25:00-04:00","action":"X","shares":39,"quantity":-39,"price":173.47821994018557,"reference_price":173.56500244140625,"shares_before":0,"shares_after":-39,"assumed_cost":3.384517547607422,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:25:00-04:00","pnl":null},{"time":"2026-09-14T12:35:00-04:00","action":"C","shares":1,"quantity":1,"price":173.44048244476318,"reference_price":173.3538055419922,"shares_before":-39,"shares_after":-38,"assumed_cost":0.0866769027709961,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:35:00-04:00","pnl":null},{"time":"2026-09-14T12:40:00-04:00","action":"C","shares":1,"quantity":1,"price":172.58624999999998,"reference_price":172.5,"shares_before":-38,"shares_after":-37,"assumed_cost":0.08625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:40:00-04:00","pnl":null},{"time":"2026-09-14T12:45:00-04:00","action":"X","shares":6,"quantity":-6,"price":171.96896517944336,"reference_price":172.05499267578125,"shares_before":-37,"shares_after":-43,"assumed_cost":0.5161649780273437,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:45:00-04:00","pnl":null},{"time":"2026-09-14T12:50:00-04:00","action":"C","shares":1,"quantity":1,"price":172.55623622131347,"reference_price":172.47000122070312,"shares_before":-43,"shares_after":-42,"assumed_cost":0.0862350006103515,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:50:00-04:00","pnl":null},{"time":"2026-09-14T12:55:00-04:00","action":"C","shares":1,"quantity":1,"price":172.24608366394042,"reference_price":172.16000366210938,"shares_before":-42,"shares_after":-41,"assumed_cost":0.0860800018310546,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:55:00-04:00","pnl":null},{"time":"2026-09-14T13:00:00-04:00","action":"C","shares":32,"quantity":32,"price":172.81636072540283,"reference_price":172.72999572753906,"shares_before":-41,"shares_after":-9,"assumed_cost":2.763679931640625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:00:00-04:00","pnl":null},{"time":"2026-09-14T13:05:00-04:00","action":"C","shares":9,"quantity":9,"price":172.76633267211912,"reference_price":172.67999267578125,"shares_before":-9,"shares_after":0,"assumed_cost":0.7770599670410157,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:05:00-04:00","pnl":null},{"time":"2026-09-14T13:30:00-04:00","action":"X","shares":10,"quantity":-10,"price":173.21335305023194,"reference_price":173.3000030517578,"shares_before":0,"shares_after":-10,"assumed_cost":0.8665000152587891,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:30:00-04:00","pnl":null},{"time":"2026-09-14T13:40:00-04:00","action":"C","shares":1,"quantity":1,"price":173.4866938934326,"reference_price":173.39999389648438,"shares_before":-10,"shares_after":-9,"assumed_cost":0.0866999969482421,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:40:00-04:00","pnl":null},{"time":"2026-09-14T13:45:00-04:00","action":"C","shares":9,"quantity":9,"price":173.34662450408933,"reference_price":173.25999450683594,"shares_before":-9,"shares_after":0,"assumed_cost":0.7796699752807618,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:45:00-04:00","pnl":null},{"time":"2026-09-14T14:10:00-04:00","action":"X","shares":6,"quantity":-6,"price":173.0184432296753,"reference_price":173.10499572753906,"shares_before":0,"shares_after":-6,"assumed_cost":0.5193149871826171,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:10:00-04:00","pnl":null},{"time":"2026-09-14T14:15:00-04:00","action":"X","shares":32,"quantity":-32,"price":172.95847566986086,"reference_price":173.0449981689453,"shares_before":-6,"shares_after":-38,"assumed_cost":2.768719970703125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:15:00-04:00","pnl":null},{"time":"2026-09-14T14:20:00-04:00","action":"X","shares":6,"quantity":-6,"price":172.5286979904175,"reference_price":172.61500549316406,"shares_before":-38,"shares_after":-44,"assumed_cost":0.5178450164794922,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:20:00-04:00","pnl":null},{"time":"2026-09-14T14:25:00-04:00","action":"C","shares":29,"quantity":29,"price":172.7863469467163,"reference_price":172.6999969482422,"shares_before":-44,"shares_after":-15,"assumed_cost":2.504149955749512,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:25:00-04:00","pnl":null},{"time":"2026-09-14T14:30:00-04:00","action":"X","shares":6,"quantity":-6,"price":172.61364694976808,"reference_price":172.6999969482422,"shares_before":-15,"shares_after":-21,"assumed_cost":0.5180999908447266,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:30:00-04:00","pnl":null},{"time":"2026-09-14T14:35:00-04:00","action":"C","shares":1,"quantity":1,"price":172.9564301147461,"reference_price":172.8699951171875,"shares_before":-21,"shares_after":-20,"assumed_cost":0.0864349975585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:35:00-04:00","pnl":null},{"time":"2026-09-14T14:45:00-04:00","action":"C","shares":1,"quantity":1,"price":173.22656938934324,"reference_price":173.13999938964844,"shares_before":-20,"shares_after":-19,"assumed_cost":0.0865699996948242,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:45:00-04:00","pnl":null},{"time":"2026-09-14T14:50:00-04:00","action":"C","shares":1,"quantity":1,"price":173.19655561065673,"reference_price":173.11000061035156,"shares_before":-19,"shares_after":-18,"assumed_cost":0.0865550003051757,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:50:00-04:00","pnl":null},{"time":"2026-09-14T15:00:00-04:00","action":"C","shares":1,"quantity":1,"price":172.65629232788086,"reference_price":172.57000732421875,"shares_before":-18,"shares_after":-17,"assumed_cost":0.0862850036621093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:00:00-04:00","pnl":null},{"time":"2026-09-14T15:05:00-04:00","action":"C","shares":1,"quantity":1,"price":172.6287669754028,"reference_price":172.54249572753906,"shares_before":-17,"shares_after":-16,"assumed_cost":0.0862712478637695,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:05:00-04:00","pnl":null},{"time":"2026-09-14T15:10:00-04:00","action":"C","shares":1,"quantity":1,"price":172.46619488525388,"reference_price":172.3800048828125,"shares_before":-16,"shares_after":-15,"assumed_cost":0.0861900024414062,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:10:00-04:00","pnl":null},{"time":"2026-09-14T15:15:00-04:00","action":"C","shares":7,"quantity":7,"price":172.4912012786865,"reference_price":172.40499877929688,"shares_before":-15,"shares_after":-8,"assumed_cost":0.6034174957275391,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:15:00-04:00","pnl":null},{"time":"2026-09-14T15:20:00-04:00","action":"C","shares":8,"quantity":8,"price":172.7963617172241,"reference_price":172.7100067138672,"shares_before":-8,"shares_after":0,"assumed_cost":0.6908400268554687,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:20:00-04:00","pnl":null}],"marks":[{"time":"2026-09-14T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-14T09:40:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-14T09:45:00-04:00","shares":101,"pnl":6.714394805909251},{"time":"2026-09-14T09:50:00-04:00","shares":0,"pnl":-3.749131835935259},{"time":"2026-09-14T09:55:00-04:00","shares":-38,"pnl":-40.56219282531492},{"time":"2026-09-14T10:00:00-04:00","shares":-29,"pnl":-41.52486869048789},{"time":"2026-09-14T10:05:00-04:00","shares":0,"pnl":-43.09605152892709},{"time":"2026-09-14T10:10:00-04:00","shares":0,"pnl":-43.09605152892709},{"time":"2026-09-14T10:15:00-04:00","shares":0,"pnl":-43.09605152892709},{"time":"2026-09-14T10:20:00-04:00","shares":0,"pnl":-43.09605152892709},{"time":"2026-09-14T10:25:00-04:00","shares":0,"pnl":-43.09605152892709},{"time":"2026-09-14T10:30:00-04:00","shares":0,"pnl":-43.09605152892709},{"time":"2026-09-14T10:35:00-04:00","shares":0,"pnl":-43.09605152892709},{"time":"2026-09-14T10:40:00-04:00","shares":0,"pnl":-43.09605152892709},{"time":"2026-09-14T10:45:00-04:00","shares":0,"pnl":-43.09605152892709},{"time":"2026-09-14T10:50:00-04:00","shares":0,"pnl":-43.09605152892709},{"time":"2026-09-14T10:55:00-04:00","shares":-74,"pnl":-64.9049031066861},{"time":"2026-09-14T11:00:00-04:00","shares":-67,"pnl":-81.17856707000465},{"time":"2026-09-14T11:05:00-04:00","shares":-33,"pnl":-80.07600936126437},{"time":"2026-09-14T11:10:00-04:00","shares":-33,"pnl":-112.0860496444675},{"time":"2026-09-14T11:15:00-04:00","shares":-43,"pnl":-139.95999289703104},{"time":"2026-09-14T11:20:00-04:00","shares":0,"pnl":-143.21489920806562},{"time":"2026-09-14T11:25:00-04:00","shares":-8,"pnl":-143.7010480117765},{"time":"2026-09-14T11:30:00-04:00","shares":-8,"pnl":-138.101072425839},{"time":"2026-09-14T11:35:00-04:00","shares":-6,"pnl":-144.33122963714277},{"time":"2026-09-14T11:40:00-04:00","shares":-5,"pnl":-143.142756095883},{"time":"2026-09-14T11:45:00-04:00","shares":-5,"pnl":-144.2677103195158},{"time":"2026-09-14T11:50:00-04:00","shares":-6,"pnl":-142.28358278655674},{"time":"2026-09-14T11:55:00-04:00","shares":-5,"pnl":-143.64425341033598},{"time":"2026-09-14T12:00:00-04:00","shares":-4,"pnl":-142.19006012725492},{"time":"2026-09-14T12:05:00-04:00","shares":-3,"pnl":-142.9207191390957},{"time":"2026-09-14T12:10:00-04:00","shares":-2,"pnl":-144.17149794006005},{"time":"2026-09-14T12:15:00-04:00","shares":0,"pnl":-144.34365794372215},{"time":"2026-09-14T12:20:00-04:00","shares":0,"pnl":-144.34365794372215},{"time":"2026-09-14T12:25:00-04:00","shares":0,"pnl":-144.34365794372215},{"time":"2026-09-14T12:30:00-04:00","shares":-39,"pnl":-138.95710310363302},{"time":"2026-09-14T12:35:00-04:00","shares":-39,"pnl":-140.90305647277364},{"time":"2026-09-14T12:40:00-04:00","shares":-38,"pnl":-106.75377146148185},{"time":"2026-09-14T12:45:00-04:00","shares":-37,"pnl":-91.9870093765212},{"time":"2026-09-14T12:50:00-04:00","shares":-43,"pnl":-112.12573294829872},{"time":"2026-09-14T12:55:00-04:00","shares":-42,"pnl":-95.34223223113533},{"time":"2026-09-14T13:00:00-04:00","shares":-41,"pnl":-121.68453781890366},{"time":"2026-09-14T13:05:00-04:00","shares":-9,"pnl":-122.13185727691145},{"time":"2026-09-14T13:10:00-04:00","shares":0,"pnl":-122.72887879180372},{"time":"2026-09-14T13:15:00-04:00","shares":0,"pnl":-122.72887879180372},{"time":"2026-09-14T13:20:00-04:00","shares":0,"pnl":-122.72887879180372},{"time":"2026-09-14T13:25:00-04:00","shares":0,"pnl":-122.72887879180372},{"time":"2026-09-14T13:30:00-04:00","shares":0,"pnl":-122.72887879180372},{"time":"2026-09-14T13:35:00-04:00","shares":-10,"pnl":-120.895336082453},{"time":"2026-09-14T13:40:00-04:00","shares":-10,"pnl":-124.49534218596864},{"time":"2026-09-14T13:45:00-04:00","shares":-9,"pnl":-123.3770861282294},{"time":"2026-09-14T13:50:00-04:00","shares":0,"pnl":-124.20166271972084},{"time":"2026-09-14T13:55:00-04:00","shares":0,"pnl":-124.20166271972084},{"time":"2026-09-14T14:00:00-04:00","shares":0,"pnl":-124.20166271972084},{"time":"2026-09-14T14:05:00-04:00","shares":0,"pnl":-124.20166271972084},{"time":"2026-09-14T14:10:00-04:00","shares":0,"pnl":-124.20166271972084},{"time":"2026-09-14T14:15:00-04:00","shares":-6,"pnl":-124.22604362487208},{"time":"2026-09-14T14:20:00-04:00","shares":-38,"pnl":-110.78999064635536},{"time":"2026-09-14T14:25:00-04:00","shares":-44,"pnl":-114.38748654174104},{"time":"2026-09-14T14:30:00-04:00","shares":-15,"pnl":-117.5516096420215},{"time":"2026-09-14T14:35:00-04:00","shares":-21,"pnl":-120.79981217192837},{"time":"2026-09-14T14:40:00-04:00","shares":-20,"pnl":-120.1242385024948},{"time":"2026-09-14T14:45:00-04:00","shares":-20,"pnl":-126.32632590483854},{"time":"2026-09-14T14:50:00-04:00","shares":-19,"pnl":-126.54769204711148},{"time":"2026-09-14T14:55:00-04:00","shares":-18,"pnl":-123.1293947524946},{"time":"2026-09-14T15:00:00-04:00","shares":-18,"pnl":-117.45935080718208},{"time":"2026-09-14T15:05:00-04:00","shares":-17,"pnl":-116.75567304228936},{"time":"2026-09-14T15:10:00-04:00","shares":-16,"pnl":-113.6344857940594},{"time":"2026-09-14T15:15:00-04:00","shares":-15,"pnl":-114.65063795470404},{"time":"2026-09-14T15:20:00-04:00","shares":-8,"pnl":-117.61904568480644},{"time":"2026-09-14T15:25:00-04:00","shares":0,"pnl":-118.30988571166176},{"time":"2026-09-14T15:30:00-04:00","shares":0,"pnl":-118.30988571166176},{"time":"2026-09-14T15:35:00-04:00","shares":0,"pnl":-118.30988571166176},{"time":"2026-09-14T15:40:00-04:00","shares":0,"pnl":-118.30988571166176},{"time":"2026-09-14T15:45:00-04:00","shares":0,"pnl":-118.30988571166176},{"time":"2026-09-14T15:50:00-04:00","shares":0,"pnl":-118.30988571166176},{"time":"2026-09-14T15:55:00-04:00","shares":0,"pnl":-118.30988571166176},{"time":"2026-09-14T16:00:00-04:00","shares":0,"pnl":-118.30988571166176}],"summary":{"net_pnl":-118.30988571166176,"gross_pnl":-61.05676269530434,"cost":57.25312301635742,"fill_count":43,"ending_shares":0},"source_hashes":{"fills_sha256":"127c786c405b3869d02c4b15d536b5ff3aa3c414c880e691f849bf2e99551b83","marks_sha256":"d8f2261179539f1e332604ebfdc5dec062de885c2e58240686533a8d2bdac7db","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-14/levels/SNDK.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"SNDK","date":"2026-09-14","variant":"levels","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-14T16:00:00-04:00","partial":false,"starting_equity":47006.42,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-14T09:30:00-04:00","session_close":"2026-09-14T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-14T09:35:00-04:00","bar_open":"2026-09-14T09:30:00-04:00","open":1521.5250244140625,"high":1544.0,"low":1515.31005859375,"close":1518.5,"volume":1442238.0,"vwap":1525.9366861979167},{"time":"2026-09-14T09:40:00-04:00","bar_open":"2026-09-14T09:35:00-04:00","open":1519.0,"high":1525.7899169921875,"low":1505.0,"close":1513.1400146484375,"volume":400072.0,"vwap":1523.484241504318},{"time":"2026-09-14T09:45:00-04:00","bar_open":"2026-09-14T09:40:00-04:00","open":1513.1199951171875,"high":1521.7900390625,"low":1509.02001953125,"close":1518.3900146484375,"volume":219495.0,"vwap":1522.7300721089457},{"time":"2026-09-14T09:50:00-04:00","bar_open":"2026-09-14T09:45:00-04:00","open":1518.7099609375,"high":1547.6700439453125,"low":1518.3299560546875,"close":1546.0,"volume":366707.0,"vwap":1524.9351747042022},{"time":"2026-09-14T09:55:00-04:00","bar_open":"2026-09-14T09:50:00-04:00","open":1546.699951171875,"high":1548.0,"low":1523.050048828125,"close":1524.77001953125,"volume":244401.0,"vwap":1525.5756713743713},{"time":"2026-09-14T10:00:00-04:00","bar_open":"2026-09-14T09:55:00-04:00","open":1524.7900390625,"high":1536.22998046875,"low":1524.219970703125,"close":1532.4300537109375,"volume":168743.0,"vwap":1525.8954032630731},{"time":"2026-09-14T10:05:00-04:00","bar_open":"2026-09-14T10:00:00-04:00","open":1532.0899658203125,"high":1550.0,"low":1530.9300537109375,"close":1545.655029296875,"volume":210276.0,"vwap":1527.0184360900294},{"time":"2026-09-14T10:10:00-04:00","bar_open":"2026-09-14T10:05:00-04:00","open":1545.6500244140625,"high":1556.6300048828125,"low":1543.949951171875,"close":1553.1650390625,"volume":238532.0,"vwap":1528.7749073539617},{"time":"2026-09-14T10:15:00-04:00","bar_open":"2026-09-14T10:10:00-04:00","open":1553.205078125,"high":1562.9200439453125,"low":1553.205078125,"close":1557.5699462890625,"volume":192192.0,"vwap":1530.3820984934835},{"time":"2026-09-14T10:20:00-04:00","bar_open":"2026-09-14T10:15:00-04:00","open":1558.18994140625,"high":1565.9200439453125,"low":1555.875,"close":1565.690185546875,"volume":143420.0,"vwap":1531.6522437704498},{"time":"2026-09-14T10:25:00-04:00","bar_open":"2026-09-14T10:20:00-04:00","open":1565.5,"high":1565.7196044921875,"low":1555.0,"close":1558.6085205078125,"volume":149350.0,"vwap":1532.7647776184979},{"time":"2026-09-14T10:30:00-04:00","bar_open":"2026-09-14T10:25:00-04:00","open":1557.844970703125,"high":1563.0,"low":1552.1800537109375,"close":1555.8800048828125,"volume":123115.0,"vwap":1533.5307524044724},{"time":"2026-09-14T10:35:00-04:00","bar_open":"2026-09-14T10:30:00-04:00","open":1556.3699951171875,"high":1558.6500244140625,"low":1547.280029296875,"close":1553.1949462890625,"volume":113426.0,"vwap":1534.0823633626642},{"time":"2026-09-14T10:40:00-04:00","bar_open":"2026-09-14T10:35:00-04:00","open":1553.39501953125,"high":1553.9000244140625,"low":1544.1949462890625,"close":1549.0849609375,"volume":109817.0,"vwap":1534.4814130509208},{"time":"2026-09-14T10:45:00-04:00","bar_open":"2026-09-14T10:40:00-04:00","open":1548.9599609375,"high":1558.3699951171875,"low":1548.9599609375,"close":1556.3199462890625,"volume":128309.0,"vwap":1535.0872765334668},{"time":"2026-09-14T10:50:00-04:00","bar_open":"2026-09-14T10:45:00-04:00","open":1555.6650390625,"high":1559.8499755859375,"low":1546.0,"close":1547.574951171875,"volume":125221.0,"vwap":1535.5467506945706},{"time":"2026-09-14T10:55:00-04:00","bar_open":"2026-09-14T10:50:00-04:00","open":1546.630126953125,"high":1547.140380859375,"low":1537.7200927734375,"close":1540.8389892578125,"volume":122980.0,"vwap":1535.7204388931807},{"time":"2026-09-14T11:00:00-04:00","bar_open":"2026-09-14T10:55:00-04:00","open":1540.5574951171875,"high":1544.5299072265625,"low":1538.8319091796875,"close":1543.844970703125,"volume":94279.0,"vwap":1535.8576072377125},{"time":"2026-09-14T11:05:00-04:00","bar_open":"2026-09-14T11:00:00-04:00","open":1543.6700439453125,"high":1545.155029296875,"low":1532.6600341796875,"close":1532.93994140625,"volume":113868.0,"vwap":1535.8832705668372},{"time":"2026-09-14T11:10:00-04:00","bar_open":"2026-09-14T11:05:00-04:00","open":1532.7850341796875,"high":1546.5694580078125,"low":1531.0352783203125,"close":1532.1099853515625,"volume":174054.0,"vwap":1535.9078176562557},{"time":"2026-09-14T11:15:00-04:00","bar_open":"2026-09-14T11:10:00-04:00","open":1532.989990234375,"high":1535.8800048828125,"low":1530.5118408203125,"close":1532.1400146484375,"volume":78850.0,"vwap":1535.8591044304926},{"time":"2026-09-14T11:20:00-04:00","bar_open":"2026-09-14T11:15:00-04:00","open":1532.1400146484375,"high":1536.31005859375,"low":1531.1400146484375,"close":1532.0999755859375,"volume":64268.0,"vwap":1535.824873009632},{"time":"2026-09-14T11:25:00-04:00","bar_open":"2026-09-14T11:20:00-04:00","open":1531.5999755859375,"high":1532.4150390625,"low":1525.6700439453125,"close":1529.6400146484375,"volume":101333.0,"vwap":1535.6947071991528},{"time":"2026-09-14T11:30:00-04:00","bar_open":"2026-09-14T11:25:00-04:00","open":1529.8199462890625,"high":1540.9000244140625,"low":1527.10009765625,"close":1540.5,"volume":193653.0,"vwap":1535.7118929743021},{"time":"2026-09-14T11:35:00-04:00","bar_open":"2026-09-14T11:30:00-04:00","open":1540.5,"high":1552.7900390625,"low":1540.5,"close":1548.56005859375,"volume":163858.0,"vwap":1536.057737621742},{"time":"2026-09-14T11:40:00-04:00","bar_open":"2026-09-14T11:35:00-04:00","open":1549.030029296875,"high":1550.760498046875,"low":1539.0001220703125,"close":1542.375,"volume":109353.0,"vwap":1536.2139399438422},{"time":"2026-09-14T11:45:00-04:00","bar_open":"2026-09-14T11:40:00-04:00","open":1542.5899658203125,"high":1547.1600341796875,"low":1538.68505859375,"close":1542.7000732421875,"volume":89884.0,"vwap":1536.3188964567184},{"time":"2026-09-14T11:50:00-04:00","bar_open":"2026-09-14T11:45:00-04:00","open":1543.18505859375,"high":1543.4000244140625,"low":1533.0,"close":1533.47998046875,"volume":67571.0,"vwap":1536.322513693154},{"time":"2026-09-14T11:55:00-04:00","bar_open":"2026-09-14T11:50:00-04:00","open":1533.4649658203125,"high":1537.0,"low":1529.150146484375,"close":1531.1800537109375,"volume":94146.0,"vwap":1536.2600154311583},{"time":"2026-09-14T12:00:00-04:00","bar_open":"2026-09-14T11:55:00-04:00","open":1531.1800537109375,"high":1535.7099609375,"low":1529.7552490234375,"close":1535.3956298828125,"volume":65475.0,"vwap":1536.2307651324106},{"time":"2026-09-14T12:05:00-04:00","bar_open":"2026-09-14T12:00:00-04:00","open":1535.2239990234375,"high":1536.1376953125,"low":1531.0001220703125,"close":1531.5,"volume":52627.0,"vwap":1536.201178850401},{"time":"2026-09-14T12:10:00-04:00","bar_open":"2026-09-14T12:05:00-04:00","open":1531.77001953125,"high":1533.4300537109375,"low":1528.0,"close":1528.0,"volume":71259.0,"vwap":1536.1256865662729},{"time":"2026-09-14T12:15:00-04:00","bar_open":"2026-09-14T12:10:00-04:00","open":1528.260009765625,"high":1536.5400390625,"low":1527.5999755859375,"close":1536.5400390625,"volume":79936.0,"vwap":1536.0921352678606},{"time":"2026-09-14T12:20:00-04:00","bar_open":"2026-09-14T12:15:00-04:00","open":1536.0,"high":1546.72998046875,"low":1535.0799560546875,"close":1544.8599853515625,"volume":123824.0,"vwap":1536.2138673851136},{"time":"2026-09-14T12:25:00-04:00","bar_open":"2026-09-14T12:20:00-04:00","open":1544.4000244140625,"high":1545.8699951171875,"low":1538.4200439453125,"close":1545.5899658203125,"volume":69485.0,"vwap":1536.2918749141936},{"time":"2026-09-14T12:30:00-04:00","bar_open":"2026-09-14T12:25:00-04:00","open":1545.6600341796875,"high":1546.0,"low":1539.31005859375,"close":1543.4300537109375,"volume":45657.0,"vwap":1536.3394714432673},{"time":"2026-09-14T12:35:00-04:00","bar_open":"2026-09-14T12:30:00-04:00","open":1542.8599853515625,"high":1545.5999755859375,"low":1541.800048828125,"close":1543.1300048828125,"volume":34298.0,"vwap":1536.3779832192945},{"time":"2026-09-14T12:40:00-04:00","bar_open":"2026-09-14T12:35:00-04:00","open":1543.3699951171875,"high":1546.949951171875,"low":1542.75,"close":1546.2900390625,"volume":49502.0,"vwap":1536.4468425719297},{"time":"2026-09-14T12:45:00-04:00","bar_open":"2026-09-14T12:40:00-04:00","open":1545.925048828125,"high":1547.4659423828125,"low":1543.010009765625,"close":1547.10498046875,"volume":38608.0,"vwap":1536.502979516773},{"time":"2026-09-14T12:50:00-04:00","bar_open":"2026-09-14T12:45:00-04:00","open":1547.1199951171875,"high":1549.52001953125,"low":1545.0400390625,"close":1547.824951171875,"volume":58520.0,"vwap":1536.6011490612373},{"time":"2026-09-14T12:55:00-04:00","bar_open":"2026-09-14T12:50:00-04:00","open":1547.974365234375,"high":1554.1199951171875,"low":1547.1400146484375,"close":1550.0849609375,"volume":80298.0,"vwap":1536.7692901821556},{"time":"2026-09-14T13:00:00-04:00","bar_open":"2026-09-14T12:55:00-04:00","open":1550.5699462890625,"high":1555.3199462890625,"low":1549.800048828125,"close":1554.9599609375,"volume":66768.0,"vwap":1536.9351258996},{"time":"2026-09-14T13:05:00-04:00","bar_open":"2026-09-14T13:00:00-04:00","open":1554.5999755859375,"high":1560.5,"low":1553.0899658203125,"close":1558.239990234375,"volume":93408.0,"vwap":1537.2156574146293},{"time":"2026-09-14T13:10:00-04:00","bar_open":"2026-09-14T13:05:00-04:00","open":1559.0,"high":1567.7099609375,"low":1558.677490234375,"close":1566.89501953125,"volume":126313.0,"vwap":1537.7138476513244},{"time":"2026-09-14T13:15:00-04:00","bar_open":"2026-09-14T13:10:00-04:00","open":1567.1473388671875,"high":1570.69189453125,"low":1564.0,"close":1566.2801513671875,"volume":114388.0,"vwap":1538.1913248399496},{"time":"2026-09-14T13:20:00-04:00","bar_open":"2026-09-14T13:15:00-04:00","open":1566.0001220703125,"high":1571.35693359375,"low":1564.0,"close":1567.8499755859375,"volume":91516.0,"vwap":1538.5718548499167},{"time":"2026-09-14T13:25:00-04:00","bar_open":"2026-09-14T13:20:00-04:00","open":1567.81005859375,"high":1571.929931640625,"low":1567.530029296875,"close":1570.114990234375,"volume":62350.0,"vwap":1538.844009994729},{"time":"2026-09-14T13:30:00-04:00","bar_open":"2026-09-14T13:25:00-04:00","open":1570.943359375,"high":1571.760009765625,"low":1567.2900390625,"close":1571.2900390625,"volume":51223.0,"vwap":1539.0658883410024},{"time":"2026-09-14T13:35:00-04:00","bar_open":"2026-09-14T13:30:00-04:00","open":1571.199951171875,"high":1573.2197265625,"low":1568.3797607421875,"close":1569.2950439453125,"volume":66638.0,"vwap":1539.3515593470454},{"time":"2026-09-14T13:40:00-04:00","bar_open":"2026-09-14T13:35:00-04:00","open":1568.8699951171875,"high":1571.989990234375,"low":1566.6800537109375,"close":1571.8499755859375,"volume":52818.0,"vwap":1539.5734009073196},{"time":"2026-09-14T13:45:00-04:00","bar_open":"2026-09-14T13:40:00-04:00","open":1570.77001953125,"high":1573.0999755859375,"low":1568.8634033203125,"close":1571.8599853515625,"volume":42778.0,"vwap":1539.757127950903},{"time":"2026-09-14T13:50:00-04:00","bar_open":"2026-09-14T13:45:00-04:00","open":1572.3299560546875,"high":1577.77001953125,"low":1571.7342529296875,"close":1575.5,"volume":69709.0,"vwap":1540.0868699485836},{"time":"2026-09-14T13:55:00-04:00","bar_open":"2026-09-14T13:50:00-04:00","open":1575.0201416015625,"high":1579.010009765625,"low":1574.8568115234375,"close":1577.3499755859375,"volume":52296.0,"vwap":1540.3446549925482},{"time":"2026-09-14T14:00:00-04:00","bar_open":"2026-09-14T13:55:00-04:00","open":1577.6700439453125,"high":1581.83984375,"low":1576.219970703125,"close":1578.52001953125,"volume":82930.0,"vwap":1540.7657014248732},{"time":"2026-09-14T14:05:00-04:00","bar_open":"2026-09-14T14:00:00-04:00","open":1578.5250244140625,"high":1581.7606201171875,"low":1572.8873291015625,"close":1576.010009765625,"volume":93190.0,"vwap":1541.204033333384},{"time":"2026-09-14T14:10:00-04:00","bar_open":"2026-09-14T14:05:00-04:00","open":1576.1650390625,"high":1580.010009765625,"low":1574.550048828125,"close":1579.4300537109375,"volume":59640.0,"vwap":1541.4875781276935},{"time":"2026-09-14T14:15:00-04:00","bar_open":"2026-09-14T14:10:00-04:00","open":1578.52001953125,"high":1578.52001953125,"low":1571.3712158203125,"close":1572.9549560546875,"volume":51415.0,"vwap":1541.7040181633467},{"time":"2026-09-14T14:20:00-04:00","bar_open":"2026-09-14T14:15:00-04:00","open":1572.81005859375,"high":1574.72802734375,"low":1569.8499755859375,"close":1570.239990234375,"volume":53436.0,"vwap":1541.9077280095041},{"time":"2026-09-14T14:25:00-04:00","bar_open":"2026-09-14T14:20:00-04:00","open":1570.0,"high":1572.1700439453125,"low":1564.000732421875,"close":1565.6700439453125,"volume":85191.0,"vwap":1542.1803396718124},{"time":"2026-09-14T14:30:00-04:00","bar_open":"2026-09-14T14:25:00-04:00","open":1565.0849609375,"high":1567.6199951171875,"low":1563.0,"close":1564.308349609375,"volume":54850.0,"vwap":1542.3369511858841},{"time":"2026-09-14T14:35:00-04:00","bar_open":"2026-09-14T14:30:00-04:00","open":1564.6300048828125,"high":1566.9000244140625,"low":1563.53466796875,"close":1566.300048828125,"volume":45887.0,"vwap":1542.4697682004676},{"time":"2026-09-14T14:40:00-04:00","bar_open":"2026-09-14T14:35:00-04:00","open":1565.6199951171875,"high":1567.0,"low":1563.8555908203125,"close":1564.302001953125,"volume":32531.0,"vwap":1542.5608899950423},{"time":"2026-09-14T14:45:00-04:00","bar_open":"2026-09-14T14:40:00-04:00","open":1564.550048828125,"high":1566.08984375,"low":1562.8485107421875,"close":1564.469970703125,"volume":39101.0,"vwap":1542.666632137571},{"time":"2026-09-14T14:50:00-04:00","bar_open":"2026-09-14T14:45:00-04:00","open":1563.9949951171875,"high":1565.0,"low":1560.5526123046875,"close":1563.8599853515625,"volume":47508.0,"vwap":1542.7859789673425},{"time":"2026-09-14T14:55:00-04:00","bar_open":"2026-09-14T14:50:00-04:00","open":1563.929931640625,"high":1567.659912109375,"low":1562.9000244140625,"close":1566.8612060546875,"volume":47031.0,"vwap":1542.9180834469319},{"time":"2026-09-14T15:00:00-04:00","bar_open":"2026-09-14T14:55:00-04:00","open":1566.625,"high":1567.0953369140625,"low":1562.10009765625,"close":1564.0526123046875,"volume":38180.0,"vwap":1543.0177666566688},{"time":"2026-09-14T15:05:00-04:00","bar_open":"2026-09-14T15:00:00-04:00","open":1564.3199462890625,"high":1565.43994140625,"low":1563.070068359375,"close":1564.6199951171875,"volume":35393.0,"vwap":1543.1091828056824},{"time":"2026-09-14T15:10:00-04:00","bar_open":"2026-09-14T15:05:00-04:00","open":1564.5550537109375,"high":1567.198974609375,"low":1560.8800048828125,"close":1561.7650146484375,"volume":40225.0,"vwap":1543.2068317186233},{"time":"2026-09-14T15:15:00-04:00","bar_open":"2026-09-14T15:10:00-04:00","open":1561.8499755859375,"high":1562.81005859375,"low":1556.0,"close":1558.530029296875,"volume":58856.0,"vwap":1543.3187034102473},{"time":"2026-09-14T15:20:00-04:00","bar_open":"2026-09-14T15:15:00-04:00","open":1558.530029296875,"high":1562.342041015625,"low":1556.7950439453125,"close":1561.6500244140625,"volume":34742.0,"vwap":1543.3887548295706},{"time":"2026-09-14T15:25:00-04:00","bar_open":"2026-09-14T15:20:00-04:00","open":1562.1300048828125,"high":1562.619873046875,"low":1557.300048828125,"close":1559.760009765625,"volume":42467.0,"vwap":1543.4717439001518},{"time":"2026-09-14T15:30:00-04:00","bar_open":"2026-09-14T15:25:00-04:00","open":1559.77001953125,"high":1561.2650146484375,"low":1558.1099853515625,"close":1558.239990234375,"volume":33824.0,"vwap":1543.5345024848207},{"time":"2026-09-14T15:35:00-04:00","bar_open":"2026-09-14T15:30:00-04:00","open":1558.9200439453125,"high":1560.869873046875,"low":1557.489990234375,"close":1559.4300537109375,"volume":42145.0,"vwap":1543.612291486171},{"time":"2026-09-14T15:40:00-04:00","bar_open":"2026-09-14T15:35:00-04:00","open":1559.010009765625,"high":1559.8800048828125,"low":1556.8800048828125,"close":1559.5699462890625,"volume":45411.0,"vwap":1543.692672496329},{"time":"2026-09-14T15:45:00-04:00","bar_open":"2026-09-14T15:40:00-04:00","open":1559.7899169921875,"high":1564.1300048828125,"low":1557.5799560546875,"close":1563.8499755859375,"volume":67925.0,"vwap":1543.8355287648517},{"time":"2026-09-14T15:50:00-04:00","bar_open":"2026-09-14T15:45:00-04:00","open":1563.81005859375,"high":1565.0,"low":1560.76220703125,"close":1564.27001953125,"volume":51134.0,"vwap":1543.9503729500982},{"time":"2026-09-14T15:55:00-04:00","bar_open":"2026-09-14T15:50:00-04:00","open":1563.9599609375,"high":1565.0,"low":1549.9951171875,"close":1552.8558349609375,"volume":163386.0,"vwap":1544.171924705161},{"time":"2026-09-14T16:00:00-04:00","bar_open":"2026-09-14T15:55:00-04:00","open":1553.010009765625,"high":1559.829833984375,"low":1550.5899658203125,"close":1551.2099609375,"volume":216581.0,"vwap":1544.4037607929213}],"fills":[{"time":"2026-09-14T09:45:00-04:00","action":"B","shares":6,"quantity":6,"price":1519.4693159179687,"reference_price":1518.7099609375,"shares_before":0,"shares_after":6,"assumed_cost":4.5561298828125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:45:00-04:00","pnl":null},{"time":"2026-09-14T09:50:00-04:00","action":"B","shares":11,"quantity":11,"price":1547.473301147461,"reference_price":1546.699951171875,"shares_before":6,"shares_after":17,"assumed_cost":8.506849731445312,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:50:00-04:00","pnl":null},{"time":"2026-09-14T09:55:00-04:00","action":"S","shares":13,"quantity":-13,"price":1524.0276440429689,"reference_price":1524.7900390625,"shares_before":17,"shares_after":4,"assumed_cost":9.91113525390625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:55:00-04:00","pnl":null},{"time":"2026-09-14T10:00:00-04:00","action":"B","shares":3,"quantity":3,"price":1532.8560108032225,"reference_price":1532.0899658203125,"shares_before":4,"shares_after":7,"assumed_cost":2.2981349487304685,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:00:00-04:00","pnl":null},{"time":"2026-09-14T10:10:00-04:00","action":"B","shares":4,"quantity":4,"price":1553.9816806640624,"reference_price":1553.205078125,"shares_before":7,"shares_after":11,"assumed_cost":3.10641015625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:10:00-04:00","pnl":null},{"time":"2026-09-14T10:25:00-04:00","action":"S","shares":1,"quantity":-1,"price":1557.0660482177734,"reference_price":1557.844970703125,"shares_before":11,"shares_after":10,"assumed_cost":0.7789224853515625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:25:00-04:00","pnl":null},{"time":"2026-09-14T10:30:00-04:00","action":"S","shares":1,"quantity":-1,"price":1555.591810119629,"reference_price":1556.3699951171875,"shares_before":10,"shares_after":9,"assumed_cost":0.7781849975585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:30:00-04:00","pnl":null},{"time":"2026-09-14T10:35:00-04:00","action":"S","shares":1,"quantity":-1,"price":1552.6183220214846,"reference_price":1553.39501953125,"shares_before":9,"shares_after":8,"assumed_cost":0.776697509765625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:35:00-04:00","pnl":null},{"time":"2026-09-14T10:45:00-04:00","action":"B","shares":3,"quantity":3,"price":1556.442871582031,"reference_price":1555.6650390625,"shares_before":8,"shares_after":11,"assumed_cost":2.33349755859375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:45:00-04:00","pnl":null},{"time":"2026-09-14T10:50:00-04:00","action":"S","shares":1,"quantity":-1,"price":1545.8568118896485,"reference_price":1546.630126953125,"shares_before":11,"shares_after":10,"assumed_cost":0.7733150634765625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:50:00-04:00","pnl":null},{"time":"2026-09-14T11:00:00-04:00","action":"B","shares":2,"quantity":2,"price":1544.441878967285,"reference_price":1543.6700439453125,"shares_before":10,"shares_after":12,"assumed_cost":1.5436700439453126,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:00:00-04:00","pnl":null},{"time":"2026-09-14T11:10:00-04:00","action":"S","shares":1,"quantity":-1,"price":1532.223495239258,"reference_price":1532.989990234375,"shares_before":12,"shares_after":11,"assumed_cost":0.7664949951171875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:10:00-04:00","pnl":null},{"time":"2026-09-14T11:15:00-04:00","action":"B","shares":5,"quantity":5,"price":1532.9060846557616,"reference_price":1532.1400146484375,"shares_before":11,"shares_after":16,"assumed_cost":3.830350036621094,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:15:00-04:00","pnl":null},{"time":"2026-09-14T11:20:00-04:00","action":"S","shares":2,"quantity":-2,"price":1530.8341755981446,"reference_price":1531.5999755859375,"shares_before":16,"shares_after":14,"assumed_cost":1.5315999755859375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:20:00-04:00","pnl":null},{"time":"2026-09-14T11:35:00-04:00","action":"S","shares":11,"quantity":-11,"price":1548.2555142822266,"reference_price":1549.030029296875,"shares_before":14,"shares_after":3,"assumed_cost":8.519665161132812,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:35:00-04:00","pnl":null},{"time":"2026-09-14T11:40:00-04:00","action":"S","shares":1,"quantity":-1,"price":1541.8186708374024,"reference_price":1542.5899658203125,"shares_before":3,"shares_after":2,"assumed_cost":0.7712949829101563,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:40:00-04:00","pnl":null},{"time":"2026-09-14T11:45:00-04:00","action":"S","shares":2,"quantity":-2,"price":1542.4134660644531,"reference_price":1543.18505859375,"shares_before":2,"shares_after":0,"assumed_cost":1.54318505859375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:45:00-04:00","pnl":null},{"time":"2026-09-14T11:50:00-04:00","action":"B","shares":2,"quantity":2,"price":1534.2316983032226,"reference_price":1533.4649658203125,"shares_before":0,"shares_after":2,"assumed_cost":1.5334649658203126,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:50:00-04:00","pnl":null},{"time":"2026-09-14T11:55:00-04:00","action":"B","shares":1,"quantity":1,"price":1531.9456437377928,"reference_price":1531.1800537109375,"shares_before":2,"shares_after":3,"assumed_cost":0.7655900268554687,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:55:00-04:00","pnl":null},{"time":"2026-09-14T12:00:00-04:00","action":"S","shares":1,"quantity":-1,"price":1534.4563870239258,"reference_price":1535.2239990234375,"shares_before":3,"shares_after":2,"assumed_cost":0.7676119995117188,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:00:00-04:00","pnl":null},{"time":"2026-09-14T12:05:00-04:00","action":"B","shares":1,"quantity":1,"price":1532.5359045410155,"reference_price":1531.77001953125,"shares_before":2,"shares_after":3,"assumed_cost":0.765885009765625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:05:00-04:00","pnl":null},{"time":"2026-09-14T12:15:00-04:00","action":"S","shares":1,"quantity":-1,"price":1535.232,"reference_price":1536.0,"shares_before":3,"shares_after":2,"assumed_cost":0.768,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:15:00-04:00","pnl":null},{"time":"2026-09-14T12:20:00-04:00","action":"S","shares":2,"quantity":-2,"price":1543.6278244018556,"reference_price":1544.4000244140625,"shares_before":2,"shares_after":0,"assumed_cost":1.5444000244140623,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:20:00-04:00","pnl":null},{"time":"2026-09-14T12:40:00-04:00","action":"B","shares":1,"quantity":1,"price":1546.698011352539,"reference_price":1545.925048828125,"shares_before":0,"shares_after":1,"assumed_cost":0.7729625244140625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:40:00-04:00","pnl":null},{"time":"2026-09-14T12:50:00-04:00","action":"S","shares":1,"quantity":-1,"price":1547.200378051758,"reference_price":1547.974365234375,"shares_before":1,"shares_after":0,"assumed_cost":0.7739871826171875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:50:00-04:00","pnl":null},{"time":"2026-09-14T13:05:00-04:00","action":"B","shares":1,"quantity":1,"price":1559.7795,"reference_price":1559.0,"shares_before":0,"shares_after":1,"assumed_cost":0.7795,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:05:00-04:00","pnl":null},{"time":"2026-09-14T13:20:00-04:00","action":"B","shares":1,"quantity":1,"price":1568.5939636230469,"reference_price":1567.81005859375,"shares_before":1,"shares_after":2,"assumed_cost":0.783905029296875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:20:00-04:00","pnl":null},{"time":"2026-09-14T13:25:00-04:00","action":"S","shares":1,"quantity":-1,"price":1570.1578876953126,"reference_price":1570.943359375,"shares_before":2,"shares_after":1,"assumed_cost":0.7854716796875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:25:00-04:00","pnl":null},{"time":"2026-09-14T13:30:00-04:00","action":"S","shares":1,"quantity":-1,"price":1570.414351196289,"reference_price":1571.199951171875,"shares_before":1,"shares_after":0,"assumed_cost":0.7855999755859375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:30:00-04:00","pnl":null},{"time":"2026-09-14T13:45:00-04:00","action":"B","shares":1,"quantity":1,"price":1573.1161210327148,"reference_price":1572.3299560546875,"shares_before":0,"shares_after":1,"assumed_cost":0.7861649780273438,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:45:00-04:00","pnl":null},{"time":"2026-09-14T13:50:00-04:00","action":"B","shares":4,"quantity":4,"price":1575.8076516723631,"reference_price":1575.0201416015625,"shares_before":1,"shares_after":5,"assumed_cost":3.150040283203125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:50:00-04:00","pnl":null},{"time":"2026-09-14T13:55:00-04:00","action":"S","shares":1,"quantity":-1,"price":1576.88120892334,"reference_price":1577.6700439453125,"shares_before":5,"shares_after":4,"assumed_cost":0.7888350219726562,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:55:00-04:00","pnl":null},{"time":"2026-09-14T14:00:00-04:00","action":"B","shares":3,"quantity":3,"price":1579.3142869262697,"reference_price":1578.5250244140625,"shares_before":4,"shares_after":7,"assumed_cost":2.3677875366210936,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:00:00-04:00","pnl":null},{"time":"2026-09-14T14:05:00-04:00","action":"S","shares":1,"quantity":-1,"price":1575.3769565429689,"reference_price":1576.1650390625,"shares_before":7,"shares_after":6,"assumed_cost":0.78808251953125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:05:00-04:00","pnl":null},{"time":"2026-09-14T14:10:00-04:00","action":"S","shares":1,"quantity":-1,"price":1577.7307595214843,"reference_price":1578.52001953125,"shares_before":6,"shares_after":5,"assumed_cost":0.789260009765625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:10:00-04:00","pnl":null},{"time":"2026-09-14T14:15:00-04:00","action":"S","shares":3,"quantity":-3,"price":1572.0236535644533,"reference_price":1572.81005859375,"shares_before":5,"shares_after":2,"assumed_cost":2.359215087890625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:15:00-04:00","pnl":null},{"time":"2026-09-14T14:25:00-04:00","action":"B","shares":3,"quantity":3,"price":1565.8675034179687,"reference_price":1565.0849609375,"shares_before":2,"shares_after":5,"assumed_cost":2.34762744140625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:25:00-04:00","pnl":null},{"time":"2026-09-14T14:30:00-04:00","action":"S","shares":1,"quantity":-1,"price":1563.8476898803713,"reference_price":1564.6300048828125,"shares_before":5,"shares_after":4,"assumed_cost":0.7823150024414063,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:30:00-04:00","pnl":null},{"time":"2026-09-14T14:35:00-04:00","action":"S","shares":1,"quantity":-1,"price":1564.8371851196289,"reference_price":1565.6199951171875,"shares_before":4,"shares_after":3,"assumed_cost":0.7828099975585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:35:00-04:00","pnl":null},{"time":"2026-09-14T14:40:00-04:00","action":"S","shares":1,"quantity":-1,"price":1563.767773803711,"reference_price":1564.550048828125,"shares_before":3,"shares_after":2,"assumed_cost":0.7822750244140625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:40:00-04:00","pnl":null},{"time":"2026-09-14T14:45:00-04:00","action":"S","shares":1,"quantity":-1,"price":1563.212997619629,"reference_price":1563.9949951171875,"shares_before":2,"shares_after":1,"assumed_cost":0.7819974975585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:45:00-04:00","pnl":null},{"time":"2026-09-14T14:50:00-04:00","action":"S","shares":1,"quantity":-1,"price":1563.1479666748048,"reference_price":1563.929931640625,"shares_before":1,"shares_after":0,"assumed_cost":0.7819649658203125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:50:00-04:00","pnl":null},{"time":"2026-09-14T15:15:00-04:00","action":"X","shares":3,"quantity":-3,"price":1557.7507642822266,"reference_price":1558.530029296875,"shares_before":0,"shares_after":-3,"assumed_cost":2.337795043945313,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:15:00-04:00","pnl":null},{"time":"2026-09-14T15:20:00-04:00","action":"X","shares":1,"quantity":-1,"price":1561.3489398803713,"reference_price":1562.1300048828125,"shares_before":-3,"shares_after":-4,"assumed_cost":0.7810650024414062,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:20:00-04:00","pnl":null},{"time":"2026-09-14T15:25:00-04:00","action":"C","shares":1,"quantity":1,"price":1560.5499045410156,"reference_price":1559.77001953125,"shares_before":-4,"shares_after":-3,"assumed_cost":0.779885009765625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:25:00-04:00","pnl":null},{"time":"2026-09-14T15:30:00-04:00","action":"C","shares":1,"quantity":1,"price":1559.6995039672852,"reference_price":1558.9200439453125,"shares_before":-3,"shares_after":-2,"assumed_cost":0.7794600219726563,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:30:00-04:00","pnl":null},{"time":"2026-09-14T15:45:00-04:00","action":"C","shares":1,"quantity":1,"price":1564.5919636230467,"reference_price":1563.81005859375,"shares_before":-2,"shares_after":-1,"assumed_cost":0.781905029296875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:45:00-04:00","pnl":null},{"time":"2026-09-14T15:50:00-04:00","action":"C","shares":1,"quantity":1,"price":1564.7419409179686,"reference_price":1563.9599609375,"shares_before":-1,"shares_after":0,"assumed_cost":0.78197998046875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:50:00-04:00","pnl":null}],"marks":[{"time":"2026-09-14T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-14T09:40:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-14T09:45:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-14T09:50:00-04:00","shares":6,"pnl":159.18410449218754},{"time":"2026-09-14T09:55:00-04:00","shares":17,"pnl":-217.93187609863529},{"time":"2026-09-14T10:00:00-04:00","shares":4,"pnl":-196.9426207275392},{"time":"2026-09-14T10:05:00-04:00","shares":7,"pnl":-105.64566290283256},{"time":"2026-09-14T10:10:00-04:00","shares":7,"pnl":-53.07559454345756},{"time":"2026-09-14T10:15:00-04:00","shares":11,"pnl":-7.888181457521568},{"time":"2026-09-14T10:20:00-04:00","shares":11,"pnl":81.43445037841593},{"time":"2026-09-14T10:25:00-04:00","shares":11,"pnl":3.5361349487284315},{"time":"2026-09-14T10:30:00-04:00","shares":10,"pnl":-25.291493591310427},{"time":"2026-09-14T10:35:00-04:00","shares":9,"pnl":-49.74521569824356},{"time":"2026-09-14T10:40:00-04:00","shares":8,"pnl":-83.20172277832171},{"time":"2026-09-14T10:45:00-04:00","shares":8,"pnl":-25.32183996582171},{"time":"2026-09-14T10:50:00-04:00","shares":11,"pnl":-121.8855621337898},{"time":"2026-09-14T10:55:00-04:00","shares":10,"pnl":-190.9633205566406},{"time":"2026-09-14T11:00:00-04:00","shares":10,"pnl":-160.9035061035156},{"time":"2026-09-14T11:05:00-04:00","shares":12,"pnl":-292.9576741943347},{"time":"2026-09-14T11:10:00-04:00","shares":12,"pnl":-302.9171468505847},{"time":"2026-09-14T11:15:00-04:00","shares":11,"pnl":-302.47331469726487},{"time":"2026-09-14T11:20:00-04:00","shares":16,"pnl":-306.94428973388494},{"time":"2026-09-14T11:25:00-04:00","shares":14,"pnl":-343.91534283447254},{"time":"2026-09-14T11:30:00-04:00","shares":14,"pnl":-191.87554791259757},{"time":"2026-09-14T11:35:00-04:00","shares":14,"pnl":-79.03472760009754},{"time":"2026-09-14T11:40:00-04:00","shares":3,"pnl":-100.9398908081057},{"time":"2026-09-14T11:45:00-04:00","shares":2,"pnl":-100.84607348632836},{"time":"2026-09-14T11:50:00-04:00","shares":0,"pnl":-101.41928784179709},{"time":"2026-09-14T11:55:00-04:00","shares":2,"pnl":-107.52257702636734},{"time":"2026-09-14T12:00:00-04:00","shares":3,"pnl":-95.64143853759742},{"time":"2026-09-14T12:05:00-04:00","shares":2,"pnl":-104.37194116210912},{"time":"2026-09-14T12:10:00-04:00","shares":3,"pnl":-115.90784570312462},{"time":"2026-09-14T12:15:00-04:00","shares":3,"pnl":-90.28772851562462},{"time":"2026-09-14T12:20:00-04:00","shares":2,"pnl":-74.95587499999965},{"time":"2026-09-14T12:25:00-04:00","shares":0,"pnl":-77.42019689941344},{"time":"2026-09-14T12:30:00-04:00","shares":0,"pnl":-77.42019689941344},{"time":"2026-09-14T12:35:00-04:00","shares":0,"pnl":-77.42019689941344},{"time":"2026-09-14T12:40:00-04:00","shares":0,"pnl":-77.42019689941344},{"time":"2026-09-14T12:45:00-04:00","shares":1,"pnl":-77.01322778320241},{"time":"2026-09-14T12:50:00-04:00","shares":1,"pnl":-76.29325708007741},{"time":"2026-09-14T12:55:00-04:00","shares":0,"pnl":-76.91783020019443},{"time":"2026-09-14T13:00:00-04:00","shares":0,"pnl":-76.91783020019443},{"time":"2026-09-14T13:05:00-04:00","shares":0,"pnl":-76.91783020019443},{"time":"2026-09-14T13:10:00-04:00","shares":1,"pnl":-69.8023106689443},{"time":"2026-09-14T13:15:00-04:00","shares":1,"pnl":-70.4171788330068},{"time":"2026-09-14T13:20:00-04:00","shares":1,"pnl":-68.8473546142568},{"time":"2026-09-14T13:25:00-04:00","shares":2,"pnl":-65.06131335449118},{"time":"2026-09-14T13:30:00-04:00","shares":1,"pnl":-63.84336706542854},{"time":"2026-09-14T13:35:00-04:00","shares":0,"pnl":-64.71905493163945},{"time":"2026-09-14T13:40:00-04:00","shares":0,"pnl":-64.71905493163945},{"time":"2026-09-14T13:45:00-04:00","shares":0,"pnl":-64.71905493163945},{"time":"2026-09-14T13:50:00-04:00","shares":1,"pnl":-62.33517596435422},{"time":"2026-09-14T13:55:00-04:00","shares":5,"pnl":-54.31590472411881},{"time":"2026-09-14T14:00:00-04:00","shares":4,"pnl":-50.10449560546658},{"time":"2026-09-14T14:05:00-04:00","shares":7,"pnl":-70.05736614990019},{"time":"2026-09-14T14:10:00-04:00","shares":6,"pnl":-50.17015570068179},{"time":"2026-09-14T14:15:00-04:00","shares":5,"pnl":-84.244938171385},{"time":"2026-09-14T14:20:00-04:00","shares":2,"pnl":-92.46877728271284},{"time":"2026-09-14T14:25:00-04:00","shares":2,"pnl":-101.60866986083784},{"time":"2026-09-14T14:30:00-04:00","shares":5,"pnl":-109.00951995849393},{"time":"2026-09-14T14:35:00-04:00","shares":4,"pnl":-101.50338281249788},{"time":"2026-09-14T14:40:00-04:00","shares":3,"pnl":-108.960387145994},{"time":"2026-09-14T14:45:00-04:00","shares":2,"pnl":-109.15867779540804},{"time":"2026-09-14T14:50:00-04:00","shares":1,"pnl":-111.02563623046647},{"time":"2026-09-14T14:55:00-04:00","shares":0,"pnl":-111.73765490722415},{"time":"2026-09-14T15:00:00-04:00","shares":0,"pnl":-111.73765490722415},{"time":"2026-09-14T15:05:00-04:00","shares":0,"pnl":-111.73765490722415},{"time":"2026-09-14T15:10:00-04:00","shares":0,"pnl":-111.73765490722415},{"time":"2026-09-14T15:15:00-04:00","shares":0,"pnl":-111.73765490722415},{"time":"2026-09-14T15:20:00-04:00","shares":-3,"pnl":-123.435435302732},{"time":"2026-09-14T15:25:00-04:00","shares":-4,"pnl":-116.1764612426732},{"time":"2026-09-14T15:30:00-04:00","shares":-3,"pnl":-112.40629742431338},{"time":"2026-09-14T15:35:00-04:00","shares":-2,"pnl":-116.24593811034856},{"time":"2026-09-14T15:40:00-04:00","shares":-2,"pnl":-116.52572326659856},{"time":"2026-09-14T15:45:00-04:00","shares":-2,"pnl":-125.08578186034856},{"time":"2026-09-14T15:50:00-04:00","shares":-1,"pnl":-126.24781384277026},{"time":"2026-09-14T15:55:00-04:00","shares":0,"pnl":-126.71973522948883},{"time":"2026-09-14T16:00:00-04:00","shares":0,"pnl":-126.71973522948883}],"summary":{"net_pnl":-126.71973522948883,"gross_pnl":-40.037353515621646,"cost":86.68238171386719,"fill_count":48,"ending_shares":0},"source_hashes":{"fills_sha256":"127c786c405b3869d02c4b15d536b5ff3aa3c414c880e691f849bf2e99551b83","marks_sha256":"d8f2261179539f1e332604ebfdc5dec062de885c2e58240686533a8d2bdac7db","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-14/levels/TSLA.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"TSLA","date":"2026-09-14","variant":"levels","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-14T16:00:00-04:00","partial":false,"starting_equity":47006.42,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-14T09:30:00-04:00","session_close":"2026-09-14T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-14T09:35:00-04:00","bar_open":"2026-09-14T09:30:00-04:00","open":359.95001220703125,"high":367.7300109863281,"low":359.08428955078125,"close":365.3699951171875,"volume":2850992.0,"vwap":364.0614318847656},{"time":"2026-09-14T09:40:00-04:00","bar_open":"2026-09-14T09:35:00-04:00","open":365.33099365234375,"high":365.92999267578125,"low":360.92999267578125,"close":361.6700134277344,"volume":1102590.0,"vwap":363.7217238097924},{"time":"2026-09-14T09:45:00-04:00","bar_open":"2026-09-14T09:40:00-04:00","open":361.70001220703125,"high":362.20001220703125,"low":359.9599914550781,"close":361.81500244140625,"volume":1020613.0,"vwap":363.22996074034273},{"time":"2026-09-14T09:50:00-04:00","bar_open":"2026-09-14T09:45:00-04:00","open":361.7300109863281,"high":361.7300109863281,"low":359.91009521484375,"close":360.68560791015625,"volume":699512.0,"vwap":362.92731769099527},{"time":"2026-09-14T09:55:00-04:00","bar_open":"2026-09-14T09:50:00-04:00","open":360.7049865722656,"high":362.4200134277344,"low":360.6199951171875,"close":361.8597106933594,"volume":634621.0,"vwap":362.79713279264},{"time":"2026-09-14T10:00:00-04:00","bar_open":"2026-09-14T09:55:00-04:00","open":361.81500244140625,"high":361.8450012207031,"low":360.05999755859375,"close":360.2099914550781,"volume":436987.0,"vwap":362.6615963121137},{"time":"2026-09-14T10:05:00-04:00","bar_open":"2026-09-14T10:00:00-04:00","open":360.2250061035156,"high":360.7900085449219,"low":359.7601013183594,"close":360.20001220703125,"volume":468674.0,"vwap":362.50492384982},{"time":"2026-09-14T10:10:00-04:00","bar_open":"2026-09-14T10:05:00-04:00","open":360.09039306640625,"high":361.79998779296875,"low":359.9100036621094,"close":360.989990234375,"volume":512315.0,"vwap":362.3985043135135},{"time":"2026-09-14T10:15:00-04:00","bar_open":"2026-09-14T10:10:00-04:00","open":360.9200134277344,"high":361.44989013671875,"low":360.3800048828125,"close":360.8999938964844,"volume":341488.0,"vwap":362.3354983503418},{"time":"2026-09-14T10:20:00-04:00","bar_open":"2026-09-14T10:15:00-04:00","open":360.80999755859375,"high":361.0600891113281,"low":358.6099853515625,"close":358.8349914550781,"volume":973513.0,"vwap":362.0303708722617},{"time":"2026-09-14T10:25:00-04:00","bar_open":"2026-09-14T10:20:00-04:00","open":358.8349914550781,"high":359.3799133300781,"low":357.489990234375,"close":357.489990234375,"volume":652812.0,"vwap":361.7670400150353},{"time":"2026-09-14T10:30:00-04:00","bar_open":"2026-09-14T10:25:00-04:00","open":357.489990234375,"high":358.3815002441406,"low":357.0400085449219,"close":358.3380126953125,"volume":659167.0,"vwap":361.52209870306507},{"time":"2026-09-14T10:35:00-04:00","bar_open":"2026-09-14T10:30:00-04:00","open":358.29168701171875,"high":359.13720703125,"low":357.70001220703125,"close":359.0,"volume":585737.0,"vwap":361.3662973353699},{"time":"2026-09-14T10:40:00-04:00","bar_open":"2026-09-14T10:35:00-04:00","open":359.0,"high":359.2300109863281,"low":358.1199951171875,"close":358.25689697265625,"volume":399648.0,"vwap":361.2665264718505},{"time":"2026-09-14T10:45:00-04:00","bar_open":"2026-09-14T10:40:00-04:00","open":358.20001220703125,"high":358.80999755859375,"low":357.80999755859375,"close":358.760009765625,"volume":354819.0,"vwap":361.1813672500075},{"time":"2026-09-14T10:50:00-04:00","bar_open":"2026-09-14T10:45:00-04:00","open":358.7099914550781,"high":359.3800048828125,"low":358.5899963378906,"close":359.2200012207031,"volume":293048.0,"vwap":361.1295853703443},{"time":"2026-09-14T10:55:00-04:00","bar_open":"2026-09-14T10:50:00-04:00","open":359.19000244140625,"high":359.260009765625,"low":358.4100036621094,"close":358.57501220703125,"volume":257549.0,"vwap":361.0794969496788},{"time":"2026-09-14T11:00:00-04:00","bar_open":"2026-09-14T10:55:00-04:00","open":358.5799865722656,"high":358.7200012207031,"low":358.05999755859375,"close":358.57000732421875,"volume":221596.0,"vwap":361.0327537709288},{"time":"2026-09-14T11:05:00-04:00","bar_open":"2026-09-14T11:00:00-04:00","open":358.6099853515625,"high":359.0299987792969,"low":358.4284973144531,"close":358.5249938964844,"volume":230529.0,"vwap":360.9896920719857},{"time":"2026-09-14T11:10:00-04:00","bar_open":"2026-09-14T11:05:00-04:00","open":358.5249938964844,"high":359.5799865722656,"low":358.45001220703125,"close":359.0799865722656,"volume":323602.0,"vwap":360.9411503182876},{"time":"2026-09-14T11:15:00-04:00","bar_open":"2026-09-14T11:10:00-04:00","open":359.0849914550781,"high":359.79998779296875,"low":359.0400085449219,"close":359.42999267578125,"volume":303053.0,"vwap":360.90662470382296},{"time":"2026-09-14T11:20:00-04:00","bar_open":"2026-09-14T11:15:00-04:00","open":359.4407958984375,"high":359.9490051269531,"low":359.1783142089844,"close":359.3450012207031,"volume":255463.0,"vwap":360.87998684448866},{"time":"2026-09-14T11:25:00-04:00","bar_open":"2026-09-14T11:20:00-04:00","open":359.3301086425781,"high":360.5,"low":359.2001037597656,"close":360.2900085449219,"volume":355101.0,"vwap":360.85747590441093},{"time":"2026-09-14T11:30:00-04:00","bar_open":"2026-09-14T11:25:00-04:00","open":360.260009765625,"high":360.7699890136719,"low":360.0,"close":360.1368103027344,"volume":413640.0,"vwap":360.8414686737108},{"time":"2026-09-14T11:35:00-04:00","bar_open":"2026-09-14T11:30:00-04:00","open":360.114990234375,"high":362.1499938964844,"low":359.90008544921875,"close":362.14990234375,"volume":539979.0,"vwap":360.8617273503314},{"time":"2026-09-14T11:40:00-04:00","bar_open":"2026-09-14T11:35:00-04:00","open":362.0400085449219,"high":363.1499938964844,"low":361.7200012207031,"close":362.9097900390625,"volume":546019.0,"vwap":360.922988709743},{"time":"2026-09-14T11:45:00-04:00","bar_open":"2026-09-14T11:40:00-04:00","open":362.9599914550781,"high":363.7001037597656,"low":362.93499755859375,"close":363.3999938964844,"volume":636244.0,"vwap":361.01888643333854},{"time":"2026-09-14T11:50:00-04:00","bar_open":"2026-09-14T11:45:00-04:00","open":363.4071960449219,"high":363.7550048828125,"low":363.2301940917969,"close":363.672607421875,"volume":409104.0,"vwap":361.0817901305237},{"time":"2026-09-14T11:55:00-04:00","bar_open":"2026-09-14T11:50:00-04:00","open":363.67999267578125,"high":363.8999938964844,"low":363.110107421875,"close":363.6129150390625,"volume":434751.0,"vwap":361.14500397945255},{"time":"2026-09-14T12:00:00-04:00","bar_open":"2026-09-14T11:55:00-04:00","open":363.63958740234375,"high":363.6556091308594,"low":363.05999755859375,"close":363.1542053222656,"volume":281156.0,"vwap":361.1800772369583},{"time":"2026-09-14T12:05:00-04:00","bar_open":"2026-09-14T12:00:00-04:00","open":363.17449951171875,"high":364.2200012207031,"low":362.99169921875,"close":363.8999938964844,"volume":463590.0,"vwap":361.2463375127741},{"time":"2026-09-14T12:10:00-04:00","bar_open":"2026-09-14T12:05:00-04:00","open":363.9100036621094,"high":364.1400146484375,"low":362.8800048828125,"close":362.9200134277344,"volume":292052.0,"vwap":361.27996841431604},{"time":"2026-09-14T12:15:00-04:00","bar_open":"2026-09-14T12:10:00-04:00","open":362.8901062011719,"high":362.9999084472656,"low":362.3299865722656,"close":362.4700012207031,"volume":314366.0,"vwap":361.30268822810706},{"time":"2026-09-14T12:20:00-04:00","bar_open":"2026-09-14T12:15:00-04:00","open":362.4737854003906,"high":363.92999267578125,"low":362.43011474609375,"close":363.80999755859375,"volume":364325.0,"vwap":361.34351096116524},{"time":"2026-09-14T12:25:00-04:00","bar_open":"2026-09-14T12:20:00-04:00","open":363.7699890136719,"high":364.1000061035156,"low":363.2300109863281,"close":363.57501220703125,"volume":268334.0,"vwap":361.3760498508368},{"time":"2026-09-14T12:30:00-04:00","bar_open":"2026-09-14T12:25:00-04:00","open":363.55029296875,"high":363.6400146484375,"low":362.5199890136719,"close":363.2449951171875,"volume":226687.0,"vwap":361.3968999761069},{"time":"2026-09-14T12:35:00-04:00","bar_open":"2026-09-14T12:30:00-04:00","open":363.289306640625,"high":363.35400390625,"low":362.7699890136719,"close":362.92999267578125,"volume":170643.0,"vwap":361.4112372819245},{"time":"2026-09-14T12:40:00-04:00","bar_open":"2026-09-14T12:35:00-04:00","open":362.92999267578125,"high":362.94000244140625,"low":362.55999755859375,"close":362.67498779296875,"volume":175119.0,"vwap":361.42305396101233},{"time":"2026-09-14T12:45:00-04:00","bar_open":"2026-09-14T12:40:00-04:00","open":362.67498779296875,"high":362.67999267578125,"low":362.20001220703125,"close":362.2950134277344,"volume":206541.0,"vwap":361.43322166333934},{"time":"2026-09-14T12:50:00-04:00","bar_open":"2026-09-14T12:45:00-04:00","open":362.2851867675781,"high":363.7099914550781,"low":361.94000244140625,"close":363.4949951171875,"volume":335080.0,"vwap":361.4602662286111},{"time":"2026-09-14T12:55:00-04:00","bar_open":"2026-09-14T12:50:00-04:00","open":363.489990234375,"high":363.5498962402344,"low":362.2699890136719,"close":362.3299865722656,"volume":222933.0,"vwap":361.4741084597502},{"time":"2026-09-14T13:00:00-04:00","bar_open":"2026-09-14T12:55:00-04:00","open":362.29998779296875,"high":362.80499267578125,"low":362.2225036621094,"close":362.7554931640625,"volume":160697.0,"vwap":361.482935081925},{"time":"2026-09-14T13:05:00-04:00","bar_open":"2026-09-14T13:00:00-04:00","open":362.7749938964844,"high":363.1098937988281,"low":362.6499938964844,"close":362.6700134277344,"volume":154249.0,"vwap":361.4928963437994},{"time":"2026-09-14T13:10:00-04:00","bar_open":"2026-09-14T13:05:00-04:00","open":362.6499938964844,"high":362.94989013671875,"low":362.380615234375,"close":362.5299987792969,"volume":137111.0,"vwap":361.5003681114108},{"time":"2026-09-14T13:15:00-04:00","bar_open":"2026-09-14T13:10:00-04:00","open":362.55499267578125,"high":363.0400085449219,"low":362.44000244140625,"close":362.6650085449219,"volume":127034.0,"vwap":361.50778173554227},{"time":"2026-09-14T13:20:00-04:00","bar_open":"2026-09-14T13:15:00-04:00","open":362.6549987792969,"high":362.7898864746094,"low":362.2799987792969,"close":362.3450012207031,"volume":118469.0,"vwap":361.5132369450186},{"time":"2026-09-14T13:25:00-04:00","bar_open":"2026-09-14T13:20:00-04:00","open":362.3450012207031,"high":362.95001220703125,"low":362.25,"close":362.80999755859375,"volume":100826.0,"vwap":361.51878230560465},{"time":"2026-09-14T13:30:00-04:00","bar_open":"2026-09-14T13:25:00-04:00","open":362.8500061035156,"high":363.25,"low":362.7900085449219,"close":362.9093017578125,"volume":453796.0,"vwap":361.5497093134048},{"time":"2026-09-14T13:35:00-04:00","bar_open":"2026-09-14T13:30:00-04:00","open":362.8599853515625,"high":363.0299987792969,"low":362.25,"close":362.5249938964844,"volume":325098.0,"vwap":361.56538874915407},{"time":"2026-09-14T13:40:00-04:00","bar_open":"2026-09-14T13:35:00-04:00","open":362.5899963378906,"high":362.8999938964844,"low":362.3599853515625,"close":362.8699951171875,"volume":137925.0,"vwap":361.5725812367979},{"time":"2026-09-14T13:45:00-04:00","bar_open":"2026-09-14T13:40:00-04:00","open":362.81500244140625,"high":362.8699951171875,"low":362.4100036621094,"close":362.6000061035156,"volume":79751.0,"vwap":361.5763973290108},{"time":"2026-09-14T13:50:00-04:00","bar_open":"2026-09-14T13:45:00-04:00","open":362.6300048828125,"high":362.7200012207031,"low":362.3999938964844,"close":362.5799865722656,"volume":69433.0,"vwap":361.5795087310242},{"time":"2026-09-14T13:55:00-04:00","bar_open":"2026-09-14T13:50:00-04:00","open":362.56500244140625,"high":362.6700134277344,"low":362.0899963378906,"close":362.3500061035156,"volume":179677.0,"vwap":361.5858842441042},{"time":"2026-09-14T14:00:00-04:00","bar_open":"2026-09-14T13:55:00-04:00","open":362.3399963378906,"high":362.4649963378906,"low":362.1099853515625,"close":362.2699890136719,"volume":135249.0,"vwap":361.59008275689297},{"time":"2026-09-14T14:05:00-04:00","bar_open":"2026-09-14T14:00:00-04:00","open":362.2601013183594,"high":362.5,"low":361.6300048828125,"close":361.8299865722656,"volume":193857.0,"vwap":361.5934834494713},{"time":"2026-09-14T14:10:00-04:00","bar_open":"2026-09-14T14:05:00-04:00","open":361.8465881347656,"high":361.8992919921875,"low":361.4700012207031,"close":361.71990966796875,"volume":173395.0,"vwap":361.59426680960695},{"time":"2026-09-14T14:15:00-04:00","bar_open":"2026-09-14T14:10:00-04:00","open":361.69000244140625,"high":361.7499084472656,"low":361.2699890136719,"close":361.45001220703125,"volume":166073.0,"vwap":361.5935119754142},{"time":"2026-09-14T14:20:00-04:00","bar_open":"2026-09-14T14:15:00-04:00","open":361.44500732421875,"high":361.4700012207031,"low":360.8399963378906,"close":361.1000061035156,"volume":391375.0,"vwap":361.58585076617044},{"time":"2026-09-14T14:25:00-04:00","bar_open":"2026-09-14T14:20:00-04:00","open":361.07501220703125,"high":361.1499938964844,"low":360.8599853515625,"close":361.1000061035156,"volume":131376.0,"vwap":361.58277653742994},{"time":"2026-09-14T14:30:00-04:00","bar_open":"2026-09-14T14:25:00-04:00","open":361.0899963378906,"high":361.25,"low":360.8699951171875,"close":361.1000061035156,"volume":211092.0,"vwap":361.57823527299394},{"time":"2026-09-14T14:35:00-04:00","bar_open":"2026-09-14T14:30:00-04:00","open":361.0775146484375,"high":361.2200012207031,"low":360.8699951171875,"close":360.8900146484375,"volume":141881.0,"vwap":361.574751740445},{"time":"2026-09-14T14:40:00-04:00","bar_open":"2026-09-14T14:35:00-04:00","open":360.9043884277344,"high":361.0799865722656,"low":360.7200012207031,"close":360.75,"volume":168546.0,"vwap":361.5696600314021},{"time":"2026-09-14T14:45:00-04:00","bar_open":"2026-09-14T14:40:00-04:00","open":360.7699890136719,"high":360.95001220703125,"low":360.6400146484375,"close":360.8949890136719,"volume":138209.0,"vwap":361.56541382065166},{"time":"2026-09-14T14:50:00-04:00","bar_open":"2026-09-14T14:45:00-04:00","open":360.8699951171875,"high":361.1400146484375,"low":360.7200012207031,"close":360.8999938964844,"volume":154420.0,"vwap":361.561309627587},{"time":"2026-09-14T14:55:00-04:00","bar_open":"2026-09-14T14:50:00-04:00","open":360.94000244140625,"high":361.0,"low":360.70001220703125,"close":360.8800048828125,"volume":112594.0,"vwap":361.55807294082615},{"time":"2026-09-14T15:00:00-04:00","bar_open":"2026-09-14T14:55:00-04:00","open":360.8299865722656,"high":361.0199890136719,"low":360.6199951171875,"close":360.8500061035156,"volume":169630.0,"vwap":361.5530454720944},{"time":"2026-09-14T15:05:00-04:00","bar_open":"2026-09-14T15:00:00-04:00","open":360.8299865722656,"high":361.07000732421875,"low":360.6700134277344,"close":360.6700134277344,"volume":155042.0,"vwap":361.54834355641634},{"time":"2026-09-14T15:10:00-04:00","bar_open":"2026-09-14T15:05:00-04:00","open":360.67999267578125,"high":360.79998779296875,"low":360.010009765625,"close":360.1199951171875,"volume":241728.0,"vwap":361.5363518648162},{"time":"2026-09-14T15:15:00-04:00","bar_open":"2026-09-14T15:10:00-04:00","open":360.1050109863281,"high":360.1700134277344,"low":359.6499938964844,"close":359.70001220703125,"volume":347442.0,"vwap":361.51306532230024},{"time":"2026-09-14T15:20:00-04:00","bar_open":"2026-09-14T15:15:00-04:00","open":359.6960144042969,"high":359.8399963378906,"low":359.5,"close":359.6000061035156,"volume":225384.0,"vwap":361.4965918377108},{"time":"2026-09-14T15:25:00-04:00","bar_open":"2026-09-14T15:20:00-04:00","open":359.614990234375,"high":359.7950134277344,"low":359.3699951171875,"close":359.42999267578125,"volume":257811.0,"vwap":361.47695177890887},{"time":"2026-09-14T15:30:00-04:00","bar_open":"2026-09-14T15:25:00-04:00","open":359.45001220703125,"high":360.49261474609375,"low":359.44500732421875,"close":360.30999755859375,"volume":371295.0,"vwap":361.4571639359057},{"time":"2026-09-14T15:35:00-04:00","bar_open":"2026-09-14T15:30:00-04:00","open":360.2950134277344,"high":360.6400146484375,"low":360.1000061035156,"close":360.239990234375,"volume":400465.0,"vwap":361.4401217958091},{"time":"2026-09-14T15:40:00-04:00","bar_open":"2026-09-14T15:35:00-04:00","open":360.2703857421875,"high":360.4783020019531,"low":360.05999755859375,"close":360.260009765625,"volume":205478.0,"vwap":361.4311105366652},{"time":"2026-09-14T15:45:00-04:00","bar_open":"2026-09-14T15:40:00-04:00","open":360.2349853515625,"high":360.54998779296875,"low":360.1564025878906,"close":360.3900146484375,"volume":176767.0,"vwap":361.4241201775811},{"time":"2026-09-14T15:50:00-04:00","bar_open":"2026-09-14T15:45:00-04:00","open":360.3699951171875,"high":360.489990234375,"low":359.93011474609375,"close":360.18499755859375,"volume":398422.0,"vwap":361.4063096723919},{"time":"2026-09-14T15:55:00-04:00","bar_open":"2026-09-14T15:50:00-04:00","open":360.17999267578125,"high":360.3783874511719,"low":359.29998779296875,"close":359.4399108886719,"volume":560628.0,"vwap":361.3721528484964},{"time":"2026-09-14T16:00:00-04:00","bar_open":"2026-09-14T15:55:00-04:00","open":359.4100036621094,"high":359.4100036621094,"low":358.5299987792969,"close":358.9700012207031,"volume":1158229.0,"vwap":361.2764262112948}],"fills":[{"time":"2026-09-14T09:35:00-04:00","action":"X","shares":57,"quantity":-57,"price":365.1483281555176,"reference_price":365.33099365234375,"shares_before":0,"shares_after":-57,"assumed_cost":10.411933319091798,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:35:00-04:00","pnl":null},{"time":"2026-09-14T09:40:00-04:00","action":"C","shares":1,"quantity":1,"price":361.8808622131347,"reference_price":361.7000122070313,"shares_before":-57,"shares_after":-56,"assumed_cost":0.1808500061035156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:40:00-04:00","pnl":null},{"time":"2026-09-14T09:45:00-04:00","action":"C","shares":56,"quantity":56,"price":361.9108759918213,"reference_price":361.7300109863281,"shares_before":-56,"shares_after":0,"assumed_cost":10.128440307617188,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:45:00-04:00","pnl":null},{"time":"2026-09-14T09:45:00-04:00","action":"B","shares":24,"quantity":24,"price":361.9108759918213,"reference_price":361.7300109863281,"shares_before":0,"shares_after":24,"assumed_cost":4.340760131835937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:45:00-04:00","pnl":null},{"time":"2026-09-14T09:50:00-04:00","action":"S","shares":24,"quantity":-24,"price":360.5246340789795,"reference_price":360.7049865722656,"shares_before":24,"shares_after":0,"assumed_cost":4.328459838867188,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:50:00-04:00","pnl":null},{"time":"2026-09-14T10:20:00-04:00","action":"X","shares":1,"quantity":-1,"price":358.6555739593506,"reference_price":358.8349914550781,"shares_before":0,"shares_after":-1,"assumed_cost":0.179417495727539,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:20:00-04:00","pnl":null},{"time":"2026-09-14T10:25:00-04:00","action":"C","shares":1,"quantity":1,"price":357.66873522949214,"reference_price":357.489990234375,"shares_before":-1,"shares_after":0,"assumed_cost":0.1787449951171875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:25:00-04:00","pnl":null},{"time":"2026-09-14T10:35:00-04:00","action":"X","shares":47,"quantity":-47,"price":358.82050000000004,"reference_price":359.0,"shares_before":0,"shares_after":-47,"assumed_cost":8.4365,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:35:00-04:00","pnl":null},{"time":"2026-09-14T10:40:00-04:00","action":"C","shares":1,"quantity":1,"price":358.3791122131348,"reference_price":358.20001220703125,"shares_before":-47,"shares_after":-46,"assumed_cost":0.1791000061035156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:40:00-04:00","pnl":null},{"time":"2026-09-14T10:45:00-04:00","action":"C","shares":1,"quantity":1,"price":358.88934645080565,"reference_price":358.7099914550781,"shares_before":-46,"shares_after":-45,"assumed_cost":0.179354995727539,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:45:00-04:00","pnl":null},{"time":"2026-09-14T10:50:00-04:00","action":"C","shares":43,"quantity":43,"price":359.3695974426269,"reference_price":359.19000244140625,"shares_before":-45,"shares_after":-2,"assumed_cost":7.722585052490234,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:50:00-04:00","pnl":null},{"time":"2026-09-14T10:55:00-04:00","action":"X","shares":7,"quantity":-7,"price":358.40069657897953,"reference_price":358.5799865722656,"shares_before":-2,"shares_after":-9,"assumed_cost":1.2550299530029296,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:55:00-04:00","pnl":null},{"time":"2026-09-14T11:00:00-04:00","action":"X","shares":7,"quantity":-7,"price":358.4306803588867,"reference_price":358.6099853515625,"shares_before":-9,"shares_after":-16,"assumed_cost":1.2551349487304688,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:00:00-04:00","pnl":null},{"time":"2026-09-14T11:10:00-04:00","action":"C","shares":1,"quantity":1,"price":359.2645339508056,"reference_price":359.0849914550781,"shares_before":-16,"shares_after":-15,"assumed_cost":0.179542495727539,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:10:00-04:00","pnl":null},{"time":"2026-09-14T11:15:00-04:00","action":"X","shares":3,"quantity":-3,"price":359.2610755004883,"reference_price":359.4407958984375,"shares_before":-15,"shares_after":-18,"assumed_cost":0.5391611938476563,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:15:00-04:00","pnl":null},{"time":"2026-09-14T11:20:00-04:00","action":"C","shares":1,"quantity":1,"price":359.5097736968994,"reference_price":359.3301086425781,"shares_before":-18,"shares_after":-17,"assumed_cost":0.179665054321289,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:20:00-04:00","pnl":null},{"time":"2026-09-14T11:25:00-04:00","action":"X","shares":1,"quantity":-1,"price":360.0798797607422,"reference_price":360.260009765625,"shares_before":-17,"shares_after":-18,"assumed_cost":0.1801300048828125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:25:00-04:00","pnl":null},{"time":"2026-09-14T11:30:00-04:00","action":"X","shares":1,"quantity":-1,"price":359.9349327392578,"reference_price":360.114990234375,"shares_before":-18,"shares_after":-19,"assumed_cost":0.1800574951171875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:30:00-04:00","pnl":null},{"time":"2026-09-14T11:35:00-04:00","action":"X","shares":70,"quantity":-70,"price":361.8589885406494,"reference_price":362.0400085449219,"shares_before":-19,"shares_after":-89,"assumed_cost":12.671400299072266,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:35:00-04:00","pnl":null},{"time":"2026-09-14T11:40:00-04:00","action":"C","shares":1,"quantity":1,"price":363.1414714508056,"reference_price":362.9599914550781,"shares_before":-89,"shares_after":-88,"assumed_cost":0.181479995727539,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:40:00-04:00","pnl":null},{"time":"2026-09-14T11:50:00-04:00","action":"C","shares":10,"quantity":10,"price":363.8618326721192,"reference_price":363.6799926757813,"shares_before":-88,"shares_after":-78,"assumed_cost":1.8183999633789063,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:50:00-04:00","pnl":null},{"time":"2026-09-14T11:55:00-04:00","action":"C","shares":14,"quantity":14,"price":363.8214071960449,"reference_price":363.63958740234375,"shares_before":-78,"shares_after":-64,"assumed_cost":2.5454771118164063,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:55:00-04:00","pnl":null},{"time":"2026-09-14T12:00:00-04:00","action":"C","shares":1,"quantity":1,"price":363.3560867614746,"reference_price":363.1744995117188,"shares_before":-64,"shares_after":-63,"assumed_cost":0.1815872497558593,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:00:00-04:00","pnl":null},{"time":"2026-09-14T12:05:00-04:00","action":"C","shares":1,"quantity":1,"price":364.0919586639404,"reference_price":363.9100036621094,"shares_before":-63,"shares_after":-62,"assumed_cost":0.1819550018310546,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:05:00-04:00","pnl":null},{"time":"2026-09-14T12:15:00-04:00","action":"C","shares":1,"quantity":1,"price":362.6550222930908,"reference_price":362.4737854003906,"shares_before":-62,"shares_after":-61,"assumed_cost":0.1812368927001953,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:15:00-04:00","pnl":null},{"time":"2026-09-14T12:20:00-04:00","action":"C","shares":1,"quantity":1,"price":363.95187400817866,"reference_price":363.7699890136719,"shares_before":-61,"shares_after":-60,"assumed_cost":0.1818849945068359,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:20:00-04:00","pnl":null},{"time":"2026-09-14T12:25:00-04:00","action":"C","shares":50,"quantity":50,"price":363.7320681152344,"reference_price":363.55029296875,"shares_before":-60,"shares_after":-10,"assumed_cost":9.08875732421875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:25:00-04:00","pnl":null},{"time":"2026-09-14T12:35:00-04:00","action":"C","shares":1,"quantity":1,"price":363.1114576721191,"reference_price":362.9299926757813,"shares_before":-10,"shares_after":-9,"assumed_cost":0.1814649963378906,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:35:00-04:00","pnl":null},{"time":"2026-09-14T12:40:00-04:00","action":"C","shares":1,"quantity":1,"price":362.8563252868652,"reference_price":362.6749877929688,"shares_before":-9,"shares_after":-8,"assumed_cost":0.1813374938964843,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:40:00-04:00","pnl":null},{"time":"2026-09-14T12:45:00-04:00","action":"C","shares":1,"quantity":1,"price":362.4663293609619,"reference_price":362.2851867675781,"shares_before":-8,"shares_after":-7,"assumed_cost":0.181142593383789,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:45:00-04:00","pnl":null},{"time":"2026-09-14T12:50:00-04:00","action":"X","shares":5,"quantity":-5,"price":363.3082452392578,"reference_price":363.489990234375,"shares_before":-7,"shares_after":-12,"assumed_cost":0.9087249755859376,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:50:00-04:00","pnl":null},{"time":"2026-09-14T12:55:00-04:00","action":"C","shares":1,"quantity":1,"price":362.4811377868652,"reference_price":362.2999877929688,"shares_before":-12,"shares_after":-11,"assumed_cost":0.1811499938964843,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:55:00-04:00","pnl":null},{"time":"2026-09-14T13:00:00-04:00","action":"X","shares":16,"quantity":-16,"price":362.59360639953616,"reference_price":362.7749938964844,"shares_before":-11,"shares_after":-27,"assumed_cost":2.902199951171875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:00:00-04:00","pnl":null},{"time":"2026-09-14T13:15:00-04:00","action":"C","shares":1,"quantity":1,"price":362.8363262786865,"reference_price":362.6549987792969,"shares_before":-27,"shares_after":-26,"assumed_cost":0.1813274993896484,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:15:00-04:00","pnl":null},{"time":"2026-09-14T13:20:00-04:00","action":"C","shares":7,"quantity":7,"price":362.5261737213135,"reference_price":362.3450012207031,"shares_before":-26,"shares_after":-19,"assumed_cost":1.268207504272461,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:20:00-04:00","pnl":null},{"time":"2026-09-14T13:25:00-04:00","action":"X","shares":4,"quantity":-4,"price":362.6685811004639,"reference_price":362.8500061035156,"shares_before":-19,"shares_after":-23,"assumed_cost":0.7257000122070313,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:25:00-04:00","pnl":null},{"time":"2026-09-14T13:30:00-04:00","action":"C","shares":1,"quantity":1,"price":363.0414153442383,"reference_price":362.8599853515625,"shares_before":-23,"shares_after":-22,"assumed_cost":0.1814299926757812,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:30:00-04:00","pnl":null},{"time":"2026-09-14T13:40:00-04:00","action":"X","shares":5,"quantity":-5,"price":362.6335949401856,"reference_price":362.8150024414063,"shares_before":-22,"shares_after":-27,"assumed_cost":0.9070375061035156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:40:00-04:00","pnl":null},{"time":"2026-09-14T13:45:00-04:00","action":"C","shares":3,"quantity":3,"price":362.8113198852539,"reference_price":362.6300048828125,"shares_before":-27,"shares_after":-24,"assumed_cost":0.5439450073242188,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:45:00-04:00","pnl":null},{"time":"2026-09-14T13:50:00-04:00","action":"C","shares":16,"quantity":16,"price":362.7462849426269,"reference_price":362.5650024414063,"shares_before":-24,"shares_after":-8,"assumed_cost":2.90052001953125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:50:00-04:00","pnl":null},{"time":"2026-09-14T14:00:00-04:00","action":"C","shares":8,"quantity":8,"price":362.4412313690185,"reference_price":362.2601013183594,"shares_before":-8,"shares_after":0,"assumed_cost":1.4490404052734376,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:00:00-04:00","pnl":null},{"time":"2026-09-14T14:05:00-04:00","action":"X","shares":2,"quantity":-2,"price":361.66566484069824,"reference_price":361.8465881347656,"shares_before":0,"shares_after":-2,"assumed_cost":0.3618465881347656,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:05:00-04:00","pnl":null},{"time":"2026-09-14T14:10:00-04:00","action":"C","shares":1,"quantity":1,"price":361.8708474426269,"reference_price":361.6900024414063,"shares_before":-2,"shares_after":-1,"assumed_cost":0.1808450012207031,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:10:00-04:00","pnl":null},{"time":"2026-09-14T14:15:00-04:00","action":"C","shares":1,"quantity":1,"price":361.6257298278808,"reference_price":361.4450073242188,"shares_before":-1,"shares_after":0,"assumed_cost":0.1807225036621093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:15:00-04:00","pnl":null},{"time":"2026-09-14T14:35:00-04:00","action":"B","shares":4,"quantity":4,"price":361.0848406219482,"reference_price":360.9043884277344,"shares_before":0,"shares_after":4,"assumed_cost":0.7218087768554687,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:35:00-04:00","pnl":null},{"time":"2026-09-14T14:40:00-04:00","action":"B","shares":5,"quantity":5,"price":360.9503740081787,"reference_price":360.7699890136719,"shares_before":4,"shares_after":9,"assumed_cost":0.9019249725341796,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:40:00-04:00","pnl":null},{"time":"2026-09-14T14:45:00-04:00","action":"B","shares":4,"quantity":4,"price":361.05043011474606,"reference_price":360.8699951171875,"shares_before":9,"shares_after":13,"assumed_cost":0.721739990234375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:45:00-04:00","pnl":null},{"time":"2026-09-14T14:55:00-04:00","action":"B","shares":10,"quantity":10,"price":361.0104015655517,"reference_price":360.8299865722656,"shares_before":13,"shares_after":23,"assumed_cost":1.804149932861328,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:55:00-04:00","pnl":null},{"time":"2026-09-14T15:05:00-04:00","action":"S","shares":1,"quantity":-1,"price":360.4996526794434,"reference_price":360.6799926757813,"shares_before":23,"shares_after":22,"assumed_cost":0.1803399963378906,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:05:00-04:00","pnl":null},{"time":"2026-09-14T15:15:00-04:00","action":"B","shares":35,"quantity":35,"price":359.875862411499,"reference_price":359.6960144042969,"shares_before":22,"shares_after":57,"assumed_cost":6.294680252075195,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:15:00-04:00","pnl":null},{"time":"2026-09-14T15:25:00-04:00","action":"B","shares":5,"quantity":5,"price":359.6297372131347,"reference_price":359.45001220703125,"shares_before":57,"shares_after":62,"assumed_cost":0.8986250305175781,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:25:00-04:00","pnl":null},{"time":"2026-09-14T15:30:00-04:00","action":"S","shares":62,"quantity":-62,"price":360.1148659210205,"reference_price":360.2950134277344,"shares_before":62,"shares_after":0,"assumed_cost":11.169145416259765,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:30:00-04:00","pnl":null}],"marks":[{"time":"2026-09-14T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-14T09:40:00-04:00","shares":-57,"pnl":198.2639394836442},{"time":"2026-09-14T09:45:00-04:00","shares":-56,"pnl":189.9337059326172},{"time":"2026-09-14T09:50:00-04:00","shares":24,"pnl":155.15835314941432},{"time":"2026-09-14T09:55:00-04:00","shares":0,"pnl":151.29498120117205},{"time":"2026-09-14T10:00:00-04:00","shares":0,"pnl":151.29498120117205},{"time":"2026-09-14T10:05:00-04:00","shares":0,"pnl":151.29498120117205},{"time":"2026-09-14T10:10:00-04:00","shares":0,"pnl":151.29498120117205},{"time":"2026-09-14T10:15:00-04:00","shares":0,"pnl":151.29498120117205},{"time":"2026-09-14T10:20:00-04:00","shares":0,"pnl":151.29498120117205},{"time":"2026-09-14T10:25:00-04:00","shares":-1,"pnl":152.46056492614764},{"time":"2026-09-14T10:30:00-04:00","shares":0,"pnl":152.2818199310305},{"time":"2026-09-14T10:35:00-04:00","shares":0,"pnl":152.2818199310305},{"time":"2026-09-14T10:40:00-04:00","shares":-47,"pnl":178.7711622161878},{"time":"2026-09-14T10:45:00-04:00","shares":-46,"pnl":155.5057584991482},{"time":"2026-09-14T10:50:00-04:00","shares":-45,"pnl":134.67680633545206},{"time":"2026-09-14T10:55:00-04:00","shares":-2,"pnl":129.53414682007315},{"time":"2026-09-14T11:00:00-04:00","shares":-9,"pnl":128.3589813690237},{"time":"2026-09-14T11:05:00-04:00","shares":-16,"pnl":128.1039074554501},{"time":"2026-09-14T11:10:00-04:00","shares":-16,"pnl":119.2240246429501},{"time":"2026-09-14T11:15:00-04:00","shares":-15,"pnl":113.789385711676},{"time":"2026-09-14T11:20:00-04:00","shares":-18,"pnl":114.81248037720344},{"time":"2026-09-14T11:25:00-04:00","shares":-17,"pnl":98.58258338928864},{"time":"2026-09-14T11:30:00-04:00","shares":-18,"pnl":101.13002296448394},{"time":"2026-09-14T11:35:00-04:00","shares":-19,"pnl":62.67939662171011},{"time":"2026-09-14T11:40:00-04:00","shares":-89,"pnl":-25.314574478143182},{"time":"2026-09-14T11:45:00-04:00","shares":-88,"pnl":-68.6841953430121},{"time":"2026-09-14T11:50:00-04:00","shares":-88,"pnl":-92.6741855773871},{"time":"2026-09-14T11:55:00-04:00","shares":-78,"pnl":-89.91043222045482},{"time":"2026-09-14T12:00:00-04:00","shares":-64,"pnl":-63.4719005432089},{"time":"2026-09-14T12:05:00-04:00","shares":-63,"pnl":-110.65846215820056},{"time":"2026-09-14T12:10:00-04:00","shares":-62,"pnl":-50.09163786315548},{"time":"2026-09-14T12:15:00-04:00","shares":-62,"pnl":-22.190881027217984},{"time":"2026-09-14T12:20:00-04:00","shares":-61,"pnl":-104.11567871093212},{"time":"2026-09-14T12:25:00-04:00","shares":-60,"pnl":-90.15843406676868},{"time":"2026-09-14T12:30:00-04:00","shares":-10,"pnl":-94.7110585784867},{"time":"2026-09-14T12:35:00-04:00","shares":-10,"pnl":-91.5610341644242},{"time":"2026-09-14T12:40:00-04:00","shares":-9,"pnl":-89.44745521544974},{"time":"2026-09-14T12:45:00-04:00","shares":-8,"pnl":-86.58899778747127},{"time":"2026-09-14T12:50:00-04:00","shares":-7,"pnl":-95.16018554687072},{"time":"2026-09-14T12:55:00-04:00","shares":-12,"pnl":-82.11383239745646},{"time":"2026-09-14T13:00:00-04:00","shares":-11,"pnl":-86.94555612182148},{"time":"2026-09-14T13:05:00-04:00","shares":-27,"pnl":-87.22779147338406},{"time":"2026-09-14T13:10:00-04:00","shares":-27,"pnl":-83.44739596557156},{"time":"2026-09-14T13:15:00-04:00","shares":-27,"pnl":-87.09265963744656},{"time":"2026-09-14T13:20:00-04:00","shares":-26,"pnl":-78.94378694152329},{"time":"2026-09-14T13:25:00-04:00","shares":-19,"pnl":-89.0469248657173},{"time":"2026-09-14T13:30:00-04:00","shares":-23,"pnl":-91.89658728026734},{"time":"2026-09-14T13:35:00-04:00","shares":-22,"pnl":-83.57392791747407},{"time":"2026-09-14T13:40:00-04:00","shares":-22,"pnl":-91.16395477294282},{"time":"2026-09-14T13:45:00-04:00","shares":-27,"pnl":-85.05625228881217},{"time":"2026-09-14T13:50:00-04:00","shares":-24,"pnl":-85.20972488402731},{"time":"2026-09-14T13:55:00-04:00","shares":-8,"pnl":-86.03065505980794},{"time":"2026-09-14T14:00:00-04:00","shares":-8,"pnl":-85.39051834105794},{"time":"2026-09-14T14:05:00-04:00","shares":0,"pnl":-86.76045718383102},{"time":"2026-09-14T14:10:00-04:00","shares":-2,"pnl":-86.86894683837204},{"time":"2026-09-14T14:15:00-04:00","shares":-1,"pnl":-86.74998715209273},{"time":"2026-09-14T14:20:00-04:00","shares":0,"pnl":-86.92570477294231},{"time":"2026-09-14T14:25:00-04:00","shares":0,"pnl":-86.92570477294231},{"time":"2026-09-14T14:30:00-04:00","shares":0,"pnl":-86.92570477294231},{"time":"2026-09-14T14:35:00-04:00","shares":0,"pnl":-86.92570477294231},{"time":"2026-09-14T14:40:00-04:00","shares":4,"pnl":-88.26506726073512},{"time":"2026-09-14T14:45:00-04:00","shares":9,"pnl":-87.96203617858191},{"time":"2026-09-14T14:50:00-04:00","shares":13,"pnl":-88.51873710631662},{"time":"2026-09-14T14:55:00-04:00","shares":13,"pnl":-88.778594284051},{"time":"2026-09-14T15:00:00-04:00","shares":23,"pnl":-90.7725330352714},{"time":"2026-09-14T15:05:00-04:00","shares":23,"pnl":-94.91236457824016},{"time":"2026-09-14T15:10:00-04:00","shares":22,"pnl":-107.1831281585628},{"time":"2026-09-14T15:15:00-04:00","shares":22,"pnl":-116.4227521820003},{"time":"2026-09-14T15:20:00-04:00","shares":57,"pnl":-128.2778572387615},{"time":"2026-09-14T15:25:00-04:00","shares":57,"pnl":-137.96862261962087},{"time":"2026-09-14T15:30:00-04:00","shares":62,"pnl":-84.40704257201287},{"time":"2026-09-14T15:35:00-04:00","shares":0,"pnl":-96.50520410155514},{"time":"2026-09-14T15:40:00-04:00","shares":0,"pnl":-96.50520410155514},{"time":"2026-09-14T15:45:00-04:00","shares":0,"pnl":-96.50520410155514},{"time":"2026-09-14T15:50:00-04:00","shares":0,"pnl":-96.50520410155514},{"time":"2026-09-14T15:55:00-04:00","shares":0,"pnl":-96.50520410155514},{"time":"2026-09-14T16:00:00-04:00","shares":0,"pnl":-96.50520410155514}],"summary":{"net_pnl":-96.50520410155514,"gross_pnl":16.67089843750736,"cost":113.1761025390625,"fill_count":52,"ending_shares":0},"source_hashes":{"fills_sha256":"127c786c405b3869d02c4b15d536b5ff3aa3c414c880e691f849bf2e99551b83","marks_sha256":"d8f2261179539f1e332604ebfdc5dec062de885c2e58240686533a8d2bdac7db","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-14/levels_error_risk/NVDA.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"NVDA","date":"2026-09-14","variant":"levels_error_risk","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-14T16:00:00-04:00","partial":false,"starting_equity":47006.42,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-14T09:30:00-04:00","session_close":"2026-09-14T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-14T09:35:00-04:00","bar_open":"2026-09-14T09:30:00-04:00","open":211.0800018310547,"high":211.5,"low":209.24000549316406,"close":209.67999267578125,"volume":37879921.0,"vwap":210.13999938964844},{"time":"2026-09-14T09:40:00-04:00","bar_open":"2026-09-14T09:35:00-04:00","open":209.6699981689453,"high":209.9199981689453,"low":208.92999267578125,"close":209.27000427246094,"volume":4222767.0,"vwap":210.06310503564376},{"time":"2026-09-14T09:45:00-04:00","bar_open":"2026-09-14T09:40:00-04:00","open":209.27000427246094,"high":209.8699951171875,"low":209.07000732421875,"close":209.86000061035156,"volume":2985779.0,"vwap":210.0324380747793},{"time":"2026-09-14T09:50:00-04:00","bar_open":"2026-09-14T09:45:00-04:00","open":209.86000061035156,"high":211.55999755859375,"low":209.84629821777344,"close":211.30999755859375,"volume":3761159.0,"vwap":210.09965385279932},{"time":"2026-09-14T09:55:00-04:00","bar_open":"2026-09-14T09:50:00-04:00","open":211.30999755859375,"high":211.4398956298828,"low":210.50999450683594,"close":210.6750030517578,"volume":2558628.0,"vwap":210.13824164971098},{"time":"2026-09-14T10:00:00-04:00","bar_open":"2026-09-14T09:55:00-04:00","open":210.6699981689453,"high":210.9600067138672,"low":210.5500030517578,"close":210.7899932861328,"volume":2781755.0,"vwap":210.17050086677048},{"time":"2026-09-14T10:05:00-04:00","bar_open":"2026-09-14T10:00:00-04:00","open":210.7899932861328,"high":211.02999877929688,"low":210.4499969482422,"close":210.74659729003906,"volume":1924556.0,"vwap":210.19010829877496},{"time":"2026-09-14T10:10:00-04:00","bar_open":"2026-09-14T10:05:00-04:00","open":210.77000427246094,"high":211.6300048828125,"low":210.5500030517578,"close":211.22000122070312,"volume":2182683.0,"vwap":210.22542330899853},{"time":"2026-09-14T10:15:00-04:00","bar_open":"2026-09-14T10:10:00-04:00","open":211.22000122070312,"high":211.6999969482422,"low":211.22000122070312,"close":211.4199981689453,"volume":1780727.0,"vwap":210.26162124754143},{"time":"2026-09-14T10:20:00-04:00","bar_open":"2026-09-14T10:15:00-04:00","open":211.4250030517578,"high":211.52999877929688,"low":210.58999633789062,"close":210.6699981689453,"volume":1692851.0,"vwap":210.27993833870275},{"time":"2026-09-14T10:25:00-04:00","bar_open":"2026-09-14T10:20:00-04:00","open":210.69000244140625,"high":210.82000732421875,"low":210.21710205078125,"close":210.22999572753906,"volume":1501442.0,"vwap":210.2833181832077},{"time":"2026-09-14T10:30:00-04:00","bar_open":"2026-09-14T10:25:00-04:00","open":210.23500061035156,"high":210.49000549316406,"low":210.07000732421875,"close":210.4550018310547,"volume":1394723.0,"vwap":210.28450484280347},{"time":"2026-09-14T10:35:00-04:00","bar_open":"2026-09-14T10:30:00-04:00","open":210.4499969482422,"high":211.02000427246094,"low":210.4199981689453,"close":210.92950439453125,"volume":1369176.0,"vwap":210.2949822340975},{"time":"2026-09-14T10:40:00-04:00","bar_open":"2026-09-14T10:35:00-04:00","open":210.9250030517578,"high":210.9250030517578,"low":210.25,"close":210.42990112304688,"volume":1279204.0,"vwap":210.2995427203826},{"time":"2026-09-14T10:45:00-04:00","bar_open":"2026-09-14T10:40:00-04:00","open":210.41000366210938,"high":210.6199951171875,"low":210.3300018310547,"close":210.52000427246094,"volume":1015409.0,"vwap":210.30237295953705},{"time":"2026-09-14T10:50:00-04:00","bar_open":"2026-09-14T10:45:00-04:00","open":210.52999877929688,"high":210.86000061035156,"low":210.47000122070312,"close":210.82980346679688,"volume":894435.0,"vwap":210.30776813516005},{"time":"2026-09-14T10:55:00-04:00","bar_open":"2026-09-14T10:50:00-04:00","open":210.82000732421875,"high":210.83999633789062,"low":210.4600067138672,"close":210.6300048828125,"volume":876075.0,"vwap":210.3119618183017},{"time":"2026-09-14T11:00:00-04:00","bar_open":"2026-09-14T10:55:00-04:00","open":210.625,"high":210.6761932373047,"low":210.3000030517578,"close":210.47999572753906,"volume":965583.0,"vwap":210.31431828036602},{"time":"2026-09-14T11:05:00-04:00","bar_open":"2026-09-14T11:00:00-04:00","open":210.4600067138672,"high":210.6300048828125,"low":210.27999877929688,"close":210.33999633789062,"volume":840168.0,"vwap":210.31551412764088},{"time":"2026-09-14T11:10:00-04:00","bar_open":"2026-09-14T11:05:00-04:00","open":210.34950256347656,"high":211.25999450683594,"low":210.34010314941406,"close":210.86000061035156,"volume":1395672.0,"vwap":210.32512008209483},{"time":"2026-09-14T11:15:00-04:00","bar_open":"2026-09-14T11:10:00-04:00","open":210.8800048828125,"high":211.0500030517578,"low":210.7100067138672,"close":210.74000549316406,"volume":681415.0,"vwap":210.32980091848242},{"time":"2026-09-14T11:20:00-04:00","bar_open":"2026-09-14T11:15:00-04:00","open":210.72999572753906,"high":211.239501953125,"low":210.71800231933594,"close":211.13499450683594,"volume":849556.0,"vwap":210.33775944620297},{"time":"2026-09-14T11:25:00-04:00","bar_open":"2026-09-14T11:20:00-04:00","open":211.13999938964844,"high":211.35000610351562,"low":210.9499969482422,"close":211.25999450683594,"volume":840463.0,"vwap":210.34718769156217},{"time":"2026-09-14T11:30:00-04:00","bar_open":"2026-09-14T11:25:00-04:00","open":211.25999450683594,"high":211.60000610351562,"low":211.16000366210938,"close":211.4600067138672,"volume":1362957.0,"vwap":210.3659323184684},{"time":"2026-09-14T11:35:00-04:00","bar_open":"2026-09-14T11:30:00-04:00","open":211.4499969482422,"high":212.02000427246094,"low":211.1999969482422,"close":211.88999938964844,"volume":1597874.0,"vwap":210.39310850251104},{"time":"2026-09-14T11:40:00-04:00","bar_open":"2026-09-14T11:35:00-04:00","open":211.88999938964844,"high":212.10000610351562,"low":211.80999755859375,"close":211.8800048828125,"volume":1282651.0,"vwap":210.41777513857363},{"time":"2026-09-14T11:45:00-04:00","bar_open":"2026-09-14T11:40:00-04:00","open":211.8800048828125,"high":212.1999969482422,"low":211.6999969482422,"close":212.0500030517578,"volume":1179159.0,"vwap":210.4405385658486},{"time":"2026-09-14T11:50:00-04:00","bar_open":"2026-09-14T11:45:00-04:00","open":212.0574951171875,"high":212.1298065185547,"low":211.76370239257812,"close":211.77200317382812,"volume":1042240.0,"vwap":210.45891140955462},{"time":"2026-09-14T11:55:00-04:00","bar_open":"2026-09-14T11:50:00-04:00","open":211.77000427246094,"high":211.94000244140625,"low":211.67999267578125,"close":211.90260314941406,"volume":780571.0,"vwap":210.47192056250515},{"time":"2026-09-14T12:00:00-04:00","bar_open":"2026-09-14T11:55:00-04:00","open":211.90499877929688,"high":212.3300018310547,"low":211.86000061035156,"close":212.1884002685547,"volume":808243.0,"vwap":210.48788904551742},{"time":"2026-09-14T12:05:00-04:00","bar_open":"2026-09-14T12:00:00-04:00","open":212.17999267578125,"high":212.28500366210938,"low":212.0283966064453,"close":212.0301055908203,"volume":681278.0,"vwap":210.50101766939682},{"time":"2026-09-14T12:10:00-04:00","bar_open":"2026-09-14T12:05:00-04:00","open":212.03289794921875,"high":212.03289794921875,"low":211.75999450683594,"close":211.8000030517578,"volume":676454.0,"vwap":210.51185613154018},{"time":"2026-09-14T12:15:00-04:00","bar_open":"2026-09-14T12:10:00-04:00","open":211.77999877929688,"high":211.92990112304688,"low":211.65150451660156,"close":211.6898956298828,"volume":793115.0,"vwap":210.52335632952716},{"time":"2026-09-14T12:20:00-04:00","bar_open":"2026-09-14T12:15:00-04:00","open":211.6999969482422,"high":212.22999572753906,"low":211.6999969482422,"close":212.14999389648438,"volume":827630.0,"vwap":210.5377056992649},{"time":"2026-09-14T12:25:00-04:00","bar_open":"2026-09-14T12:20:00-04:00","open":212.13999938964844,"high":212.1649932861328,"low":211.9199981689453,"close":211.9600067138672,"volume":642268.0,"vwap":210.54856813558496},{"time":"2026-09-14T12:30:00-04:00","bar_open":"2026-09-14T12:25:00-04:00","open":211.94000244140625,"high":211.99000549316406,"low":211.67999267578125,"close":211.7899932861328,"volume":572572.0,"vwap":210.55684810667373},{"time":"2026-09-14T12:35:00-04:00","bar_open":"2026-09-14T12:30:00-04:00","open":211.77000427246094,"high":211.83999633789062,"low":211.61500549316406,"close":211.67990112304688,"volume":557985.0,"vwap":210.56413065208517},{"time":"2026-09-14T12:40:00-04:00","bar_open":"2026-09-14T12:35:00-04:00","open":211.6699981689453,"high":211.85000610351562,"low":211.50999450683594,"close":211.77499389648438,"volume":561453.0,"vwap":210.57136652573888},{"time":"2026-09-14T12:45:00-04:00","bar_open":"2026-09-14T12:40:00-04:00","open":211.77499389648438,"high":211.86000061035156,"low":211.6199951171875,"close":211.86000061035156,"volume":423368.0,"vwap":210.57708610478866},{"time":"2026-09-14T12:50:00-04:00","bar_open":"2026-09-14T12:45:00-04:00","open":211.85499572753906,"high":212.38999938964844,"low":211.72500610351562,"close":212.25999450683594,"volume":873083.0,"vwap":210.59204627160054},{"time":"2026-09-14T12:55:00-04:00","bar_open":"2026-09-14T12:50:00-04:00","open":212.268798828125,"high":212.36500549316406,"low":211.6999969482422,"close":212.03500366210938,"volume":740420.0,"vwap":210.60376332188827},{"time":"2026-09-14T13:00:00-04:00","bar_open":"2026-09-14T12:55:00-04:00","open":212.02999877929688,"high":212.2198944091797,"low":211.90989685058594,"close":212.10499572753906,"volume":493735.0,"vwap":210.61171354797983},{"time":"2026-09-14T13:05:00-04:00","bar_open":"2026-09-14T13:00:00-04:00","open":212.10989379882812,"high":212.2100067138672,"low":212.05889892578125,"close":212.13499450683594,"volume":456191.0,"vwap":210.61926284707306},{"time":"2026-09-14T13:10:00-04:00","bar_open":"2026-09-14T13:05:00-04:00","open":212.1385955810547,"high":212.24000549316406,"low":212.08999633789062,"close":212.16000366210938,"volume":511491.0,"vwap":210.62779741169047},{"time":"2026-09-14T13:15:00-04:00","bar_open":"2026-09-14T13:10:00-04:00","open":212.1750030517578,"high":212.3800048828125,"low":212.07000732421875,"close":212.0709991455078,"volume":466223.0,"vwap":210.6355466803213},{"time":"2026-09-14T13:20:00-04:00","bar_open":"2026-09-14T13:15:00-04:00","open":212.07000732421875,"high":212.19619750976562,"low":211.9600067138672,"close":212.0449981689453,"volume":490055.0,"vwap":210.64304999808914},{"time":"2026-09-14T13:25:00-04:00","bar_open":"2026-09-14T13:20:00-04:00","open":212.0449981689453,"high":212.3699951171875,"low":212.02200317382812,"close":212.34500122070312,"volume":607194.0,"vwap":210.6533908562531},{"time":"2026-09-14T13:30:00-04:00","bar_open":"2026-09-14T13:25:00-04:00","open":212.35000610351562,"high":212.58999633789062,"low":212.30499267578125,"close":212.5800018310547,"volume":680016.0,"vwap":210.66657954154007},{"time":"2026-09-14T13:35:00-04:00","bar_open":"2026-09-14T13:30:00-04:00","open":212.58999633789062,"high":212.6060028076172,"low":212.3800048828125,"close":212.4199981689453,"volume":549452.0,"vwap":210.67696601476896},{"time":"2026-09-14T13:40:00-04:00","bar_open":"2026-09-14T13:35:00-04:00","open":212.4199981689453,"high":212.47999572753906,"low":212.1667022705078,"close":212.47000122070312,"volume":538733.0,"vwap":210.68649236286882},{"time":"2026-09-14T13:45:00-04:00","bar_open":"2026-09-14T13:40:00-04:00","open":212.4600067138672,"high":212.49000549316406,"low":212.2801055908203,"close":212.37840270996094,"volume":407263.0,"vwap":210.69366804235625},{"time":"2026-09-14T13:50:00-04:00","bar_open":"2026-09-14T13:45:00-04:00","open":212.3699951171875,"high":212.60000610351562,"low":212.3699951171875,"close":212.5749969482422,"volume":499080.0,"vwap":210.70306067674952},{"time":"2026-09-14T13:55:00-04:00","bar_open":"2026-09-14T13:50:00-04:00","open":212.5749969482422,"high":212.77000427246094,"low":212.50999450683594,"close":212.52999877929688,"volume":741665.0,"vwap":210.71751295157353},{"time":"2026-09-14T14:00:00-04:00","bar_open":"2026-09-14T13:55:00-04:00","open":212.52999877929688,"high":212.5800018310547,"low":212.38999938964844,"close":212.41009521484375,"volume":525057.0,"vwap":210.72684473544936},{"time":"2026-09-14T14:05:00-04:00","bar_open":"2026-09-14T14:00:00-04:00","open":212.4199981689453,"high":212.6300048828125,"low":212.22999572753906,"close":212.27999877929688,"volume":634109.0,"vwap":210.73746800861738},{"time":"2026-09-14T14:10:00-04:00","bar_open":"2026-09-14T14:05:00-04:00","open":212.28640747070312,"high":212.5500030517578,"low":212.1999969482422,"close":212.53179931640625,"volume":2134122.0,"vwap":210.7732399527126},{"time":"2026-09-14T14:15:00-04:00","bar_open":"2026-09-14T14:10:00-04:00","open":212.5399932861328,"high":212.5800018310547,"low":212.35000610351562,"close":212.4600067138672,"volume":537042.0,"vwap":210.7821956866911},{"time":"2026-09-14T14:20:00-04:00","bar_open":"2026-09-14T14:15:00-04:00","open":212.4600067138672,"high":212.4949951171875,"low":212.22999572753906,"close":212.24000549316406,"volume":621634.0,"vwap":210.79158062118478},{"time":"2026-09-14T14:25:00-04:00","bar_open":"2026-09-14T14:20:00-04:00","open":212.22999572753906,"high":212.3000030517578,"low":212.08999633789062,"close":212.17999267578125,"volume":445187.0,"vwap":210.79765934590375},{"time":"2026-09-14T14:30:00-04:00","bar_open":"2026-09-14T14:25:00-04:00","open":212.18499755859375,"high":212.2050018310547,"low":212.03500366210938,"close":212.09500122070312,"volume":447518.0,"vwap":210.80337609134443},{"time":"2026-09-14T14:35:00-04:00","bar_open":"2026-09-14T14:30:00-04:00","open":212.11000061035156,"high":212.33999633789062,"low":212.07000732421875,"close":212.28720092773438,"volume":580882.0,"vwap":210.81140066711447},{"time":"2026-09-14T14:40:00-04:00","bar_open":"2026-09-14T14:35:00-04:00","open":212.27999877929688,"high":212.44000244140625,"low":212.25,"close":212.4149932861328,"volume":477880.0,"vwap":210.8185601359799},{"time":"2026-09-14T14:45:00-04:00","bar_open":"2026-09-14T14:40:00-04:00","open":212.4149932861328,"high":212.4499969482422,"low":212.31500244140625,"close":212.39999389648438,"volume":481191.0,"vwap":210.82579516081196},{"time":"2026-09-14T14:50:00-04:00","bar_open":"2026-09-14T14:45:00-04:00","open":212.39999389648438,"high":212.49000549316406,"low":212.27000427246094,"close":212.33999633789062,"volume":531842.0,"vwap":210.83360476705548},{"time":"2026-09-14T14:55:00-04:00","bar_open":"2026-09-14T14:50:00-04:00","open":212.33999633789062,"high":212.4199981689453,"low":212.22999572753906,"close":212.35499572753906,"volume":457830.0,"vwap":210.84012686158846},{"time":"2026-09-14T15:00:00-04:00","bar_open":"2026-09-14T14:55:00-04:00","open":212.33999633789062,"high":212.5800018310547,"low":212.30999755859375,"close":212.55499267578125,"volume":473021.0,"vwap":210.84746143946882},{"time":"2026-09-14T15:05:00-04:00","bar_open":"2026-09-14T15:00:00-04:00","open":212.57000732421875,"high":212.60000610351562,"low":212.25,"close":212.5800018310547,"volume":657559.0,"vwap":210.85751838373517},{"time":"2026-09-14T15:10:00-04:00","bar_open":"2026-09-14T15:05:00-04:00","open":212.58999633789062,"high":212.6199951171875,"low":212.22999572753906,"close":212.40499877929688,"volume":551155.0,"vwap":210.86555249357502},{"time":"2026-09-14T15:15:00-04:00","bar_open":"2026-09-14T15:10:00-04:00","open":212.4199981689453,"high":212.44500732421875,"low":212.19000244140625,"close":212.27999877929688,"volume":1578163.0,"vwap":210.88646026740417},{"time":"2026-09-14T15:20:00-04:00","bar_open":"2026-09-14T15:15:00-04:00","open":212.27000427246094,"high":212.2949981689453,"low":212.1215057373047,"close":212.27999877929688,"volume":553346.0,"vwap":210.89327894988875},{"time":"2026-09-14T15:25:00-04:00","bar_open":"2026-09-14T15:20:00-04:00","open":212.27000427246094,"high":212.32000732421875,"low":212.10000610351562,"close":212.24000549316406,"volume":2592773.0,"vwap":210.92404762093534},{"time":"2026-09-14T15:30:00-04:00","bar_open":"2026-09-14T15:25:00-04:00","open":212.24000549316406,"high":212.36000061035156,"low":212.10000610351562,"close":212.10499572753906,"volume":562227.0,"vwap":210.930373796057},{"time":"2026-09-14T15:35:00-04:00","bar_open":"2026-09-14T15:30:00-04:00","open":212.10000610351562,"high":212.1999969482422,"low":211.72000122070312,"close":211.8000030517578,"volume":1692517.0,"vwap":210.94486165672012},{"time":"2026-09-14T15:40:00-04:00","bar_open":"2026-09-14T15:35:00-04:00","open":211.7935028076172,"high":211.86000061035156,"low":211.67999267578125,"close":211.85000610351562,"volume":845772.0,"vwap":210.95113177387208},{"time":"2026-09-14T15:45:00-04:00","bar_open":"2026-09-14T15:40:00-04:00","open":211.83999633789062,"high":212.13499450683594,"low":211.82000732421875,"close":212.07000732421875,"volume":871936.0,"vwap":210.95909414908058},{"time":"2026-09-14T15:50:00-04:00","bar_open":"2026-09-14T15:45:00-04:00","open":212.0749969482422,"high":212.15460205078125,"low":211.85000610351562,"close":212.07000732421875,"volume":983254.0,"vwap":210.96806964397925},{"time":"2026-09-14T15:55:00-04:00","bar_open":"2026-09-14T15:50:00-04:00","open":212.05999755859375,"high":212.39999389648438,"low":211.38999938964844,"close":211.72000122070312,"volume":2622194.0,"vwap":210.98714894195632},{"time":"2026-09-14T16:00:00-04:00","bar_open":"2026-09-14T15:55:00-04:00","open":211.7100067138672,"high":211.7100067138672,"low":210.7899932861328,"close":210.88999938964844,"volume":6595997.0,"vwap":210.9946286836372}],"fills":[{"time":"2026-09-14T09:35:00-04:00","action":"X","shares":119,"quantity":-119,"price":209.56516316986085,"reference_price":209.6699981689453,"shares_before":0,"shares_after":-119,"assumed_cost":12.475364891052246,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:35:00-04:00","pnl":null},{"time":"2026-09-14T09:40:00-04:00","action":"C","shares":71,"quantity":71,"price":209.37463927459717,"reference_price":209.2700042724609,"shares_before":-119,"shares_after":-48,"assumed_cost":7.429085151672363,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:40:00-04:00","pnl":null},{"time":"2026-09-14T09:45:00-04:00","action":"X","shares":56,"quantity":-56,"price":209.7550706100464,"reference_price":209.8600006103516,"shares_before":-48,"shares_after":-104,"assumed_cost":5.876080017089844,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:45:00-04:00","pnl":null},{"time":"2026-09-14T09:50:00-04:00","action":"C","shares":57,"quantity":57,"price":211.41565255737305,"reference_price":211.30999755859372,"shares_before":-104,"shares_after":-47,"assumed_cost":6.022334930419922,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:50:00-04:00","pnl":null},{"time":"2026-09-14T09:55:00-04:00","action":"X","shares":108,"quantity":-108,"price":210.5646631698609,"reference_price":210.6699981689453,"shares_before":-47,"shares_after":-155,"assumed_cost":11.376179901123049,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:55:00-04:00","pnl":null},{"time":"2026-09-14T10:05:00-04:00","action":"C","shares":1,"quantity":1,"price":210.87538927459715,"reference_price":210.7700042724609,"shares_before":-155,"shares_after":-154,"assumed_cost":0.1053850021362304,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:05:00-04:00","pnl":null},{"time":"2026-09-14T10:10:00-04:00","action":"C","shares":27,"quantity":27,"price":211.3256112213135,"reference_price":211.22000122070312,"shares_before":-154,"shares_after":-127,"assumed_cost":2.8514700164794924,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:10:00-04:00","pnl":null},{"time":"2026-09-14T10:15:00-04:00","action":"C","shares":1,"quantity":1,"price":211.53071555328367,"reference_price":211.4250030517578,"shares_before":-127,"shares_after":-126,"assumed_cost":0.1057125015258789,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:15:00-04:00","pnl":null},{"time":"2026-09-14T10:20:00-04:00","action":"C","shares":33,"quantity":33,"price":210.79534744262693,"reference_price":210.69000244140625,"shares_before":-126,"shares_after":-93,"assumed_cost":3.476385040283203,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:20:00-04:00","pnl":null},{"time":"2026-09-14T10:25:00-04:00","action":"X","shares":6,"quantity":-6,"price":210.1298831100464,"reference_price":210.2350006103516,"shares_before":-93,"shares_after":-99,"assumed_cost":0.6307050018310547,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:25:00-04:00","pnl":null},{"time":"2026-09-14T10:30:00-04:00","action":"X","shares":20,"quantity":-20,"price":210.34477194976807,"reference_price":210.4499969482422,"shares_before":-99,"shares_after":-119,"assumed_cost":2.104499969482422,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:30:00-04:00","pnl":null},{"time":"2026-09-14T10:35:00-04:00","action":"C","shares":40,"quantity":40,"price":211.03046555328368,"reference_price":210.9250030517578,"shares_before":-119,"shares_after":-79,"assumed_cost":4.218500061035156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:35:00-04:00","pnl":null},{"time":"2026-09-14T10:45:00-04:00","action":"C","shares":28,"quantity":28,"price":210.6352637786865,"reference_price":210.52999877929688,"shares_before":-79,"shares_after":-51,"assumed_cost":2.9474199829101564,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:45:00-04:00","pnl":null},{"time":"2026-09-14T10:50:00-04:00","action":"X","shares":5,"quantity":-5,"price":210.71459732055663,"reference_price":210.82000732421875,"shares_before":-51,"shares_after":-56,"assumed_cost":0.5270500183105469,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:50:00-04:00","pnl":null},{"time":"2026-09-14T11:05:00-04:00","action":"C","shares":1,"quantity":1,"price":210.4546773147583,"reference_price":210.34950256347656,"shares_before":-56,"shares_after":-55,"assumed_cost":0.1051747512817382,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:05:00-04:00","pnl":null},{"time":"2026-09-14T11:10:00-04:00","action":"C","shares":1,"quantity":1,"price":210.98544488525388,"reference_price":210.8800048828125,"shares_before":-55,"shares_after":-54,"assumed_cost":0.1054400024414062,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:10:00-04:00","pnl":null},{"time":"2026-09-14T11:15:00-04:00","action":"C","shares":1,"quantity":1,"price":210.8353607254028,"reference_price":210.72999572753903,"shares_before":-54,"shares_after":-53,"assumed_cost":0.1053649978637695,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:15:00-04:00","pnl":null},{"time":"2026-09-14T11:20:00-04:00","action":"X","shares":10,"quantity":-10,"price":211.03442938995363,"reference_price":211.13999938964844,"shares_before":-53,"shares_after":-63,"assumed_cost":1.055699996948242,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:20:00-04:00","pnl":null},{"time":"2026-09-14T11:25:00-04:00","action":"C","shares":1,"quantity":1,"price":211.3656245040893,"reference_price":211.25999450683597,"shares_before":-63,"shares_after":-62,"assumed_cost":0.1056299972534179,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:25:00-04:00","pnl":null},{"time":"2026-09-14T11:30:00-04:00","action":"C","shares":1,"quantity":1,"price":211.5557219467163,"reference_price":211.4499969482422,"shares_before":-62,"shares_after":-61,"assumed_cost":0.105724998474121,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:30:00-04:00","pnl":null},{"time":"2026-09-14T11:35:00-04:00","action":"C","shares":24,"quantity":24,"price":211.99594438934324,"reference_price":211.88999938964844,"shares_before":-61,"shares_after":-37,"assumed_cost":2.5426799926757813,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:35:00-04:00","pnl":null},{"time":"2026-09-14T11:40:00-04:00","action":"X","shares":2,"quantity":-2,"price":211.7740648803711,"reference_price":211.8800048828125,"shares_before":-37,"shares_after":-39,"assumed_cost":0.2118800048828125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:40:00-04:00","pnl":null},{"time":"2026-09-14T11:45:00-04:00","action":"X","shares":23,"quantity":-23,"price":211.9514663696289,"reference_price":212.0574951171875,"shares_before":-39,"shares_after":-62,"assumed_cost":2.4386611938476563,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:45:00-04:00","pnl":null},{"time":"2026-09-14T11:50:00-04:00","action":"C","shares":1,"quantity":1,"price":211.87588927459717,"reference_price":211.7700042724609,"shares_before":-62,"shares_after":-61,"assumed_cost":0.1058850021362304,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:50:00-04:00","pnl":null},{"time":"2026-09-14T12:00:00-04:00","action":"X","shares":4,"quantity":-4,"price":212.07390267944336,"reference_price":212.17999267578125,"shares_before":-61,"shares_after":-65,"assumed_cost":0.4243599853515625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:00:00-04:00","pnl":null},{"time":"2026-09-14T12:05:00-04:00","action":"C","shares":1,"quantity":1,"price":212.13891439819332,"reference_price":212.03289794921875,"shares_before":-65,"shares_after":-64,"assumed_cost":0.1060164489746093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:05:00-04:00","pnl":null},{"time":"2026-09-14T12:10:00-04:00","action":"X","shares":23,"quantity":-23,"price":211.67410877990724,"reference_price":211.77999877929688,"shares_before":-64,"shares_after":-87,"assumed_cost":2.435469985961914,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:10:00-04:00","pnl":null},{"time":"2026-09-14T12:15:00-04:00","action":"C","shares":1,"quantity":1,"price":211.8058469467163,"reference_price":211.6999969482422,"shares_before":-87,"shares_after":-86,"assumed_cost":0.105849998474121,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:15:00-04:00","pnl":null},{"time":"2026-09-14T12:20:00-04:00","action":"X","shares":15,"quantity":-15,"price":212.0339293899536,"reference_price":212.13999938964844,"shares_before":-86,"shares_after":-101,"assumed_cost":1.5910499954223634,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:20:00-04:00","pnl":null},{"time":"2026-09-14T12:25:00-04:00","action":"X","shares":18,"quantity":-18,"price":211.83403244018555,"reference_price":211.94000244140625,"shares_before":-101,"shares_after":-119,"assumed_cost":1.9074600219726563,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:25:00-04:00","pnl":null},{"time":"2026-09-14T12:40:00-04:00","action":"C","shares":1,"quantity":1,"price":211.88088139343265,"reference_price":211.7749938964844,"shares_before":-119,"shares_after":-118,"assumed_cost":0.1058874969482421,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:40:00-04:00","pnl":null},{"time":"2026-09-14T12:45:00-04:00","action":"C","shares":1,"quantity":1,"price":211.9609232254028,"reference_price":211.85499572753903,"shares_before":-118,"shares_after":-117,"assumed_cost":0.1059274978637695,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:45:00-04:00","pnl":null},{"time":"2026-09-14T12:55:00-04:00","action":"C","shares":1,"quantity":1,"price":212.1360137786865,"reference_price":212.02999877929688,"shares_before":-117,"shares_after":-116,"assumed_cost":0.1060149993896484,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:55:00-04:00","pnl":null},{"time":"2026-09-14T13:00:00-04:00","action":"X","shares":6,"quantity":-6,"price":212.00383885192872,"reference_price":212.10989379882807,"shares_before":-116,"shares_after":-122,"assumed_cost":0.6363296813964844,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:00:00-04:00","pnl":null},{"time":"2026-09-14T13:05:00-04:00","action":"X","shares":31,"quantity":-31,"price":212.03252628326416,"reference_price":212.1385955810547,"shares_before":-122,"shares_after":-153,"assumed_cost":3.2881482315063475,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:05:00-04:00","pnl":null},{"time":"2026-09-14T13:10:00-04:00","action":"C","shares":1,"quantity":1,"price":212.2810905532837,"reference_price":212.1750030517578,"shares_before":-153,"shares_after":-152,"assumed_cost":0.1060875015258789,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:10:00-04:00","pnl":null},{"time":"2026-09-14T13:15:00-04:00","action":"C","shares":6,"quantity":6,"price":212.17604232788085,"reference_price":212.07000732421875,"shares_before":-152,"shares_after":-146,"assumed_cost":0.6362100219726563,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:15:00-04:00","pnl":null},{"time":"2026-09-14T13:20:00-04:00","action":"C","shares":1,"quantity":1,"price":212.1510206680298,"reference_price":212.0449981689453,"shares_before":-146,"shares_after":-145,"assumed_cost":0.1060224990844726,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:20:00-04:00","pnl":null},{"time":"2026-09-14T13:25:00-04:00","action":"C","shares":1,"quantity":1,"price":212.45618110656736,"reference_price":212.3500061035156,"shares_before":-145,"shares_after":-144,"assumed_cost":0.1061750030517578,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:25:00-04:00","pnl":null},{"time":"2026-09-14T13:30:00-04:00","action":"X","shares":8,"quantity":-8,"price":212.4837013397217,"reference_price":212.58999633789065,"shares_before":-144,"shares_after":-152,"assumed_cost":0.8503599853515625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:30:00-04:00","pnl":null},{"time":"2026-09-14T13:35:00-04:00","action":"X","shares":1,"quantity":-1,"price":212.31378816986089,"reference_price":212.4199981689453,"shares_before":-152,"shares_after":-153,"assumed_cost":0.1062099990844726,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:35:00-04:00","pnl":null},{"time":"2026-09-14T13:40:00-04:00","action":"C","shares":1,"quantity":1,"price":212.5662367172241,"reference_price":212.4600067138672,"shares_before":-153,"shares_after":-152,"assumed_cost":0.1062300033569336,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:40:00-04:00","pnl":null},{"time":"2026-09-14T13:45:00-04:00","action":"C","shares":1,"quantity":1,"price":212.4761801147461,"reference_price":212.3699951171875,"shares_before":-152,"shares_after":-151,"assumed_cost":0.1061849975585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:45:00-04:00","pnl":null},{"time":"2026-09-14T13:55:00-04:00","action":"X","shares":1,"quantity":-1,"price":212.42373377990725,"reference_price":212.52999877929688,"shares_before":-151,"shares_after":-152,"assumed_cost":0.1062649993896484,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:55:00-04:00","pnl":null},{"time":"2026-09-14T14:00:00-04:00","action":"C","shares":1,"quantity":1,"price":212.52620816802977,"reference_price":212.4199981689453,"shares_before":-152,"shares_after":-151,"assumed_cost":0.1062099990844726,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:00:00-04:00","pnl":null},{"time":"2026-09-14T14:15:00-04:00","action":"X","shares":1,"quantity":-1,"price":212.35377671051023,"reference_price":212.4600067138672,"shares_before":-151,"shares_after":-152,"assumed_cost":0.1062300033569336,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:15:00-04:00","pnl":null},{"time":"2026-09-14T14:20:00-04:00","action":"X","shares":1,"quantity":-1,"price":212.1238807296753,"reference_price":212.22999572753903,"shares_before":-152,"shares_after":-153,"assumed_cost":0.1061149978637695,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:20:00-04:00","pnl":null},{"time":"2026-09-14T14:25:00-04:00","action":"C","shares":1,"quantity":1,"price":212.29109005737303,"reference_price":212.18499755859372,"shares_before":-153,"shares_after":-152,"assumed_cost":0.1060924987792968,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:25:00-04:00","pnl":null},{"time":"2026-09-14T14:30:00-04:00","action":"C","shares":1,"quantity":1,"price":212.21605561065672,"reference_price":212.1100006103516,"shares_before":-152,"shares_after":-151,"assumed_cost":0.1060550003051757,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:30:00-04:00","pnl":null},{"time":"2026-09-14T14:35:00-04:00","action":"C","shares":1,"quantity":1,"price":212.3861387786865,"reference_price":212.27999877929688,"shares_before":-151,"shares_after":-150,"assumed_cost":0.1061399993896484,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:35:00-04:00","pnl":null},{"time":"2026-09-14T14:40:00-04:00","action":"X","shares":1,"quantity":-1,"price":212.30878578948972,"reference_price":212.4149932861328,"shares_before":-150,"shares_after":-151,"assumed_cost":0.1062074966430664,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:40:00-04:00","pnl":null},{"time":"2026-09-14T14:50:00-04:00","action":"C","shares":1,"quantity":1,"price":212.44616633605955,"reference_price":212.33999633789065,"shares_before":-151,"shares_after":-150,"assumed_cost":0.1061699981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:50:00-04:00","pnl":null},{"time":"2026-09-14T14:55:00-04:00","action":"C","shares":10,"quantity":10,"price":212.44616633605955,"reference_price":212.33999633789065,"shares_before":-150,"shares_after":-140,"assumed_cost":1.0616999816894532,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:55:00-04:00","pnl":null},{"time":"2026-09-14T15:00:00-04:00","action":"C","shares":5,"quantity":5,"price":212.67629232788084,"reference_price":212.57000732421875,"shares_before":-140,"shares_after":-135,"assumed_cost":0.5314250183105469,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:00:00-04:00","pnl":null},{"time":"2026-09-14T15:05:00-04:00","action":"C","shares":1,"quantity":1,"price":212.69629133605957,"reference_price":212.58999633789065,"shares_before":-135,"shares_after":-134,"assumed_cost":0.1062949981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:05:00-04:00","pnl":null},{"time":"2026-09-14T15:10:00-04:00","action":"C","shares":1,"quantity":1,"price":212.52620816802977,"reference_price":212.4199981689453,"shares_before":-134,"shares_after":-133,"assumed_cost":0.1062099990844726,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:10:00-04:00","pnl":null},{"time":"2026-09-14T15:15:00-04:00","action":"C","shares":63,"quantity":63,"price":212.3761392745972,"reference_price":212.2700042724609,"shares_before":-133,"shares_after":-70,"assumed_cost":6.68650513458252,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:15:00-04:00","pnl":null},{"time":"2026-09-14T15:20:00-04:00","action":"C","shares":1,"quantity":1,"price":212.3761392745972,"reference_price":212.2700042724609,"shares_before":-70,"shares_after":-69,"assumed_cost":0.1061350021362304,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:20:00-04:00","pnl":null},{"time":"2026-09-14T15:25:00-04:00","action":"C","shares":1,"quantity":1,"price":212.34612549591063,"reference_price":212.2400054931641,"shares_before":-69,"shares_after":-68,"assumed_cost":0.106120002746582,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:25:00-04:00","pnl":null},{"time":"2026-09-14T15:35:00-04:00","action":"C","shares":22,"quantity":22,"price":211.899399559021,"reference_price":211.7935028076172,"shares_before":-68,"shares_after":-46,"assumed_cost":2.329728530883789,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:35:00-04:00","pnl":null},{"time":"2026-09-14T15:40:00-04:00","action":"C","shares":1,"quantity":1,"price":211.94591633605955,"reference_price":211.83999633789065,"shares_before":-46,"shares_after":-45,"assumed_cost":0.1059199981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:40:00-04:00","pnl":null},{"time":"2026-09-14T15:55:00-04:00","action":"C","shares":45,"quantity":45,"price":211.81586171722407,"reference_price":211.7100067138672,"shares_before":-45,"shares_after":0,"assumed_cost":4.763475151062012,"commission_cost":0.0,"signal_data_cutoff":null,"pnl":null}],"marks":[{"time":"2026-09-14T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-14T09:40:00-04:00","shares":-119,"pnl":35.12390879058876},{"time":"2026-09-14T09:45:00-04:00","shares":-48,"pnl":-0.6250005798319762},{"time":"2026-09-14T09:50:00-04:00","shares":-104,"pnl":-157.30076321410888},{"time":"2026-09-14T09:55:00-04:00","shares":-47,"pnl":-133.47835632323768},{"time":"2026-09-14T10:00:00-04:00","shares":-155,"pnl":-163.2185498962317},{"time":"2026-09-14T10:05:00-04:00","shares":-155,"pnl":-156.49217050170046},{"time":"2026-09-14T10:10:00-04:00","shares":-154,"pnl":-229.5251678085224},{"time":"2026-09-14T10:15:00-04:00","shares":-127,"pnl":-257.77625025175803},{"time":"2026-09-14T10:20:00-04:00","shares":-126,"pnl":-163.3869676360955},{"time":"2026-09-14T10:25:00-04:00","shares":-93,"pnl":-126.60326661680664},{"time":"2026-09-14T10:30:00-04:00","shares":-99,"pnl":-149.479546569808},{"time":"2026-09-14T10:35:00-04:00","shares":-119,"pnl":-208.1499492492512},{"time":"2026-09-14T10:40:00-04:00","shares":-79,"pnl":-172.7197371520815},{"time":"2026-09-14T10:45:00-04:00","shares":-79,"pnl":-179.83788595579244},{"time":"2026-09-14T10:50:00-04:00","shares":-51,"pnl":-198.8649110412407},{"time":"2026-09-14T10:55:00-04:00","shares":-56,"pnl":-188.25222106931687},{"time":"2026-09-14T11:00:00-04:00","shares":-56,"pnl":-179.85170837400435},{"time":"2026-09-14T11:05:00-04:00","shares":-56,"pnl":-172.01174255369187},{"time":"2026-09-14T11:10:00-04:00","shares":-55,"pnl":-200.7266585159105},{"time":"2026-09-14T11:15:00-04:00","shares":-54,"pnl":-194.37236646268863},{"time":"2026-09-14T11:20:00-04:00","shares":-53,"pnl":-215.40213941953695},{"time":"2026-09-14T11:25:00-04:00","shares":-63,"pnl":-224.2827905883605},{"time":"2026-09-14T11:30:00-04:00","shares":-62,"pnl":-236.78917742155136},{"time":"2026-09-14T11:35:00-04:00","shares":-61,"pnl":-263.1144458770559},{"time":"2026-09-14T11:40:00-04:00","shares":-37,"pnl":-265.28732911680163},{"time":"2026-09-14T11:45:00-04:00","shares":-39,"pnl":-272.12913771055173},{"time":"2026-09-14T11:50:00-04:00","shares":-62,"pnl":-257.1594889678745},{"time":"2026-09-14T11:55:00-04:00","shares":-61,"pnl":-265.22997357938584},{"time":"2026-09-14T12:00:00-04:00","shares":-61,"pnl":-282.663597846964},{"time":"2026-09-14T12:05:00-04:00","shares":-65,"pnl":-272.8324341506741},{"time":"2026-09-14T12:10:00-04:00","shares":-64,"pnl":-258.21468045804795},{"time":"2026-09-14T12:15:00-04:00","shares":-87,"pnl":-251.5309030074859},{"time":"2026-09-14T12:20:00-04:00","shares":-86,"pnl":-291.21530525205526},{"time":"2026-09-14T12:25:00-04:00","shares":-101,"pnl":-273.7675674056809},{"time":"2026-09-14T12:30:00-04:00","shares":-119,"pnl":-255.80350643155907},{"time":"2026-09-14T12:35:00-04:00","shares":-119,"pnl":-242.7025390243325},{"time":"2026-09-14T12:40:00-04:00","shares":-119,"pnl":-254.018579063395},{"time":"2026-09-14T12:45:00-04:00","shares":-118,"pnl":-264.15525879667257},{"time":"2026-09-14T12:50:00-04:00","shares":-117,"pnl":-311.05546730039714},{"time":"2026-09-14T12:55:00-04:00","shares":-117,"pnl":-284.7315384673893},{"time":"2026-09-14T13:00:00-04:00","shares":-116,"pnl":-292.9516281738106},{"time":"2026-09-14T13:05:00-04:00","shares":-122,"pnl":-297.2184205016929},{"time":"2026-09-14T13:10:00-04:00","shares":-153,"pnl":-304.22133618925363},{"time":"2026-09-14T13:15:00-04:00","shares":-152,"pnl":-290.8137365569892},{"time":"2026-09-14T13:20:00-04:00","shares":-146,"pnl":-287.64785307310376},{"time":"2026-09-14T13:25:00-04:00","shares":-145,"pnl":-331.2543180770699},{"time":"2026-09-14T13:30:00-04:00","shares":-144,"pnl":-365.2055858535605},{"time":"2026-09-14T13:35:00-04:00","shares":-152,"pnl":-341.6554331435982},{"time":"2026-09-14T13:40:00-04:00","shares":-153,"pnl":-349.4121100616285},{"time":"2026-09-14T13:45:00-04:00","shares":-152,"pnl":-335.5853719253355},{"time":"2026-09-14T13:50:00-04:00","shares":-151,"pnl":-365.3688793105903},{"time":"2026-09-14T13:55:00-04:00","shares":-151,"pnl":-358.5741557998481},{"time":"2026-09-14T14:00:00-04:00","shares":-152,"pnl":-340.4550790023641},{"time":"2026-09-14T14:05:00-04:00","shares":-151,"pnl":-320.9266301879725},{"time":"2026-09-14T14:10:00-04:00","shares":-151,"pnl":-358.9485112914881},{"time":"2026-09-14T14:15:00-04:00","shares":-151,"pnl":-348.10782830808967},{"time":"2026-09-14T14:20:00-04:00","shares":-152,"pnl":-314.7738727645701},{"time":"2026-09-14T14:25:00-04:00","shares":-153,"pnl":-305.708036468488},{"time":"2026-09-14T14:30:00-04:00","shares":-152,"pnl":-292.9004326782051},{"time":"2026-09-14T14:35:00-04:00","shares":-151,"pnl":-322.0436428298781},{"time":"2026-09-14T14:40:00-04:00","shares":-150,"pnl":-341.3114344405949},{"time":"2026-09-14T14:45:00-04:00","shares":-151,"pnl":-339.15273410032387},{"time":"2026-09-14T14:50:00-04:00","shares":-151,"pnl":-330.0931027526676},{"time":"2026-09-14T14:55:00-04:00","shares":-150,"pnl":-332.44918119810245},{"time":"2026-09-14T15:00:00-04:00","shares":-140,"pnl":-361.3604600372128},{"time":"2026-09-14T15:05:00-04:00","shares":-135,"pnl":-365.3431942596253},{"time":"2026-09-14T15:10:00-04:00","shares":-134,"pnl":-342.00907482908224},{"time":"2026-09-14T15:15:00-04:00","shares":-133,"pnl":-325.50528421781564},{"time":"2026-09-14T15:20:00-04:00","shares":-70,"pnl":-331.56213542173464},{"time":"2026-09-14T15:25:00-04:00","shares":-69,"pnl":-328.8987391738701},{"time":"2026-09-14T15:30:00-04:00","shares":-68,"pnl":-319.8241951141172},{"time":"2026-09-14T15:35:00-04:00","shares":-68,"pnl":-299.0846931609922},{"time":"2026-09-14T15:40:00-04:00","shares":-46,"pnl":-303.5715567016414},{"time":"2026-09-14T15:45:00-04:00","shares":-45,"pnl":-313.56752186582526},{"time":"2026-09-14T15:50:00-04:00","shares":-45,"pnl":-313.56752186582526},{"time":"2026-09-14T15:55:00-04:00","shares":-45,"pnl":-297.81724720762213},{"time":"2026-09-14T16:00:00-04:00","shares":0,"pnl":-302.1309695510663}],"summary":{"net_pnl":-302.1309695510663,"gross_pnl":-205.3076629638471,"cost":96.82330658721921,"fill_count":62,"ending_shares":0},"source_hashes":{"fills_sha256":"e321699d857dcb02bfb1e9621cfd76b53ba659d8f266d46a4c56038843755496","marks_sha256":"4e2261cd6fe3510841176443c830703375632ae736466eed49e708203d7d15fd","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-14/levels_error_risk/PLTR.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"PLTR","date":"2026-09-14","variant":"levels_error_risk","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-14T16:00:00-04:00","partial":false,"starting_equity":47006.42,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-14T09:30:00-04:00","session_close":"2026-09-14T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-14T09:35:00-04:00","bar_open":"2026-09-14T09:30:00-04:00","open":169.6999969482422,"high":170.1999969482422,"low":167.75999450683594,"close":168.0500030517578,"volume":2164704.0,"vwap":168.6699981689453},{"time":"2026-09-14T09:40:00-04:00","bar_open":"2026-09-14T09:35:00-04:00","open":168.1699981689453,"high":168.3282928466797,"low":166.50999450683594,"close":166.88999938964844,"volume":568454.0,"vwap":168.37315548061062},{"time":"2026-09-14T09:45:00-04:00","bar_open":"2026-09-14T09:40:00-04:00","open":167.05999755859375,"high":167.5800018310547,"low":166.4199981689453,"close":167.2100067138672,"volume":372302.0,"vwap":168.2169253058388},{"time":"2026-09-14T09:50:00-04:00","bar_open":"2026-09-14T09:45:00-04:00","open":167.19000244140625,"high":167.97000122070312,"low":166.44000244140625,"close":167.52999877929688,"volume":552924.0,"vwap":168.08035756504535},{"time":"2026-09-14T09:55:00-04:00","bar_open":"2026-09-14T09:50:00-04:00","open":167.50999450683594,"high":168.8800048828125,"low":167.3907928466797,"close":168.39500427246094,"volume":412747.0,"vwap":168.09471113142945},{"time":"2026-09-14T10:00:00-04:00","bar_open":"2026-09-14T09:55:00-04:00","open":168.4499969482422,"high":168.7790069580078,"low":168.02999877929688,"close":168.38499450683594,"volume":288537.0,"vwap":168.11478378002377},{"time":"2026-09-14T10:05:00-04:00","bar_open":"2026-09-14T10:00:00-04:00","open":168.35499572753906,"high":168.36000061035156,"low":167.30099487304688,"close":167.58999633789062,"volume":214499.0,"vwap":168.0976932712733},{"time":"2026-09-14T10:10:00-04:00","bar_open":"2026-09-14T10:05:00-04:00","open":167.56500244140625,"high":168.13999938964844,"low":167.4199981689453,"close":167.9398956298828,"volume":336071.0,"vwap":168.07959726979192},{"time":"2026-09-14T10:15:00-04:00","bar_open":"2026-09-14T10:10:00-04:00","open":167.94000244140625,"high":167.99000549316406,"low":167.1999969482422,"close":167.4499969482422,"volume":174714.0,"vwap":168.06128628614053},{"time":"2026-09-14T10:20:00-04:00","bar_open":"2026-09-14T10:15:00-04:00","open":167.4499969482422,"high":167.83999633789062,"low":167.16000366210938,"close":167.54649353027344,"volume":172245.0,"vwap":168.04340426073503},{"time":"2026-09-14T10:25:00-04:00","bar_open":"2026-09-14T10:20:00-04:00","open":167.46499633789062,"high":167.77810668945312,"low":167.0,"close":167.0399932861328,"volume":243709.0,"vwap":168.0092594186558},{"time":"2026-09-14T10:30:00-04:00","bar_open":"2026-09-14T10:25:00-04:00","open":167.02000427246094,"high":167.36849975585938,"low":166.8000030517578,"close":167.27999877929688,"volume":200524.0,"vwap":167.9790209887189},{"time":"2026-09-14T10:35:00-04:00","bar_open":"2026-09-14T10:30:00-04:00","open":167.25999450683594,"high":168.74000549316406,"low":167.10060119628906,"close":168.50050354003906,"volume":456114.0,"vwap":167.9889974562558},{"time":"2026-09-14T10:40:00-04:00","bar_open":"2026-09-14T10:35:00-04:00","open":168.5,"high":168.53500366210938,"low":167.64999389648438,"close":168.16470336914062,"volume":261659.0,"vwap":167.9941974340324},{"time":"2026-09-14T10:45:00-04:00","bar_open":"2026-09-14T10:40:00-04:00","open":168.13499450683594,"high":168.8800048828125,"low":167.92999267578125,"close":168.8800048828125,"volume":347980.0,"vwap":168.02346340680506},{"time":"2026-09-14T10:50:00-04:00","bar_open":"2026-09-14T10:45:00-04:00","open":168.82000732421875,"high":169.6793975830078,"low":168.69000244140625,"close":169.41000366210938,"volume":445691.0,"vwap":168.09985800904562},{"time":"2026-09-14T10:55:00-04:00","bar_open":"2026-09-14T10:50:00-04:00","open":169.4149932861328,"high":169.79989624023438,"low":169.06069946289062,"close":169.625,"volume":365064.0,"vwap":168.1670779580222},{"time":"2026-09-14T11:00:00-04:00","bar_open":"2026-09-14T10:55:00-04:00","open":169.5200958251953,"high":169.9199981689453,"low":169.010498046875,"close":169.8699951171875,"volume":372993.0,"vwap":168.23430668622115},{"time":"2026-09-14T11:05:00-04:00","bar_open":"2026-09-14T11:00:00-04:00","open":169.83999633789062,"high":170.0760040283203,"low":169.5500030517578,"close":169.77999877929688,"volume":516236.0,"vwap":168.32988773875093},{"time":"2026-09-14T11:10:00-04:00","bar_open":"2026-09-14T11:05:00-04:00","open":169.75,"high":170.9499969482422,"low":169.59010314941406,"close":170.75,"volume":524522.0,"vwap":168.4523978238568},{"time":"2026-09-14T11:15:00-04:00","bar_open":"2026-09-14T11:10:00-04:00","open":170.8000030517578,"high":171.72999572753906,"low":170.3300018310547,"close":171.38999938964844,"volume":700067.0,"vwap":168.6472543132795},{"time":"2026-09-14T11:20:00-04:00","bar_open":"2026-09-14T11:15:00-04:00","open":171.3800048828125,"high":171.5399932861328,"low":170.8000030517578,"close":171.52499389648438,"volume":395410.0,"vwap":168.75078267478136},{"time":"2026-09-14T11:25:00-04:00","bar_open":"2026-09-14T11:20:00-04:00","open":171.52499389648438,"high":171.6300048828125,"low":171.2100067138672,"close":171.5,"volume":274156.0,"vwap":168.8221146757988},{"time":"2026-09-14T11:30:00-04:00","bar_open":"2026-09-14T11:25:00-04:00","open":171.5,"high":171.5,"low":170.60000610351562,"close":170.8000030517578,"volume":309072.0,"vwap":168.88423252413077},{"time":"2026-09-14T11:35:00-04:00","bar_open":"2026-09-14T11:30:00-04:00","open":170.77000427246094,"high":171.9499969482422,"low":170.73240661621094,"close":171.8199005126953,"volume":370049.0,"vwap":168.97193247836503},{"time":"2026-09-14T11:40:00-04:00","bar_open":"2026-09-14T11:35:00-04:00","open":171.82000732421875,"high":171.94000244140625,"low":171.5,"close":171.56500244140625,"volume":395748.0,"vwap":169.06524115864795},{"time":"2026-09-14T11:45:00-04:00","bar_open":"2026-09-14T11:40:00-04:00","open":171.57200622558594,"high":171.94000244140625,"low":171.24000549316406,"close":171.7899932861328,"volume":322694.0,"vwap":169.13635654026697},{"time":"2026-09-14T11:50:00-04:00","bar_open":"2026-09-14T11:45:00-04:00","open":171.79010009765625,"high":171.8699951171875,"low":171.17999267578125,"close":171.44500732421875,"volume":247682.0,"vwap":169.18508143664508},{"time":"2026-09-14T11:55:00-04:00","bar_open":"2026-09-14T11:50:00-04:00","open":171.44500732421875,"high":171.7899932861328,"low":171.27000427246094,"close":171.6999969482422,"volume":231934.0,"vwap":169.230594268981},{"time":"2026-09-14T12:00:00-04:00","bar_open":"2026-09-14T11:55:00-04:00","open":171.60000610351562,"high":171.67999267578125,"low":171.30999755859375,"close":171.33999633789062,"volume":156376.0,"vwap":169.25851052696422},{"time":"2026-09-14T12:05:00-04:00","bar_open":"2026-09-14T12:00:00-04:00","open":171.33999633789062,"high":171.61199951171875,"low":171.32000732421875,"close":171.55499267578125,"volume":193446.0,"vwap":169.29288912331222},{"time":"2026-09-14T12:10:00-04:00","bar_open":"2026-09-14T12:05:00-04:00","open":171.50999450683594,"high":172.16000366210938,"low":171.49000549316406,"close":172.16000366210938,"volume":455036.0,"vwap":169.38512118580024},{"time":"2026-09-14T12:15:00-04:00","bar_open":"2026-09-14T12:10:00-04:00","open":172.16000366210938,"high":172.9698944091797,"low":172.10000610351562,"close":172.50999450683594,"volume":627758.0,"vwap":169.5293748221735},{"time":"2026-09-14T12:20:00-04:00","bar_open":"2026-09-14T12:15:00-04:00","open":172.5449981689453,"high":173.5399932861328,"low":172.5449981689453,"close":173.39999389648438,"volume":406871.0,"vwap":169.63435233944276},{"time":"2026-09-14T12:25:00-04:00","bar_open":"2026-09-14T12:20:00-04:00","open":173.3699951171875,"high":173.6999969482422,"low":173.25999450683594,"close":173.5915985107422,"volume":294591.0,"vwap":169.71393798582153},{"time":"2026-09-14T12:30:00-04:00","bar_open":"2026-09-14T12:25:00-04:00","open":173.56500244140625,"high":173.75,"low":173.27999877929688,"close":173.34010314941406,"volume":342748.0,"vwap":169.80111405844224},{"time":"2026-09-14T12:35:00-04:00","bar_open":"2026-09-14T12:30:00-04:00","open":173.38499450683594,"high":173.52000427246094,"low":173.25,"close":173.38999938964844,"volume":219790.0,"vwap":169.85388022532663},{"time":"2026-09-14T12:40:00-04:00","bar_open":"2026-09-14T12:35:00-04:00","open":173.3538055419922,"high":173.39999389648438,"low":172.35009765625,"close":172.49000549316406,"volume":310620.0,"vwap":169.91281915183058},{"time":"2026-09-14T12:45:00-04:00","bar_open":"2026-09-14T12:40:00-04:00","open":172.5,"high":172.50999450683594,"low":171.9199981689453,"close":172.0883026123047,"volume":238820.0,"vwap":169.94767454294012},{"time":"2026-09-14T12:50:00-04:00","bar_open":"2026-09-14T12:45:00-04:00","open":172.05499267578125,"high":172.889892578125,"low":171.9508056640625,"close":172.5399932861328,"volume":266346.0,"vwap":169.99016158202946},{"time":"2026-09-14T12:55:00-04:00","bar_open":"2026-09-14T12:50:00-04:00","open":172.47000122070312,"high":172.5399932861328,"low":172.00010681152344,"close":172.13999938964844,"volume":191828.0,"vwap":170.0170723201495},{"time":"2026-09-14T13:00:00-04:00","bar_open":"2026-09-14T12:55:00-04:00","open":172.16000366210938,"high":172.7799072265625,"low":171.85000610351562,"close":172.7799072265625,"volume":206610.0,"vwap":170.04845360249843},{"time":"2026-09-14T13:05:00-04:00","bar_open":"2026-09-14T13:00:00-04:00","open":172.72999572753906,"high":172.9499969482422,"low":172.61000061035156,"close":172.6999969482422,"volume":230179.0,"vwap":170.08646485619167},{"time":"2026-09-14T13:10:00-04:00","bar_open":"2026-09-14T13:05:00-04:00","open":172.67999267578125,"high":172.8300018310547,"low":172.4199981689453,"close":172.47999572753906,"volume":183354.0,"vwap":170.11403182323093},{"time":"2026-09-14T13:15:00-04:00","bar_open":"2026-09-14T13:10:00-04:00","open":172.52000427246094,"high":173.10000610351562,"low":172.4550018310547,"close":172.71499633789062,"volume":200233.0,"vwap":170.14559774879405},{"time":"2026-09-14T13:20:00-04:00","bar_open":"2026-09-14T13:15:00-04:00","open":172.6999969482422,"high":173.15499877929688,"low":172.6999969482422,"close":172.92990112304688,"volume":178414.0,"vwap":170.17490284201128},{"time":"2026-09-14T13:25:00-04:00","bar_open":"2026-09-14T13:20:00-04:00","open":172.87289428710938,"high":173.22999572753906,"low":172.85000610351562,"close":172.91000366210938,"volume":183356.0,"vwap":170.20511547732355},{"time":"2026-09-14T13:30:00-04:00","bar_open":"2026-09-14T13:25:00-04:00","open":172.88999938964844,"high":173.33999633789062,"low":172.88999938964844,"close":173.3000030517578,"volume":218488.0,"vwap":170.24255043803356},{"time":"2026-09-14T13:35:00-04:00","bar_open":"2026-09-14T13:30:00-04:00","open":173.3000030517578,"high":173.3000030517578,"low":172.94000244140625,"close":173.02999877929688,"volume":175085.0,"vwap":170.2710087751527},{"time":"2026-09-14T13:40:00-04:00","bar_open":"2026-09-14T13:35:00-04:00","open":173.02999877929688,"high":173.41000366210938,"low":172.80999755859375,"close":173.38999938964844,"volume":198819.0,"vwap":170.30391462970525},{"time":"2026-09-14T13:45:00-04:00","bar_open":"2026-09-14T13:40:00-04:00","open":173.39999389648438,"high":173.41000366210938,"low":173.1699981689453,"close":173.2550048828125,"volume":197161.0,"vwap":170.33665024045388},{"time":"2026-09-14T13:50:00-04:00","bar_open":"2026-09-14T13:45:00-04:00","open":173.25999450683594,"high":173.3199005126953,"low":172.8800048828125,"close":173.1999969482422,"volume":178744.0,"vwap":170.36427858826417},{"time":"2026-09-14T13:55:00-04:00","bar_open":"2026-09-14T13:50:00-04:00","open":173.20509338378906,"high":173.27000427246094,"low":172.79600524902344,"close":173.05499267578125,"volume":204057.0,"vwap":170.3941228774121},{"time":"2026-09-14T14:00:00-04:00","bar_open":"2026-09-14T13:55:00-04:00","open":173.09950256347656,"high":173.46499633789062,"low":173.0,"close":173.22500610351562,"volume":211339.0,"vwap":170.42650418008427},{"time":"2026-09-14T14:05:00-04:00","bar_open":"2026-09-14T14:00:00-04:00","open":173.23500061035156,"high":173.40499877929688,"low":173.125,"close":173.1649932861328,"volume":137199.0,"vwap":170.44714506248096},{"time":"2026-09-14T14:10:00-04:00","bar_open":"2026-09-14T14:05:00-04:00","open":173.1199951171875,"high":173.25,"low":172.9199981689453,"close":173.10499572753906,"volume":152396.0,"vwap":170.4685840808288},{"time":"2026-09-14T14:15:00-04:00","bar_open":"2026-09-14T14:10:00-04:00","open":173.10499572753906,"high":173.14999389648438,"low":172.8800048828125,"close":173.0225067138672,"volume":144811.0,"vwap":170.4880694736376},{"time":"2026-09-14T14:20:00-04:00","bar_open":"2026-09-14T14:15:00-04:00","open":173.0449981689453,"high":173.08990478515625,"low":172.4600067138672,"close":172.61500549316406,"volume":205692.0,"vwap":170.5120621285043},{"time":"2026-09-14T14:25:00-04:00","bar_open":"2026-09-14T14:20:00-04:00","open":172.61500549316406,"high":172.85000610351562,"low":172.39999389648438,"close":172.68499755859375,"volume":217347.0,"vwap":170.53600032491067},{"time":"2026-09-14T14:30:00-04:00","bar_open":"2026-09-14T14:25:00-04:00","open":172.6999969482422,"high":172.91000366210938,"low":172.58470153808594,"close":172.6999969482422,"volume":197531.0,"vwap":170.55816872712745},{"time":"2026-09-14T14:35:00-04:00","bar_open":"2026-09-14T14:30:00-04:00","open":172.6999969482422,"high":173.02999877929688,"low":172.66000366210938,"close":172.8300018310547,"volume":152805.0,"vwap":170.57585331010475},{"time":"2026-09-14T14:40:00-04:00","bar_open":"2026-09-14T14:35:00-04:00","open":172.8699951171875,"high":172.8699951171875,"low":172.6320037841797,"close":172.78990173339844,"volume":127397.0,"vwap":170.58990101441148},{"time":"2026-09-14T14:45:00-04:00","bar_open":"2026-09-14T14:40:00-04:00","open":172.72999572753906,"high":173.23460388183594,"low":172.72000122070312,"close":173.10000610351562,"volume":204464.0,"vwap":170.61466633949556},{"time":"2026-09-14T14:50:00-04:00","bar_open":"2026-09-14T14:45:00-04:00","open":173.13999938964844,"high":173.44000244140625,"low":172.8249969482422,"close":173.10499572753906,"volume":275890.0,"vwap":170.64872027643653},{"time":"2026-09-14T14:55:00-04:00","bar_open":"2026-09-14T14:50:00-04:00","open":173.11000061035156,"high":173.13999938964844,"low":172.8000030517578,"close":172.91000366210938,"volume":196116.0,"vwap":170.6707141058035},{"time":"2026-09-14T15:00:00-04:00","bar_open":"2026-09-14T14:55:00-04:00","open":172.88999938964844,"high":172.9499969482422,"low":172.5,"close":172.59500122070312,"volume":195031.0,"vwap":170.68964692045904},{"time":"2026-09-14T15:05:00-04:00","bar_open":"2026-09-14T15:00:00-04:00","open":172.57000732421875,"high":172.60000610351562,"low":172.27000427246094,"close":172.5500030517578,"volume":217976.0,"vwap":170.70822035122157},{"time":"2026-09-14T15:10:00-04:00","bar_open":"2026-09-14T15:05:00-04:00","open":172.54249572753906,"high":172.5449981689453,"low":172.3300018310547,"close":172.35000610351562,"volume":152874.0,"vwap":170.72054616753547},{"time":"2026-09-14T15:15:00-04:00","bar_open":"2026-09-14T15:10:00-04:00","open":172.3800048828125,"high":172.58999633789062,"low":172.17999267578125,"close":172.41000366210938,"volume":187623.0,"vwap":170.73529924592694},{"time":"2026-09-14T15:20:00-04:00","bar_open":"2026-09-14T15:15:00-04:00","open":172.40499877929688,"high":172.72000122070312,"low":172.32000732421875,"close":172.7100067138672,"volume":190140.0,"vwap":170.75167030573348},{"time":"2026-09-14T15:25:00-04:00","bar_open":"2026-09-14T15:20:00-04:00","open":172.7100067138672,"high":173.24000549316406,"low":172.64999389648438,"close":173.19000244140625,"volume":286509.0,"vwap":170.78163793742334},{"time":"2026-09-14T15:30:00-04:00","bar_open":"2026-09-14T15:25:00-04:00","open":173.19000244140625,"high":173.62489318847656,"low":173.125,"close":173.4499969482422,"volume":334216.0,"vwap":170.82126223538964},{"time":"2026-09-14T15:35:00-04:00","bar_open":"2026-09-14T15:30:00-04:00","open":173.44430541992188,"high":174.22999572753906,"low":173.44430541992188,"close":173.82000732421875,"volume":926363.0,"vwap":170.9424442702363},{"time":"2026-09-14T15:40:00-04:00","bar_open":"2026-09-14T15:35:00-04:00","open":173.8489990234375,"high":174.10000610351562,"low":173.64999389648438,"close":173.9499969482422,"volume":374091.0,"vwap":170.98975633609746},{"time":"2026-09-14T15:45:00-04:00","bar_open":"2026-09-14T15:40:00-04:00","open":173.9499969482422,"high":174.25999450683594,"low":173.90499877929688,"close":173.99000549316406,"volume":324510.0,"vwap":171.03166435828354},{"time":"2026-09-14T15:50:00-04:00","bar_open":"2026-09-14T15:45:00-04:00","open":173.91000366210938,"high":174.35989379882812,"low":173.83999633789062,"close":174.02499389648438,"volume":364211.0,"vwap":171.07770627888618},{"time":"2026-09-14T15:55:00-04:00","bar_open":"2026-09-14T15:50:00-04:00","open":173.97999572753906,"high":174.08999633789062,"low":173.67999267578125,"close":173.68499755859375,"volume":519482.0,"vwap":171.13559632780948},{"time":"2026-09-14T16:00:00-04:00","bar_open":"2026-09-14T15:55:00-04:00","open":173.66000366210938,"high":173.74000549316406,"low":173.10000610351562,"close":173.30999755859375,"volume":1286016.0,"vwap":171.24729309493134}],"fills":[{"time":"2026-09-14T09:35:00-04:00","action":"X","shares":3,"quantity":-3,"price":168.08591316986085,"reference_price":168.1699981689453,"shares_before":0,"shares_after":-3,"assumed_cost":0.252254997253418,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:35:00-04:00","pnl":null},{"time":"2026-09-14T09:40:00-04:00","action":"C","shares":3,"quantity":3,"price":167.14352755737303,"reference_price":167.05999755859375,"shares_before":-3,"shares_after":0,"assumed_cost":0.2505899963378906,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:40:00-04:00","pnl":null},{"time":"2026-09-14T09:40:00-04:00","action":"B","shares":96,"quantity":96,"price":167.14352755737303,"reference_price":167.05999755859375,"shares_before":0,"shares_after":96,"assumed_cost":8.0188798828125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:40:00-04:00","pnl":null},{"time":"2026-09-14T09:45:00-04:00","action":"S","shares":95,"quantity":-95,"price":167.10640744018556,"reference_price":167.19000244140625,"shares_before":96,"shares_after":1,"assumed_cost":7.9415251159667966,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:45:00-04:00","pnl":null},{"time":"2026-09-14T09:50:00-04:00","action":"S","shares":1,"quantity":-1,"price":167.42623950958253,"reference_price":167.50999450683594,"shares_before":1,"shares_after":0,"assumed_cost":0.0837549972534179,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:50:00-04:00","pnl":null},{"time":"2026-09-14T09:50:00-04:00","action":"X","shares":39,"quantity":-39,"price":167.42623950958253,"reference_price":167.50999450683594,"shares_before":0,"shares_after":-39,"assumed_cost":3.266444892883301,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:50:00-04:00","pnl":null},{"time":"2026-09-14T09:55:00-04:00","action":"C","shares":19,"quantity":19,"price":168.5342219467163,"reference_price":168.4499969482422,"shares_before":-39,"shares_after":-20,"assumed_cost":1.6002749710083009,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:55:00-04:00","pnl":null},{"time":"2026-09-14T10:00:00-04:00","action":"C","shares":20,"quantity":20,"price":168.4391732254028,"reference_price":168.35499572753906,"shares_before":-20,"shares_after":0,"assumed_cost":1.6835499572753907,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:00:00-04:00","pnl":null},{"time":"2026-09-14T10:05:00-04:00","action":"B","shares":3,"quantity":3,"price":167.64878494262695,"reference_price":167.56500244140625,"shares_before":0,"shares_after":3,"assumed_cost":0.2513475036621094,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:05:00-04:00","pnl":null},{"time":"2026-09-14T10:10:00-04:00","action":"S","shares":3,"quantity":-3,"price":167.85603244018554,"reference_price":167.94000244140625,"shares_before":3,"shares_after":0,"assumed_cost":0.2519100036621093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:10:00-04:00","pnl":null},{"time":"2026-09-14T10:10:00-04:00","action":"X","shares":10,"quantity":-10,"price":167.85603244018554,"reference_price":167.94000244140625,"shares_before":0,"shares_after":-10,"assumed_cost":0.8397000122070313,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:10:00-04:00","pnl":null},{"time":"2026-09-14T10:20:00-04:00","action":"C","shares":1,"quantity":1,"price":167.54872883605955,"reference_price":167.46499633789062,"shares_before":-10,"shares_after":-9,"assumed_cost":0.0837324981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:20:00-04:00","pnl":null},{"time":"2026-09-14T10:25:00-04:00","action":"C","shares":9,"quantity":9,"price":167.10351427459716,"reference_price":167.02000427246094,"shares_before":-9,"shares_after":0,"assumed_cost":0.7515900192260743,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:25:00-04:00","pnl":null},{"time":"2026-09-14T10:50:00-04:00","action":"X","shares":49,"quantity":-49,"price":169.33028578948975,"reference_price":169.4149932861328,"shares_before":0,"shares_after":-49,"assumed_cost":4.150667335510254,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:50:00-04:00","pnl":null},{"time":"2026-09-14T11:00:00-04:00","action":"C","shares":22,"quantity":22,"price":169.92491633605957,"reference_price":169.83999633789062,"shares_before":-49,"shares_after":-27,"assumed_cost":1.868239959716797,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:00:00-04:00","pnl":null},{"time":"2026-09-14T11:05:00-04:00","action":"C","shares":1,"quantity":1,"price":169.83487499999998,"reference_price":169.75,"shares_before":-27,"shares_after":-26,"assumed_cost":0.084875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:05:00-04:00","pnl":null},{"time":"2026-09-14T11:10:00-04:00","action":"X","shares":17,"quantity":-17,"price":170.71460305023194,"reference_price":170.8000030517578,"shares_before":-26,"shares_after":-43,"assumed_cost":1.4518000259399415,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:10:00-04:00","pnl":null},{"time":"2026-09-14T11:15:00-04:00","action":"C","shares":26,"quantity":26,"price":171.4656948852539,"reference_price":171.3800048828125,"shares_before":-43,"shares_after":-17,"assumed_cost":2.2279400634765625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:15:00-04:00","pnl":null},{"time":"2026-09-14T11:20:00-04:00","action":"X","shares":6,"quantity":-6,"price":171.43923139953614,"reference_price":171.52499389648438,"shares_before":-17,"shares_after":-23,"assumed_cost":0.5145749816894531,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:20:00-04:00","pnl":null},{"time":"2026-09-14T11:25:00-04:00","action":"C","shares":1,"quantity":1,"price":171.58575,"reference_price":171.5,"shares_before":-23,"shares_after":-22,"assumed_cost":0.08575,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:25:00-04:00","pnl":null},{"time":"2026-09-14T11:30:00-04:00","action":"C","shares":5,"quantity":5,"price":170.85538927459717,"reference_price":170.77000427246094,"shares_before":-22,"shares_after":-17,"assumed_cost":0.4269250106811523,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:30:00-04:00","pnl":null},{"time":"2026-09-14T11:45:00-04:00","action":"X","shares":13,"quantity":-13,"price":171.70420504760745,"reference_price":171.79010009765625,"shares_before":-17,"shares_after":-30,"assumed_cost":1.1166356506347657,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:45:00-04:00","pnl":null},{"time":"2026-09-14T12:00:00-04:00","action":"C","shares":1,"quantity":1,"price":171.42566633605955,"reference_price":171.33999633789062,"shares_before":-30,"shares_after":-29,"assumed_cost":0.0856699981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:00:00-04:00","pnl":null},{"time":"2026-09-14T12:05:00-04:00","action":"C","shares":1,"quantity":1,"price":171.59574950408935,"reference_price":171.50999450683594,"shares_before":-29,"shares_after":-28,"assumed_cost":0.0857549972534179,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:05:00-04:00","pnl":null},{"time":"2026-09-14T12:10:00-04:00","action":"C","shares":28,"quantity":28,"price":172.24608366394042,"reference_price":172.16000366210938,"shares_before":-28,"shares_after":0,"assumed_cost":2.4102400512695312,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:10:00-04:00","pnl":null},{"time":"2026-09-14T12:25:00-04:00","action":"X","shares":46,"quantity":-46,"price":173.47821994018557,"reference_price":173.56500244140625,"shares_before":0,"shares_after":-46,"assumed_cost":3.991995056152344,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:25:00-04:00","pnl":null},{"time":"2026-09-14T12:35:00-04:00","action":"C","shares":1,"quantity":1,"price":173.44048244476318,"reference_price":173.3538055419922,"shares_before":-46,"shares_after":-45,"assumed_cost":0.0866769027709961,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:35:00-04:00","pnl":null},{"time":"2026-09-14T12:40:00-04:00","action":"C","shares":4,"quantity":4,"price":172.58624999999998,"reference_price":172.5,"shares_before":-45,"shares_after":-41,"assumed_cost":0.345,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:40:00-04:00","pnl":null},{"time":"2026-09-14T12:45:00-04:00","action":"X","shares":12,"quantity":-12,"price":171.96896517944336,"reference_price":172.05499267578125,"shares_before":-41,"shares_after":-53,"assumed_cost":1.0323299560546877,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:45:00-04:00","pnl":null},{"time":"2026-09-14T12:55:00-04:00","action":"C","shares":1,"quantity":1,"price":172.24608366394042,"reference_price":172.16000366210938,"shares_before":-53,"shares_after":-52,"assumed_cost":0.0860800018310546,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:55:00-04:00","pnl":null},{"time":"2026-09-14T13:00:00-04:00","action":"C","shares":12,"quantity":12,"price":172.81636072540283,"reference_price":172.72999572753906,"shares_before":-52,"shares_after":-40,"assumed_cost":1.0363799743652344,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:00:00-04:00","pnl":null},{"time":"2026-09-14T13:05:00-04:00","action":"C","shares":40,"quantity":40,"price":172.76633267211912,"reference_price":172.67999267578125,"shares_before":-40,"shares_after":0,"assumed_cost":3.453599853515625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:05:00-04:00","pnl":null},{"time":"2026-09-14T13:20:00-04:00","action":"X","shares":7,"quantity":-7,"price":172.78645783996583,"reference_price":172.87289428710938,"shares_before":0,"shares_after":-7,"assumed_cost":0.6050551300048828,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:20:00-04:00","pnl":null},{"time":"2026-09-14T13:30:00-04:00","action":"C","shares":1,"quantity":1,"price":173.38665305328368,"reference_price":173.3000030517578,"shares_before":-7,"shares_after":-6,"assumed_cost":0.0866500015258789,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:30:00-04:00","pnl":null},{"time":"2026-09-14T13:35:00-04:00","action":"C","shares":1,"quantity":1,"price":173.1165137786865,"reference_price":173.02999877929688,"shares_before":-6,"shares_after":-5,"assumed_cost":0.0865149993896484,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:35:00-04:00","pnl":null},{"time":"2026-09-14T13:40:00-04:00","action":"C","shares":1,"quantity":1,"price":173.4866938934326,"reference_price":173.39999389648438,"shares_before":-5,"shares_after":-4,"assumed_cost":0.0866999969482421,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:40:00-04:00","pnl":null},{"time":"2026-09-14T13:45:00-04:00","action":"C","shares":1,"quantity":1,"price":173.34662450408933,"reference_price":173.25999450683594,"shares_before":-4,"shares_after":-3,"assumed_cost":0.0866299972534179,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:45:00-04:00","pnl":null},{"time":"2026-09-14T13:55:00-04:00","action":"C","shares":1,"quantity":1,"price":173.18605231475829,"reference_price":173.09950256347656,"shares_before":-3,"shares_after":-2,"assumed_cost":0.0865497512817382,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:55:00-04:00","pnl":null},{"time":"2026-09-14T14:15:00-04:00","action":"X","shares":18,"quantity":-18,"price":172.95847566986086,"reference_price":173.0449981689453,"shares_before":-2,"shares_after":-20,"assumed_cost":1.5574049835205075,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:15:00-04:00","pnl":null},{"time":"2026-09-14T14:20:00-04:00","action":"X","shares":1,"quantity":-1,"price":172.5286979904175,"reference_price":172.61500549316406,"shares_before":-20,"shares_after":-21,"assumed_cost":0.086307502746582,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:20:00-04:00","pnl":null},{"time":"2026-09-14T14:25:00-04:00","action":"C","shares":1,"quantity":1,"price":172.7863469467163,"reference_price":172.6999969482422,"shares_before":-21,"shares_after":-20,"assumed_cost":0.086349998474121,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:25:00-04:00","pnl":null},{"time":"2026-09-14T14:30:00-04:00","action":"X","shares":2,"quantity":-2,"price":172.61364694976808,"reference_price":172.6999969482422,"shares_before":-20,"shares_after":-22,"assumed_cost":0.1726999969482421,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:30:00-04:00","pnl":null},{"time":"2026-09-14T14:35:00-04:00","action":"C","shares":3,"quantity":3,"price":172.9564301147461,"reference_price":172.8699951171875,"shares_before":-22,"shares_after":-19,"assumed_cost":0.2593049926757813,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:35:00-04:00","pnl":null},{"time":"2026-09-14T14:40:00-04:00","action":"C","shares":1,"quantity":1,"price":172.81636072540283,"reference_price":172.72999572753906,"shares_before":-19,"shares_after":-18,"assumed_cost":0.0863649978637695,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:40:00-04:00","pnl":null},{"time":"2026-09-14T14:55:00-04:00","action":"C","shares":1,"quantity":1,"price":172.97644438934324,"reference_price":172.88999938964844,"shares_before":-18,"shares_after":-17,"assumed_cost":0.0864449996948242,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:55:00-04:00","pnl":null},{"time":"2026-09-14T15:05:00-04:00","action":"C","shares":1,"quantity":1,"price":172.6287669754028,"reference_price":172.54249572753906,"shares_before":-17,"shares_after":-16,"assumed_cost":0.0862712478637695,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:05:00-04:00","pnl":null},{"time":"2026-09-14T15:15:00-04:00","action":"C","shares":1,"quantity":1,"price":172.4912012786865,"reference_price":172.40499877929688,"shares_before":-16,"shares_after":-15,"assumed_cost":0.0862024993896484,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:15:00-04:00","pnl":null},{"time":"2026-09-14T15:20:00-04:00","action":"C","shares":15,"quantity":15,"price":172.7963617172241,"reference_price":172.7100067138672,"shares_before":-15,"shares_after":0,"assumed_cost":1.295325050354004,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:20:00-04:00","pnl":null}],"marks":[{"time":"2026-09-14T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-14T09:40:00-04:00","shares":-3,"pnl":3.5877413406371943},{"time":"2026-09-14T09:45:00-04:00","shares":96,"pnl":9.209155860902683},{"time":"2026-09-14T09:50:00-04:00","shares":1,"pnl":-0.3127830734210874},{"time":"2026-09-14T09:55:00-04:00","shares":-39,"pnl":-38.19836809539265},{"time":"2026-09-14T10:00:00-04:00","shares":-20,"pnl":-40.64330859374422},{"time":"2026-09-14T10:05:00-04:00","shares":0,"pnl":-41.72688296508159},{"time":"2026-09-14T10:10:00-04:00","shares":3,"pnl":-40.85355090331405},{"time":"2026-09-14T10:15:00-04:00","shares":-10,"pnl":-37.04478555297237},{"time":"2026-09-14T10:20:00-04:00","shares":-10,"pnl":-38.00975137328487},{"time":"2026-09-14T10:25:00-04:00","shares":-9,"pnl":-33.45348448180539},{"time":"2026-09-14T10:30:00-04:00","shares":0,"pnl":-34.02517337798463},{"time":"2026-09-14T10:35:00-04:00","shares":0,"pnl":-34.02517337798463},{"time":"2026-09-14T10:40:00-04:00","shares":0,"pnl":-34.02517337798463},{"time":"2026-09-14T10:45:00-04:00","shares":0,"pnl":-34.02517337798463},{"time":"2026-09-14T10:50:00-04:00","shares":0,"pnl":-34.02517337798463},{"time":"2026-09-14T10:55:00-04:00","shares":-49,"pnl":-48.46616969298702},{"time":"2026-09-14T11:00:00-04:00","shares":-49,"pnl":-60.47093043517452},{"time":"2026-09-14T11:05:00-04:00","shares":-27,"pnl":-59.249296127312846},{"time":"2026-09-14T11:10:00-04:00","shares":-26,"pnl":-84.52420408629678},{"time":"2026-09-14T11:15:00-04:00","shares":-43,"pnl":-112.6459259872372},{"time":"2026-09-14T11:20:00-04:00","shares":-17,"pnl":-116.9089154891899},{"time":"2026-09-14T11:25:00-04:00","shares":-23,"pnl":-116.84863085173856},{"time":"2026-09-14T11:30:00-04:00","shares":-22,"pnl":-101.53444799041064},{"time":"2026-09-14T11:35:00-04:00","shares":-17,"pnl":-119.14963594054508},{"time":"2026-09-14T11:40:00-04:00","shares":-17,"pnl":-114.816368728631},{"time":"2026-09-14T11:45:00-04:00","shares":-17,"pnl":-118.64121308898255},{"time":"2026-09-14T11:50:00-04:00","shares":-30,"pnl":-109.40688133239018},{"time":"2026-09-14T11:55:00-04:00","shares":-30,"pnl":-117.05657005309332},{"time":"2026-09-14T12:00:00-04:00","shares":-30,"pnl":-106.25655174254643},{"time":"2026-09-14T12:05:00-04:00","shares":-29,"pnl":-112.57711553954324},{"time":"2026-09-14T12:10:00-04:00","shares":-28,"pnl":-129.5581799850388},{"time":"2026-09-14T12:15:00-04:00","shares":0,"pnl":-131.9684200363081},{"time":"2026-09-14T12:20:00-04:00","shares":0,"pnl":-131.9684200363081},{"time":"2026-09-14T12:25:00-04:00","shares":0,"pnl":-131.9684200363081},{"time":"2026-09-14T12:30:00-04:00","shares":-46,"pnl":-125.61504766081907},{"time":"2026-09-14T12:35:00-04:00","shares":-46,"pnl":-127.91027471160032},{"time":"2026-09-14T12:40:00-04:00","shares":-45,"pnl":-87.4610324249179},{"time":"2026-09-14T12:45:00-04:00","shares":-41,"pnl":-71.37619233702753},{"time":"2026-09-14T12:50:00-04:00","shares":-53,"pnl":-96.74784724425444},{"time":"2026-09-14T12:55:00-04:00","shares":-53,"pnl":-75.54817073058257},{"time":"2026-09-14T13:00:00-04:00","shares":-52,"pnl":-108.9294625244056},{"time":"2026-09-14T13:05:00-04:00","shares":-40,"pnl":-106.1704933776773},{"time":"2026-09-14T13:10:00-04:00","shares":0,"pnl":-108.8239223327546},{"time":"2026-09-14T13:15:00-04:00","shares":0,"pnl":-108.8239223327546},{"time":"2026-09-14T13:20:00-04:00","shares":0,"pnl":-108.8239223327546},{"time":"2026-09-14T13:25:00-04:00","shares":-7,"pnl":-109.68874308775936},{"time":"2026-09-14T13:30:00-04:00","shares":-7,"pnl":-112.4187388152984},{"time":"2026-09-14T13:35:00-04:00","shares":-6,"pnl":-110.88536318205864},{"time":"2026-09-14T13:40:00-04:00","shares":-5,"pnl":-112.77188123320616},{"time":"2026-09-14T13:45:00-04:00","shares":-4,"pnl":-112.3285977096466},{"time":"2026-09-14T13:50:00-04:00","shares":-3,"pnl":-112.2551935272125},{"time":"2026-09-14T13:55:00-04:00","shares":-3,"pnl":-111.82018070982969},{"time":"2026-09-14T14:00:00-04:00","shares":-2,"pnl":-112.29126720427548},{"time":"2026-09-14T14:05:00-04:00","shares":-2,"pnl":-112.17124156950985},{"time":"2026-09-14T14:10:00-04:00","shares":-2,"pnl":-112.05124645232236},{"time":"2026-09-14T14:15:00-04:00","shares":-2,"pnl":-111.8862684249786},{"time":"2026-09-14T14:20:00-04:00","shares":-20,"pnl":-104.88880280302963},{"time":"2026-09-14T14:25:00-04:00","shares":-21,"pnl":-106.44494367979952},{"time":"2026-09-14T14:30:00-04:00","shares":-20,"pnl":-106.8462808608906},{"time":"2026-09-14T14:35:00-04:00","shares":-22,"pnl":-109.87908827971388},{"time":"2026-09-14T14:40:00-04:00","shares":-19,"pnl":-109.49647127531944},{"time":"2026-09-14T14:45:00-04:00","shares":-18,"pnl":-115.10480892943316},{"time":"2026-09-14T14:50:00-04:00","shares":-18,"pnl":-115.19462216185502},{"time":"2026-09-14T14:55:00-04:00","shares":-18,"pnl":-111.68476498412063},{"time":"2026-09-14T15:00:00-04:00","shares":-17,"pnl":-106.39616420744824},{"time":"2026-09-14T15:05:00-04:00","shares":-17,"pnl":-105.63119533537792},{"time":"2026-09-14T15:10:00-04:00","shares":-16,"pnl":-102.51000808714798},{"time":"2026-09-14T15:15:00-04:00","shares":-16,"pnl":-103.46996902464798},{"time":"2026-09-14T15:20:00-04:00","shares":-15,"pnl":-108.05121241759208},{"time":"2026-09-14T15:25:00-04:00","shares":0,"pnl":-109.34653746794584},{"time":"2026-09-14T15:30:00-04:00","shares":0,"pnl":-109.34653746794584},{"time":"2026-09-14T15:35:00-04:00","shares":0,"pnl":-109.34653746794584},{"time":"2026-09-14T15:40:00-04:00","shares":0,"pnl":-109.34653746794584},{"time":"2026-09-14T15:45:00-04:00","shares":0,"pnl":-109.34653746794584},{"time":"2026-09-14T15:50:00-04:00","shares":0,"pnl":-109.34653746794584},{"time":"2026-09-14T15:55:00-04:00","shares":0,"pnl":-109.34653746794584},{"time":"2026-09-14T16:00:00-04:00","shares":0,"pnl":-109.34653746794584}],"summary":{"net_pnl":-109.34653746794584,"gross_pnl":-54.68907165526274,"cost":54.6574658126831,"fill_count":48,"ending_shares":0},"source_hashes":{"fills_sha256":"e321699d857dcb02bfb1e9621cfd76b53ba659d8f266d46a4c56038843755496","marks_sha256":"4e2261cd6fe3510841176443c830703375632ae736466eed49e708203d7d15fd","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-14/levels_error_risk/SNDK.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"SNDK","date":"2026-09-14","variant":"levels_error_risk","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-14T16:00:00-04:00","partial":false,"starting_equity":47006.42,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-14T09:30:00-04:00","session_close":"2026-09-14T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-14T09:35:00-04:00","bar_open":"2026-09-14T09:30:00-04:00","open":1521.5250244140625,"high":1544.0,"low":1515.31005859375,"close":1518.5,"volume":1442238.0,"vwap":1525.9366861979167},{"time":"2026-09-14T09:40:00-04:00","bar_open":"2026-09-14T09:35:00-04:00","open":1519.0,"high":1525.7899169921875,"low":1505.0,"close":1513.1400146484375,"volume":400072.0,"vwap":1523.484241504318},{"time":"2026-09-14T09:45:00-04:00","bar_open":"2026-09-14T09:40:00-04:00","open":1513.1199951171875,"high":1521.7900390625,"low":1509.02001953125,"close":1518.3900146484375,"volume":219495.0,"vwap":1522.7300721089457},{"time":"2026-09-14T09:50:00-04:00","bar_open":"2026-09-14T09:45:00-04:00","open":1518.7099609375,"high":1547.6700439453125,"low":1518.3299560546875,"close":1546.0,"volume":366707.0,"vwap":1524.9351747042022},{"time":"2026-09-14T09:55:00-04:00","bar_open":"2026-09-14T09:50:00-04:00","open":1546.699951171875,"high":1548.0,"low":1523.050048828125,"close":1524.77001953125,"volume":244401.0,"vwap":1525.5756713743713},{"time":"2026-09-14T10:00:00-04:00","bar_open":"2026-09-14T09:55:00-04:00","open":1524.7900390625,"high":1536.22998046875,"low":1524.219970703125,"close":1532.4300537109375,"volume":168743.0,"vwap":1525.8954032630731},{"time":"2026-09-14T10:05:00-04:00","bar_open":"2026-09-14T10:00:00-04:00","open":1532.0899658203125,"high":1550.0,"low":1530.9300537109375,"close":1545.655029296875,"volume":210276.0,"vwap":1527.0184360900294},{"time":"2026-09-14T10:10:00-04:00","bar_open":"2026-09-14T10:05:00-04:00","open":1545.6500244140625,"high":1556.6300048828125,"low":1543.949951171875,"close":1553.1650390625,"volume":238532.0,"vwap":1528.7749073539617},{"time":"2026-09-14T10:15:00-04:00","bar_open":"2026-09-14T10:10:00-04:00","open":1553.205078125,"high":1562.9200439453125,"low":1553.205078125,"close":1557.5699462890625,"volume":192192.0,"vwap":1530.3820984934835},{"time":"2026-09-14T10:20:00-04:00","bar_open":"2026-09-14T10:15:00-04:00","open":1558.18994140625,"high":1565.9200439453125,"low":1555.875,"close":1565.690185546875,"volume":143420.0,"vwap":1531.6522437704498},{"time":"2026-09-14T10:25:00-04:00","bar_open":"2026-09-14T10:20:00-04:00","open":1565.5,"high":1565.7196044921875,"low":1555.0,"close":1558.6085205078125,"volume":149350.0,"vwap":1532.7647776184979},{"time":"2026-09-14T10:30:00-04:00","bar_open":"2026-09-14T10:25:00-04:00","open":1557.844970703125,"high":1563.0,"low":1552.1800537109375,"close":1555.8800048828125,"volume":123115.0,"vwap":1533.5307524044724},{"time":"2026-09-14T10:35:00-04:00","bar_open":"2026-09-14T10:30:00-04:00","open":1556.3699951171875,"high":1558.6500244140625,"low":1547.280029296875,"close":1553.1949462890625,"volume":113426.0,"vwap":1534.0823633626642},{"time":"2026-09-14T10:40:00-04:00","bar_open":"2026-09-14T10:35:00-04:00","open":1553.39501953125,"high":1553.9000244140625,"low":1544.1949462890625,"close":1549.0849609375,"volume":109817.0,"vwap":1534.4814130509208},{"time":"2026-09-14T10:45:00-04:00","bar_open":"2026-09-14T10:40:00-04:00","open":1548.9599609375,"high":1558.3699951171875,"low":1548.9599609375,"close":1556.3199462890625,"volume":128309.0,"vwap":1535.0872765334668},{"time":"2026-09-14T10:50:00-04:00","bar_open":"2026-09-14T10:45:00-04:00","open":1555.6650390625,"high":1559.8499755859375,"low":1546.0,"close":1547.574951171875,"volume":125221.0,"vwap":1535.5467506945706},{"time":"2026-09-14T10:55:00-04:00","bar_open":"2026-09-14T10:50:00-04:00","open":1546.630126953125,"high":1547.140380859375,"low":1537.7200927734375,"close":1540.8389892578125,"volume":122980.0,"vwap":1535.7204388931807},{"time":"2026-09-14T11:00:00-04:00","bar_open":"2026-09-14T10:55:00-04:00","open":1540.5574951171875,"high":1544.5299072265625,"low":1538.8319091796875,"close":1543.844970703125,"volume":94279.0,"vwap":1535.8576072377125},{"time":"2026-09-14T11:05:00-04:00","bar_open":"2026-09-14T11:00:00-04:00","open":1543.6700439453125,"high":1545.155029296875,"low":1532.6600341796875,"close":1532.93994140625,"volume":113868.0,"vwap":1535.8832705668372},{"time":"2026-09-14T11:10:00-04:00","bar_open":"2026-09-14T11:05:00-04:00","open":1532.7850341796875,"high":1546.5694580078125,"low":1531.0352783203125,"close":1532.1099853515625,"volume":174054.0,"vwap":1535.9078176562557},{"time":"2026-09-14T11:15:00-04:00","bar_open":"2026-09-14T11:10:00-04:00","open":1532.989990234375,"high":1535.8800048828125,"low":1530.5118408203125,"close":1532.1400146484375,"volume":78850.0,"vwap":1535.8591044304926},{"time":"2026-09-14T11:20:00-04:00","bar_open":"2026-09-14T11:15:00-04:00","open":1532.1400146484375,"high":1536.31005859375,"low":1531.1400146484375,"close":1532.0999755859375,"volume":64268.0,"vwap":1535.824873009632},{"time":"2026-09-14T11:25:00-04:00","bar_open":"2026-09-14T11:20:00-04:00","open":1531.5999755859375,"high":1532.4150390625,"low":1525.6700439453125,"close":1529.6400146484375,"volume":101333.0,"vwap":1535.6947071991528},{"time":"2026-09-14T11:30:00-04:00","bar_open":"2026-09-14T11:25:00-04:00","open":1529.8199462890625,"high":1540.9000244140625,"low":1527.10009765625,"close":1540.5,"volume":193653.0,"vwap":1535.7118929743021},{"time":"2026-09-14T11:35:00-04:00","bar_open":"2026-09-14T11:30:00-04:00","open":1540.5,"high":1552.7900390625,"low":1540.5,"close":1548.56005859375,"volume":163858.0,"vwap":1536.057737621742},{"time":"2026-09-14T11:40:00-04:00","bar_open":"2026-09-14T11:35:00-04:00","open":1549.030029296875,"high":1550.760498046875,"low":1539.0001220703125,"close":1542.375,"volume":109353.0,"vwap":1536.2139399438422},{"time":"2026-09-14T11:45:00-04:00","bar_open":"2026-09-14T11:40:00-04:00","open":1542.5899658203125,"high":1547.1600341796875,"low":1538.68505859375,"close":1542.7000732421875,"volume":89884.0,"vwap":1536.3188964567184},{"time":"2026-09-14T11:50:00-04:00","bar_open":"2026-09-14T11:45:00-04:00","open":1543.18505859375,"high":1543.4000244140625,"low":1533.0,"close":1533.47998046875,"volume":67571.0,"vwap":1536.322513693154},{"time":"2026-09-14T11:55:00-04:00","bar_open":"2026-09-14T11:50:00-04:00","open":1533.4649658203125,"high":1537.0,"low":1529.150146484375,"close":1531.1800537109375,"volume":94146.0,"vwap":1536.2600154311583},{"time":"2026-09-14T12:00:00-04:00","bar_open":"2026-09-14T11:55:00-04:00","open":1531.1800537109375,"high":1535.7099609375,"low":1529.7552490234375,"close":1535.3956298828125,"volume":65475.0,"vwap":1536.2307651324106},{"time":"2026-09-14T12:05:00-04:00","bar_open":"2026-09-14T12:00:00-04:00","open":1535.2239990234375,"high":1536.1376953125,"low":1531.0001220703125,"close":1531.5,"volume":52627.0,"vwap":1536.201178850401},{"time":"2026-09-14T12:10:00-04:00","bar_open":"2026-09-14T12:05:00-04:00","open":1531.77001953125,"high":1533.4300537109375,"low":1528.0,"close":1528.0,"volume":71259.0,"vwap":1536.1256865662729},{"time":"2026-09-14T12:15:00-04:00","bar_open":"2026-09-14T12:10:00-04:00","open":1528.260009765625,"high":1536.5400390625,"low":1527.5999755859375,"close":1536.5400390625,"volume":79936.0,"vwap":1536.0921352678606},{"time":"2026-09-14T12:20:00-04:00","bar_open":"2026-09-14T12:15:00-04:00","open":1536.0,"high":1546.72998046875,"low":1535.0799560546875,"close":1544.8599853515625,"volume":123824.0,"vwap":1536.2138673851136},{"time":"2026-09-14T12:25:00-04:00","bar_open":"2026-09-14T12:20:00-04:00","open":1544.4000244140625,"high":1545.8699951171875,"low":1538.4200439453125,"close":1545.5899658203125,"volume":69485.0,"vwap":1536.2918749141936},{"time":"2026-09-14T12:30:00-04:00","bar_open":"2026-09-14T12:25:00-04:00","open":1545.6600341796875,"high":1546.0,"low":1539.31005859375,"close":1543.4300537109375,"volume":45657.0,"vwap":1536.3394714432673},{"time":"2026-09-14T12:35:00-04:00","bar_open":"2026-09-14T12:30:00-04:00","open":1542.8599853515625,"high":1545.5999755859375,"low":1541.800048828125,"close":1543.1300048828125,"volume":34298.0,"vwap":1536.3779832192945},{"time":"2026-09-14T12:40:00-04:00","bar_open":"2026-09-14T12:35:00-04:00","open":1543.3699951171875,"high":1546.949951171875,"low":1542.75,"close":1546.2900390625,"volume":49502.0,"vwap":1536.4468425719297},{"time":"2026-09-14T12:45:00-04:00","bar_open":"2026-09-14T12:40:00-04:00","open":1545.925048828125,"high":1547.4659423828125,"low":1543.010009765625,"close":1547.10498046875,"volume":38608.0,"vwap":1536.502979516773},{"time":"2026-09-14T12:50:00-04:00","bar_open":"2026-09-14T12:45:00-04:00","open":1547.1199951171875,"high":1549.52001953125,"low":1545.0400390625,"close":1547.824951171875,"volume":58520.0,"vwap":1536.6011490612373},{"time":"2026-09-14T12:55:00-04:00","bar_open":"2026-09-14T12:50:00-04:00","open":1547.974365234375,"high":1554.1199951171875,"low":1547.1400146484375,"close":1550.0849609375,"volume":80298.0,"vwap":1536.7692901821556},{"time":"2026-09-14T13:00:00-04:00","bar_open":"2026-09-14T12:55:00-04:00","open":1550.5699462890625,"high":1555.3199462890625,"low":1549.800048828125,"close":1554.9599609375,"volume":66768.0,"vwap":1536.9351258996},{"time":"2026-09-14T13:05:00-04:00","bar_open":"2026-09-14T13:00:00-04:00","open":1554.5999755859375,"high":1560.5,"low":1553.0899658203125,"close":1558.239990234375,"volume":93408.0,"vwap":1537.2156574146293},{"time":"2026-09-14T13:10:00-04:00","bar_open":"2026-09-14T13:05:00-04:00","open":1559.0,"high":1567.7099609375,"low":1558.677490234375,"close":1566.89501953125,"volume":126313.0,"vwap":1537.7138476513244},{"time":"2026-09-14T13:15:00-04:00","bar_open":"2026-09-14T13:10:00-04:00","open":1567.1473388671875,"high":1570.69189453125,"low":1564.0,"close":1566.2801513671875,"volume":114388.0,"vwap":1538.1913248399496},{"time":"2026-09-14T13:20:00-04:00","bar_open":"2026-09-14T13:15:00-04:00","open":1566.0001220703125,"high":1571.35693359375,"low":1564.0,"close":1567.8499755859375,"volume":91516.0,"vwap":1538.5718548499167},{"time":"2026-09-14T13:25:00-04:00","bar_open":"2026-09-14T13:20:00-04:00","open":1567.81005859375,"high":1571.929931640625,"low":1567.530029296875,"close":1570.114990234375,"volume":62350.0,"vwap":1538.844009994729},{"time":"2026-09-14T13:30:00-04:00","bar_open":"2026-09-14T13:25:00-04:00","open":1570.943359375,"high":1571.760009765625,"low":1567.2900390625,"close":1571.2900390625,"volume":51223.0,"vwap":1539.0658883410024},{"time":"2026-09-14T13:35:00-04:00","bar_open":"2026-09-14T13:30:00-04:00","open":1571.199951171875,"high":1573.2197265625,"low":1568.3797607421875,"close":1569.2950439453125,"volume":66638.0,"vwap":1539.3515593470454},{"time":"2026-09-14T13:40:00-04:00","bar_open":"2026-09-14T13:35:00-04:00","open":1568.8699951171875,"high":1571.989990234375,"low":1566.6800537109375,"close":1571.8499755859375,"volume":52818.0,"vwap":1539.5734009073196},{"time":"2026-09-14T13:45:00-04:00","bar_open":"2026-09-14T13:40:00-04:00","open":1570.77001953125,"high":1573.0999755859375,"low":1568.8634033203125,"close":1571.8599853515625,"volume":42778.0,"vwap":1539.757127950903},{"time":"2026-09-14T13:50:00-04:00","bar_open":"2026-09-14T13:45:00-04:00","open":1572.3299560546875,"high":1577.77001953125,"low":1571.7342529296875,"close":1575.5,"volume":69709.0,"vwap":1540.0868699485836},{"time":"2026-09-14T13:55:00-04:00","bar_open":"2026-09-14T13:50:00-04:00","open":1575.0201416015625,"high":1579.010009765625,"low":1574.8568115234375,"close":1577.3499755859375,"volume":52296.0,"vwap":1540.3446549925482},{"time":"2026-09-14T14:00:00-04:00","bar_open":"2026-09-14T13:55:00-04:00","open":1577.6700439453125,"high":1581.83984375,"low":1576.219970703125,"close":1578.52001953125,"volume":82930.0,"vwap":1540.7657014248732},{"time":"2026-09-14T14:05:00-04:00","bar_open":"2026-09-14T14:00:00-04:00","open":1578.5250244140625,"high":1581.7606201171875,"low":1572.8873291015625,"close":1576.010009765625,"volume":93190.0,"vwap":1541.204033333384},{"time":"2026-09-14T14:10:00-04:00","bar_open":"2026-09-14T14:05:00-04:00","open":1576.1650390625,"high":1580.010009765625,"low":1574.550048828125,"close":1579.4300537109375,"volume":59640.0,"vwap":1541.4875781276935},{"time":"2026-09-14T14:15:00-04:00","bar_open":"2026-09-14T14:10:00-04:00","open":1578.52001953125,"high":1578.52001953125,"low":1571.3712158203125,"close":1572.9549560546875,"volume":51415.0,"vwap":1541.7040181633467},{"time":"2026-09-14T14:20:00-04:00","bar_open":"2026-09-14T14:15:00-04:00","open":1572.81005859375,"high":1574.72802734375,"low":1569.8499755859375,"close":1570.239990234375,"volume":53436.0,"vwap":1541.9077280095041},{"time":"2026-09-14T14:25:00-04:00","bar_open":"2026-09-14T14:20:00-04:00","open":1570.0,"high":1572.1700439453125,"low":1564.000732421875,"close":1565.6700439453125,"volume":85191.0,"vwap":1542.1803396718124},{"time":"2026-09-14T14:30:00-04:00","bar_open":"2026-09-14T14:25:00-04:00","open":1565.0849609375,"high":1567.6199951171875,"low":1563.0,"close":1564.308349609375,"volume":54850.0,"vwap":1542.3369511858841},{"time":"2026-09-14T14:35:00-04:00","bar_open":"2026-09-14T14:30:00-04:00","open":1564.6300048828125,"high":1566.9000244140625,"low":1563.53466796875,"close":1566.300048828125,"volume":45887.0,"vwap":1542.4697682004676},{"time":"2026-09-14T14:40:00-04:00","bar_open":"2026-09-14T14:35:00-04:00","open":1565.6199951171875,"high":1567.0,"low":1563.8555908203125,"close":1564.302001953125,"volume":32531.0,"vwap":1542.5608899950423},{"time":"2026-09-14T14:45:00-04:00","bar_open":"2026-09-14T14:40:00-04:00","open":1564.550048828125,"high":1566.08984375,"low":1562.8485107421875,"close":1564.469970703125,"volume":39101.0,"vwap":1542.666632137571},{"time":"2026-09-14T14:50:00-04:00","bar_open":"2026-09-14T14:45:00-04:00","open":1563.9949951171875,"high":1565.0,"low":1560.5526123046875,"close":1563.8599853515625,"volume":47508.0,"vwap":1542.7859789673425},{"time":"2026-09-14T14:55:00-04:00","bar_open":"2026-09-14T14:50:00-04:00","open":1563.929931640625,"high":1567.659912109375,"low":1562.9000244140625,"close":1566.8612060546875,"volume":47031.0,"vwap":1542.9180834469319},{"time":"2026-09-14T15:00:00-04:00","bar_open":"2026-09-14T14:55:00-04:00","open":1566.625,"high":1567.0953369140625,"low":1562.10009765625,"close":1564.0526123046875,"volume":38180.0,"vwap":1543.0177666566688},{"time":"2026-09-14T15:05:00-04:00","bar_open":"2026-09-14T15:00:00-04:00","open":1564.3199462890625,"high":1565.43994140625,"low":1563.070068359375,"close":1564.6199951171875,"volume":35393.0,"vwap":1543.1091828056824},{"time":"2026-09-14T15:10:00-04:00","bar_open":"2026-09-14T15:05:00-04:00","open":1564.5550537109375,"high":1567.198974609375,"low":1560.8800048828125,"close":1561.7650146484375,"volume":40225.0,"vwap":1543.2068317186233},{"time":"2026-09-14T15:15:00-04:00","bar_open":"2026-09-14T15:10:00-04:00","open":1561.8499755859375,"high":1562.81005859375,"low":1556.0,"close":1558.530029296875,"volume":58856.0,"vwap":1543.3187034102473},{"time":"2026-09-14T15:20:00-04:00","bar_open":"2026-09-14T15:15:00-04:00","open":1558.530029296875,"high":1562.342041015625,"low":1556.7950439453125,"close":1561.6500244140625,"volume":34742.0,"vwap":1543.3887548295706},{"time":"2026-09-14T15:25:00-04:00","bar_open":"2026-09-14T15:20:00-04:00","open":1562.1300048828125,"high":1562.619873046875,"low":1557.300048828125,"close":1559.760009765625,"volume":42467.0,"vwap":1543.4717439001518},{"time":"2026-09-14T15:30:00-04:00","bar_open":"2026-09-14T15:25:00-04:00","open":1559.77001953125,"high":1561.2650146484375,"low":1558.1099853515625,"close":1558.239990234375,"volume":33824.0,"vwap":1543.5345024848207},{"time":"2026-09-14T15:35:00-04:00","bar_open":"2026-09-14T15:30:00-04:00","open":1558.9200439453125,"high":1560.869873046875,"low":1557.489990234375,"close":1559.4300537109375,"volume":42145.0,"vwap":1543.612291486171},{"time":"2026-09-14T15:40:00-04:00","bar_open":"2026-09-14T15:35:00-04:00","open":1559.010009765625,"high":1559.8800048828125,"low":1556.8800048828125,"close":1559.5699462890625,"volume":45411.0,"vwap":1543.692672496329},{"time":"2026-09-14T15:45:00-04:00","bar_open":"2026-09-14T15:40:00-04:00","open":1559.7899169921875,"high":1564.1300048828125,"low":1557.5799560546875,"close":1563.8499755859375,"volume":67925.0,"vwap":1543.8355287648517},{"time":"2026-09-14T15:50:00-04:00","bar_open":"2026-09-14T15:45:00-04:00","open":1563.81005859375,"high":1565.0,"low":1560.76220703125,"close":1564.27001953125,"volume":51134.0,"vwap":1543.9503729500982},{"time":"2026-09-14T15:55:00-04:00","bar_open":"2026-09-14T15:50:00-04:00","open":1563.9599609375,"high":1565.0,"low":1549.9951171875,"close":1552.8558349609375,"volume":163386.0,"vwap":1544.171924705161},{"time":"2026-09-14T16:00:00-04:00","bar_open":"2026-09-14T15:55:00-04:00","open":1553.010009765625,"high":1559.829833984375,"low":1550.5899658203125,"close":1551.2099609375,"volume":216581.0,"vwap":1544.4037607929213}],"fills":[{"time":"2026-09-14T09:45:00-04:00","action":"B","shares":5,"quantity":5,"price":1519.4693159179687,"reference_price":1518.7099609375,"shares_before":0,"shares_after":5,"assumed_cost":3.79677490234375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:45:00-04:00","pnl":null},{"time":"2026-09-14T09:50:00-04:00","action":"B","shares":9,"quantity":9,"price":1547.473301147461,"reference_price":1546.699951171875,"shares_before":5,"shares_after":14,"assumed_cost":6.960149780273437,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:50:00-04:00","pnl":null},{"time":"2026-09-14T09:55:00-04:00","action":"S","shares":11,"quantity":-11,"price":1524.0276440429689,"reference_price":1524.7900390625,"shares_before":14,"shares_after":3,"assumed_cost":8.38634521484375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:55:00-04:00","pnl":null},{"time":"2026-09-14T10:00:00-04:00","action":"B","shares":3,"quantity":3,"price":1532.8560108032225,"reference_price":1532.0899658203125,"shares_before":3,"shares_after":6,"assumed_cost":2.2981349487304685,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:00:00-04:00","pnl":null},{"time":"2026-09-14T10:10:00-04:00","action":"B","shares":4,"quantity":4,"price":1553.9816806640624,"reference_price":1553.205078125,"shares_before":6,"shares_after":10,"assumed_cost":3.10641015625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:10:00-04:00","pnl":null},{"time":"2026-09-14T10:20:00-04:00","action":"S","shares":1,"quantity":-1,"price":1564.71725,"reference_price":1565.5,"shares_before":10,"shares_after":9,"assumed_cost":0.78275,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:20:00-04:00","pnl":null},{"time":"2026-09-14T10:25:00-04:00","action":"S","shares":2,"quantity":-2,"price":1557.0660482177734,"reference_price":1557.844970703125,"shares_before":9,"shares_after":7,"assumed_cost":1.557844970703125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:25:00-04:00","pnl":null},{"time":"2026-09-14T10:30:00-04:00","action":"S","shares":1,"quantity":-1,"price":1555.591810119629,"reference_price":1556.3699951171875,"shares_before":7,"shares_after":6,"assumed_cost":0.7781849975585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:30:00-04:00","pnl":null},{"time":"2026-09-14T10:45:00-04:00","action":"B","shares":4,"quantity":4,"price":1556.442871582031,"reference_price":1555.6650390625,"shares_before":6,"shares_after":10,"assumed_cost":3.111330078125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:45:00-04:00","pnl":null},{"time":"2026-09-14T10:50:00-04:00","action":"S","shares":1,"quantity":-1,"price":1545.8568118896485,"reference_price":1546.630126953125,"shares_before":10,"shares_after":9,"assumed_cost":0.7733150634765625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:50:00-04:00","pnl":null},{"time":"2026-09-14T11:00:00-04:00","action":"B","shares":1,"quantity":1,"price":1544.441878967285,"reference_price":1543.6700439453125,"shares_before":9,"shares_after":10,"assumed_cost":0.7718350219726563,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:00:00-04:00","pnl":null},{"time":"2026-09-14T11:15:00-04:00","action":"B","shares":3,"quantity":3,"price":1532.9060846557616,"reference_price":1532.1400146484375,"shares_before":10,"shares_after":13,"assumed_cost":2.298210021972656,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:15:00-04:00","pnl":null},{"time":"2026-09-14T11:20:00-04:00","action":"S","shares":1,"quantity":-1,"price":1530.8341755981446,"reference_price":1531.5999755859375,"shares_before":13,"shares_after":12,"assumed_cost":0.7657999877929688,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:20:00-04:00","pnl":null},{"time":"2026-09-14T11:25:00-04:00","action":"S","shares":1,"quantity":-1,"price":1529.055036315918,"reference_price":1529.8199462890625,"shares_before":12,"shares_after":11,"assumed_cost":0.7649099731445312,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:25:00-04:00","pnl":null},{"time":"2026-09-14T11:35:00-04:00","action":"S","shares":9,"quantity":-9,"price":1548.2555142822266,"reference_price":1549.030029296875,"shares_before":11,"shares_after":2,"assumed_cost":6.970635131835937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:35:00-04:00","pnl":null},{"time":"2026-09-14T11:45:00-04:00","action":"S","shares":2,"quantity":-2,"price":1542.4134660644531,"reference_price":1543.18505859375,"shares_before":2,"shares_after":0,"assumed_cost":1.54318505859375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:45:00-04:00","pnl":null},{"time":"2026-09-14T11:50:00-04:00","action":"B","shares":3,"quantity":3,"price":1534.2316983032226,"reference_price":1533.4649658203125,"shares_before":0,"shares_after":3,"assumed_cost":2.3001974487304686,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:50:00-04:00","pnl":null},{"time":"2026-09-14T12:20:00-04:00","action":"S","shares":2,"quantity":-2,"price":1543.6278244018556,"reference_price":1544.4000244140625,"shares_before":3,"shares_after":1,"assumed_cost":1.5444000244140623,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:20:00-04:00","pnl":null},{"time":"2026-09-14T12:25:00-04:00","action":"S","shares":1,"quantity":-1,"price":1544.8872041625978,"reference_price":1545.6600341796875,"shares_before":1,"shares_after":0,"assumed_cost":0.7728300170898438,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:25:00-04:00","pnl":null},{"time":"2026-09-14T12:25:00-04:00","action":"X","shares":1,"quantity":-1,"price":1544.8872041625978,"reference_price":1545.6600341796875,"shares_before":0,"shares_after":-1,"assumed_cost":0.7728300170898438,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:25:00-04:00","pnl":null},{"time":"2026-09-14T12:40:00-04:00","action":"C","shares":1,"quantity":1,"price":1546.698011352539,"reference_price":1545.925048828125,"shares_before":-1,"shares_after":0,"assumed_cost":0.7729625244140625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:40:00-04:00","pnl":null},{"time":"2026-09-14T13:05:00-04:00","action":"B","shares":1,"quantity":1,"price":1559.7795,"reference_price":1559.0,"shares_before":0,"shares_after":1,"assumed_cost":0.7795,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:05:00-04:00","pnl":null},{"time":"2026-09-14T13:20:00-04:00","action":"B","shares":1,"quantity":1,"price":1568.5939636230469,"reference_price":1567.81005859375,"shares_before":1,"shares_after":2,"assumed_cost":0.783905029296875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:20:00-04:00","pnl":null},{"time":"2026-09-14T13:30:00-04:00","action":"S","shares":2,"quantity":-2,"price":1570.414351196289,"reference_price":1571.199951171875,"shares_before":2,"shares_after":0,"assumed_cost":1.571199951171875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:30:00-04:00","pnl":null},{"time":"2026-09-14T13:45:00-04:00","action":"B","shares":1,"quantity":1,"price":1573.1161210327148,"reference_price":1572.3299560546875,"shares_before":0,"shares_after":1,"assumed_cost":0.7861649780273438,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:45:00-04:00","pnl":null},{"time":"2026-09-14T13:50:00-04:00","action":"B","shares":3,"quantity":3,"price":1575.8076516723631,"reference_price":1575.0201416015625,"shares_before":1,"shares_after":4,"assumed_cost":2.362530212402344,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:50:00-04:00","pnl":null},{"time":"2026-09-14T13:55:00-04:00","action":"S","shares":1,"quantity":-1,"price":1576.88120892334,"reference_price":1577.6700439453125,"shares_before":4,"shares_after":3,"assumed_cost":0.7888350219726562,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:55:00-04:00","pnl":null},{"time":"2026-09-14T14:00:00-04:00","action":"B","shares":3,"quantity":3,"price":1579.3142869262697,"reference_price":1578.5250244140625,"shares_before":3,"shares_after":6,"assumed_cost":2.3677875366210936,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:00:00-04:00","pnl":null},{"time":"2026-09-14T14:05:00-04:00","action":"S","shares":1,"quantity":-1,"price":1575.3769565429689,"reference_price":1576.1650390625,"shares_before":6,"shares_after":5,"assumed_cost":0.78808251953125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:05:00-04:00","pnl":null},{"time":"2026-09-14T14:15:00-04:00","action":"S","shares":3,"quantity":-3,"price":1572.0236535644533,"reference_price":1572.81005859375,"shares_before":5,"shares_after":2,"assumed_cost":2.359215087890625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:15:00-04:00","pnl":null},{"time":"2026-09-14T14:20:00-04:00","action":"S","shares":1,"quantity":-1,"price":1569.215,"reference_price":1570.0,"shares_before":2,"shares_after":1,"assumed_cost":0.785,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:20:00-04:00","pnl":null},{"time":"2026-09-14T14:25:00-04:00","action":"B","shares":4,"quantity":4,"price":1565.8675034179687,"reference_price":1565.0849609375,"shares_before":1,"shares_after":5,"assumed_cost":3.130169921875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:25:00-04:00","pnl":null},{"time":"2026-09-14T14:35:00-04:00","action":"S","shares":1,"quantity":-1,"price":1564.8371851196289,"reference_price":1565.6199951171875,"shares_before":5,"shares_after":4,"assumed_cost":0.7828099975585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:35:00-04:00","pnl":null},{"time":"2026-09-14T14:40:00-04:00","action":"S","shares":1,"quantity":-1,"price":1563.767773803711,"reference_price":1564.550048828125,"shares_before":4,"shares_after":3,"assumed_cost":0.7822750244140625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:40:00-04:00","pnl":null},{"time":"2026-09-14T14:45:00-04:00","action":"S","shares":1,"quantity":-1,"price":1563.212997619629,"reference_price":1563.9949951171875,"shares_before":3,"shares_after":2,"assumed_cost":0.7819974975585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:45:00-04:00","pnl":null},{"time":"2026-09-14T14:55:00-04:00","action":"S","shares":1,"quantity":-1,"price":1565.8416875,"reference_price":1566.625,"shares_before":2,"shares_after":1,"assumed_cost":0.7833125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:55:00-04:00","pnl":null},{"time":"2026-09-14T15:00:00-04:00","action":"S","shares":1,"quantity":-1,"price":1563.537786315918,"reference_price":1564.3199462890625,"shares_before":1,"shares_after":0,"assumed_cost":0.7821599731445312,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:00:00-04:00","pnl":null},{"time":"2026-09-14T15:10:00-04:00","action":"X","shares":1,"quantity":-1,"price":1561.0690505981447,"reference_price":1561.8499755859375,"shares_before":0,"shares_after":-1,"assumed_cost":0.7809249877929687,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:10:00-04:00","pnl":null},{"time":"2026-09-14T15:15:00-04:00","action":"X","shares":3,"quantity":-3,"price":1557.7507642822266,"reference_price":1558.530029296875,"shares_before":-1,"shares_after":-4,"assumed_cost":2.337795043945313,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:15:00-04:00","pnl":null},{"time":"2026-09-14T15:20:00-04:00","action":"C","shares":1,"quantity":1,"price":1562.9110698852537,"reference_price":1562.1300048828125,"shares_before":-4,"shares_after":-3,"assumed_cost":0.7810650024414062,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:20:00-04:00","pnl":null},{"time":"2026-09-14T15:25:00-04:00","action":"C","shares":1,"quantity":1,"price":1560.5499045410156,"reference_price":1559.77001953125,"shares_before":-3,"shares_after":-2,"assumed_cost":0.779885009765625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:25:00-04:00","pnl":null},{"time":"2026-09-14T15:45:00-04:00","action":"C","shares":1,"quantity":1,"price":1564.5919636230467,"reference_price":1563.81005859375,"shares_before":-2,"shares_after":-1,"assumed_cost":0.781905029296875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:45:00-04:00","pnl":null},{"time":"2026-09-14T15:55:00-04:00","action":"C","shares":1,"quantity":1,"price":1553.7865147705077,"reference_price":1553.010009765625,"shares_before":-1,"shares_after":0,"assumed_cost":0.7765050048828125,"commission_cost":0.0,"signal_data_cutoff":null,"pnl":null}],"marks":[{"time":"2026-09-14T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-14T09:40:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-14T09:45:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-14T09:50:00-04:00","shares":5,"pnl":132.6534204101563},{"time":"2026-09-14T09:55:00-04:00","shares":14,"pnl":-177.82601647949195},{"time":"2026-09-14T10:00:00-04:00","shares":3,"pnl":-163.0120443115229},{"time":"2026-09-14T10:05:00-04:00","shares":6,"pnl":-84.94006207275379},{"time":"2026-09-14T10:10:00-04:00","shares":6,"pnl":-39.88000347900379},{"time":"2026-09-14T10:15:00-04:00","shares":10,"pnl":0.9025023803715158},{"time":"2026-09-14T10:20:00-04:00","shares":10,"pnl":82.10489495849652},{"time":"2026-09-14T10:25:00-04:00","shares":9,"pnl":17.39697406005871},{"time":"2026-09-14T10:30:00-04:00","shares":7,"pnl":-4.787579895019007},{"time":"2026-09-14T10:35:00-04:00","shares":6,"pnl":-21.186126220702132},{"time":"2026-09-14T10:40:00-04:00","shares":6,"pnl":-45.846038330077135},{"time":"2026-09-14T10:45:00-04:00","shares":6,"pnl":-2.4361262207021355},{"time":"2026-09-14T10:50:00-04:00","shares":10,"pnl":-90.37777856445246},{"time":"2026-09-14T10:55:00-04:00","shares":9,"pnl":-152.71957507324078},{"time":"2026-09-14T11:00:00-04:00","shares":9,"pnl":-125.66574206542828},{"time":"2026-09-14T11:05:00-04:00","shares":10,"pnl":-235.31294329833872},{"time":"2026-09-14T11:10:00-04:00","shares":10,"pnl":-243.61250384521367},{"time":"2026-09-14T11:15:00-04:00","shares":10,"pnl":-243.31221087646367},{"time":"2026-09-14T11:20:00-04:00","shares":13,"pnl":-246.13092871093613},{"time":"2026-09-14T11:25:00-04:00","shares":12,"pnl":-276.9162599487281},{"time":"2026-09-14T11:30:00-04:00","shares":11,"pnl":-158.04139941406174},{"time":"2026-09-14T11:35:00-04:00","shares":11,"pnl":-69.38075488281174},{"time":"2026-09-14T11:40:00-04:00","shares":2,"pnl":-84.49177087402131},{"time":"2026-09-14T11:45:00-04:00","shares":2,"pnl":-83.84162438964631},{"time":"2026-09-14T11:50:00-04:00","shares":0,"pnl":-84.41483874511505},{"time":"2026-09-14T11:55:00-04:00","shares":3,"pnl":-93.56977252197066},{"time":"2026-09-14T12:00:00-04:00","shares":3,"pnl":-80.92304400634566},{"time":"2026-09-14T12:05:00-04:00","shares":3,"pnl":-92.60993365478316},{"time":"2026-09-14T12:10:00-04:00","shares":3,"pnl":-103.10993365478316},{"time":"2026-09-14T12:15:00-04:00","shares":3,"pnl":-77.48981646728316},{"time":"2026-09-14T12:20:00-04:00","shares":3,"pnl":-52.52997760009566},{"time":"2026-09-14T12:25:00-04:00","shares":1,"pnl":-54.26431903075945},{"time":"2026-09-14T12:30:00-04:00","shares":-1,"pnl":-53.50993023681394},{"time":"2026-09-14T12:35:00-04:00","shares":-1,"pnl":-53.20988140868894},{"time":"2026-09-14T12:40:00-04:00","shares":-1,"pnl":-56.36991558837644},{"time":"2026-09-14T12:45:00-04:00","shares":0,"pnl":-56.77788787841541},{"time":"2026-09-14T12:50:00-04:00","shares":0,"pnl":-56.77788787841541},{"time":"2026-09-14T12:55:00-04:00","shares":0,"pnl":-56.77788787841541},{"time":"2026-09-14T13:00:00-04:00","shares":0,"pnl":-56.77788787841541},{"time":"2026-09-14T13:05:00-04:00","shares":0,"pnl":-56.77788787841541},{"time":"2026-09-14T13:10:00-04:00","shares":1,"pnl":-49.66236834716528},{"time":"2026-09-14T13:15:00-04:00","shares":1,"pnl":-50.27723651122778},{"time":"2026-09-14T13:20:00-04:00","shares":1,"pnl":-48.70741229247778},{"time":"2026-09-14T13:25:00-04:00","shares":2,"pnl":-44.92137103271216},{"time":"2026-09-14T13:30:00-04:00","shares":2,"pnl":-42.57127337646216},{"time":"2026-09-14T13:35:00-04:00","shares":0,"pnl":-44.32264910888398},{"time":"2026-09-14T13:40:00-04:00","shares":0,"pnl":-44.32264910888398},{"time":"2026-09-14T13:45:00-04:00","shares":0,"pnl":-44.32264910888398},{"time":"2026-09-14T13:50:00-04:00","shares":1,"pnl":-41.93877014159875},{"time":"2026-09-14T13:55:00-04:00","shares":4,"pnl":-35.46182281493839},{"time":"2026-09-14T14:00:00-04:00","shares":3,"pnl":-32.42045764159866},{"time":"2026-09-14T14:05:00-04:00","shares":6,"pnl":-49.86331842040818},{"time":"2026-09-14T14:10:00-04:00","shares":5,"pnl":-33.39615191650228},{"time":"2026-09-14T14:15:00-04:00","shares":5,"pnl":-65.77164019775228},{"time":"2026-09-14T14:20:00-04:00","shares":2,"pnl":-73.99547930908011},{"time":"2026-09-14T14:25:00-04:00","shares":1,"pnl":-79.59041583251746},{"time":"2026-09-14T14:30:00-04:00","shares":5,"pnl":-87.18872540282973},{"time":"2026-09-14T14:35:00-04:00","shares":5,"pnl":-77.23022930907973},{"time":"2026-09-14T14:40:00-04:00","shares":4,"pnl":-86.68528051757585},{"time":"2026-09-14T14:45:00-04:00","shares":3,"pnl":-86.7156024169899},{"time":"2026-09-14T14:50:00-04:00","shares":2,"pnl":-89.19254620361062},{"time":"2026-09-14T14:55:00-04:00","shares":2,"pnl":-83.19010479736062},{"time":"2026-09-14T15:00:00-04:00","shares":1,"pnl":-87.01821710204808},{"time":"2026-09-14T15:05:00-04:00","shares":0,"pnl":-87.5330430908175},{"time":"2026-09-14T15:10:00-04:00","shares":0,"pnl":-87.5330430908175},{"time":"2026-09-14T15:15:00-04:00","shares":-1,"pnl":-84.99402178954779},{"time":"2026-09-14T15:20:00-04:00","shares":-4,"pnl":-99.81179730224358},{"time":"2026-09-14T15:25:00-04:00","shares":-3,"pnl":-95.40279882812229},{"time":"2026-09-14T15:30:00-04:00","shares":-2,"pnl":-93.15265454101292},{"time":"2026-09-14T15:35:00-04:00","shares":-2,"pnl":-95.53278149413792},{"time":"2026-09-14T15:40:00-04:00","shares":-2,"pnl":-95.81256665038792},{"time":"2026-09-14T15:45:00-04:00","shares":-2,"pnl":-104.37262524413792},{"time":"2026-09-14T15:50:00-04:00","shares":-1,"pnl":-105.5346572265596},{"time":"2026-09-14T15:55:00-04:00","shares":-1,"pnl":-94.1204726562471},{"time":"2026-09-14T16:00:00-04:00","shares":0,"pnl":-95.05115246581728}],"summary":{"net_pnl":-95.05115246581728,"gross_pnl":-17.569091796871973,"cost":77.48206066894531,"fill_count":43,"ending_shares":0},"source_hashes":{"fills_sha256":"e321699d857dcb02bfb1e9621cfd76b53ba659d8f266d46a4c56038843755496","marks_sha256":"4e2261cd6fe3510841176443c830703375632ae736466eed49e708203d7d15fd","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-14/levels_error_risk/TSLA.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"TSLA","date":"2026-09-14","variant":"levels_error_risk","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-14T16:00:00-04:00","partial":false,"starting_equity":47006.42,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-14T09:30:00-04:00","session_close":"2026-09-14T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-14T09:35:00-04:00","bar_open":"2026-09-14T09:30:00-04:00","open":359.95001220703125,"high":367.7300109863281,"low":359.08428955078125,"close":365.3699951171875,"volume":2850992.0,"vwap":364.0614318847656},{"time":"2026-09-14T09:40:00-04:00","bar_open":"2026-09-14T09:35:00-04:00","open":365.33099365234375,"high":365.92999267578125,"low":360.92999267578125,"close":361.6700134277344,"volume":1102590.0,"vwap":363.7217238097924},{"time":"2026-09-14T09:45:00-04:00","bar_open":"2026-09-14T09:40:00-04:00","open":361.70001220703125,"high":362.20001220703125,"low":359.9599914550781,"close":361.81500244140625,"volume":1020613.0,"vwap":363.22996074034273},{"time":"2026-09-14T09:50:00-04:00","bar_open":"2026-09-14T09:45:00-04:00","open":361.7300109863281,"high":361.7300109863281,"low":359.91009521484375,"close":360.68560791015625,"volume":699512.0,"vwap":362.92731769099527},{"time":"2026-09-14T09:55:00-04:00","bar_open":"2026-09-14T09:50:00-04:00","open":360.7049865722656,"high":362.4200134277344,"low":360.6199951171875,"close":361.8597106933594,"volume":634621.0,"vwap":362.79713279264},{"time":"2026-09-14T10:00:00-04:00","bar_open":"2026-09-14T09:55:00-04:00","open":361.81500244140625,"high":361.8450012207031,"low":360.05999755859375,"close":360.2099914550781,"volume":436987.0,"vwap":362.6615963121137},{"time":"2026-09-14T10:05:00-04:00","bar_open":"2026-09-14T10:00:00-04:00","open":360.2250061035156,"high":360.7900085449219,"low":359.7601013183594,"close":360.20001220703125,"volume":468674.0,"vwap":362.50492384982},{"time":"2026-09-14T10:10:00-04:00","bar_open":"2026-09-14T10:05:00-04:00","open":360.09039306640625,"high":361.79998779296875,"low":359.9100036621094,"close":360.989990234375,"volume":512315.0,"vwap":362.3985043135135},{"time":"2026-09-14T10:15:00-04:00","bar_open":"2026-09-14T10:10:00-04:00","open":360.9200134277344,"high":361.44989013671875,"low":360.3800048828125,"close":360.8999938964844,"volume":341488.0,"vwap":362.3354983503418},{"time":"2026-09-14T10:20:00-04:00","bar_open":"2026-09-14T10:15:00-04:00","open":360.80999755859375,"high":361.0600891113281,"low":358.6099853515625,"close":358.8349914550781,"volume":973513.0,"vwap":362.0303708722617},{"time":"2026-09-14T10:25:00-04:00","bar_open":"2026-09-14T10:20:00-04:00","open":358.8349914550781,"high":359.3799133300781,"low":357.489990234375,"close":357.489990234375,"volume":652812.0,"vwap":361.7670400150353},{"time":"2026-09-14T10:30:00-04:00","bar_open":"2026-09-14T10:25:00-04:00","open":357.489990234375,"high":358.3815002441406,"low":357.0400085449219,"close":358.3380126953125,"volume":659167.0,"vwap":361.52209870306507},{"time":"2026-09-14T10:35:00-04:00","bar_open":"2026-09-14T10:30:00-04:00","open":358.29168701171875,"high":359.13720703125,"low":357.70001220703125,"close":359.0,"volume":585737.0,"vwap":361.3662973353699},{"time":"2026-09-14T10:40:00-04:00","bar_open":"2026-09-14T10:35:00-04:00","open":359.0,"high":359.2300109863281,"low":358.1199951171875,"close":358.25689697265625,"volume":399648.0,"vwap":361.2665264718505},{"time":"2026-09-14T10:45:00-04:00","bar_open":"2026-09-14T10:40:00-04:00","open":358.20001220703125,"high":358.80999755859375,"low":357.80999755859375,"close":358.760009765625,"volume":354819.0,"vwap":361.1813672500075},{"time":"2026-09-14T10:50:00-04:00","bar_open":"2026-09-14T10:45:00-04:00","open":358.7099914550781,"high":359.3800048828125,"low":358.5899963378906,"close":359.2200012207031,"volume":293048.0,"vwap":361.1295853703443},{"time":"2026-09-14T10:55:00-04:00","bar_open":"2026-09-14T10:50:00-04:00","open":359.19000244140625,"high":359.260009765625,"low":358.4100036621094,"close":358.57501220703125,"volume":257549.0,"vwap":361.0794969496788},{"time":"2026-09-14T11:00:00-04:00","bar_open":"2026-09-14T10:55:00-04:00","open":358.5799865722656,"high":358.7200012207031,"low":358.05999755859375,"close":358.57000732421875,"volume":221596.0,"vwap":361.0327537709288},{"time":"2026-09-14T11:05:00-04:00","bar_open":"2026-09-14T11:00:00-04:00","open":358.6099853515625,"high":359.0299987792969,"low":358.4284973144531,"close":358.5249938964844,"volume":230529.0,"vwap":360.9896920719857},{"time":"2026-09-14T11:10:00-04:00","bar_open":"2026-09-14T11:05:00-04:00","open":358.5249938964844,"high":359.5799865722656,"low":358.45001220703125,"close":359.0799865722656,"volume":323602.0,"vwap":360.9411503182876},{"time":"2026-09-14T11:15:00-04:00","bar_open":"2026-09-14T11:10:00-04:00","open":359.0849914550781,"high":359.79998779296875,"low":359.0400085449219,"close":359.42999267578125,"volume":303053.0,"vwap":360.90662470382296},{"time":"2026-09-14T11:20:00-04:00","bar_open":"2026-09-14T11:15:00-04:00","open":359.4407958984375,"high":359.9490051269531,"low":359.1783142089844,"close":359.3450012207031,"volume":255463.0,"vwap":360.87998684448866},{"time":"2026-09-14T11:25:00-04:00","bar_open":"2026-09-14T11:20:00-04:00","open":359.3301086425781,"high":360.5,"low":359.2001037597656,"close":360.2900085449219,"volume":355101.0,"vwap":360.85747590441093},{"time":"2026-09-14T11:30:00-04:00","bar_open":"2026-09-14T11:25:00-04:00","open":360.260009765625,"high":360.7699890136719,"low":360.0,"close":360.1368103027344,"volume":413640.0,"vwap":360.8414686737108},{"time":"2026-09-14T11:35:00-04:00","bar_open":"2026-09-14T11:30:00-04:00","open":360.114990234375,"high":362.1499938964844,"low":359.90008544921875,"close":362.14990234375,"volume":539979.0,"vwap":360.8617273503314},{"time":"2026-09-14T11:40:00-04:00","bar_open":"2026-09-14T11:35:00-04:00","open":362.0400085449219,"high":363.1499938964844,"low":361.7200012207031,"close":362.9097900390625,"volume":546019.0,"vwap":360.922988709743},{"time":"2026-09-14T11:45:00-04:00","bar_open":"2026-09-14T11:40:00-04:00","open":362.9599914550781,"high":363.7001037597656,"low":362.93499755859375,"close":363.3999938964844,"volume":636244.0,"vwap":361.01888643333854},{"time":"2026-09-14T11:50:00-04:00","bar_open":"2026-09-14T11:45:00-04:00","open":363.4071960449219,"high":363.7550048828125,"low":363.2301940917969,"close":363.672607421875,"volume":409104.0,"vwap":361.0817901305237},{"time":"2026-09-14T11:55:00-04:00","bar_open":"2026-09-14T11:50:00-04:00","open":363.67999267578125,"high":363.8999938964844,"low":363.110107421875,"close":363.6129150390625,"volume":434751.0,"vwap":361.14500397945255},{"time":"2026-09-14T12:00:00-04:00","bar_open":"2026-09-14T11:55:00-04:00","open":363.63958740234375,"high":363.6556091308594,"low":363.05999755859375,"close":363.1542053222656,"volume":281156.0,"vwap":361.1800772369583},{"time":"2026-09-14T12:05:00-04:00","bar_open":"2026-09-14T12:00:00-04:00","open":363.17449951171875,"high":364.2200012207031,"low":362.99169921875,"close":363.8999938964844,"volume":463590.0,"vwap":361.2463375127741},{"time":"2026-09-14T12:10:00-04:00","bar_open":"2026-09-14T12:05:00-04:00","open":363.9100036621094,"high":364.1400146484375,"low":362.8800048828125,"close":362.9200134277344,"volume":292052.0,"vwap":361.27996841431604},{"time":"2026-09-14T12:15:00-04:00","bar_open":"2026-09-14T12:10:00-04:00","open":362.8901062011719,"high":362.9999084472656,"low":362.3299865722656,"close":362.4700012207031,"volume":314366.0,"vwap":361.30268822810706},{"time":"2026-09-14T12:20:00-04:00","bar_open":"2026-09-14T12:15:00-04:00","open":362.4737854003906,"high":363.92999267578125,"low":362.43011474609375,"close":363.80999755859375,"volume":364325.0,"vwap":361.34351096116524},{"time":"2026-09-14T12:25:00-04:00","bar_open":"2026-09-14T12:20:00-04:00","open":363.7699890136719,"high":364.1000061035156,"low":363.2300109863281,"close":363.57501220703125,"volume":268334.0,"vwap":361.3760498508368},{"time":"2026-09-14T12:30:00-04:00","bar_open":"2026-09-14T12:25:00-04:00","open":363.55029296875,"high":363.6400146484375,"low":362.5199890136719,"close":363.2449951171875,"volume":226687.0,"vwap":361.3968999761069},{"time":"2026-09-14T12:35:00-04:00","bar_open":"2026-09-14T12:30:00-04:00","open":363.289306640625,"high":363.35400390625,"low":362.7699890136719,"close":362.92999267578125,"volume":170643.0,"vwap":361.4112372819245},{"time":"2026-09-14T12:40:00-04:00","bar_open":"2026-09-14T12:35:00-04:00","open":362.92999267578125,"high":362.94000244140625,"low":362.55999755859375,"close":362.67498779296875,"volume":175119.0,"vwap":361.42305396101233},{"time":"2026-09-14T12:45:00-04:00","bar_open":"2026-09-14T12:40:00-04:00","open":362.67498779296875,"high":362.67999267578125,"low":362.20001220703125,"close":362.2950134277344,"volume":206541.0,"vwap":361.43322166333934},{"time":"2026-09-14T12:50:00-04:00","bar_open":"2026-09-14T12:45:00-04:00","open":362.2851867675781,"high":363.7099914550781,"low":361.94000244140625,"close":363.4949951171875,"volume":335080.0,"vwap":361.4602662286111},{"time":"2026-09-14T12:55:00-04:00","bar_open":"2026-09-14T12:50:00-04:00","open":363.489990234375,"high":363.5498962402344,"low":362.2699890136719,"close":362.3299865722656,"volume":222933.0,"vwap":361.4741084597502},{"time":"2026-09-14T13:00:00-04:00","bar_open":"2026-09-14T12:55:00-04:00","open":362.29998779296875,"high":362.80499267578125,"low":362.2225036621094,"close":362.7554931640625,"volume":160697.0,"vwap":361.482935081925},{"time":"2026-09-14T13:05:00-04:00","bar_open":"2026-09-14T13:00:00-04:00","open":362.7749938964844,"high":363.1098937988281,"low":362.6499938964844,"close":362.6700134277344,"volume":154249.0,"vwap":361.4928963437994},{"time":"2026-09-14T13:10:00-04:00","bar_open":"2026-09-14T13:05:00-04:00","open":362.6499938964844,"high":362.94989013671875,"low":362.380615234375,"close":362.5299987792969,"volume":137111.0,"vwap":361.5003681114108},{"time":"2026-09-14T13:15:00-04:00","bar_open":"2026-09-14T13:10:00-04:00","open":362.55499267578125,"high":363.0400085449219,"low":362.44000244140625,"close":362.6650085449219,"volume":127034.0,"vwap":361.50778173554227},{"time":"2026-09-14T13:20:00-04:00","bar_open":"2026-09-14T13:15:00-04:00","open":362.6549987792969,"high":362.7898864746094,"low":362.2799987792969,"close":362.3450012207031,"volume":118469.0,"vwap":361.5132369450186},{"time":"2026-09-14T13:25:00-04:00","bar_open":"2026-09-14T13:20:00-04:00","open":362.3450012207031,"high":362.95001220703125,"low":362.25,"close":362.80999755859375,"volume":100826.0,"vwap":361.51878230560465},{"time":"2026-09-14T13:30:00-04:00","bar_open":"2026-09-14T13:25:00-04:00","open":362.8500061035156,"high":363.25,"low":362.7900085449219,"close":362.9093017578125,"volume":453796.0,"vwap":361.5497093134048},{"time":"2026-09-14T13:35:00-04:00","bar_open":"2026-09-14T13:30:00-04:00","open":362.8599853515625,"high":363.0299987792969,"low":362.25,"close":362.5249938964844,"volume":325098.0,"vwap":361.56538874915407},{"time":"2026-09-14T13:40:00-04:00","bar_open":"2026-09-14T13:35:00-04:00","open":362.5899963378906,"high":362.8999938964844,"low":362.3599853515625,"close":362.8699951171875,"volume":137925.0,"vwap":361.5725812367979},{"time":"2026-09-14T13:45:00-04:00","bar_open":"2026-09-14T13:40:00-04:00","open":362.81500244140625,"high":362.8699951171875,"low":362.4100036621094,"close":362.6000061035156,"volume":79751.0,"vwap":361.5763973290108},{"time":"2026-09-14T13:50:00-04:00","bar_open":"2026-09-14T13:45:00-04:00","open":362.6300048828125,"high":362.7200012207031,"low":362.3999938964844,"close":362.5799865722656,"volume":69433.0,"vwap":361.5795087310242},{"time":"2026-09-14T13:55:00-04:00","bar_open":"2026-09-14T13:50:00-04:00","open":362.56500244140625,"high":362.6700134277344,"low":362.0899963378906,"close":362.3500061035156,"volume":179677.0,"vwap":361.5858842441042},{"time":"2026-09-14T14:00:00-04:00","bar_open":"2026-09-14T13:55:00-04:00","open":362.3399963378906,"high":362.4649963378906,"low":362.1099853515625,"close":362.2699890136719,"volume":135249.0,"vwap":361.59008275689297},{"time":"2026-09-14T14:05:00-04:00","bar_open":"2026-09-14T14:00:00-04:00","open":362.2601013183594,"high":362.5,"low":361.6300048828125,"close":361.8299865722656,"volume":193857.0,"vwap":361.5934834494713},{"time":"2026-09-14T14:10:00-04:00","bar_open":"2026-09-14T14:05:00-04:00","open":361.8465881347656,"high":361.8992919921875,"low":361.4700012207031,"close":361.71990966796875,"volume":173395.0,"vwap":361.59426680960695},{"time":"2026-09-14T14:15:00-04:00","bar_open":"2026-09-14T14:10:00-04:00","open":361.69000244140625,"high":361.7499084472656,"low":361.2699890136719,"close":361.45001220703125,"volume":166073.0,"vwap":361.5935119754142},{"time":"2026-09-14T14:20:00-04:00","bar_open":"2026-09-14T14:15:00-04:00","open":361.44500732421875,"high":361.4700012207031,"low":360.8399963378906,"close":361.1000061035156,"volume":391375.0,"vwap":361.58585076617044},{"time":"2026-09-14T14:25:00-04:00","bar_open":"2026-09-14T14:20:00-04:00","open":361.07501220703125,"high":361.1499938964844,"low":360.8599853515625,"close":361.1000061035156,"volume":131376.0,"vwap":361.58277653742994},{"time":"2026-09-14T14:30:00-04:00","bar_open":"2026-09-14T14:25:00-04:00","open":361.0899963378906,"high":361.25,"low":360.8699951171875,"close":361.1000061035156,"volume":211092.0,"vwap":361.57823527299394},{"time":"2026-09-14T14:35:00-04:00","bar_open":"2026-09-14T14:30:00-04:00","open":361.0775146484375,"high":361.2200012207031,"low":360.8699951171875,"close":360.8900146484375,"volume":141881.0,"vwap":361.574751740445},{"time":"2026-09-14T14:40:00-04:00","bar_open":"2026-09-14T14:35:00-04:00","open":360.9043884277344,"high":361.0799865722656,"low":360.7200012207031,"close":360.75,"volume":168546.0,"vwap":361.5696600314021},{"time":"2026-09-14T14:45:00-04:00","bar_open":"2026-09-14T14:40:00-04:00","open":360.7699890136719,"high":360.95001220703125,"low":360.6400146484375,"close":360.8949890136719,"volume":138209.0,"vwap":361.56541382065166},{"time":"2026-09-14T14:50:00-04:00","bar_open":"2026-09-14T14:45:00-04:00","open":360.8699951171875,"high":361.1400146484375,"low":360.7200012207031,"close":360.8999938964844,"volume":154420.0,"vwap":361.561309627587},{"time":"2026-09-14T14:55:00-04:00","bar_open":"2026-09-14T14:50:00-04:00","open":360.94000244140625,"high":361.0,"low":360.70001220703125,"close":360.8800048828125,"volume":112594.0,"vwap":361.55807294082615},{"time":"2026-09-14T15:00:00-04:00","bar_open":"2026-09-14T14:55:00-04:00","open":360.8299865722656,"high":361.0199890136719,"low":360.6199951171875,"close":360.8500061035156,"volume":169630.0,"vwap":361.5530454720944},{"time":"2026-09-14T15:05:00-04:00","bar_open":"2026-09-14T15:00:00-04:00","open":360.8299865722656,"high":361.07000732421875,"low":360.6700134277344,"close":360.6700134277344,"volume":155042.0,"vwap":361.54834355641634},{"time":"2026-09-14T15:10:00-04:00","bar_open":"2026-09-14T15:05:00-04:00","open":360.67999267578125,"high":360.79998779296875,"low":360.010009765625,"close":360.1199951171875,"volume":241728.0,"vwap":361.5363518648162},{"time":"2026-09-14T15:15:00-04:00","bar_open":"2026-09-14T15:10:00-04:00","open":360.1050109863281,"high":360.1700134277344,"low":359.6499938964844,"close":359.70001220703125,"volume":347442.0,"vwap":361.51306532230024},{"time":"2026-09-14T15:20:00-04:00","bar_open":"2026-09-14T15:15:00-04:00","open":359.6960144042969,"high":359.8399963378906,"low":359.5,"close":359.6000061035156,"volume":225384.0,"vwap":361.4965918377108},{"time":"2026-09-14T15:25:00-04:00","bar_open":"2026-09-14T15:20:00-04:00","open":359.614990234375,"high":359.7950134277344,"low":359.3699951171875,"close":359.42999267578125,"volume":257811.0,"vwap":361.47695177890887},{"time":"2026-09-14T15:30:00-04:00","bar_open":"2026-09-14T15:25:00-04:00","open":359.45001220703125,"high":360.49261474609375,"low":359.44500732421875,"close":360.30999755859375,"volume":371295.0,"vwap":361.4571639359057},{"time":"2026-09-14T15:35:00-04:00","bar_open":"2026-09-14T15:30:00-04:00","open":360.2950134277344,"high":360.6400146484375,"low":360.1000061035156,"close":360.239990234375,"volume":400465.0,"vwap":361.4401217958091},{"time":"2026-09-14T15:40:00-04:00","bar_open":"2026-09-14T15:35:00-04:00","open":360.2703857421875,"high":360.4783020019531,"low":360.05999755859375,"close":360.260009765625,"volume":205478.0,"vwap":361.4311105366652},{"time":"2026-09-14T15:45:00-04:00","bar_open":"2026-09-14T15:40:00-04:00","open":360.2349853515625,"high":360.54998779296875,"low":360.1564025878906,"close":360.3900146484375,"volume":176767.0,"vwap":361.4241201775811},{"time":"2026-09-14T15:50:00-04:00","bar_open":"2026-09-14T15:45:00-04:00","open":360.3699951171875,"high":360.489990234375,"low":359.93011474609375,"close":360.18499755859375,"volume":398422.0,"vwap":361.4063096723919},{"time":"2026-09-14T15:55:00-04:00","bar_open":"2026-09-14T15:50:00-04:00","open":360.17999267578125,"high":360.3783874511719,"low":359.29998779296875,"close":359.4399108886719,"volume":560628.0,"vwap":361.3721528484964},{"time":"2026-09-14T16:00:00-04:00","bar_open":"2026-09-14T15:55:00-04:00","open":359.4100036621094,"high":359.4100036621094,"low":358.5299987792969,"close":358.9700012207031,"volume":1158229.0,"vwap":361.2764262112948}],"fills":[{"time":"2026-09-14T09:35:00-04:00","action":"X","shares":51,"quantity":-51,"price":365.1483281555176,"reference_price":365.33099365234375,"shares_before":0,"shares_after":-51,"assumed_cost":9.315940338134766,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:35:00-04:00","pnl":null},{"time":"2026-09-14T09:45:00-04:00","action":"C","shares":51,"quantity":51,"price":361.9108759918213,"reference_price":361.7300109863281,"shares_before":-51,"shares_after":0,"assumed_cost":9.224115280151366,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:45:00-04:00","pnl":null},{"time":"2026-09-14T09:45:00-04:00","action":"B","shares":28,"quantity":28,"price":361.9108759918213,"reference_price":361.7300109863281,"shares_before":0,"shares_after":28,"assumed_cost":5.064220153808594,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:45:00-04:00","pnl":null},{"time":"2026-09-14T09:50:00-04:00","action":"S","shares":12,"quantity":-12,"price":360.5246340789795,"reference_price":360.7049865722656,"shares_before":28,"shares_after":16,"assumed_cost":2.164229919433594,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:50:00-04:00","pnl":null},{"time":"2026-09-14T09:55:00-04:00","action":"S","shares":8,"quantity":-8,"price":361.6340949401856,"reference_price":361.8150024414063,"shares_before":16,"shares_after":8,"assumed_cost":1.447260009765625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T09:55:00-04:00","pnl":null},{"time":"2026-09-14T10:00:00-04:00","action":"S","shares":8,"quantity":-8,"price":360.04489360046387,"reference_price":360.2250061035156,"shares_before":8,"shares_after":0,"assumed_cost":1.4409000244140624,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:00:00-04:00","pnl":null},{"time":"2026-09-14T10:00:00-04:00","action":"X","shares":5,"quantity":-5,"price":360.04489360046387,"reference_price":360.2250061035156,"shares_before":0,"shares_after":-5,"assumed_cost":0.900562515258789,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:00:00-04:00","pnl":null},{"time":"2026-09-14T10:05:00-04:00","action":"C","shares":5,"quantity":5,"price":360.2704382629394,"reference_price":360.09039306640625,"shares_before":-5,"shares_after":0,"assumed_cost":0.9002259826660156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:05:00-04:00","pnl":null},{"time":"2026-09-14T10:20:00-04:00","action":"X","shares":21,"quantity":-21,"price":358.6555739593506,"reference_price":358.8349914550781,"shares_before":0,"shares_after":-21,"assumed_cost":3.76776741027832,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:20:00-04:00","pnl":null},{"time":"2026-09-14T10:25:00-04:00","action":"C","shares":21,"quantity":21,"price":357.66873522949214,"reference_price":357.489990234375,"shares_before":-21,"shares_after":0,"assumed_cost":3.7536448974609375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:25:00-04:00","pnl":null},{"time":"2026-09-14T10:25:00-04:00","action":"B","shares":2,"quantity":2,"price":357.66873522949214,"reference_price":357.489990234375,"shares_before":0,"shares_after":2,"assumed_cost":0.357489990234375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:25:00-04:00","pnl":null},{"time":"2026-09-14T10:35:00-04:00","action":"S","shares":2,"quantity":-2,"price":358.82050000000004,"reference_price":359.0,"shares_before":2,"shares_after":0,"assumed_cost":0.359,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:35:00-04:00","pnl":null},{"time":"2026-09-14T10:35:00-04:00","action":"X","shares":51,"quantity":-51,"price":358.82050000000004,"reference_price":359.0,"shares_before":0,"shares_after":-51,"assumed_cost":9.1545,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:35:00-04:00","pnl":null},{"time":"2026-09-14T10:40:00-04:00","action":"C","shares":1,"quantity":1,"price":358.3791122131348,"reference_price":358.20001220703125,"shares_before":-51,"shares_after":-50,"assumed_cost":0.1791000061035156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:40:00-04:00","pnl":null},{"time":"2026-09-14T10:45:00-04:00","action":"C","shares":1,"quantity":1,"price":358.88934645080565,"reference_price":358.7099914550781,"shares_before":-50,"shares_after":-49,"assumed_cost":0.179354995727539,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:45:00-04:00","pnl":null},{"time":"2026-09-14T10:50:00-04:00","action":"C","shares":25,"quantity":25,"price":359.3695974426269,"reference_price":359.19000244140625,"shares_before":-49,"shares_after":-24,"assumed_cost":4.489875030517578,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:50:00-04:00","pnl":null},{"time":"2026-09-14T10:55:00-04:00","action":"X","shares":1,"quantity":-1,"price":358.40069657897953,"reference_price":358.5799865722656,"shares_before":-24,"shares_after":-25,"assumed_cost":0.1792899932861328,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T10:55:00-04:00","pnl":null},{"time":"2026-09-14T11:10:00-04:00","action":"C","shares":1,"quantity":1,"price":359.2645339508056,"reference_price":359.0849914550781,"shares_before":-25,"shares_after":-24,"assumed_cost":0.179542495727539,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:10:00-04:00","pnl":null},{"time":"2026-09-14T11:15:00-04:00","action":"C","shares":1,"quantity":1,"price":359.6205162963867,"reference_price":359.4407958984375,"shares_before":-24,"shares_after":-23,"assumed_cost":0.1797203979492187,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:15:00-04:00","pnl":null},{"time":"2026-09-14T11:20:00-04:00","action":"C","shares":1,"quantity":1,"price":359.5097736968994,"reference_price":359.3301086425781,"shares_before":-23,"shares_after":-22,"assumed_cost":0.179665054321289,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:20:00-04:00","pnl":null},{"time":"2026-09-14T11:25:00-04:00","action":"X","shares":1,"quantity":-1,"price":360.0798797607422,"reference_price":360.260009765625,"shares_before":-22,"shares_after":-23,"assumed_cost":0.1801300048828125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:25:00-04:00","pnl":null},{"time":"2026-09-14T11:35:00-04:00","action":"X","shares":59,"quantity":-59,"price":361.8589885406494,"reference_price":362.0400085449219,"shares_before":-23,"shares_after":-82,"assumed_cost":10.680180252075196,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:35:00-04:00","pnl":null},{"time":"2026-09-14T11:40:00-04:00","action":"C","shares":1,"quantity":1,"price":363.1414714508056,"reference_price":362.9599914550781,"shares_before":-82,"shares_after":-81,"assumed_cost":0.181479995727539,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:40:00-04:00","pnl":null},{"time":"2026-09-14T11:45:00-04:00","action":"C","shares":11,"quantity":11,"price":363.58889964294434,"reference_price":363.4071960449219,"shares_before":-81,"shares_after":-70,"assumed_cost":1.9987395782470705,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:45:00-04:00","pnl":null},{"time":"2026-09-14T11:50:00-04:00","action":"C","shares":12,"quantity":12,"price":363.8618326721192,"reference_price":363.6799926757813,"shares_before":-70,"shares_after":-58,"assumed_cost":2.1820799560546877,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:50:00-04:00","pnl":null},{"time":"2026-09-14T11:55:00-04:00","action":"C","shares":1,"quantity":1,"price":363.8214071960449,"reference_price":363.63958740234375,"shares_before":-58,"shares_after":-57,"assumed_cost":0.1818197937011718,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T11:55:00-04:00","pnl":null},{"time":"2026-09-14T12:05:00-04:00","action":"C","shares":1,"quantity":1,"price":364.0919586639404,"reference_price":363.9100036621094,"shares_before":-57,"shares_after":-56,"assumed_cost":0.1819550018310546,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:05:00-04:00","pnl":null},{"time":"2026-09-14T12:20:00-04:00","action":"C","shares":1,"quantity":1,"price":363.95187400817866,"reference_price":363.7699890136719,"shares_before":-56,"shares_after":-55,"assumed_cost":0.1818849945068359,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:20:00-04:00","pnl":null},{"time":"2026-09-14T12:25:00-04:00","action":"C","shares":33,"quantity":33,"price":363.7320681152344,"reference_price":363.55029296875,"shares_before":-55,"shares_after":-22,"assumed_cost":5.998579833984375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:25:00-04:00","pnl":null},{"time":"2026-09-14T12:30:00-04:00","action":"C","shares":1,"quantity":1,"price":363.4709512939453,"reference_price":363.289306640625,"shares_before":-22,"shares_after":-21,"assumed_cost":0.1816446533203125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:30:00-04:00","pnl":null},{"time":"2026-09-14T12:35:00-04:00","action":"C","shares":10,"quantity":10,"price":363.1114576721191,"reference_price":362.9299926757813,"shares_before":-21,"shares_after":-11,"assumed_cost":1.8146499633789064,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:35:00-04:00","pnl":null},{"time":"2026-09-14T12:40:00-04:00","action":"C","shares":1,"quantity":1,"price":362.8563252868652,"reference_price":362.6749877929688,"shares_before":-11,"shares_after":-10,"assumed_cost":0.1813374938964843,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:40:00-04:00","pnl":null},{"time":"2026-09-14T12:45:00-04:00","action":"C","shares":1,"quantity":1,"price":362.4663293609619,"reference_price":362.2851867675781,"shares_before":-10,"shares_after":-9,"assumed_cost":0.181142593383789,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:45:00-04:00","pnl":null},{"time":"2026-09-14T12:50:00-04:00","action":"X","shares":18,"quantity":-18,"price":363.3082452392578,"reference_price":363.489990234375,"shares_before":-9,"shares_after":-27,"assumed_cost":3.271409912109375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:50:00-04:00","pnl":null},{"time":"2026-09-14T12:55:00-04:00","action":"C","shares":1,"quantity":1,"price":362.4811377868652,"reference_price":362.2999877929688,"shares_before":-27,"shares_after":-26,"assumed_cost":0.1811499938964843,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T12:55:00-04:00","pnl":null},{"time":"2026-09-14T13:00:00-04:00","action":"C","shares":1,"quantity":1,"price":362.9563813934326,"reference_price":362.7749938964844,"shares_before":-26,"shares_after":-25,"assumed_cost":0.1813874969482422,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:00:00-04:00","pnl":null},{"time":"2026-09-14T13:05:00-04:00","action":"C","shares":1,"quantity":1,"price":362.8313188934326,"reference_price":362.6499938964844,"shares_before":-25,"shares_after":-24,"assumed_cost":0.1813249969482422,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:05:00-04:00","pnl":null},{"time":"2026-09-14T13:10:00-04:00","action":"C","shares":1,"quantity":1,"price":362.73627017211913,"reference_price":362.5549926757813,"shares_before":-24,"shares_after":-23,"assumed_cost":0.1812774963378906,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:10:00-04:00","pnl":null},{"time":"2026-09-14T13:15:00-04:00","action":"C","shares":1,"quantity":1,"price":362.8363262786865,"reference_price":362.6549987792969,"shares_before":-23,"shares_after":-22,"assumed_cost":0.1813274993896484,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:15:00-04:00","pnl":null},{"time":"2026-09-14T13:20:00-04:00","action":"C","shares":1,"quantity":1,"price":362.5261737213135,"reference_price":362.3450012207031,"shares_before":-22,"shares_after":-21,"assumed_cost":0.1811725006103515,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:20:00-04:00","pnl":null},{"time":"2026-09-14T13:25:00-04:00","action":"X","shares":3,"quantity":-3,"price":362.6685811004639,"reference_price":362.8500061035156,"shares_before":-21,"shares_after":-24,"assumed_cost":0.5442750091552735,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:25:00-04:00","pnl":null},{"time":"2026-09-14T13:30:00-04:00","action":"C","shares":1,"quantity":1,"price":363.0414153442383,"reference_price":362.8599853515625,"shares_before":-24,"shares_after":-23,"assumed_cost":0.1814299926757812,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:30:00-04:00","pnl":null},{"time":"2026-09-14T13:40:00-04:00","action":"C","shares":1,"quantity":1,"price":362.9964099426269,"reference_price":362.8150024414063,"shares_before":-23,"shares_after":-22,"assumed_cost":0.1814075012207031,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:40:00-04:00","pnl":null},{"time":"2026-09-14T13:45:00-04:00","action":"C","shares":1,"quantity":1,"price":362.8113198852539,"reference_price":362.6300048828125,"shares_before":-22,"shares_after":-21,"assumed_cost":0.1813150024414062,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:45:00-04:00","pnl":null},{"time":"2026-09-14T13:50:00-04:00","action":"C","shares":9,"quantity":9,"price":362.7462849426269,"reference_price":362.5650024414063,"shares_before":-21,"shares_after":-12,"assumed_cost":1.6315425109863282,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T13:50:00-04:00","pnl":null},{"time":"2026-09-14T14:00:00-04:00","action":"C","shares":8,"quantity":8,"price":362.4412313690185,"reference_price":362.2601013183594,"shares_before":-12,"shares_after":-4,"assumed_cost":1.4490404052734376,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:00:00-04:00","pnl":null},{"time":"2026-09-14T14:05:00-04:00","action":"X","shares":1,"quantity":-1,"price":361.66566484069824,"reference_price":361.8465881347656,"shares_before":-4,"shares_after":-5,"assumed_cost":0.1809232940673828,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:05:00-04:00","pnl":null},{"time":"2026-09-14T14:15:00-04:00","action":"C","shares":1,"quantity":1,"price":361.6257298278808,"reference_price":361.4450073242188,"shares_before":-5,"shares_after":-4,"assumed_cost":0.1807225036621093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:15:00-04:00","pnl":null},{"time":"2026-09-14T14:20:00-04:00","action":"C","shares":1,"quantity":1,"price":361.2555497131348,"reference_price":361.0750122070313,"shares_before":-4,"shares_after":-3,"assumed_cost":0.1805375061035156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:20:00-04:00","pnl":null},{"time":"2026-09-14T14:25:00-04:00","action":"C","shares":3,"quantity":3,"price":361.2705413360595,"reference_price":361.0899963378906,"shares_before":-3,"shares_after":0,"assumed_cost":0.5416349945068359,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:25:00-04:00","pnl":null},{"time":"2026-09-14T14:35:00-04:00","action":"B","shares":2,"quantity":2,"price":361.0848406219482,"reference_price":360.9043884277344,"shares_before":0,"shares_after":2,"assumed_cost":0.3609043884277343,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:35:00-04:00","pnl":null},{"time":"2026-09-14T14:40:00-04:00","action":"B","shares":4,"quantity":4,"price":360.9503740081787,"reference_price":360.7699890136719,"shares_before":2,"shares_after":6,"assumed_cost":0.7215399780273437,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:40:00-04:00","pnl":null},{"time":"2026-09-14T14:45:00-04:00","action":"B","shares":5,"quantity":5,"price":361.05043011474606,"reference_price":360.8699951171875,"shares_before":6,"shares_after":11,"assumed_cost":0.9021749877929688,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:45:00-04:00","pnl":null},{"time":"2026-09-14T14:55:00-04:00","action":"B","shares":11,"quantity":11,"price":361.0104015655517,"reference_price":360.8299865722656,"shares_before":11,"shares_after":22,"assumed_cost":1.984564926147461,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T14:55:00-04:00","pnl":null},{"time":"2026-09-14T15:00:00-04:00","action":"B","shares":2,"quantity":2,"price":361.0104015655517,"reference_price":360.8299865722656,"shares_before":22,"shares_after":24,"assumed_cost":0.3608299865722656,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:00:00-04:00","pnl":null},{"time":"2026-09-14T15:05:00-04:00","action":"S","shares":1,"quantity":-1,"price":360.4996526794434,"reference_price":360.6799926757813,"shares_before":24,"shares_after":23,"assumed_cost":0.1803399963378906,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:05:00-04:00","pnl":null},{"time":"2026-09-14T15:15:00-04:00","action":"B","shares":26,"quantity":26,"price":359.875862411499,"reference_price":359.6960144042969,"shares_before":23,"shares_after":49,"assumed_cost":4.67604818725586,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:15:00-04:00","pnl":null},{"time":"2026-09-14T15:20:00-04:00","action":"B","shares":4,"quantity":4,"price":359.7947977294922,"reference_price":359.614990234375,"shares_before":49,"shares_after":53,"assumed_cost":0.71922998046875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:20:00-04:00","pnl":null},{"time":"2026-09-14T15:25:00-04:00","action":"B","shares":1,"quantity":1,"price":359.6297372131347,"reference_price":359.45001220703125,"shares_before":53,"shares_after":54,"assumed_cost":0.1797250061035156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:25:00-04:00","pnl":null},{"time":"2026-09-14T15:30:00-04:00","action":"S","shares":54,"quantity":-54,"price":360.1148659210205,"reference_price":360.2950134277344,"shares_before":54,"shares_after":0,"assumed_cost":9.727965362548828,"commission_cost":0.0,"signal_data_cutoff":"2026-09-14T15:30:00-04:00","pnl":null}],"marks":[{"time":"2026-09-14T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-14T09:40:00-04:00","shares":-51,"pnl":177.39405111694575},{"time":"2026-09-14T09:45:00-04:00","shares":-51,"pnl":169.99961141968015},{"time":"2026-09-14T09:50:00-04:00","shares":28,"pnl":130.8025540618928},{"time":"2026-09-14T09:55:00-04:00","shares":16,"pnl":147.65651261902167},{"time":"2026-09-14T10:00:00-04:00","shares":8,"pnl":132.65383268738103},{"time":"2026-09-14T10:05:00-04:00","shares":-5,"pnl":130.55745681763003},{"time":"2026-09-14T10:10:00-04:00","shares":0,"pnl":130.20532653808914},{"time":"2026-09-14T10:15:00-04:00","shares":0,"pnl":130.20532653808914},{"time":"2026-09-14T10:20:00-04:00","shares":0,"pnl":130.20532653808914},{"time":"2026-09-14T10:25:00-04:00","shares":-21,"pnl":154.68258476257688},{"time":"2026-09-14T10:30:00-04:00","shares":2,"pnl":152.2674947967579},{"time":"2026-09-14T10:35:00-04:00","shares":2,"pnl":153.5914694061329},{"time":"2026-09-14T10:40:00-04:00","shares":-51,"pnl":181.97622380066605},{"time":"2026-09-14T10:45:00-04:00","shares":-50,"pnl":156.69836891175146},{"time":"2026-09-14T10:50:00-04:00","shares":-49,"pnl":134.02945092774098},{"time":"2026-09-14T10:55:00-04:00","shares":-24,"pnl":145.76928170777137},{"time":"2026-09-14T11:00:00-04:00","shares":-25,"pnl":145.7200881500321},{"time":"2026-09-14T11:05:00-04:00","shares":-25,"pnl":146.84542384339147},{"time":"2026-09-14T11:10:00-04:00","shares":-25,"pnl":132.97060694886022},{"time":"2026-09-14T11:15:00-04:00","shares":-24,"pnl":124.3859130859455},{"time":"2026-09-14T11:20:00-04:00","shares":-23,"pnl":126.15019293213663},{"time":"2026-09-14T11:25:00-04:00","shares":-22,"pnl":105.19525932312808},{"time":"2026-09-14T11:30:00-04:00","shares":-23,"pnl":108.5086901092618},{"time":"2026-09-14T11:35:00-04:00","shares":-23,"pnl":62.20757316590243},{"time":"2026-09-14T11:40:00-04:00","shares":-82,"pnl":-17.267132232656877},{"time":"2026-09-14T11:45:00-04:00","shares":-81,"pnl":-57.20532609557267},{"time":"2026-09-14T11:50:00-04:00","shares":-70,"pnl":-78.36623608397713},{"time":"2026-09-14T11:55:00-04:00","shares":-58,"pnl":-77.17478088378266},{"time":"2026-09-14T12:00:00-04:00","shares":-57,"pnl":-51.23681918334478},{"time":"2026-09-14T12:05:00-04:00","shares":-57,"pnl":-93.74676791381351},{"time":"2026-09-14T12:10:00-04:00","shares":-56,"pnl":-39.05982643126845},{"time":"2026-09-14T12:15:00-04:00","shares":-56,"pnl":-13.859142837518448},{"time":"2026-09-14T12:20:00-04:00","shares":-56,"pnl":-88.89893775939345},{"time":"2026-09-14T12:25:00-04:00","shares":-55,"pnl":-76.11661987304251},{"time":"2026-09-14T12:30:00-04:00","shares":-22,"pnl":-74.03908886718273},{"time":"2026-09-14T12:35:00-04:00","shares":-21,"pnl":-67.64999377440927},{"time":"2026-09-14T12:40:00-04:00","shares":-11,"pnl":-66.65959002685031},{"time":"2026-09-14T12:45:00-04:00","shares":-10,"pnl":-63.041183868403095},{"time":"2026-09-14T12:50:00-04:00","shares":-9,"pnl":-74.01233500670878},{"time":"2026-09-14T12:55:00-04:00","shares":-27,"pnl":-45.91860209655351},{"time":"2026-09-14T13:00:00-04:00","shares":-26,"pnl":-57.1329246978712},{"time":"2026-09-14T13:05:00-04:00","shares":-25,"pnl":-55.1968195190384},{"time":"2026-09-14T13:10:00-04:00","shares":-24,"pnl":-51.99777342223752},{"time":"2026-09-14T13:15:00-04:00","shares":-23,"pnl":-55.30926942443512},{"time":"2026-09-14T13:20:00-04:00","shares":-22,"pnl":-48.44042602538684},{"time":"2026-09-14T13:25:00-04:00","shares":-21,"pnl":-58.38652162170001},{"time":"2026-09-14T13:30:00-04:00","shares":-24,"pnl":-61.19407177733956},{"time":"2026-09-14T13:35:00-04:00","shares":-23,"pnl":-52.48710455321816},{"time":"2026-09-14T13:40:00-04:00","shares":-23,"pnl":-60.42213262939004},{"time":"2026-09-14T13:45:00-04:00","shares":-22,"pnl":-54.60878915404828},{"time":"2026-09-14T13:50:00-04:00","shares":-21,"pnl":-54.39969277953696},{"time":"2026-09-14T13:55:00-04:00","shares":-12,"pnl":-53.13661248778863},{"time":"2026-09-14T14:00:00-04:00","shares":-12,"pnl":-52.176407409663625},{"time":"2026-09-14T14:05:00-04:00","shares":-4,"pnl":-51.786336486811706},{"time":"2026-09-14T14:10:00-04:00","shares":-5,"pnl":-51.4002736968946},{"time":"2026-09-14T14:15:00-04:00","shares":-5,"pnl":-50.0507863922071},{"time":"2026-09-14T14:20:00-04:00","shares":-4,"pnl":-48.82647959899418},{"time":"2026-09-14T14:25:00-04:00","shares":-3,"pnl":-48.98202320861333},{"time":"2026-09-14T14:30:00-04:00","shares":0,"pnl":-49.49362890624502},{"time":"2026-09-14T14:35:00-04:00","shares":0,"pnl":-49.49362890624502},{"time":"2026-09-14T14:40:00-04:00","shares":2,"pnl":-50.163310150141456},{"time":"2026-09-14T14:45:00-04:00","shares":6,"pnl":-50.09487210082489},{"time":"2026-09-14T14:50:00-04:00","shares":11,"pnl":-50.81702389525845},{"time":"2026-09-14T14:55:00-04:00","shares":11,"pnl":-51.03690304564907},{"time":"2026-09-14T15:00:00-04:00","shares":22,"pnl":-53.1312397003112},{"time":"2026-09-14T15:05:00-04:00","shares":24,"pnl":-57.77185484313304},{"time":"2026-09-14T15:10:00-04:00","shares":23,"pnl":-70.59263673400164},{"time":"2026-09-14T15:15:00-04:00","shares":23,"pnl":-80.2522436675954},{"time":"2026-09-14T15:20:00-04:00","shares":49,"pnl":-89.72464805602067},{"time":"2026-09-14T15:25:00-04:00","shares":53,"pnl":-99.51452622985016},{"time":"2026-09-14T15:30:00-04:00","shares":54,"pnl":-52.19400709532784},{"time":"2026-09-14T15:35:00-04:00","shares":0,"pnl":-62.73111552428236},{"time":"2026-09-14T15:40:00-04:00","shares":0,"pnl":-62.73111552428236},{"time":"2026-09-14T15:45:00-04:00","shares":0,"pnl":-62.73111552428236},{"time":"2026-09-14T15:50:00-04:00","shares":0,"pnl":-62.73111552428236},{"time":"2026-09-14T15:55:00-04:00","shares":0,"pnl":-62.73111552428236},{"time":"2026-09-14T16:00:00-04:00","shares":0,"pnl":-62.73111552428236}],"summary":{"net_pnl":-62.73111552428236,"gross_pnl":44.236114501962746,"cost":106.9672300262451,"fill_count":60,"ending_shares":0},"source_hashes":{"fills_sha256":"e321699d857dcb02bfb1e9621cfd76b53ba659d8f266d46a4c56038843755496","marks_sha256":"4e2261cd6fe3510841176443c830703375632ae736466eed49e708203d7d15fd","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-15/context/NVDA.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"NVDA","date":"2026-09-15","variant":"context","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-15T15:50:00-04:00","partial":true,"starting_equity":47958.07,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-15T09:30:00-04:00","session_close":"2026-09-15T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-15T09:35:00-04:00","bar_open":"2026-09-15T09:30:00-04:00","open":213.08999633789062,"high":213.87950134277344,"low":212.5625,"close":213.37989807128906,"volume":9144789.0,"vwap":213.27396647135416},{"time":"2026-09-15T09:40:00-04:00","bar_open":"2026-09-15T09:35:00-04:00","open":213.3809051513672,"high":213.6199951171875,"low":212.6710968017578,"close":213.08949279785156,"volume":2119682.0,"vwap":213.2462851353456},{"time":"2026-09-15T09:45:00-04:00","bar_open":"2026-09-15T09:40:00-04:00","open":213.0850067138672,"high":213.60989379882812,"low":212.9199981689453,"close":213.30999755859375,"volume":1887876.0,"vwap":213.2511192507815},{"time":"2026-09-15T09:50:00-04:00","bar_open":"2026-09-15T09:45:00-04:00","open":213.31500244140625,"high":213.94000244140625,"low":213.2100067138672,"close":213.57000732421875,"volume":1844948.0,"vwap":213.29075828980672},{"time":"2026-09-15T09:55:00-04:00","bar_open":"2026-09-15T09:50:00-04:00","open":213.5500030517578,"high":213.7169952392578,"low":213.17999267578125,"close":213.25079345703125,"volume":1473221.0,"vwap":213.29897260370234},{"time":"2026-09-15T10:00:00-04:00","bar_open":"2026-09-15T09:55:00-04:00","open":213.27000427246094,"high":213.44000244140625,"low":212.99000549316406,"close":213.25,"volume":1423358.0,"vwap":213.29322127957045},{"time":"2026-09-15T10:05:00-04:00","bar_open":"2026-09-15T10:00:00-04:00","open":213.25999450683594,"high":213.30239868164062,"low":212.47999572753906,"close":212.81500244140625,"volume":2309803.0,"vwap":213.24435584885418},{"time":"2026-09-15T10:10:00-04:00","bar_open":"2026-09-15T10:05:00-04:00","open":212.79049682617188,"high":213.25,"low":212.79049682617188,"close":213.1199951171875,"volume":1008577.0,"vwap":213.23528111648247},{"time":"2026-09-15T10:15:00-04:00","bar_open":"2026-09-15T10:10:00-04:00","open":213.11000061035156,"high":213.1699981689453,"low":212.41050720214844,"close":212.63999938964844,"volume":1332275.0,"vwap":213.20602228878982},{"time":"2026-09-15T10:20:00-04:00","bar_open":"2026-09-15T10:15:00-04:00","open":212.63499450683594,"high":212.77999877929688,"low":212.49000549316406,"close":212.6300048828125,"volume":838493.0,"vwap":213.1854863152339},{"time":"2026-09-15T10:25:00-04:00","bar_open":"2026-09-15T10:20:00-04:00","open":212.6199951171875,"high":212.7899932861328,"low":211.9600067138672,"close":212.67999267578125,"volume":1497913.0,"vwap":213.1428129260201},{"time":"2026-09-15T10:30:00-04:00","bar_open":"2026-09-15T10:25:00-04:00","open":212.67999267578125,"high":212.89999389648438,"low":212.41000366210938,"close":212.74009704589844,"volume":850663.0,"vwap":213.1276239951484},{"time":"2026-09-15T10:35:00-04:00","bar_open":"2026-09-15T10:30:00-04:00","open":212.74000549316406,"high":212.97999572753906,"low":212.6199951171875,"close":212.6999969482422,"volume":957247.0,"vwap":213.1146774170981},{"time":"2026-09-15T10:40:00-04:00","bar_open":"2026-09-15T10:35:00-04:00","open":212.6999969482422,"high":213.05999755859375,"low":212.68499755859375,"close":212.80999755859375,"volume":876931.0,"vwap":213.10631036001504},{"time":"2026-09-15T10:45:00-04:00","bar_open":"2026-09-15T10:40:00-04:00","open":212.8199005126953,"high":212.91000366210938,"low":212.52049255371094,"close":212.7100067138672,"volume":886347.0,"vwap":213.09407347285568},{"time":"2026-09-15T10:50:00-04:00","bar_open":"2026-09-15T10:45:00-04:00","open":212.7100067138672,"high":212.9499969482422,"low":212.1699981689453,"close":212.24000549316406,"volume":824588.0,"vwap":213.07602682607197},{"time":"2026-09-15T10:55:00-04:00","bar_open":"2026-09-15T10:50:00-04:00","open":212.22000122070312,"high":212.3000030517578,"low":211.6300048828125,"close":212.1313934326172,"volume":1294661.0,"vwap":213.03132513648077},{"time":"2026-09-15T11:00:00-04:00","bar_open":"2026-09-15T10:55:00-04:00","open":212.13499450683594,"high":212.39999389648438,"low":212.0,"close":212.03500366210938,"volume":964503.0,"vwap":213.00421746821328},{"time":"2026-09-15T11:05:00-04:00","bar_open":"2026-09-15T11:00:00-04:00","open":212.03500366210938,"high":212.55999755859375,"low":212.02000427246094,"close":212.55999755859375,"volume":842636.0,"vwap":212.98797248764637},{"time":"2026-09-15T11:10:00-04:00","bar_open":"2026-09-15T11:05:00-04:00","open":212.56500244140625,"high":212.58999633789062,"low":212.14500427246094,"close":212.19410705566406,"volume":628318.0,"vwap":212.9750609411501},{"time":"2026-09-15T11:15:00-04:00","bar_open":"2026-09-15T11:10:00-04:00","open":212.17999267578125,"high":212.35000610351562,"low":212.1199951171875,"close":212.2299041748047,"volume":561634.0,"vwap":212.96265056792802},{"time":"2026-09-15T11:20:00-04:00","bar_open":"2026-09-15T11:15:00-04:00","open":212.22500610351562,"high":212.3699951171875,"low":212.11000061035156,"close":212.22000122070312,"volume":454675.0,"vwap":212.95290417780498},{"time":"2026-09-15T11:25:00-04:00","bar_open":"2026-09-15T11:20:00-04:00","open":212.2100067138672,"high":212.22999572753906,"low":211.97999572753906,"close":212.11000061035156,"volume":695286.0,"vwap":212.9359570107014},{"time":"2026-09-15T11:30:00-04:00","bar_open":"2026-09-15T11:25:00-04:00","open":212.10000610351562,"high":212.36000061035156,"low":212.10000610351562,"close":212.25999450683594,"volume":1388829.0,"vwap":212.90918774320548},{"time":"2026-09-15T11:35:00-04:00","bar_open":"2026-09-15T11:30:00-04:00","open":212.2510986328125,"high":212.2550048828125,"low":211.99049377441406,"close":212.1699981689453,"volume":522912.0,"vwap":212.8981858156306},{"time":"2026-09-15T11:40:00-04:00","bar_open":"2026-09-15T11:35:00-04:00","open":212.1699981689453,"high":212.39999389648438,"low":212.11000061035156,"close":212.2100067138672,"volume":477485.0,"vwap":212.88971657384656},{"time":"2026-09-15T11:45:00-04:00","bar_open":"2026-09-15T11:40:00-04:00","open":212.2100067138672,"high":212.47000122070312,"low":212.11000061035156,"close":212.27999877929688,"volume":594696.0,"vwap":212.88020440060916},{"time":"2026-09-15T11:50:00-04:00","bar_open":"2026-09-15T11:45:00-04:00","open":212.27999877929688,"high":212.38999938964844,"low":212.01199340820312,"close":212.10189819335938,"volume":576544.0,"vwap":212.86947686584},{"time":"2026-09-15T11:55:00-04:00","bar_open":"2026-09-15T11:50:00-04:00","open":212.09500122070312,"high":212.3699951171875,"low":211.92999267578125,"close":212.27499389648438,"volume":712081.0,"vwap":212.85709809972428},{"time":"2026-09-15T12:00:00-04:00","bar_open":"2026-09-15T11:55:00-04:00","open":212.27499389648438,"high":212.44000244140625,"low":212.16000366210938,"close":212.17990112304688,"volume":527496.0,"vwap":212.84912756858623},{"time":"2026-09-15T12:05:00-04:00","bar_open":"2026-09-15T12:00:00-04:00","open":212.19000244140625,"high":212.35000610351562,"low":212.16000366210938,"close":212.3000030517578,"volume":404694.0,"vwap":212.84325709847985},{"time":"2026-09-15T12:10:00-04:00","bar_open":"2026-09-15T12:05:00-04:00","open":212.2899932861328,"high":212.32000732421875,"low":211.97999572753906,"close":212.02999877929688,"volume":535992.0,"vwap":212.8335431133259},{"time":"2026-09-15T12:15:00-04:00","bar_open":"2026-09-15T12:10:00-04:00","open":212.0399932861328,"high":212.08999633789062,"low":211.83999633789062,"close":211.8419952392578,"volume":619690.0,"vwap":212.81982224810565},{"time":"2026-09-15T12:20:00-04:00","bar_open":"2026-09-15T12:15:00-04:00","open":211.8498992919922,"high":212.02000427246094,"low":211.80499267578125,"close":211.89010620117188,"volume":541936.0,"vwap":212.80791097473931},{"time":"2026-09-15T12:25:00-04:00","bar_open":"2026-09-15T12:20:00-04:00","open":211.89500427246094,"high":212.13999938964844,"low":211.86000061035156,"close":212.12010192871094,"volume":591119.0,"vwap":212.79715792394126},{"time":"2026-09-15T12:30:00-04:00","bar_open":"2026-09-15T12:25:00-04:00","open":212.125,"high":212.1699981689453,"low":211.91050720214844,"close":211.97000122070312,"volume":454782.0,"vwap":212.7888405067274},{"time":"2026-09-15T12:35:00-04:00","bar_open":"2026-09-15T12:30:00-04:00","open":211.9600067138672,"high":211.9600067138672,"low":211.75,"close":211.83999633789062,"volume":503441.0,"vwap":212.77789195526472},{"time":"2026-09-15T12:40:00-04:00","bar_open":"2026-09-15T12:35:00-04:00","open":211.83399963378906,"high":211.9600067138672,"low":211.7100067138672,"close":211.85000610351562,"volume":452387.0,"vwap":212.76816561897203},{"time":"2026-09-15T12:45:00-04:00","bar_open":"2026-09-15T12:40:00-04:00","open":211.8560028076172,"high":212.19500732421875,"low":211.7899932861328,"close":212.0800018310547,"volume":434746.0,"vwap":212.7607993614263},{"time":"2026-09-15T12:50:00-04:00","bar_open":"2026-09-15T12:45:00-04:00","open":212.0749969482422,"high":212.14999389648438,"low":211.87109375,"close":212.05419921875,"volume":401272.0,"vwap":212.75415907580302},{"time":"2026-09-15T12:55:00-04:00","bar_open":"2026-09-15T12:50:00-04:00","open":212.0500030517578,"high":212.16000366210938,"low":211.9600067138672,"close":212.08999633789062,"volume":453926.0,"vwap":212.74724436589636},{"time":"2026-09-15T13:00:00-04:00","bar_open":"2026-09-15T12:55:00-04:00","open":212.08999633789062,"high":212.13999938964844,"low":211.6999969482422,"close":211.77000427246094,"volume":518441.0,"vwap":212.73723357124123},{"time":"2026-09-15T13:05:00-04:00","bar_open":"2026-09-15T13:00:00-04:00","open":211.77499389648438,"high":211.8000030517578,"low":211.39999389648438,"close":211.46240234375,"volume":867968.0,"vwap":212.7150539035354},{"time":"2026-09-15T13:10:00-04:00","bar_open":"2026-09-15T13:05:00-04:00","open":211.4550018310547,"high":211.52999877929688,"low":211.27000427246094,"close":211.4499969482422,"volume":627276.0,"vwap":212.6976979649378},{"time":"2026-09-15T13:15:00-04:00","bar_open":"2026-09-15T13:10:00-04:00","open":211.4499969482422,"high":211.6199951171875,"low":211.4199981689453,"close":211.4250030517578,"volume":427931.0,"vwap":212.68676912269885},{"time":"2026-09-15T13:20:00-04:00","bar_open":"2026-09-15T13:15:00-04:00","open":211.4250030517578,"high":211.65499877929688,"low":211.3542022705078,"close":211.64999389648438,"volume":456396.0,"vwap":212.67594684674364},{"time":"2026-09-15T13:25:00-04:00","bar_open":"2026-09-15T13:20:00-04:00","open":211.66000366210938,"high":211.74029541015625,"low":211.24000549316406,"close":211.3000030517578,"volume":685161.0,"vwap":212.6582980663006},{"time":"2026-09-15T13:30:00-04:00","bar_open":"2026-09-15T13:25:00-04:00","open":211.2899932861328,"high":211.35989379882812,"low":211.16000366210938,"close":211.3300018310547,"volume":477154.0,"vwap":212.6449011149057},{"time":"2026-09-15T13:35:00-04:00","bar_open":"2026-09-15T13:30:00-04:00","open":211.33990478515625,"high":211.6199951171875,"low":211.3300018310547,"close":211.5449981689453,"volume":432935.0,"vwap":212.63485389593095},{"time":"2026-09-15T13:40:00-04:00","bar_open":"2026-09-15T13:35:00-04:00","open":211.5449981689453,"high":211.7899932861328,"low":211.5,"close":211.5699005126953,"volume":439809.0,"vwap":212.6258990807407},{"time":"2026-09-15T13:45:00-04:00","bar_open":"2026-09-15T13:40:00-04:00","open":211.55999755859375,"high":211.69650268554688,"low":211.5,"close":211.54989624023438,"volume":551715.0,"vwap":212.61447263278964},{"time":"2026-09-15T13:50:00-04:00","bar_open":"2026-09-15T13:45:00-04:00","open":211.55999755859375,"high":211.77000427246094,"low":211.4700927734375,"close":211.7104949951172,"volume":690738.0,"vwap":212.601435091777},{"time":"2026-09-15T13:55:00-04:00","bar_open":"2026-09-15T13:50:00-04:00","open":211.7100067138672,"high":211.97999572753906,"low":211.6699981689453,"close":211.83999633789062,"volume":463608.0,"vwap":212.59449747781022},{"time":"2026-09-15T14:00:00-04:00","bar_open":"2026-09-15T13:55:00-04:00","open":211.835205078125,"high":211.97999572753906,"low":211.77499389648438,"close":211.9597930908203,"volume":407581.0,"vwap":212.5890883148274},{"time":"2026-09-15T14:05:00-04:00","bar_open":"2026-09-15T14:00:00-04:00","open":211.9600067138672,"high":212.101806640625,"low":211.9199981689453,"close":212.0500030517578,"volume":718947.0,"vwap":212.58137515695034},{"time":"2026-09-15T14:10:00-04:00","bar_open":"2026-09-15T14:05:00-04:00","open":212.05499267578125,"high":212.11000061035156,"low":211.77000427246094,"close":211.88999938964844,"volume":474788.0,"vwap":212.5754972145393},{"time":"2026-09-15T14:15:00-04:00","bar_open":"2026-09-15T14:10:00-04:00","open":211.88999938964844,"high":211.9499969482422,"low":211.6699981689453,"close":211.6999969482422,"volume":495489.0,"vwap":212.56808851695786},{"time":"2026-09-15T14:20:00-04:00","bar_open":"2026-09-15T14:15:00-04:00","open":211.7100067138672,"high":211.8000030517578,"low":211.55999755859375,"close":211.71499633789062,"volume":435891.0,"vwap":212.56102500718836},{"time":"2026-09-15T14:25:00-04:00","bar_open":"2026-09-15T14:20:00-04:00","open":211.7100067138672,"high":211.97500610351562,"low":211.7050018310547,"close":211.9550018310547,"volume":341527.0,"vwap":212.5567410738779},{"time":"2026-09-15T14:30:00-04:00","bar_open":"2026-09-15T14:25:00-04:00","open":211.93499755859375,"high":212.1999969482422,"low":211.92999267578125,"close":212.10000610351562,"volume":539156.0,"vwap":212.55203196918995},{"time":"2026-09-15T14:35:00-04:00","bar_open":"2026-09-15T14:30:00-04:00","open":212.10000610351562,"high":212.19000244140625,"low":211.92999267578125,"close":212.02999877929688,"volume":504301.0,"vwap":212.54746770725748},{"time":"2026-09-15T14:40:00-04:00","bar_open":"2026-09-15T14:35:00-04:00","open":212.02499389648438,"high":212.1699981689453,"low":211.9949951171875,"close":212.16000366210938,"volume":400794.0,"vwap":212.54431748983743},{"time":"2026-09-15T14:45:00-04:00","bar_open":"2026-09-15T14:40:00-04:00","open":212.15499877929688,"high":212.3300018310547,"low":211.9499969482422,"close":212.0124053955078,"volume":587187.0,"vwap":212.53967000522894},{"time":"2026-09-15T14:50:00-04:00","bar_open":"2026-09-15T14:45:00-04:00","open":212.02000427246094,"high":212.07000732421875,"low":211.91000366210938,"close":211.9813995361328,"volume":433109.0,"vwap":212.53546354368532},{"time":"2026-09-15T14:55:00-04:00","bar_open":"2026-09-15T14:50:00-04:00","open":211.99000549316406,"high":212.1199951171875,"low":211.9499969482422,"close":212.0749969482422,"volume":492252.0,"vwap":212.53128470553727},{"time":"2026-09-15T15:00:00-04:00","bar_open":"2026-09-15T14:55:00-04:00","open":212.07330322265625,"high":212.14999389648438,"low":212.02000427246094,"close":212.110107421875,"volume":369066.0,"vwap":212.52848617234258},{"time":"2026-09-15T15:05:00-04:00","bar_open":"2026-09-15T15:00:00-04:00","open":212.10000610351562,"high":212.10000610351562,"low":211.91000366210938,"close":211.9597930908203,"volume":418593.0,"vwap":212.5246107550658},{"time":"2026-09-15T15:10:00-04:00","bar_open":"2026-09-15T15:05:00-04:00","open":211.9499969482422,"high":212.02000427246094,"low":211.8800048828125,"close":212.01499938964844,"volume":415374.0,"vwap":212.52069038450088},{"time":"2026-09-15T15:15:00-04:00","bar_open":"2026-09-15T15:10:00-04:00","open":212.01100158691406,"high":212.19000244140625,"low":211.99000549316406,"close":212.01499938964844,"volume":405022.0,"vwap":212.51756169194246},{"time":"2026-09-15T15:20:00-04:00","bar_open":"2026-09-15T15:15:00-04:00","open":212.02000427246094,"high":212.11000061035156,"low":211.88999938964844,"close":212.10000610351562,"volume":421082.0,"vwap":212.5141297275073},{"time":"2026-09-15T15:25:00-04:00","bar_open":"2026-09-15T15:20:00-04:00","open":212.10000610351562,"high":212.10499572753906,"low":212.0,"close":212.0500030517578,"volume":406127.0,"vwap":212.510989881492},{"time":"2026-09-15T15:30:00-04:00","bar_open":"2026-09-15T15:25:00-04:00","open":212.02000427246094,"high":212.14999389648438,"low":211.97999572753906,"close":212.1363983154297,"volume":483128.0,"vwap":212.5076072891288},{"time":"2026-09-15T15:35:00-04:00","bar_open":"2026-09-15T15:30:00-04:00","open":212.11000061035156,"high":212.1699981689453,"low":212.0,"close":212.02499389648438,"volume":543212.0,"vwap":212.5036557047881},{"time":"2026-09-15T15:40:00-04:00","bar_open":"2026-09-15T15:35:00-04:00","open":212.02499389648438,"high":212.02499389648438,"low":211.75,"close":211.82000732421875,"volume":565622.0,"vwap":212.49777330004707},{"time":"2026-09-15T15:45:00-04:00","bar_open":"2026-09-15T15:40:00-04:00","open":211.82000732421875,"high":212.00999450683594,"low":211.75999450683594,"close":211.93499755859375,"volume":570746.0,"vwap":212.49228403159938},{"time":"2026-09-15T15:50:00-04:00","bar_open":"2026-09-15T15:45:00-04:00","open":211.92999267578125,"high":212.14999389648438,"low":211.83009338378906,"close":212.02999877929688,"volume":706018.0,"vwap":212.48677746778972}],"fills":[{"time":"2026-09-15T10:00:00-04:00","action":"X","shares":2,"quantity":-2,"price":213.15336450958253,"reference_price":213.25999450683597,"shares_before":0,"shares_after":-2,"assumed_cost":0.2132599945068359,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:00:00-04:00","pnl":null},{"time":"2026-09-15T10:05:00-04:00","action":"C","shares":1,"quantity":1,"price":212.8968920745849,"reference_price":212.79049682617188,"shares_before":-2,"shares_after":-1,"assumed_cost":0.1063952484130859,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:05:00-04:00","pnl":null},{"time":"2026-09-15T10:10:00-04:00","action":"X","shares":21,"quantity":-21,"price":213.0034456100464,"reference_price":213.1100006103516,"shares_before":-1,"shares_after":-22,"assumed_cost":2.2376550064086915,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:10:00-04:00","pnl":null},{"time":"2026-09-15T10:15:00-04:00","action":"C","shares":1,"quantity":1,"price":212.7413120040893,"reference_price":212.63499450683597,"shares_before":-22,"shares_after":-21,"assumed_cost":0.1063174972534179,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:15:00-04:00","pnl":null},{"time":"2026-09-15T10:20:00-04:00","action":"X","shares":21,"quantity":-21,"price":212.5136851196289,"reference_price":212.6199951171875,"shares_before":-21,"shares_after":-42,"assumed_cost":2.2325099487304687,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:20:00-04:00","pnl":null},{"time":"2026-09-15T10:25:00-04:00","action":"C","shares":1,"quantity":1,"price":212.78633267211916,"reference_price":212.67999267578125,"shares_before":-42,"shares_after":-41,"assumed_cost":0.1063399963378906,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:25:00-04:00","pnl":null},{"time":"2026-09-15T10:30:00-04:00","action":"X","shares":10,"quantity":-10,"price":212.6336354904175,"reference_price":212.7400054931641,"shares_before":-41,"shares_after":-51,"assumed_cost":1.0637000274658204,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:30:00-04:00","pnl":null},{"time":"2026-09-15T10:35:00-04:00","action":"X","shares":37,"quantity":-37,"price":212.59364694976807,"reference_price":212.6999969482422,"shares_before":-51,"shares_after":-88,"assumed_cost":3.9349499435424806,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:35:00-04:00","pnl":null},{"time":"2026-09-15T10:50:00-04:00","action":"C","shares":1,"quantity":1,"price":212.32611122131345,"reference_price":212.22000122070312,"shares_before":-88,"shares_after":-87,"assumed_cost":0.1061100006103515,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:50:00-04:00","pnl":null},{"time":"2026-09-15T11:00:00-04:00","action":"C","shares":74,"quantity":74,"price":212.1410211639404,"reference_price":212.03500366210935,"shares_before":-87,"shares_after":-13,"assumed_cost":7.845295135498047,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:00:00-04:00","pnl":null},{"time":"2026-09-15T11:05:00-04:00","action":"C","shares":1,"quantity":1,"price":212.67128494262693,"reference_price":212.56500244140625,"shares_before":-13,"shares_after":-12,"assumed_cost":0.1062825012207031,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:05:00-04:00","pnl":null},{"time":"2026-09-15T11:10:00-04:00","action":"C","shares":12,"quantity":12,"price":212.28608267211916,"reference_price":212.17999267578125,"shares_before":-12,"shares_after":0,"assumed_cost":1.2730799560546875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:10:00-04:00","pnl":null},{"time":"2026-09-15T11:15:00-04:00","action":"X","shares":67,"quantity":-67,"price":212.11889360046388,"reference_price":212.2250061035156,"shares_before":0,"shares_after":-67,"assumed_cost":7.109537704467773,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:15:00-04:00","pnl":null},{"time":"2026-09-15T11:20:00-04:00","action":"C","shares":1,"quantity":1,"price":212.3161117172241,"reference_price":212.2100067138672,"shares_before":-67,"shares_after":-66,"assumed_cost":0.1061050033569336,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:20:00-04:00","pnl":null},{"time":"2026-09-15T11:25:00-04:00","action":"C","shares":1,"quantity":1,"price":212.20605610656736,"reference_price":212.1000061035156,"shares_before":-66,"shares_after":-65,"assumed_cost":0.1060500030517578,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:25:00-04:00","pnl":null},{"time":"2026-09-15T11:35:00-04:00","action":"C","shares":1,"quantity":1,"price":212.27608316802977,"reference_price":212.1699981689453,"shares_before":-65,"shares_after":-64,"assumed_cost":0.1060849990844726,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:35:00-04:00","pnl":null},{"time":"2026-09-15T11:40:00-04:00","action":"X","shares":13,"quantity":-13,"price":212.10390171051023,"reference_price":212.2100067138672,"shares_before":-64,"shares_after":-77,"assumed_cost":1.3793650436401368,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:40:00-04:00","pnl":null},{"time":"2026-09-15T11:45:00-04:00","action":"X","shares":19,"quantity":-19,"price":212.17385877990725,"reference_price":212.27999877929688,"shares_before":-77,"shares_after":-96,"assumed_cost":2.0166599884033203,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:45:00-04:00","pnl":null},{"time":"2026-09-15T11:50:00-04:00","action":"C","shares":1,"quantity":1,"price":212.20104872131347,"reference_price":212.09500122070312,"shares_before":-96,"shares_after":-95,"assumed_cost":0.1060475006103515,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:50:00-04:00","pnl":null},{"time":"2026-09-15T12:10:00-04:00","action":"C","shares":15,"quantity":15,"price":212.14601328277587,"reference_price":212.0399932861328,"shares_before":-95,"shares_after":-80,"assumed_cost":1.5902999496459962,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:10:00-04:00","pnl":null},{"time":"2026-09-15T12:15:00-04:00","action":"C","shares":30,"quantity":30,"price":211.95582424163817,"reference_price":211.8498992919922,"shares_before":-80,"shares_after":-50,"assumed_cost":3.177748489379882,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:15:00-04:00","pnl":null},{"time":"2026-09-15T12:25:00-04:00","action":"C","shares":1,"quantity":1,"price":212.2310625,"reference_price":212.125,"shares_before":-50,"shares_after":-49,"assumed_cost":0.1060625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:25:00-04:00","pnl":null},{"time":"2026-09-15T12:30:00-04:00","action":"C","shares":1,"quantity":1,"price":212.0659867172241,"reference_price":211.9600067138672,"shares_before":-49,"shares_after":-48,"assumed_cost":0.1059800033569336,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:30:00-04:00","pnl":null},{"time":"2026-09-15T12:40:00-04:00","action":"X","shares":22,"quantity":-22,"price":211.75007480621335,"reference_price":211.8560028076172,"shares_before":-48,"shares_after":-70,"assumed_cost":2.330416030883789,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:40:00-04:00","pnl":null},{"time":"2026-09-15T12:45:00-04:00","action":"X","shares":7,"quantity":-7,"price":211.96895944976808,"reference_price":212.0749969482422,"shares_before":-70,"shares_after":-77,"assumed_cost":0.7422624893188476,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:45:00-04:00","pnl":null},{"time":"2026-09-15T12:55:00-04:00","action":"C","shares":1,"quantity":1,"price":212.19604133605955,"reference_price":212.08999633789065,"shares_before":-77,"shares_after":-76,"assumed_cost":0.1060449981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:55:00-04:00","pnl":null},{"time":"2026-09-15T13:00:00-04:00","action":"C","shares":1,"quantity":1,"price":211.88088139343265,"reference_price":211.7749938964844,"shares_before":-76,"shares_after":-75,"assumed_cost":0.1058874969482421,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:00:00-04:00","pnl":null},{"time":"2026-09-15T13:05:00-04:00","action":"C","shares":75,"quantity":75,"price":211.5607293319702,"reference_price":211.4550018310547,"shares_before":-75,"shares_after":0,"assumed_cost":7.929562568664551,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:05:00-04:00","pnl":null},{"time":"2026-09-15T13:15:00-04:00","action":"X","shares":10,"quantity":-10,"price":211.31929055023195,"reference_price":211.4250030517578,"shares_before":0,"shares_after":-10,"assumed_cost":1.057125015258789,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:15:00-04:00","pnl":null},{"time":"2026-09-15T13:20:00-04:00","action":"X","shares":5,"quantity":-5,"price":211.55417366027837,"reference_price":211.66000366210935,"shares_before":-10,"shares_after":-15,"assumed_cost":0.5291500091552734,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:20:00-04:00","pnl":null},{"time":"2026-09-15T13:30:00-04:00","action":"X","shares":51,"quantity":-51,"price":211.2342348327637,"reference_price":211.33990478515625,"shares_before":-15,"shares_after":-66,"assumed_cost":5.389167572021484,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:30:00-04:00","pnl":null},{"time":"2026-09-15T13:45:00-04:00","action":"C","shares":8,"quantity":8,"price":211.66577755737305,"reference_price":211.55999755859372,"shares_before":-66,"shares_after":-58,"assumed_cost":0.846239990234375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:45:00-04:00","pnl":null},{"time":"2026-09-15T14:05:00-04:00","action":"X","shares":16,"quantity":-16,"price":211.94896517944335,"reference_price":212.05499267578125,"shares_before":-58,"shares_after":-74,"assumed_cost":1.69643994140625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:05:00-04:00","pnl":null},{"time":"2026-09-15T14:10:00-04:00","action":"C","shares":1,"quantity":1,"price":211.99594438934324,"reference_price":211.88999938964844,"shares_before":-74,"shares_after":-73,"assumed_cost":0.1059449996948242,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:10:00-04:00","pnl":null},{"time":"2026-09-15T14:25:00-04:00","action":"C","shares":1,"quantity":1,"price":212.04096505737303,"reference_price":211.93499755859372,"shares_before":-73,"shares_after":-72,"assumed_cost":0.1059674987792968,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:25:00-04:00","pnl":null},{"time":"2026-09-15T14:50:00-04:00","action":"C","shares":1,"quantity":1,"price":212.09600049591063,"reference_price":211.9900054931641,"shares_before":-72,"shares_after":-71,"assumed_cost":0.105995002746582,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:50:00-04:00","pnl":null},{"time":"2026-09-15T14:55:00-04:00","action":"C","shares":1,"quantity":1,"price":212.17933987426755,"reference_price":212.07330322265625,"shares_before":-71,"shares_after":-70,"assumed_cost":0.1060366516113281,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:55:00-04:00","pnl":null},{"time":"2026-09-15T15:00:00-04:00","action":"C","shares":1,"quantity":1,"price":212.20605610656736,"reference_price":212.1000061035156,"shares_before":-70,"shares_after":-69,"assumed_cost":0.1060500030517578,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:00:00-04:00","pnl":null},{"time":"2026-09-15T15:10:00-04:00","action":"C","shares":7,"quantity":7,"price":212.11700708770752,"reference_price":212.0110015869141,"shares_before":-69,"shares_after":-62,"assumed_cost":0.7420385055541993,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:10:00-04:00","pnl":null},{"time":"2026-09-15T15:20:00-04:00","action":"C","shares":1,"quantity":1,"price":212.20605610656736,"reference_price":212.1000061035156,"shares_before":-62,"shares_after":-61,"assumed_cost":0.1060500030517578,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:20:00-04:00","pnl":null},{"time":"2026-09-15T15:35:00-04:00","action":"C","shares":59,"quantity":59,"price":212.1310063934326,"reference_price":212.0249938964844,"shares_before":-61,"shares_after":-2,"assumed_cost":6.2547373199462895,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:35:00-04:00","pnl":null},{"time":"2026-09-15T15:45:00-04:00","action":"C","shares":2,"quantity":2,"price":212.03595767211917,"reference_price":211.92999267578125,"shares_before":-2,"shares_after":0,"assumed_cost":0.2119299926757812,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:45:00-04:00","pnl":null}],"marks":[{"time":"2026-09-15T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:40:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:45:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:50:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:55:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T10:00:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T10:05:00-04:00","shares":-2,"pnl":0.6767241363525613},{"time":"2026-09-15T10:10:00-04:00","shares":-1,"pnl":0.2898418273926211},{"time":"2026-09-15T10:15:00-04:00","shares":-22,"pnl":8.402208183289076},{"time":"2026-09-15T10:20:00-04:00","shares":-21,"pnl":8.510780212403006},{"time":"2026-09-15T10:25:00-04:00","shares":-42,"pnl":3.968577880859812},{"time":"2026-09-15T10:30:00-04:00","shares":-41,"pnl":1.3979587097164767},{"time":"2026-09-15T10:35:00-04:00","shares":-51,"pnl":2.3784481353759475},{"time":"2026-09-15T10:40:00-04:00","shares":-88,"pnl":-11.236555519102694},{"time":"2026-09-15T10:45:00-04:00","shares":-88,"pnl":-2.4373611831651942},{"time":"2026-09-15T10:50:00-04:00","shares":-88,"pnl":38.922746238709806},{"time":"2026-09-15T10:55:00-04:00","shares":-87,"pnl":48.28588977813706},{"time":"2026-09-15T11:00:00-04:00","shares":-87,"pnl":56.67179981231675},{"time":"2026-09-15T11:05:00-04:00","shares":-13,"pnl":42.001584022522366},{"time":"2026-09-15T11:10:00-04:00","shares":-12,"pnl":46.28098267364521},{"time":"2026-09-15T11:15:00-04:00","shares":0,"pnl":45.177275276184446},{"time":"2026-09-15T11:20:00-04:00","shares":-67,"pnl":38.40306472015436},{"time":"2026-09-15T11:25:00-04:00","shares":-66,"pnl":45.56699450683664},{"time":"2026-09-15T11:30:00-04:00","shares":-65,"pnl":35.72133573913561},{"time":"2026-09-15T11:35:00-04:00","shares":-65,"pnl":41.57109770202624},{"time":"2026-09-15T11:40:00-04:00","shares":-64,"pnl":38.90446582794175},{"time":"2026-09-15T11:45:00-04:00","shares":-77,"pnl":32.13571174621575},{"time":"2026-09-15T11:50:00-04:00","shares":-96,"pnl":47.216708007814304},{"time":"2026-09-15T11:55:00-04:00","shares":-95,"pnl":30.67346568298672},{"time":"2026-09-15T12:00:00-04:00","shares":-95,"pnl":39.707279159549216},{"time":"2026-09-15T12:05:00-04:00","shares":-95,"pnl":28.297595932010157},{"time":"2026-09-15T12:10:00-04:00","shares":-95,"pnl":53.948001815799216},{"time":"2026-09-15T12:15:00-04:00","shares":-80,"pnl":67.24806746673858},{"time":"2026-09-15T12:20:00-04:00","shares":-50,"pnl":61.427649299625045},{"time":"2026-09-15T12:25:00-04:00","shares":-50,"pnl":49.92786292267192},{"time":"2026-09-15T12:30:00-04:00","shares":-49,"pnl":57.17183704376657},{"time":"2026-09-15T12:35:00-04:00","shares":-48,"pnl":63.3160859222462},{"time":"2026-09-15T12:40:00-04:00","shares":-48,"pnl":62.8356171722462},{"time":"2026-09-15T12:45:00-04:00","shares":-70,"pnl":44.537427703862704},{"time":"2026-09-15T12:50:00-04:00","shares":-77,"pnl":45.74693218231732},{"time":"2026-09-15T12:55:00-04:00","shares":-77,"pnl":42.9905540084892},{"time":"2026-09-15T13:00:00-04:00","shares":-76,"pnl":67.20390598297672},{"time":"2026-09-15T13:05:00-04:00","shares":-75,"pnl":90.16317351532598},{"time":"2026-09-15T13:10:00-04:00","shares":0,"pnl":82.78864939880987},{"time":"2026-09-15T13:15:00-04:00","shares":0,"pnl":82.78864939880987},{"time":"2026-09-15T13:20:00-04:00","shares":-10,"pnl":79.48161593628583},{"time":"2026-09-15T13:25:00-04:00","shares":-15,"pnl":84.252377426154},{"time":"2026-09-15T13:30:00-04:00","shares":-15,"pnl":83.80239573670087},{"time":"2026-09-15T13:35:00-04:00","shares":-66,"pnl":64.72852052307826},{"time":"2026-09-15T13:40:00-04:00","shares":-66,"pnl":63.08496583557826},{"time":"2026-09-15T13:45:00-04:00","shares":-66,"pnl":64.40524781800013},{"time":"2026-09-15T13:50:00-04:00","shares":-58,"pnl":54.1634694976874},{"time":"2026-09-15T13:55:00-04:00","shares":-58,"pnl":46.65239161682803},{"time":"2026-09-15T14:00:00-04:00","shares":-58,"pnl":39.70417994690615},{"time":"2026-09-15T14:05:00-04:00","shares":-58,"pnl":34.47200221253115},{"time":"2026-09-15T14:10:00-04:00","shares":-74,"pnl":44.69566725159348},{"time":"2026-09-15T14:15:00-04:00","shares":-73,"pnl":58.45990047455416},{"time":"2026-09-15T14:20:00-04:00","shares":-73,"pnl":57.36494503021822},{"time":"2026-09-15T14:25:00-04:00","shares":-73,"pnl":39.84454402924166},{"time":"2026-09-15T14:30:00-04:00","shares":-72,"pnl":29.31827318573596},{"time":"2026-09-15T14:35:00-04:00","shares":-72,"pnl":34.35880052948596},{"time":"2026-09-15T14:40:00-04:00","shares":-72,"pnl":24.99844896698596},{"time":"2026-09-15T14:45:00-04:00","shares":-72,"pnl":35.62552416229846},{"time":"2026-09-15T14:50:00-04:00","shares":-72,"pnl":37.85794603729846},{"time":"2026-09-15T14:55:00-04:00","shares":-71,"pnl":31.09792881775502},{"time":"2026-09-15T15:00:00-04:00","shares":-70,"pnl":28.535852737431924},{"time":"2026-09-15T15:05:00-04:00","shares":-69,"pnl":38.81159289551215},{"time":"2026-09-15T15:10:00-04:00","shares":-69,"pnl":35.002358276371524},{"time":"2026-09-15T15:15:00-04:00","shares":-62,"pnl":34.288304389958284},{"time":"2026-09-15T15:20:00-04:00","shares":-62,"pnl":29.01788813019266},{"time":"2026-09-15T15:25:00-04:00","shares":-61,"pnl":31.962024284366635},{"time":"2026-09-15T15:30:00-04:00","shares":-61,"pnl":26.69191320038226},{"time":"2026-09-15T15:35:00-04:00","shares":-61,"pnl":33.48758275604632},{"time":"2026-09-15T15:40:00-04:00","shares":-2,"pnl":27.64281858063077},{"time":"2026-09-15T15:45:00-04:00","shares":-2,"pnl":27.41283811188077},{"time":"2026-09-15T15:50:00-04:00","shares":0,"pnl":27.21091788483}],"summary":{"net_pnl":27.21091788483,"gross_pnl":91.0298004150424,"cost":63.8188825302124,"fill_count":42,"ending_shares":0},"source_hashes":{"fills_sha256":"1773d880309aa6ed18571f60367dd6e70228364185393bc15b0a014e80df66d1","marks_sha256":"ced4c0a899ef214863a89f9ef41b3be1c69e25ae1ccec8ae84788960faf4ba3d","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-15/context/PLTR.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"PLTR","date":"2026-09-15","variant":"context","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-15T15:50:00-04:00","partial":true,"starting_equity":47958.07,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-15T09:30:00-04:00","session_close":"2026-09-15T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-15T09:35:00-04:00","bar_open":"2026-09-15T09:30:00-04:00","open":170.23500061035156,"high":172.13340759277344,"low":169.4499969482422,"close":169.80499267578125,"volume":1387204.0,"vwap":170.46279907226562},{"time":"2026-09-15T09:40:00-04:00","bar_open":"2026-09-15T09:35:00-04:00","open":169.77499389648438,"high":172.2299041748047,"low":169.5399932861328,"close":172.2299041748047,"volume":627332.0,"vwap":170.73386522297324},{"time":"2026-09-15T09:45:00-04:00","bar_open":"2026-09-15T09:40:00-04:00","open":171.9611053466797,"high":173.16990661621094,"low":171.92010498046875,"close":172.64999389648438,"volume":517031.0,"vwap":171.11090831786782},{"time":"2026-09-15T09:50:00-04:00","bar_open":"2026-09-15T09:45:00-04:00","open":172.64500427246094,"high":172.8000030517578,"low":171.86000061035156,"close":172.08250427246094,"volume":503368.0,"vwap":171.299421486416},{"time":"2026-09-15T09:55:00-04:00","bar_open":"2026-09-15T09:50:00-04:00","open":172.05999755859375,"high":172.75999450683594,"low":171.8800048828125,"close":172.722900390625,"volume":330285.0,"vwap":171.41276891263726},{"time":"2026-09-15T10:00:00-04:00","bar_open":"2026-09-15T09:55:00-04:00","open":172.63999938964844,"high":173.00999450683594,"low":172.42999267578125,"close":172.52499389648438,"volume":303501.0,"vwap":171.51553400790485},{"time":"2026-09-15T10:05:00-04:00","bar_open":"2026-09-15T10:00:00-04:00","open":172.5800018310547,"high":172.85499572753906,"low":171.60499572753906,"close":171.60499572753906,"volume":403545.0,"vwap":171.5656892727254},{"time":"2026-09-15T10:10:00-04:00","bar_open":"2026-09-15T10:05:00-04:00","open":171.64500427246094,"high":171.7100067138672,"low":170.64129638671875,"close":171.43499755859375,"volume":461673.0,"vwap":171.53477600528507},{"time":"2026-09-15T10:15:00-04:00","bar_open":"2026-09-15T10:10:00-04:00","open":171.42999267578125,"high":172.0749969482422,"low":170.8300018310547,"close":171.10459899902344,"volume":347441.0,"vwap":171.52066567388567},{"time":"2026-09-15T10:20:00-04:00","bar_open":"2026-09-15T10:15:00-04:00","open":171.15789794921875,"high":171.24000549316406,"low":170.86000061035156,"close":171.0,"volume":215076.0,"vwap":171.50009980362142},{"time":"2026-09-15T10:25:00-04:00","bar_open":"2026-09-15T10:20:00-04:00","open":171.05999755859375,"high":171.05999755859375,"low":170.5500030517578,"close":170.84849548339844,"volume":327077.0,"vwap":171.45905479332086},{"time":"2026-09-15T10:30:00-04:00","bar_open":"2026-09-15T10:25:00-04:00","open":170.82000732421875,"high":170.9199981689453,"low":170.5850067138672,"close":170.58999633789062,"volume":123336.0,"vwap":171.44213997312164},{"time":"2026-09-15T10:35:00-04:00","bar_open":"2026-09-15T10:30:00-04:00","open":170.58999633789062,"high":170.85000610351562,"low":170.5,"close":170.67999267578125,"volume":459785.0,"vwap":171.38354606521628},{"time":"2026-09-15T10:40:00-04:00","bar_open":"2026-09-15T10:35:00-04:00","open":170.67999267578125,"high":171.10000610351562,"low":170.625,"close":171.0399932861328,"volume":207737.0,"vwap":171.36810618013652},{"time":"2026-09-15T10:45:00-04:00","bar_open":"2026-09-15T10:40:00-04:00","open":171.00999450683594,"high":171.1999969482422,"low":170.55999755859375,"close":170.85499572753906,"volume":325896.0,"vwap":171.3433689304499},{"time":"2026-09-15T10:50:00-04:00","bar_open":"2026-09-15T10:45:00-04:00","open":170.72000122070312,"high":170.97000122070312,"low":170.6699981689453,"close":170.85000610351562,"volume":125009.0,"vwap":171.33374062471103},{"time":"2026-09-15T10:55:00-04:00","bar_open":"2026-09-15T10:50:00-04:00","open":170.8300018310547,"high":170.86990356445312,"low":170.45899963378906,"close":170.75999450683594,"volume":140816.0,"vwap":171.32055219250037},{"time":"2026-09-15T11:00:00-04:00","bar_open":"2026-09-15T10:55:00-04:00","open":170.7899932861328,"high":171.24989318847656,"low":170.5500030517578,"close":170.8350067138672,"volume":187058.0,"vwap":171.30872256066982},{"time":"2026-09-15T11:05:00-04:00","bar_open":"2026-09-15T11:00:00-04:00","open":170.82000732421875,"high":171.4799041748047,"low":170.72999572753906,"close":171.40499877929688,"volume":133554.0,"vwap":171.30677817874084},{"time":"2026-09-15T11:10:00-04:00","bar_open":"2026-09-15T11:05:00-04:00","open":171.4149932861328,"high":172.125,"low":171.3000030517578,"close":172.11000061035156,"volume":265122.0,"vwap":171.32608252698228},{"time":"2026-09-15T11:15:00-04:00","bar_open":"2026-09-15T11:10:00-04:00","open":172.11000061035156,"high":172.25,"low":171.60000610351562,"close":171.73060607910156,"volume":215691.0,"vwap":171.34122608892176},{"time":"2026-09-15T11:20:00-04:00","bar_open":"2026-09-15T11:15:00-04:00","open":171.77999877929688,"high":172.36500549316406,"low":171.75999450683594,"close":172.08999633789062,"volume":236185.0,"vwap":171.36322059861283},{"time":"2026-09-15T11:25:00-04:00","bar_open":"2026-09-15T11:20:00-04:00","open":172.07000732421875,"high":172.16000366210938,"low":171.64999389648438,"close":171.8800048828125,"volume":132034.0,"vwap":171.37205150136347},{"time":"2026-09-15T11:30:00-04:00","bar_open":"2026-09-15T11:25:00-04:00","open":171.8699951171875,"high":171.8800048828125,"low":171.64999389648438,"close":171.6999969482422,"volume":84895.0,"vwap":171.37596183692094},{"time":"2026-09-15T11:35:00-04:00","bar_open":"2026-09-15T11:30:00-04:00","open":171.7100067138672,"high":172.5,"low":171.64999389648438,"close":172.27000427246094,"volume":238629.0,"vwap":171.3979301904612},{"time":"2026-09-15T11:40:00-04:00","bar_open":"2026-09-15T11:35:00-04:00","open":172.3199005126953,"high":172.5,"low":172.25,"close":172.3300018310547,"volume":126481.0,"vwap":171.41237204666604},{"time":"2026-09-15T11:45:00-04:00","bar_open":"2026-09-15T11:40:00-04:00","open":172.3551025390625,"high":172.82000732421875,"low":172.3551025390625,"close":172.75999450683594,"volume":117711.0,"vwap":171.42935553583592},{"time":"2026-09-15T11:50:00-04:00","bar_open":"2026-09-15T11:45:00-04:00","open":172.7686004638672,"high":172.82000732421875,"low":172.39999389648438,"close":172.63499450683594,"volume":154142.0,"vwap":171.45042696946587},{"time":"2026-09-15T11:55:00-04:00","bar_open":"2026-09-15T11:50:00-04:00","open":172.6027069091797,"high":172.92999267578125,"low":172.52999877929688,"close":172.76370239257812,"volume":155729.0,"vwap":171.47313202730365},{"time":"2026-09-15T12:00:00-04:00","bar_open":"2026-09-15T11:55:00-04:00","open":172.7449951171875,"high":173.49000549316406,"low":172.72999572753906,"close":173.46009826660156,"volume":246892.0,"vwap":171.52070682748425},{"time":"2026-09-15T12:05:00-04:00","bar_open":"2026-09-15T12:00:00-04:00","open":173.46609497070312,"high":173.57989501953125,"low":172.86000061035156,"close":172.9499969482422,"volume":230974.0,"vwap":171.5605405307777},{"time":"2026-09-15T12:10:00-04:00","bar_open":"2026-09-15T12:05:00-04:00","open":172.96499633789062,"high":173.60000610351562,"low":172.60000610351562,"close":173.4199981689453,"volume":413756.0,"vwap":171.63043262341444},{"time":"2026-09-15T12:15:00-04:00","bar_open":"2026-09-15T12:10:00-04:00","open":173.38999938964844,"high":173.47999572753906,"low":173.07000732421875,"close":173.3679962158203,"volume":158838.0,"vwap":171.65730550569847},{"time":"2026-09-15T12:20:00-04:00","bar_open":"2026-09-15T12:15:00-04:00","open":173.3300018310547,"high":173.8800048828125,"low":173.17999267578125,"close":173.86000061035156,"volume":180756.0,"vwap":171.69284338253445},{"time":"2026-09-15T12:25:00-04:00","bar_open":"2026-09-15T12:20:00-04:00","open":173.8699951171875,"high":173.9499969482422,"low":173.2183074951172,"close":173.64999389648438,"volume":251760.0,"vwap":171.73944424176614},{"time":"2026-09-15T12:30:00-04:00","bar_open":"2026-09-15T12:25:00-04:00","open":173.6699981689453,"high":174.26829528808594,"low":173.57000732421875,"close":174.2030029296875,"volume":220602.0,"vwap":171.78696950818642},{"time":"2026-09-15T12:35:00-04:00","bar_open":"2026-09-15T12:30:00-04:00","open":174.21499633789062,"high":174.8800048828125,"low":174.2100067138672,"close":174.6199951171875,"volume":358110.0,"vwap":171.8782777097717},{"time":"2026-09-15T12:40:00-04:00","bar_open":"2026-09-15T12:35:00-04:00","open":174.64999389648438,"high":174.75999450683594,"low":174.30999755859375,"close":174.5500030517578,"volume":252938.0,"vwap":171.93856175076098},{"time":"2026-09-15T12:45:00-04:00","bar_open":"2026-09-15T12:40:00-04:00","open":174.5500030517578,"high":174.5800018310547,"low":174.2310028076172,"close":174.35499572753906,"volume":129300.0,"vwap":171.9666038006945},{"time":"2026-09-15T12:50:00-04:00","bar_open":"2026-09-15T12:45:00-04:00","open":174.35000610351562,"high":174.9398956298828,"low":174.10000610351562,"close":174.92999267578125,"volume":269099.0,"vwap":172.02918902673164},{"time":"2026-09-15T12:55:00-04:00","bar_open":"2026-09-15T12:50:00-04:00","open":174.94000244140625,"high":175.25,"low":174.74000549316406,"close":175.2100067138672,"volume":393447.0,"vwap":172.12911432373159},{"time":"2026-09-15T13:00:00-04:00","bar_open":"2026-09-15T12:55:00-04:00","open":175.2100067138672,"high":175.27999877929688,"low":174.85000610351562,"close":175.1699981689453,"volume":1313331.0,"vwap":172.42307308769674},{"time":"2026-09-15T13:05:00-04:00","bar_open":"2026-09-15T13:00:00-04:00","open":175.17999267578125,"high":175.7299041748047,"low":175.0500030517578,"close":175.69500732421875,"volume":287193.0,"vwap":172.48806190660355},{"time":"2026-09-15T13:10:00-04:00","bar_open":"2026-09-15T13:05:00-04:00","open":175.69500732421875,"high":175.69500732421875,"low":175.0,"close":175.35000610351562,"volume":271175.0,"vwap":172.54413930477548},{"time":"2026-09-15T13:15:00-04:00","bar_open":"2026-09-15T13:10:00-04:00","open":175.3699951171875,"high":175.88999938964844,"low":175.35000610351562,"close":175.39999389648438,"volume":237382.0,"vwap":172.59480041577703},{"time":"2026-09-15T13:20:00-04:00","bar_open":"2026-09-15T13:15:00-04:00","open":175.44500732421875,"high":176.4600067138672,"low":175.3300018310547,"close":176.3000030517578,"volume":417575.0,"vwap":172.69382074174482},{"time":"2026-09-15T13:25:00-04:00","bar_open":"2026-09-15T13:20:00-04:00","open":176.3625030517578,"high":176.58999633789062,"low":175.8699951171875,"close":176.3800048828125,"volume":275968.0,"vwap":172.76086050263172},{"time":"2026-09-15T13:30:00-04:00","bar_open":"2026-09-15T13:25:00-04:00","open":176.42999267578125,"high":176.57789611816406,"low":175.84010314941406,"close":175.91000366210938,"volume":206204.0,"vwap":172.80698817719465},{"time":"2026-09-15T13:35:00-04:00","bar_open":"2026-09-15T13:30:00-04:00","open":175.92999267578125,"high":176.0198974609375,"low":175.55999755859375,"close":175.96499633789062,"volume":217638.0,"vwap":172.8505738579487},{"time":"2026-09-15T13:40:00-04:00","bar_open":"2026-09-15T13:35:00-04:00","open":175.92999267578125,"high":176.11500549316406,"low":175.2200927734375,"close":176.0500030517578,"volume":206780.0,"vwap":172.89012774662555},{"time":"2026-09-15T13:45:00-04:00","bar_open":"2026-09-15T13:40:00-04:00","open":176.0500030517578,"high":176.3199005126953,"low":175.69000244140625,"close":175.82000732421875,"volume":193013.0,"vwap":172.9279373064559},{"time":"2026-09-15T13:50:00-04:00","bar_open":"2026-09-15T13:45:00-04:00","open":175.76499938964844,"high":175.8800048828125,"low":175.24000549316406,"close":175.25,"volume":160644.0,"vwap":172.95373479358653},{"time":"2026-09-15T13:55:00-04:00","bar_open":"2026-09-15T13:50:00-04:00","open":175.25,"high":175.3000030517578,"low":174.30999755859375,"close":174.4600067138672,"volume":246341.0,"vwap":172.9804785146365},{"time":"2026-09-15T14:00:00-04:00","bar_open":"2026-09-15T13:55:00-04:00","open":174.4600067138672,"high":174.55999755859375,"low":174.125,"close":174.20269775390625,"volume":162889.0,"vwap":172.99374096360052},{"time":"2026-09-15T14:05:00-04:00","bar_open":"2026-09-15T14:00:00-04:00","open":174.19000244140625,"high":174.33990478515625,"low":173.55499267578125,"close":173.55499267578125,"volume":223509.0,"vwap":173.00496985328974},{"time":"2026-09-15T14:10:00-04:00","bar_open":"2026-09-15T14:05:00-04:00","open":173.57000732421875,"high":174.139892578125,"low":173.00999450683594,"close":174.09500122070312,"volume":300811.0,"vwap":173.01837495638324},{"time":"2026-09-15T14:15:00-04:00","bar_open":"2026-09-15T14:10:00-04:00","open":174.09500122070312,"high":174.94000244140625,"low":173.63999938964844,"close":174.83279418945312,"volume":315169.0,"vwap":173.04531165433542},{"time":"2026-09-15T14:20:00-04:00","bar_open":"2026-09-15T14:15:00-04:00","open":174.83999633789062,"high":174.875,"low":174.4499969482422,"close":174.77999877929688,"volume":232448.0,"vwap":173.0676600783506},{"time":"2026-09-15T14:25:00-04:00","bar_open":"2026-09-15T14:20:00-04:00","open":174.7550048828125,"high":175.1999969482422,"low":174.6269989013672,"close":175.05499267578125,"volume":296310.0,"vwap":173.0996681476991},{"time":"2026-09-15T14:30:00-04:00","bar_open":"2026-09-15T14:25:00-04:00","open":175.05499267578125,"high":175.47000122070312,"low":175.0,"close":175.36500549316406,"volume":198978.0,"vwap":173.12412803908597},{"time":"2026-09-15T14:35:00-04:00","bar_open":"2026-09-15T14:30:00-04:00","open":175.375,"high":175.39999389648438,"low":174.9149932861328,"close":174.92669677734375,"volume":226772.0,"vwap":173.14884478824465},{"time":"2026-09-15T14:40:00-04:00","bar_open":"2026-09-15T14:35:00-04:00","open":174.9199981689453,"high":175.35000610351562,"low":174.89999389648438,"close":175.24000549316406,"volume":268604.0,"vwap":173.17854529694011},{"time":"2026-09-15T14:45:00-04:00","bar_open":"2026-09-15T14:40:00-04:00","open":175.24000549316406,"high":175.36500549316406,"low":175.0,"close":175.14500427246094,"volume":125379.0,"vwap":173.1921567223311},{"time":"2026-09-15T14:50:00-04:00","bar_open":"2026-09-15T14:45:00-04:00","open":175.1199951171875,"high":175.13999938964844,"low":174.19000244140625,"close":174.57000732421875,"volume":372813.0,"vwap":173.22086313621014},{"time":"2026-09-15T14:55:00-04:00","bar_open":"2026-09-15T14:50:00-04:00","open":174.5800018310547,"high":174.8699951171875,"low":174.35000610351562,"close":174.63999938964844,"volume":186804.0,"vwap":173.23468934715146},{"time":"2026-09-15T15:00:00-04:00","bar_open":"2026-09-15T14:55:00-04:00","open":174.55999755859375,"high":174.639892578125,"low":174.35009765625,"close":174.61309814453125,"volume":123987.0,"vwap":173.24315826532364},{"time":"2026-09-15T15:05:00-04:00","bar_open":"2026-09-15T15:00:00-04:00","open":174.6009979248047,"high":175.10000610351562,"low":174.6009979248047,"close":174.87249755859375,"volume":232609.0,"vwap":173.26265906108304},{"time":"2026-09-15T15:10:00-04:00","bar_open":"2026-09-15T15:05:00-04:00","open":174.9114990234375,"high":174.94000244140625,"low":173.8000030517578,"close":174.52499389648438,"volume":314057.0,"vwap":173.28125468312035},{"time":"2026-09-15T15:15:00-04:00","bar_open":"2026-09-15T15:10:00-04:00","open":174.52499389648438,"high":174.5800018310547,"low":173.5,"close":173.7100067138672,"volume":228241.0,"vwap":173.28873209183604},{"time":"2026-09-15T15:20:00-04:00","bar_open":"2026-09-15T15:15:00-04:00","open":173.68499755859375,"high":174.1699981689453,"low":173.4499969482422,"close":173.9250030517578,"volume":232823.0,"vwap":173.29523502140816},{"time":"2026-09-15T15:25:00-04:00","bar_open":"2026-09-15T15:20:00-04:00","open":173.9250030517578,"high":174.10000610351562,"low":173.74000549316406,"close":173.75,"volume":97548.0,"vwap":173.29798760444098},{"time":"2026-09-15T15:30:00-04:00","bar_open":"2026-09-15T15:25:00-04:00","open":173.7689971923828,"high":174.0198974609375,"low":173.6199951171875,"close":173.67999267578125,"volume":209213.0,"vwap":173.3028760319024},{"time":"2026-09-15T15:35:00-04:00","bar_open":"2026-09-15T15:30:00-04:00","open":173.7100067138672,"high":173.84500122070312,"low":173.4600067138672,"close":173.61000061035156,"volume":184007.0,"vwap":173.30588328736158},{"time":"2026-09-15T15:40:00-04:00","bar_open":"2026-09-15T15:35:00-04:00","open":173.61000061035156,"high":173.6300048828125,"low":172.7899932861328,"close":173.14999389648438,"volume":355355.0,"vwap":173.303911165041},{"time":"2026-09-15T15:45:00-04:00","bar_open":"2026-09-15T15:40:00-04:00","open":173.14999389648438,"high":173.15499877929688,"low":172.80999755859375,"close":173.07000732421875,"volume":241299.0,"vwap":173.30057266834908},{"time":"2026-09-15T15:50:00-04:00","bar_open":"2026-09-15T15:45:00-04:00","open":173.0850067138672,"high":173.2198944091797,"low":172.08999633789062,"close":172.55999755859375,"volume":604706.0,"vwap":173.28172304106303}],"fills":[{"time":"2026-09-15T09:35:00-04:00","action":"X","shares":197,"quantity":-197,"price":169.69010639953615,"reference_price":169.77499389648438,"shares_before":0,"shares_after":-197,"assumed_cost":16.72283689880371,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:35:00-04:00","pnl":null},{"time":"2026-09-15T09:40:00-04:00","action":"C","shares":177,"quantity":177,"price":172.04708589935302,"reference_price":171.9611053466797,"shares_before":-197,"shares_after":-20,"assumed_cost":15.218557823181152,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:40:00-04:00","pnl":null},{"time":"2026-09-15T09:45:00-04:00","action":"C","shares":15,"quantity":15,"price":172.73132677459716,"reference_price":172.64500427246094,"shares_before":-20,"shares_after":-5,"assumed_cost":1.294837532043457,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:45:00-04:00","pnl":null},{"time":"2026-09-15T09:55:00-04:00","action":"C","shares":5,"quantity":5,"price":172.72631938934325,"reference_price":172.63999938964844,"shares_before":-5,"shares_after":0,"assumed_cost":0.4315999984741211,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:55:00-04:00","pnl":null},{"time":"2026-09-15T09:55:00-04:00","action":"B","shares":79,"quantity":79,"price":172.72631938934325,"reference_price":172.63999938964844,"shares_before":0,"shares_after":79,"assumed_cost":6.819279975891114,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:55:00-04:00","pnl":null},{"time":"2026-09-15T10:05:00-04:00","action":"B","shares":34,"quantity":34,"price":171.73082677459715,"reference_price":171.64500427246094,"shares_before":79,"shares_after":113,"assumed_cost":2.917965072631836,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:05:00-04:00","pnl":null},{"time":"2026-09-15T10:10:00-04:00","action":"S","shares":1,"quantity":-1,"price":171.34427767944337,"reference_price":171.42999267578125,"shares_before":113,"shares_after":112,"assumed_cost":0.0857149963378906,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:10:00-04:00","pnl":null},{"time":"2026-09-15T10:15:00-04:00","action":"S","shares":1,"quantity":-1,"price":171.07231900024416,"reference_price":171.15789794921875,"shares_before":112,"shares_after":111,"assumed_cost":0.0855789489746093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:15:00-04:00","pnl":null},{"time":"2026-09-15T10:20:00-04:00","action":"S","shares":69,"quantity":-69,"price":170.97446755981446,"reference_price":171.05999755859375,"shares_before":111,"shares_after":42,"assumed_cost":5.901569915771485,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:20:00-04:00","pnl":null},{"time":"2026-09-15T10:25:00-04:00","action":"B","shares":14,"quantity":14,"price":170.90541732788083,"reference_price":170.82000732421875,"shares_before":42,"shares_after":56,"assumed_cost":1.195740051269531,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:25:00-04:00","pnl":null},{"time":"2026-09-15T10:30:00-04:00","action":"B","shares":27,"quantity":27,"price":170.67529133605956,"reference_price":170.58999633789062,"shares_before":56,"shares_after":83,"assumed_cost":2.3029649505615235,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:30:00-04:00","pnl":null},{"time":"2026-09-15T10:35:00-04:00","action":"S","shares":31,"quantity":-31,"price":170.59465267944336,"reference_price":170.67999267578125,"shares_before":83,"shares_after":52,"assumed_cost":2.6455398864746096,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:35:00-04:00","pnl":null},{"time":"2026-09-15T10:40:00-04:00","action":"B","shares":5,"quantity":5,"price":171.09549950408933,"reference_price":171.00999450683594,"shares_before":52,"shares_after":57,"assumed_cost":0.4275249862670898,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:40:00-04:00","pnl":null},{"time":"2026-09-15T10:45:00-04:00","action":"S","shares":27,"quantity":-27,"price":170.6346412200928,"reference_price":170.72000122070312,"shares_before":57,"shares_after":30,"assumed_cost":2.304720016479492,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:45:00-04:00","pnl":null},{"time":"2026-09-15T10:50:00-04:00","action":"B","shares":96,"quantity":96,"price":170.91541683197022,"reference_price":170.8300018310547,"shares_before":30,"shares_after":126,"assumed_cost":8.199840087890625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:50:00-04:00","pnl":null},{"time":"2026-09-15T10:55:00-04:00","action":"S","shares":23,"quantity":-23,"price":170.70459828948975,"reference_price":170.7899932861328,"shares_before":126,"shares_after":103,"assumed_cost":1.9640849227905277,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:55:00-04:00","pnl":null},{"time":"2026-09-15T11:10:00-04:00","action":"S","shares":35,"quantity":-35,"price":172.02394561004638,"reference_price":172.11000061035156,"shares_before":103,"shares_after":68,"assumed_cost":3.011925010681152,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:10:00-04:00","pnl":null},{"time":"2026-09-15T11:15:00-04:00","action":"S","shares":57,"quantity":-57,"price":171.69410877990722,"reference_price":171.77999877929688,"shares_before":68,"shares_after":11,"assumed_cost":4.895729965209961,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:15:00-04:00","pnl":null},{"time":"2026-09-15T11:30:00-04:00","action":"S","shares":11,"quantity":-11,"price":171.62415171051026,"reference_price":171.7100067138672,"shares_before":11,"shares_after":0,"assumed_cost":0.9444050369262696,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:30:00-04:00","pnl":null},{"time":"2026-09-15T11:30:00-04:00","action":"X","shares":49,"quantity":-49,"price":171.62415171051026,"reference_price":171.7100067138672,"shares_before":0,"shares_after":-49,"assumed_cost":4.206895164489746,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:30:00-04:00","pnl":null},{"time":"2026-09-15T11:35:00-04:00","action":"C","shares":33,"quantity":33,"price":172.40606046295164,"reference_price":172.3199005126953,"shares_before":-49,"shares_after":-16,"assumed_cost":2.8432783584594725,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:35:00-04:00","pnl":null},{"time":"2026-09-15T11:40:00-04:00","action":"C","shares":10,"quantity":10,"price":172.441280090332,"reference_price":172.3551025390625,"shares_before":-16,"shares_after":-6,"assumed_cost":0.8617755126953125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:40:00-04:00","pnl":null},{"time":"2026-09-15T11:50:00-04:00","action":"C","shares":6,"quantity":6,"price":172.68900826263427,"reference_price":172.6027069091797,"shares_before":-6,"shares_after":0,"assumed_cost":0.517808120727539,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:50:00-04:00","pnl":null},{"time":"2026-09-15T11:50:00-04:00","action":"B","shares":102,"quantity":102,"price":172.68900826263427,"reference_price":172.6027069091797,"shares_before":0,"shares_after":102,"assumed_cost":8.802738052368165,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:50:00-04:00","pnl":null},{"time":"2026-09-15T11:55:00-04:00","action":"S","shares":1,"quantity":-1,"price":172.65862261962891,"reference_price":172.7449951171875,"shares_before":102,"shares_after":101,"assumed_cost":0.0863724975585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:55:00-04:00","pnl":null},{"time":"2026-09-15T12:05:00-04:00","action":"B","shares":27,"quantity":27,"price":173.05147883605957,"reference_price":172.96499633789062,"shares_before":101,"shares_after":128,"assumed_cost":2.3350274505615234,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:05:00-04:00","pnl":null},{"time":"2026-09-15T12:10:00-04:00","action":"B","shares":3,"quantity":3,"price":173.4766943893433,"reference_price":173.38999938964844,"shares_before":128,"shares_after":131,"assumed_cost":0.2600849990844726,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:10:00-04:00","pnl":null},{"time":"2026-09-15T12:15:00-04:00","action":"B","shares":57,"quantity":57,"price":173.41666683197022,"reference_price":173.3300018310547,"shares_before":131,"shares_after":188,"assumed_cost":4.9399050521850585,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:15:00-04:00","pnl":null},{"time":"2026-09-15T12:20:00-04:00","action":"S","shares":15,"quantity":-15,"price":173.7830601196289,"reference_price":173.8699951171875,"shares_before":188,"shares_after":173,"assumed_cost":1.3040249633789065,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:20:00-04:00","pnl":null},{"time":"2026-09-15T12:30:00-04:00","action":"S","shares":56,"quantity":-56,"price":174.1278888397217,"reference_price":174.21499633789062,"shares_before":173,"shares_after":117,"assumed_cost":4.878019897460938,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:30:00-04:00","pnl":null},{"time":"2026-09-15T12:35:00-04:00","action":"S","shares":1,"quantity":-1,"price":174.5626688995361,"reference_price":174.64999389648438,"shares_before":117,"shares_after":116,"assumed_cost":0.0873249969482421,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:35:00-04:00","pnl":null},{"time":"2026-09-15T12:45:00-04:00","action":"S","shares":1,"quantity":-1,"price":174.26283110046387,"reference_price":174.35000610351562,"shares_before":116,"shares_after":115,"assumed_cost":0.0871750030517578,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:45:00-04:00","pnl":null},{"time":"2026-09-15T12:50:00-04:00","action":"B","shares":12,"quantity":12,"price":175.02747244262693,"reference_price":174.94000244140625,"shares_before":115,"shares_after":127,"assumed_cost":1.0496400146484377,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:50:00-04:00","pnl":null},{"time":"2026-09-15T12:55:00-04:00","action":"S","shares":47,"quantity":-47,"price":175.12240171051027,"reference_price":175.2100067138672,"shares_before":127,"shares_after":80,"assumed_cost":4.117435157775879,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:55:00-04:00","pnl":null},{"time":"2026-09-15T13:00:00-04:00","action":"S","shares":7,"quantity":-7,"price":175.09240267944338,"reference_price":175.17999267578125,"shares_before":80,"shares_after":73,"assumed_cost":0.6131299743652344,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:00:00-04:00","pnl":null},{"time":"2026-09-15T13:05:00-04:00","action":"B","shares":111,"quantity":111,"price":175.78285482788084,"reference_price":175.69500732421875,"shares_before":73,"shares_after":184,"assumed_cost":9.75107290649414,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:05:00-04:00","pnl":null},{"time":"2026-09-15T13:10:00-04:00","action":"B","shares":3,"quantity":3,"price":175.4576801147461,"reference_price":175.3699951171875,"shares_before":184,"shares_after":187,"assumed_cost":0.2630549926757812,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:10:00-04:00","pnl":null},{"time":"2026-09-15T13:15:00-04:00","action":"S","shares":1,"quantity":-1,"price":175.35728482055666,"reference_price":175.44500732421875,"shares_before":187,"shares_after":186,"assumed_cost":0.0877225036621093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:15:00-04:00","pnl":null},{"time":"2026-09-15T13:20:00-04:00","action":"S","shares":1,"quantity":-1,"price":176.27432180023197,"reference_price":176.3625030517578,"shares_before":186,"shares_after":185,"assumed_cost":0.0881812515258789,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:20:00-04:00","pnl":null},{"time":"2026-09-15T13:25:00-04:00","action":"S","shares":84,"quantity":-84,"price":176.34177767944337,"reference_price":176.42999267578125,"shares_before":185,"shares_after":101,"assumed_cost":7.410059692382813,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:25:00-04:00","pnl":null},{"time":"2026-09-15T13:30:00-04:00","action":"S","shares":28,"quantity":-28,"price":175.84202767944336,"reference_price":175.92999267578125,"shares_before":101,"shares_after":73,"assumed_cost":2.4630198974609376,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:30:00-04:00","pnl":null},{"time":"2026-09-15T13:35:00-04:00","action":"S","shares":73,"quantity":-73,"price":175.84202767944336,"reference_price":175.92999267578125,"shares_before":73,"shares_after":0,"assumed_cost":6.421444732666016,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:35:00-04:00","pnl":null},{"time":"2026-09-15T14:05:00-04:00","action":"B","shares":48,"quantity":48,"price":173.65679232788085,"reference_price":173.57000732421875,"shares_before":0,"shares_after":48,"assumed_cost":4.16568017578125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:05:00-04:00","pnl":null},{"time":"2026-09-15T14:15:00-04:00","action":"S","shares":1,"quantity":-1,"price":174.75257633972168,"reference_price":174.83999633789062,"shares_before":48,"shares_after":47,"assumed_cost":0.0874199981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:15:00-04:00","pnl":null},{"time":"2026-09-15T14:20:00-04:00","action":"S","shares":23,"quantity":-23,"price":174.6676273803711,"reference_price":174.7550048828125,"shares_before":47,"shares_after":24,"assumed_cost":2.009682556152344,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:20:00-04:00","pnl":null},{"time":"2026-09-15T14:25:00-04:00","action":"S","shares":24,"quantity":-24,"price":174.96746517944337,"reference_price":175.05499267578125,"shares_before":24,"shares_after":0,"assumed_cost":2.100659912109375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:25:00-04:00","pnl":null},{"time":"2026-09-15T14:25:00-04:00","action":"X","shares":5,"quantity":-5,"price":174.96746517944337,"reference_price":175.05499267578125,"shares_before":0,"shares_after":-5,"assumed_cost":0.4376374816894531,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:25:00-04:00","pnl":null},{"time":"2026-09-15T14:30:00-04:00","action":"X","shares":87,"quantity":-87,"price":175.2873125,"reference_price":175.375,"shares_before":-5,"shares_after":-92,"assumed_cost":7.6288125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:30:00-04:00","pnl":null},{"time":"2026-09-15T14:35:00-04:00","action":"C","shares":42,"quantity":42,"price":175.0074581680298,"reference_price":174.9199981689453,"shares_before":-92,"shares_after":-50,"assumed_cost":3.6733199615478513,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:35:00-04:00","pnl":null},{"time":"2026-09-15T14:40:00-04:00","action":"C","shares":5,"quantity":5,"price":175.32762549591064,"reference_price":175.24000549316406,"shares_before":-50,"shares_after":-45,"assumed_cost":0.4381000137329101,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:40:00-04:00","pnl":null},{"time":"2026-09-15T14:45:00-04:00","action":"C","shares":32,"quantity":32,"price":175.20755511474607,"reference_price":175.1199951171875,"shares_before":-45,"shares_after":-13,"assumed_cost":2.801919921875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:45:00-04:00","pnl":null},{"time":"2026-09-15T14:50:00-04:00","action":"C","shares":13,"quantity":13,"price":174.6672918319702,"reference_price":174.5800018310547,"shares_before":-13,"shares_after":0,"assumed_cost":1.1347700119018556,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:50:00-04:00","pnl":null},{"time":"2026-09-15T14:50:00-04:00","action":"B","shares":9,"quantity":9,"price":174.6672918319702,"reference_price":174.5800018310547,"shares_before":0,"shares_after":9,"assumed_cost":0.7856100082397461,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:50:00-04:00","pnl":null},{"time":"2026-09-15T15:05:00-04:00","action":"B","shares":35,"quantity":35,"price":174.99895477294922,"reference_price":174.9114990234375,"shares_before":9,"shares_after":44,"assumed_cost":3.060951232910156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:05:00-04:00","pnl":null},{"time":"2026-09-15T15:10:00-04:00","action":"B","shares":136,"quantity":136,"price":174.6122563934326,"reference_price":174.52499389648438,"shares_before":44,"shares_after":180,"assumed_cost":11.867699584960938,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:10:00-04:00","pnl":null},{"time":"2026-09-15T15:20:00-04:00","action":"S","shares":106,"quantity":-106,"price":173.83804055023194,"reference_price":173.9250030517578,"shares_before":180,"shares_after":74,"assumed_cost":9.218025161743164,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:20:00-04:00","pnl":null},{"time":"2026-09-15T15:25:00-04:00","action":"S","shares":14,"quantity":-14,"price":173.68211269378662,"reference_price":173.7689971923828,"shares_before":74,"shares_after":60,"assumed_cost":1.2163829803466797,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:25:00-04:00","pnl":null},{"time":"2026-09-15T15:30:00-04:00","action":"S","shares":60,"quantity":-60,"price":173.62315171051026,"reference_price":173.7100067138672,"shares_before":60,"shares_after":0,"assumed_cost":5.211300201416016,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:30:00-04:00","pnl":null},{"time":"2026-09-15T15:30:00-04:00","action":"X","shares":35,"quantity":-35,"price":173.62315171051026,"reference_price":173.7100067138672,"shares_before":0,"shares_after":-35,"assumed_cost":3.039925117492676,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:30:00-04:00","pnl":null},{"time":"2026-09-15T15:35:00-04:00","action":"C","shares":35,"quantity":35,"price":173.69680561065672,"reference_price":173.61000061035156,"shares_before":-35,"shares_after":0,"assumed_cost":3.0381750106811523,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:35:00-04:00","pnl":null},{"time":"2026-09-15T15:35:00-04:00","action":"B","shares":11,"quantity":11,"price":173.69680561065672,"reference_price":173.61000061035156,"shares_before":0,"shares_after":11,"assumed_cost":0.9548550033569336,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:35:00-04:00","pnl":null},{"time":"2026-09-15T15:45:00-04:00","action":"S","shares":11,"quantity":-11,"price":172.99846421051026,"reference_price":173.0850067138672,"shares_before":11,"shares_after":0,"assumed_cost":0.9519675369262696,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:45:00-04:00","pnl":null}],"marks":[{"time":"2026-09-15T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:40:00-04:00","shares":-197,"pnl":-500.34016172790143},{"time":"2026-09-15T09:45:00-04:00","shares":-20,"pnl":-476.3831214065504},{"time":"2026-09-15T09:50:00-04:00","shares":-5,"pnl":-474.765666458125},{"time":"2026-09-15T09:55:00-04:00","shares":-5,"pnl":-477.9676470489453},{"time":"2026-09-15T10:00:00-04:00","shares":79,"pnl":-493.88945597838574},{"time":"2026-09-15T10:05:00-04:00","shares":79,"pnl":-566.5693113250654},{"time":"2026-09-15T10:10:00-04:00","shares":113,"pnl":-590.0573600158605},{"time":"2026-09-15T10:15:00-04:00","shares":112,"pnl":-627.1527185668856},{"time":"2026-09-15T10:20:00-04:00","shares":111,"pnl":-638.7954874572679},{"time":"2026-09-15T10:25:00-04:00","shares":42,"pnl":-646.9204155273364},{"time":"2026-09-15T10:30:00-04:00","shares":56,"pnl":-662.1932734985276},{"time":"2026-09-15T10:35:00-04:00","shares":83,"pnl":-657.0265424041681},{"time":"2026-09-15T10:40:00-04:00","shares":52,"pnl":-640.9520505523615},{"time":"2026-09-15T10:45:00-04:00","shares":57,"pnl":-651.7744424819884},{"time":"2026-09-15T10:50:00-04:00","shares":30,"pnl":-657.8737029037411},{"time":"2026-09-15T10:55:00-04:00","shares":126,"pnl":-675.4945940170219},{"time":"2026-09-15T11:00:00-04:00","shares":103,"pnl":-669.0424496917658},{"time":"2026-09-15T11:05:00-04:00","shares":103,"pnl":-610.333266952508},{"time":"2026-09-15T11:10:00-04:00","shares":103,"pnl":-537.7180783538752},{"time":"2026-09-15T11:15:00-04:00","shares":68,"pnl":-566.5288314895552},{"time":"2026-09-15T11:20:00-04:00","shares":11,"pnl":-564.6558846969529},{"time":"2026-09-15T11:25:00-04:00","shares":11,"pnl":-566.9657907028122},{"time":"2026-09-15T11:30:00-04:00","shares":11,"pnl":-568.9458779830857},{"time":"2026-09-15T11:35:00-04:00","shares":-49,"pnl":-601.4269511337188},{"time":"2026-09-15T11:40:00-04:00","shares":-16,"pnl":-606.8767663574117},{"time":"2026-09-15T11:45:00-04:00","shares":-6,"pnl":-610.5695050048726},{"time":"2026-09-15T11:50:00-04:00","shares":-6,"pnl":-609.8195050048726},{"time":"2026-09-15T11:55:00-04:00","shares":102,"pnl":-602.5247862853903},{"time":"2026-09-15T12:00:00-04:00","shares":101,"pnl":-532.2938827819708},{"time":"2026-09-15T12:05:00-04:00","shares":101,"pnl":-583.8141159362676},{"time":"2026-09-15T12:10:00-04:00","shares":128,"pnl":-526.3939706573365},{"time":"2026-09-15T12:15:00-04:00","shares":131,"pnl":-533.3763151779058},{"time":"2026-09-15T12:20:00-04:00","shares":188,"pnl":-443.6537141265726},{"time":"2026-09-15T12:25:00-04:00","shares":173,"pnl":-481.1389829864347},{"time":"2026-09-15T12:30:00-04:00","shares":173,"pnl":-385.4684202422941},{"time":"2026-09-15T12:35:00-04:00","shares":117,"pnl":-340.8867233428791},{"time":"2026-09-15T12:40:00-04:00","shares":116,"pnl":-349.0631291503741},{"time":"2026-09-15T12:45:00-04:00","shares":116,"pnl":-371.6839787597492},{"time":"2026-09-15T12:50:00-04:00","shares":115,"pnl":-305.65149433897386},{"time":"2026-09-15T12:55:00-04:00","shares":127,"pnl":-271.2594687042074},{"time":"2026-09-15T13:00:00-04:00","shares":80,"pnl":-278.577587455733},{"time":"2026-09-15T13:05:00-04:00","shares":73,"pnl":-240.7950875472852},{"time":"2026-09-15T13:10:00-04:00","shares":184,"pnl":-314.0263850631527},{"time":"2026-09-15T13:15:00-04:00","shares":187,"pnl":-305.00168981168827},{"time":"2026-09-15T13:20:00-04:00","shares":186,"pnl":-137.6426960067547},{"time":"2026-09-15T13:25:00-04:00","shares":185,"pnl":-122.8680385131629},{"time":"2026-09-15T13:30:00-04:00","shares":101,"pnl":-173.5492468871853},{"time":"2026-09-15T13:35:00-04:00","shares":73,"pnl":-171.43810906980252},{"time":"2026-09-15T13:40:00-04:00","shares":0,"pnl":-180.4148211364536},{"time":"2026-09-15T13:45:00-04:00","shares":0,"pnl":-180.4148211364536},{"time":"2026-09-15T13:50:00-04:00","shares":0,"pnl":-180.4148211364536},{"time":"2026-09-15T13:55:00-04:00","shares":0,"pnl":-180.4148211364536},{"time":"2026-09-15T14:00:00-04:00","shares":0,"pnl":-180.4148211364536},{"time":"2026-09-15T14:05:00-04:00","shares":0,"pnl":-180.4148211364536},{"time":"2026-09-15T14:10:00-04:00","shares":48,"pnl":-159.38079428098536},{"time":"2026-09-15T14:15:00-04:00","shares":48,"pnl":-123.96673178098536},{"time":"2026-09-15T14:20:00-04:00","shares":47,"pnl":-126.52833390805972},{"time":"2026-09-15T14:25:00-04:00","shares":24,"pnl":-122.5130225677276},{"time":"2026-09-15T14:30:00-04:00","shares":-5,"pnl":-126.60138404844032},{"time":"2026-09-15T14:35:00-04:00","shares":-92,"pnl":-93.03627259824498},{"time":"2026-09-15T14:40:00-04:00","shares":-50,"pnl":-112.09368679807449},{"time":"2026-09-15T14:45:00-04:00","shares":-45,"pnl":-108.25673188016664},{"time":"2026-09-15T14:50:00-04:00","shares":-13,"pnl":-102.78339850614248},{"time":"2026-09-15T14:55:00-04:00","shares":9,"pnl":-104.29372908780738},{"time":"2026-09-15T15:00:00-04:00","shares":9,"pnl":-104.53584029386208},{"time":"2026-09-15T15:05:00-04:00","shares":9,"pnl":-102.20124556729957},{"time":"2026-09-15T15:10:00-04:00","shares":44,"pnl":-121.91740920255324},{"time":"2026-09-15T15:15:00-04:00","shares":180,"pnl":-280.48280165860706},{"time":"2026-09-15T15:20:00-04:00","shares":180,"pnl":-241.78346083829456},{"time":"2026-09-15T15:25:00-04:00","shares":74,"pnl":-263.9517118301155},{"time":"2026-09-15T15:30:00-04:00","shares":60,"pnl":-269.10257357022783},{"time":"2026-09-15T15:35:00-04:00","shares":-35,"pnl":-272.05274298093263},{"time":"2026-09-15T15:40:00-04:00","shares":11,"pnl":-281.1058468475094},{"time":"2026-09-15T15:45:00-04:00","shares":11,"pnl":-281.98569914243126},{"time":"2026-09-15T15:50:00-04:00","shares":0,"pnl":-282.7726733932245}],"summary":{"net_pnl":-282.7726733932245,"gross_pnl":-78.10417175290468,"cost":204.66850164031985,"fill_count":62,"ending_shares":0},"source_hashes":{"fills_sha256":"1773d880309aa6ed18571f60367dd6e70228364185393bc15b0a014e80df66d1","marks_sha256":"ced4c0a899ef214863a89f9ef41b3be1c69e25ae1ccec8ae84788960faf4ba3d","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-15/context/SNDK.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"SNDK","date":"2026-09-15","variant":"context","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-15T15:50:00-04:00","partial":true,"starting_equity":47958.07,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-15T09:30:00-04:00","session_close":"2026-09-15T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-15T09:35:00-04:00","bar_open":"2026-09-15T09:30:00-04:00","open":1569.7099609375,"high":1579.989990234375,"low":1555.550048828125,"close":1572.280029296875,"volume":569439.0,"vwap":1569.2733561197917},{"time":"2026-09-15T09:40:00-04:00","bar_open":"2026-09-15T09:35:00-04:00","open":1572.5400390625,"high":1578.4814453125,"low":1550.010009765625,"close":1550.2587890625,"volume":275354.0,"vwap":1566.1149917323305},{"time":"2026-09-15T09:45:00-04:00","bar_open":"2026-09-15T09:40:00-04:00","open":1550.6199951171875,"high":1557.849853515625,"low":1546.1500244140625,"close":1549.6700439453125,"volume":195439.0,"vwap":1563.3171390269736},{"time":"2026-09-15T09:50:00-04:00","bar_open":"2026-09-15T09:45:00-04:00","open":1550.1600341796875,"high":1565.0999755859375,"low":1550.0899658203125,"close":1564.5050048828125,"volume":193643.0,"vwap":1562.7805925714176},{"time":"2026-09-15T09:55:00-04:00","bar_open":"2026-09-15T09:50:00-04:00","open":1564.4100341796875,"high":1565.43994140625,"low":1551.81005859375,"close":1555.5401611328125,"volume":114869.0,"vwap":1562.3390957306299},{"time":"2026-09-15T10:00:00-04:00","bar_open":"2026-09-15T09:55:00-04:00","open":1556.4300537109375,"high":1561.9300537109375,"low":1549.0,"close":1557.39501953125,"volume":125708.0,"vwap":1561.80787897322},{"time":"2026-09-15T10:05:00-04:00","bar_open":"2026-09-15T10:00:00-04:00","open":1557.0,"high":1564.0,"low":1556.1300048828125,"close":1559.2349853515625,"volume":102321.0,"vwap":1561.676825065971},{"time":"2026-09-15T10:10:00-04:00","bar_open":"2026-09-15T10:05:00-04:00","open":1559.2550048828125,"high":1568.0,"low":1558.0,"close":1565.0,"volume":100644.0,"vwap":1561.7962143520342},{"time":"2026-09-15T10:15:00-04:00","bar_open":"2026-09-15T10:10:00-04:00","open":1565.0250244140625,"high":1567.199951171875,"low":1558.170654296875,"close":1559.2900390625,"volume":122090.0,"vwap":1561.779750335334},{"time":"2026-09-15T10:20:00-04:00","bar_open":"2026-09-15T10:15:00-04:00","open":1559.2750244140625,"high":1565.449951171875,"low":1558.8800048828125,"close":1564.074951171875,"volume":76252.0,"vwap":1561.8212912827817},{"time":"2026-09-15T10:25:00-04:00","bar_open":"2026-09-15T10:20:00-04:00","open":1564.21875,"high":1566.4300537109375,"low":1556.4901123046875,"close":1562.3599853515625,"volume":98025.0,"vwap":1561.81824984964},{"time":"2026-09-15T10:30:00-04:00","bar_open":"2026-09-15T10:25:00-04:00","open":1563.175048828125,"high":1565.5899658203125,"low":1554.6099853515625,"close":1563.7049560546875,"volume":97688.0,"vwap":1561.793886981627},{"time":"2026-09-15T10:35:00-04:00","bar_open":"2026-09-15T10:30:00-04:00","open":1563.5350341796875,"high":1568.06005859375,"low":1558.56005859375,"close":1561.4200439453125,"volume":111417.0,"vwap":1561.839117883647},{"time":"2026-09-15T10:40:00-04:00","bar_open":"2026-09-15T10:35:00-04:00","open":1561.050048828125,"high":1563.344970703125,"low":1554.31005859375,"close":1554.8006591796875,"volume":83128.0,"vwap":1561.6793970897584},{"time":"2026-09-15T10:45:00-04:00","bar_open":"2026-09-15T10:40:00-04:00","open":1555.1500244140625,"high":1555.5400390625,"low":1550.10009765625,"close":1553.0400390625,"volume":100037.0,"vwap":1561.3079239118601},{"time":"2026-09-15T10:50:00-04:00","bar_open":"2026-09-15T10:45:00-04:00","open":1552.824951171875,"high":1554.5499267578125,"low":1548.02001953125,"close":1549.530029296875,"volume":80030.0,"vwap":1560.9608578250243},{"time":"2026-09-15T10:55:00-04:00","bar_open":"2026-09-15T10:50:00-04:00","open":1549.8800048828125,"high":1549.8800048828125,"low":1540.0999755859375,"close":1543.530029296875,"volume":140005.0,"vwap":1560.0698849077296},{"time":"2026-09-15T11:00:00-04:00","bar_open":"2026-09-15T10:55:00-04:00","open":1543.60498046875,"high":1545.1600341796875,"low":1540.0,"close":1542.760009765625,"volume":102587.0,"vwap":1559.4048445308713},{"time":"2026-09-15T11:05:00-04:00","bar_open":"2026-09-15T11:00:00-04:00","open":1542.6199951171875,"high":1545.1988525390625,"low":1539.199951171875,"close":1541.4949951171875,"volume":77438.0,"vwap":1558.916600848134},{"time":"2026-09-15T11:10:00-04:00","bar_open":"2026-09-15T11:05:00-04:00","open":1541.4949951171875,"high":1542.3505859375,"low":1535.242431640625,"close":1535.5,"volume":73098.0,"vwap":1558.370300951371},{"time":"2026-09-15T11:15:00-04:00","bar_open":"2026-09-15T11:10:00-04:00","open":1535.5050048828125,"high":1537.4898681640625,"low":1528.0,"close":1537.1300048828125,"volume":154258.0,"vwap":1557.1251104449236},{"time":"2026-09-15T11:20:00-04:00","bar_open":"2026-09-15T11:15:00-04:00","open":1537.1300048828125,"high":1538.3599853515625,"low":1533.182373046875,"close":1534.0,"volume":61531.0,"vwap":1556.6831281937725},{"time":"2026-09-15T11:25:00-04:00","bar_open":"2026-09-15T11:20:00-04:00","open":1533.5699462890625,"high":1537.0,"low":1532.5301513671875,"close":1533.81494140625,"volume":50062.0,"vwap":1556.3246437597493},{"time":"2026-09-15T11:30:00-04:00","bar_open":"2026-09-15T11:25:00-04:00","open":1533.81494140625,"high":1537.1800537109375,"low":1533.7301025390625,"close":1535.0050048828125,"volume":55724.0,"vwap":1555.9540728747513},{"time":"2026-09-15T11:35:00-04:00","bar_open":"2026-09-15T11:30:00-04:00","open":1535.6199951171875,"high":1541.9998779296875,"low":1535.6199951171875,"close":1540.199951171875,"volume":70887.0,"vwap":1555.5881783762939},{"time":"2026-09-15T11:40:00-04:00","bar_open":"2026-09-15T11:35:00-04:00","open":1539.81005859375,"high":1542.389892578125,"low":1539.5699462890625,"close":1541.050048828125,"volume":46618.0,"vwap":1555.3807782876647},{"time":"2026-09-15T11:45:00-04:00","bar_open":"2026-09-15T11:40:00-04:00","open":1540.699951171875,"high":1543.4200439453125,"low":1538.3900146484375,"close":1540.3299560546875,"volume":52651.0,"vwap":1555.1489354169803},{"time":"2026-09-15T11:50:00-04:00","bar_open":"2026-09-15T11:45:00-04:00","open":1540.1300048828125,"high":1541.0400390625,"low":1536.7099609375,"close":1536.8563232421875,"volume":71271.0,"vwap":1554.7939261921524},{"time":"2026-09-15T11:55:00-04:00","bar_open":"2026-09-15T11:50:00-04:00","open":1537.989990234375,"high":1540.9476318359375,"low":1534.43994140625,"close":1536.1650390625,"volume":45735.0,"vwap":1554.5603436653187},{"time":"2026-09-15T12:00:00-04:00","bar_open":"2026-09-15T11:55:00-04:00","open":1536.1650390625,"high":1536.6199951171875,"low":1530.0,"close":1530.2099609375,"volume":58877.0,"vwap":1554.1862170582085},{"time":"2026-09-15T12:05:00-04:00","bar_open":"2026-09-15T12:00:00-04:00","open":1530.864990234375,"high":1535.969970703125,"low":1530.010009765625,"close":1534.1031494140625,"volume":52286.0,"vwap":1553.8802797807582},{"time":"2026-09-15T12:10:00-04:00","bar_open":"2026-09-15T12:05:00-04:00","open":1533.7099609375,"high":1534.9998779296875,"low":1524.050048828125,"close":1524.300048828125,"volume":93126.0,"vwap":1553.2148508046826},{"time":"2026-09-15T12:15:00-04:00","bar_open":"2026-09-15T12:10:00-04:00","open":1524.510009765625,"high":1525.1302490234375,"low":1516.0,"close":1518.0,"volume":193479.0,"vwap":1551.5292174186143},{"time":"2026-09-15T12:20:00-04:00","bar_open":"2026-09-15T12:15:00-04:00","open":1518.0,"high":1522.8399658203125,"low":1517.949951171875,"close":1522.5999755859375,"volume":109541.0,"vwap":1550.6873091037537},{"time":"2026-09-15T12:25:00-04:00","bar_open":"2026-09-15T12:20:00-04:00","open":1522.780029296875,"high":1531.0,"low":1522.64013671875,"close":1529.280029296875,"volume":87724.0,"vwap":1550.1872333454894},{"time":"2026-09-15T12:30:00-04:00","bar_open":"2026-09-15T12:25:00-04:00","open":1529.010009765625,"high":1529.800048828125,"low":1525.0,"close":1525.2674560546875,"volume":50280.0,"vwap":1549.8985924740339},{"time":"2026-09-15T12:35:00-04:00","bar_open":"2026-09-15T12:30:00-04:00","open":1525.0,"high":1527.6800537109375,"low":1519.56005859375,"close":1524.699951171875,"volume":54353.0,"vwap":1549.5589389365928},{"time":"2026-09-15T12:40:00-04:00","bar_open":"2026-09-15T12:35:00-04:00","open":1524.699951171875,"high":1527.93994140625,"low":1523.3350830078125,"close":1527.8900146484375,"volume":34974.0,"vwap":1549.3651909243024},{"time":"2026-09-15T12:45:00-04:00","bar_open":"2026-09-15T12:40:00-04:00","open":1527.5899658203125,"high":1529.34814453125,"low":1525.5101318359375,"close":1526.02001953125,"volume":41995.0,"vwap":1549.1424637049008},{"time":"2026-09-15T12:50:00-04:00","bar_open":"2026-09-15T12:45:00-04:00","open":1525.7869873046875,"high":1529.2703857421875,"low":1523.8900146484375,"close":1526.5999755859375,"volume":38067.0,"vwap":1548.9410334787135},{"time":"2026-09-15T12:55:00-04:00","bar_open":"2026-09-15T12:50:00-04:00","open":1526.530029296875,"high":1530.409912109375,"low":1526.35498046875,"close":1529.52001953125,"volume":42878.0,"vwap":1548.7400704503937},{"time":"2026-09-15T13:00:00-04:00","bar_open":"2026-09-15T12:55:00-04:00","open":1529.8499755859375,"high":1531.8800048828125,"low":1527.5400390625,"close":1530.969970703125,"volume":42521.0,"vwap":1548.55807654554},{"time":"2026-09-15T13:05:00-04:00","bar_open":"2026-09-15T13:00:00-04:00","open":1531.18994140625,"high":1532.64990234375,"low":1526.8184814453125,"close":1527.4320068359375,"volume":51078.0,"vwap":1548.3306034229092},{"time":"2026-09-15T13:10:00-04:00","bar_open":"2026-09-15T13:05:00-04:00","open":1527.56005859375,"high":1534.369873046875,"low":1526.8675537109375,"close":1531.1300048828125,"volume":42838.0,"vwap":1548.1614348511798},{"time":"2026-09-15T13:15:00-04:00","bar_open":"2026-09-15T13:10:00-04:00","open":1531.8800048828125,"high":1533.3299560546875,"low":1529.8800048828125,"close":1531.739990234375,"volume":44862.0,"vwap":1547.9963434502015},{"time":"2026-09-15T13:20:00-04:00","bar_open":"2026-09-15T13:15:00-04:00","open":1531.5799560546875,"high":1533.969482421875,"low":1530.550048828125,"close":1533.0350341796875,"volume":44740.0,"vwap":1547.8435282097548},{"time":"2026-09-15T13:25:00-04:00","bar_open":"2026-09-15T13:20:00-04:00","open":1533.0350341796875,"high":1534.1600341796875,"low":1530.5,"close":1531.191162109375,"volume":40909.0,"vwap":1547.7013356886034},{"time":"2026-09-15T13:30:00-04:00","bar_open":"2026-09-15T13:25:00-04:00","open":1531.2900390625,"high":1532.5699462890625,"low":1530.859619140625,"close":1531.739990234375,"volume":34411.0,"vwap":1547.5819874136446},{"time":"2026-09-15T13:35:00-04:00","bar_open":"2026-09-15T13:30:00-04:00","open":1531.4100341796875,"high":1537.4000244140625,"low":1531.4100341796875,"close":1534.8699951171875,"volume":43185.0,"vwap":1547.4610530211546},{"time":"2026-09-15T13:40:00-04:00","bar_open":"2026-09-15T13:35:00-04:00","open":1534.7349853515625,"high":1537.8133544921875,"low":1533.8299560546875,"close":1534.5050048828125,"volume":38615.0,"vwap":1547.3615789616795},{"time":"2026-09-15T13:45:00-04:00","bar_open":"2026-09-15T13:40:00-04:00","open":1534.780029296875,"high":1536.4000244140625,"low":1532.47998046875,"close":1535.030029296875,"volume":34966.0,"vwap":1547.267385169134},{"time":"2026-09-15T13:50:00-04:00","bar_open":"2026-09-15T13:45:00-04:00","open":1535.3349609375,"high":1535.6700439453125,"low":1525.9000244140625,"close":1527.1474609375,"volume":58254.0,"vwap":1547.0518232487132},{"time":"2026-09-15T13:55:00-04:00","bar_open":"2026-09-15T13:50:00-04:00","open":1526.92431640625,"high":1528.2750244140625,"low":1524.0,"close":1525.4649658203125,"volume":48438.0,"vwap":1546.8398495449253},{"time":"2026-09-15T14:00:00-04:00","bar_open":"2026-09-15T13:55:00-04:00","open":1525.837158203125,"high":1527.47998046875,"low":1522.25,"close":1523.1600341796875,"volume":43448.0,"vwap":1546.6388857788024},{"time":"2026-09-15T14:05:00-04:00","bar_open":"2026-09-15T14:00:00-04:00","open":1523.6300048828125,"high":1524.1500244140625,"low":1517.3399658203125,"close":1520.06005859375,"volume":82430.0,"vwap":1546.204431407939},{"time":"2026-09-15T14:10:00-04:00","bar_open":"2026-09-15T14:05:00-04:00","open":1520.06005859375,"high":1522.3223876953125,"low":1517.93994140625,"close":1518.25,"volume":47902.0,"vwap":1545.9488425577724},{"time":"2026-09-15T14:15:00-04:00","bar_open":"2026-09-15T14:10:00-04:00","open":1517.8499755859375,"high":1518.25,"low":1514.4200439453125,"close":1516.43994140625,"volume":81238.0,"vwap":1545.476324482689},{"time":"2026-09-15T14:20:00-04:00","bar_open":"2026-09-15T14:15:00-04:00","open":1516.5050048828125,"high":1518.68994140625,"low":1513.2099609375,"close":1515.3050537109375,"volume":44831.0,"vwap":1545.2164252050616},{"time":"2026-09-15T14:25:00-04:00","bar_open":"2026-09-15T14:20:00-04:00","open":1514.8199462890625,"high":1515.5699462890625,"low":1512.8900146484375,"close":1513.8349609375,"volume":42694.0,"vwap":1544.9595944618939},{"time":"2026-09-15T14:30:00-04:00","bar_open":"2026-09-15T14:25:00-04:00","open":1513.75,"high":1518.68994140625,"low":1513.300048828125,"close":1517.8299560546875,"volume":55569.0,"vwap":1544.6582542121414},{"time":"2026-09-15T14:35:00-04:00","bar_open":"2026-09-15T14:30:00-04:00","open":1517.719970703125,"high":1518.199951171875,"low":1513.0,"close":1513.3349609375,"volume":46782.0,"vwap":1544.393863392175},{"time":"2026-09-15T14:40:00-04:00","bar_open":"2026-09-15T14:35:00-04:00","open":1513.489990234375,"high":1516.739990234375,"low":1509.14013671875,"close":1515.68994140625,"volume":54777.0,"vwap":1544.0800304762838},{"time":"2026-09-15T14:45:00-04:00","bar_open":"2026-09-15T14:40:00-04:00","open":1515.81494140625,"high":1515.81494140625,"low":1511.3499755859375,"close":1514.60498046875,"volume":57255.0,"vwap":1543.7595299238935},{"time":"2026-09-15T14:50:00-04:00","bar_open":"2026-09-15T14:45:00-04:00","open":1514.97802734375,"high":1516.6500244140625,"low":1513.56005859375,"close":1515.4100341796875,"volume":35790.0,"vwap":1543.5710929158104},{"time":"2026-09-15T14:55:00-04:00","bar_open":"2026-09-15T14:50:00-04:00","open":1516.0,"high":1518.9000244140625,"low":1515.949951171875,"close":1516.989990234375,"volume":55000.0,"vwap":1543.3071289926204},{"time":"2026-09-15T15:00:00-04:00","bar_open":"2026-09-15T14:55:00-04:00","open":1516.100830078125,"high":1517.2470703125,"low":1514.0699462890625,"close":1516.1199951171875,"volume":33855.0,"vwap":1543.1382519622155},{"time":"2026-09-15T15:05:00-04:00","bar_open":"2026-09-15T15:00:00-04:00","open":1516.046142578125,"high":1521.6099853515625,"low":1515.52001953125,"close":1520.4100341796875,"volume":53151.0,"vwap":1542.9094309742286},{"time":"2026-09-15T15:10:00-04:00","bar_open":"2026-09-15T15:05:00-04:00","open":1520.405029296875,"high":1521.47705078125,"low":1517.5999755859375,"close":1519.405029296875,"volume":51466.0,"vwap":1542.6948684672477},{"time":"2026-09-15T15:15:00-04:00","bar_open":"2026-09-15T15:10:00-04:00","open":1519.6400146484375,"high":1520.616455078125,"low":1517.0,"close":1517.8599853515625,"volume":31233.0,"vwap":1542.5610237803965},{"time":"2026-09-15T15:20:00-04:00","bar_open":"2026-09-15T15:15:00-04:00","open":1517.860107421875,"high":1519.6400146484375,"low":1516.4000244140625,"close":1519.12255859375,"volume":42654.0,"vwap":1542.3798252197182},{"time":"2026-09-15T15:25:00-04:00","bar_open":"2026-09-15T15:20:00-04:00","open":1518.5450439453125,"high":1520.0350341796875,"low":1516.9818115234375,"close":1519.079345703125,"volume":29608.0,"vwap":1542.2572471954834},{"time":"2026-09-15T15:30:00-04:00","bar_open":"2026-09-15T15:25:00-04:00","open":1518.8299560546875,"high":1522.2158203125,"low":1518.590087890625,"close":1520.1800537109375,"volume":50619.0,"vwap":1542.0648938479196},{"time":"2026-09-15T15:35:00-04:00","bar_open":"2026-09-15T15:30:00-04:00","open":1520.0699462890625,"high":1530.8599853515625,"low":1520.0699462890625,"close":1530.300048828125,"volume":125249.0,"vwap":1541.7464925458535},{"time":"2026-09-15T15:40:00-04:00","bar_open":"2026-09-15T15:35:00-04:00","open":1530.0,"high":1531.8800048828125,"low":1528.0,"close":1529.219970703125,"volume":113396.0,"vwap":1541.5191737927908},{"time":"2026-09-15T15:45:00-04:00","bar_open":"2026-09-15T15:40:00-04:00","open":1529.594970703125,"high":1532.5,"low":1529.219970703125,"close":1531.8399658203125,"volume":72354.0,"vwap":1541.3962466068604},{"time":"2026-09-15T15:50:00-04:00","bar_open":"2026-09-15T15:45:00-04:00","open":1532.0,"high":1535.885009765625,"low":1527.6800537109375,"close":1528.5,"volume":143003.0,"vwap":1541.1502471215763}],"fills":[{"time":"2026-09-15T09:40:00-04:00","action":"X","shares":5,"quantity":-5,"price":1549.844685119629,"reference_price":1550.6199951171875,"shares_before":0,"shares_after":-5,"assumed_cost":3.876549987792969,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:40:00-04:00","pnl":null},{"time":"2026-09-15T09:50:00-04:00","action":"C","shares":1,"quantity":1,"price":1565.192239196777,"reference_price":1564.4100341796875,"shares_before":-5,"shares_after":-4,"assumed_cost":0.7822050170898438,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:50:00-04:00","pnl":null},{"time":"2026-09-15T09:55:00-04:00","action":"X","shares":4,"quantity":-4,"price":1555.651838684082,"reference_price":1556.4300537109375,"shares_before":-4,"shares_after":-8,"assumed_cost":3.112860107421875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:55:00-04:00","pnl":null},{"time":"2026-09-15T10:00:00-04:00","action":"C","shares":1,"quantity":1,"price":1557.7785,"reference_price":1557.0,"shares_before":-8,"shares_after":-7,"assumed_cost":0.7785,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:00:00-04:00","pnl":null},{"time":"2026-09-15T10:10:00-04:00","action":"C","shares":2,"quantity":2,"price":1565.8075369262694,"reference_price":1565.0250244140625,"shares_before":-7,"shares_after":-5,"assumed_cost":1.5650250244140624,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:10:00-04:00","pnl":null},{"time":"2026-09-15T10:15:00-04:00","action":"C","shares":5,"quantity":5,"price":1560.0546619262695,"reference_price":1559.2750244140625,"shares_before":-5,"shares_after":0,"assumed_cost":3.898187561035156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:15:00-04:00","pnl":null},{"time":"2026-09-15T10:20:00-04:00","action":"B","shares":5,"quantity":5,"price":1565.000859375,"reference_price":1564.21875,"shares_before":0,"shares_after":5,"assumed_cost":3.910546875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:20:00-04:00","pnl":null},{"time":"2026-09-15T10:30:00-04:00","action":"B","shares":3,"quantity":3,"price":1564.3168016967772,"reference_price":1563.5350341796875,"shares_before":5,"shares_after":8,"assumed_cost":2.345302551269531,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:30:00-04:00","pnl":null},{"time":"2026-09-15T10:40:00-04:00","action":"S","shares":6,"quantity":-6,"price":1554.3724494018556,"reference_price":1555.1500244140625,"shares_before":8,"shares_after":2,"assumed_cost":4.665450073242187,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:40:00-04:00","pnl":null},{"time":"2026-09-15T10:45:00-04:00","action":"S","shares":2,"quantity":-2,"price":1552.0485386962891,"reference_price":1552.824951171875,"shares_before":2,"shares_after":0,"assumed_cost":1.552824951171875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:45:00-04:00","pnl":null},{"time":"2026-09-15T11:15:00-04:00","action":"B","shares":5,"quantity":5,"price":1537.898569885254,"reference_price":1537.1300048828125,"shares_before":0,"shares_after":5,"assumed_cost":3.8428250122070313,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:15:00-04:00","pnl":null},{"time":"2026-09-15T11:20:00-04:00","action":"S","shares":4,"quantity":-4,"price":1532.803161315918,"reference_price":1533.5699462890625,"shares_before":5,"shares_after":1,"assumed_cost":3.067139892578125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:20:00-04:00","pnl":null},{"time":"2026-09-15T11:30:00-04:00","action":"S","shares":1,"quantity":-1,"price":1534.852185119629,"reference_price":1535.6199951171875,"shares_before":1,"shares_after":0,"assumed_cost":0.7678099975585938,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:30:00-04:00","pnl":null},{"time":"2026-09-15T11:35:00-04:00","action":"B","shares":2,"quantity":2,"price":1540.5799636230468,"reference_price":1539.81005859375,"shares_before":0,"shares_after":2,"assumed_cost":1.53981005859375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:35:00-04:00","pnl":null},{"time":"2026-09-15T11:45:00-04:00","action":"B","shares":2,"quantity":2,"price":1540.9000698852535,"reference_price":1540.1300048828125,"shares_before":2,"shares_after":4,"assumed_cost":1.5401300048828126,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:45:00-04:00","pnl":null},{"time":"2026-09-15T11:50:00-04:00","action":"S","shares":2,"quantity":-2,"price":1537.220995239258,"reference_price":1537.989990234375,"shares_before":4,"shares_after":2,"assumed_cost":1.537989990234375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:50:00-04:00","pnl":null},{"time":"2026-09-15T12:00:00-04:00","action":"B","shares":1,"quantity":1,"price":1531.630422729492,"reference_price":1530.864990234375,"shares_before":2,"shares_after":3,"assumed_cost":0.7654324951171875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:00:00-04:00","pnl":null},{"time":"2026-09-15T12:05:00-04:00","action":"S","shares":2,"quantity":-2,"price":1532.943105957031,"reference_price":1533.7099609375,"shares_before":3,"shares_after":1,"assumed_cost":1.5337099609375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:05:00-04:00","pnl":null},{"time":"2026-09-15T12:10:00-04:00","action":"S","shares":1,"quantity":-1,"price":1523.7477547607425,"reference_price":1524.510009765625,"shares_before":1,"shares_after":0,"assumed_cost":0.7622550048828125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:10:00-04:00","pnl":null},{"time":"2026-09-15T12:25:00-04:00","action":"B","shares":1,"quantity":1,"price":1529.7745147705075,"reference_price":1529.010009765625,"shares_before":0,"shares_after":1,"assumed_cost":0.7645050048828125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:25:00-04:00","pnl":null},{"time":"2026-09-15T12:35:00-04:00","action":"B","shares":2,"quantity":2,"price":1525.462301147461,"reference_price":1524.699951171875,"shares_before":1,"shares_after":3,"assumed_cost":1.524699951171875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:35:00-04:00","pnl":null},{"time":"2026-09-15T12:50:00-04:00","action":"S","shares":1,"quantity":-1,"price":1525.7667642822266,"reference_price":1526.530029296875,"shares_before":3,"shares_after":2,"assumed_cost":0.7632650146484375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:50:00-04:00","pnl":null},{"time":"2026-09-15T13:00:00-04:00","action":"B","shares":1,"quantity":1,"price":1531.955536376953,"reference_price":1531.18994140625,"shares_before":2,"shares_after":3,"assumed_cost":0.765594970703125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:00:00-04:00","pnl":null},{"time":"2026-09-15T13:05:00-04:00","action":"S","shares":2,"quantity":-2,"price":1526.7962785644531,"reference_price":1527.56005859375,"shares_before":3,"shares_after":1,"assumed_cost":1.52756005859375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:05:00-04:00","pnl":null},{"time":"2026-09-15T13:15:00-04:00","action":"S","shares":1,"quantity":-1,"price":1530.8141660766605,"reference_price":1531.5799560546875,"shares_before":1,"shares_after":0,"assumed_cost":0.7657899780273437,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:15:00-04:00","pnl":null},{"time":"2026-09-15T13:25:00-04:00","action":"X","shares":2,"quantity":-2,"price":1530.5243940429689,"reference_price":1531.2900390625,"shares_before":0,"shares_after":-2,"assumed_cost":1.5312900390625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:25:00-04:00","pnl":null},{"time":"2026-09-15T13:30:00-04:00","action":"C","shares":2,"quantity":2,"price":1532.1757391967772,"reference_price":1531.4100341796875,"shares_before":-2,"shares_after":0,"assumed_cost":1.5314100341796877,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:30:00-04:00","pnl":null},{"time":"2026-09-15T13:30:00-04:00","action":"B","shares":3,"quantity":3,"price":1532.1757391967772,"reference_price":1531.4100341796875,"shares_before":0,"shares_after":3,"assumed_cost":2.297115051269531,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:30:00-04:00","pnl":null},{"time":"2026-09-15T13:35:00-04:00","action":"S","shares":2,"quantity":-2,"price":1533.9676178588868,"reference_price":1534.7349853515625,"shares_before":3,"shares_after":1,"assumed_cost":1.5347349853515626,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:35:00-04:00","pnl":null},{"time":"2026-09-15T13:40:00-04:00","action":"S","shares":1,"quantity":-1,"price":1534.0126392822267,"reference_price":1534.780029296875,"shares_before":1,"shares_after":0,"assumed_cost":0.7673900146484375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:40:00-04:00","pnl":null},{"time":"2026-09-15T14:00:00-04:00","action":"X","shares":4,"quantity":-4,"price":1522.8681898803711,"reference_price":1523.6300048828125,"shares_before":0,"shares_after":-4,"assumed_cost":3.047260009765625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:00:00-04:00","pnl":null},{"time":"2026-09-15T14:05:00-04:00","action":"C","shares":4,"quantity":4,"price":1520.8200886230468,"reference_price":1520.06005859375,"shares_before":-4,"shares_after":0,"assumed_cost":3.0401201171875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:05:00-04:00","pnl":null},{"time":"2026-09-15T14:20:00-04:00","action":"X","shares":1,"quantity":-1,"price":1514.062536315918,"reference_price":1514.8199462890625,"shares_before":0,"shares_after":-1,"assumed_cost":0.7574099731445313,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:20:00-04:00","pnl":null},{"time":"2026-09-15T14:30:00-04:00","action":"C","shares":1,"quantity":1,"price":1518.4788306884766,"reference_price":1517.719970703125,"shares_before":-1,"shares_after":0,"assumed_cost":0.7588599853515625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:30:00-04:00","pnl":null},{"time":"2026-09-15T14:35:00-04:00","action":"X","shares":1,"quantity":-1,"price":1512.733245239258,"reference_price":1513.489990234375,"shares_before":0,"shares_after":-1,"assumed_cost":0.7567449951171875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:35:00-04:00","pnl":null},{"time":"2026-09-15T14:40:00-04:00","action":"C","shares":1,"quantity":1,"price":1516.572848876953,"reference_price":1515.81494140625,"shares_before":-1,"shares_after":0,"assumed_cost":0.757907470703125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:40:00-04:00","pnl":null},{"time":"2026-09-15T14:40:00-04:00","action":"B","shares":2,"quantity":2,"price":1516.572848876953,"reference_price":1515.81494140625,"shares_before":0,"shares_after":2,"assumed_cost":1.51581494140625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:40:00-04:00","pnl":null},{"time":"2026-09-15T14:45:00-04:00","action":"S","shares":1,"quantity":-1,"price":1514.2205383300782,"reference_price":1514.97802734375,"shares_before":2,"shares_after":1,"assumed_cost":0.757489013671875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:45:00-04:00","pnl":null},{"time":"2026-09-15T14:50:00-04:00","action":"S","shares":1,"quantity":-1,"price":1515.2420000000002,"reference_price":1516.0,"shares_before":1,"shares_after":0,"assumed_cost":0.758,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:50:00-04:00","pnl":null},{"time":"2026-09-15T15:00:00-04:00","action":"B","shares":1,"quantity":1,"price":1516.804165649414,"reference_price":1516.046142578125,"shares_before":0,"shares_after":1,"assumed_cost":0.7580230712890625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:00:00-04:00","pnl":null},{"time":"2026-09-15T15:05:00-04:00","action":"S","shares":1,"quantity":-1,"price":1519.6448267822266,"reference_price":1520.405029296875,"shares_before":1,"shares_after":0,"assumed_cost":0.7602025146484375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:05:00-04:00","pnl":null},{"time":"2026-09-15T15:20:00-04:00","action":"X","shares":1,"quantity":-1,"price":1517.7857714233398,"reference_price":1518.5450439453125,"shares_before":0,"shares_after":-1,"assumed_cost":0.7592725219726563,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:20:00-04:00","pnl":null},{"time":"2026-09-15T15:30:00-04:00","action":"X","shares":3,"quantity":-3,"price":1519.309911315918,"reference_price":1520.0699462890625,"shares_before":-1,"shares_after":-4,"assumed_cost":2.280104919433594,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:30:00-04:00","pnl":null},{"time":"2026-09-15T15:35:00-04:00","action":"X","shares":7,"quantity":-7,"price":1529.235,"reference_price":1530.0,"shares_before":-4,"shares_after":-11,"assumed_cost":5.355,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:35:00-04:00","pnl":null},{"time":"2026-09-15T15:40:00-04:00","action":"X","shares":2,"quantity":-2,"price":1528.8301732177736,"reference_price":1529.594970703125,"shares_before":-11,"shares_after":-13,"assumed_cost":1.529594970703125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:40:00-04:00","pnl":null},{"time":"2026-09-15T15:45:00-04:00","action":"C","shares":1,"quantity":1,"price":1532.7659999999998,"reference_price":1532.0,"shares_before":-13,"shares_after":-12,"assumed_cost":0.766,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:45:00-04:00","pnl":null}],"marks":[{"time":"2026-09-15T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:40:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:45:00-04:00","shares":-5,"pnl":0.8732058715831954},{"time":"2026-09-15T09:50:00-04:00","shares":-5,"pnl":-73.3015988159168},{"time":"2026-09-15T09:55:00-04:00","shares":-4,"pnl":-38.12945812988164},{"time":"2026-09-15T10:00:00-04:00","shares":-8,"pnl":-52.52161511230224},{"time":"2026-09-15T10:05:00-04:00","shares":-7,"pnl":-65.78485632324009},{"time":"2026-09-15T10:10:00-04:00","shares":-7,"pnl":-106.1399588623026},{"time":"2026-09-15T10:15:00-04:00","shares":-5,"pnl":-79.20522802734195},{"time":"2026-09-15T10:20:00-04:00","shares":0,"pnl":-83.02834234618967},{"time":"2026-09-15T10:25:00-04:00","shares":5,"pnl":-96.23271246337664},{"time":"2026-09-15T10:30:00-04:00","shares":5,"pnl":-89.50785894775163},{"time":"2026-09-15T10:35:00-04:00","shares":8,"pnl":-109.62269274902064},{"time":"2026-09-15T10:40:00-04:00","shares":8,"pnl":-162.57777087402064},{"time":"2026-09-15T10:45:00-04:00","shares":2,"pnl":-168.66826977538585},{"time":"2026-09-15T10:50:00-04:00","shares":0,"pnl":-170.65127050780757},{"time":"2026-09-15T10:55:00-04:00","shares":0,"pnl":-170.65127050780757},{"time":"2026-09-15T11:00:00-04:00","shares":0,"pnl":-170.65127050780757},{"time":"2026-09-15T11:05:00-04:00","shares":0,"pnl":-170.65127050780757},{"time":"2026-09-15T11:10:00-04:00","shares":0,"pnl":-170.65127050780757},{"time":"2026-09-15T11:15:00-04:00","shares":0,"pnl":-170.65127050780757},{"time":"2026-09-15T11:20:00-04:00","shares":5,"pnl":-190.14411993407705},{"time":"2026-09-15T11:25:00-04:00","shares":1,"pnl":-195.1165332641549},{"time":"2026-09-15T11:30:00-04:00","shares":1,"pnl":-193.9264697875924},{"time":"2026-09-15T11:35:00-04:00","shares":0,"pnl":-194.0792895507759},{"time":"2026-09-15T11:40:00-04:00","shares":2,"pnl":-193.1391191406192},{"time":"2026-09-15T11:45:00-04:00","shares":2,"pnl":-194.5793046874942},{"time":"2026-09-15T11:50:00-04:00","shares":4,"pnl":-209.61406359862667},{"time":"2026-09-15T11:55:00-04:00","shares":2,"pnl":-210.2672879638608},{"time":"2026-09-15T12:00:00-04:00","shares":2,"pnl":-222.1774442138608},{"time":"2026-09-15T12:05:00-04:00","shares":3,"pnl":-211.91834057616504},{"time":"2026-09-15T12:10:00-04:00","shares":1,"pnl":-224.04152807616487},{"time":"2026-09-15T12:15:00-04:00","shares":0,"pnl":-224.59382214354764},{"time":"2026-09-15T12:20:00-04:00","shares":0,"pnl":-224.59382214354764},{"time":"2026-09-15T12:25:00-04:00","shares":0,"pnl":-224.59382214354764},{"time":"2026-09-15T12:30:00-04:00","shares":1,"pnl":-229.10088085936783},{"time":"2026-09-15T12:35:00-04:00","shares":1,"pnl":-229.6683857421804},{"time":"2026-09-15T12:40:00-04:00","shares":3,"pnl":-221.6228952636648},{"time":"2026-09-15T12:45:00-04:00","shares":3,"pnl":-227.2328806152273},{"time":"2026-09-15T12:50:00-04:00","shares":3,"pnl":-225.4930124511648},{"time":"2026-09-15T12:55:00-04:00","shares":2,"pnl":-220.48613586425063},{"time":"2026-09-15T13:00:00-04:00","shares":2,"pnl":-217.58623352050063},{"time":"2026-09-15T13:05:00-04:00","shares":3,"pnl":-229.18569079589088},{"time":"2026-09-15T13:10:00-04:00","shares":1,"pnl":-226.7591492919846},{"time":"2026-09-15T13:15:00-04:00","shares":1,"pnl":-226.1491639404221},{"time":"2026-09-15T13:20:00-04:00","shares":0,"pnl":-227.07498809813683},{"time":"2026-09-15T13:25:00-04:00","shares":0,"pnl":-227.07498809813683},{"time":"2026-09-15T13:30:00-04:00","shares":-2,"pnl":-229.5061804809493},{"time":"2026-09-15T13:35:00-04:00","shares":3,"pnl":-222.29491064452304},{"time":"2026-09-15T13:40:00-04:00","shares":1,"pnl":-224.46465539549945},{"time":"2026-09-15T13:45:00-04:00","shares":0,"pnl":-224.95702099608525},{"time":"2026-09-15T13:50:00-04:00","shares":0,"pnl":-224.95702099608525},{"time":"2026-09-15T13:55:00-04:00","shares":0,"pnl":-224.95702099608525},{"time":"2026-09-15T14:00:00-04:00","shares":0,"pnl":-224.95702099608525},{"time":"2026-09-15T14:05:00-04:00","shares":-4,"pnl":-213.72449584960123},{"time":"2026-09-15T14:10:00-04:00","shares":0,"pnl":-216.7646159667884},{"time":"2026-09-15T14:15:00-04:00","shares":0,"pnl":-216.7646159667884},{"time":"2026-09-15T14:20:00-04:00","shares":0,"pnl":-216.7646159667884},{"time":"2026-09-15T14:25:00-04:00","shares":-1,"pnl":-216.53704058837025},{"time":"2026-09-15T14:30:00-04:00","shares":-1,"pnl":-220.53203570555772},{"time":"2026-09-15T14:35:00-04:00","shares":0,"pnl":-221.18091033934684},{"time":"2026-09-15T14:40:00-04:00","shares":-1,"pnl":-224.1376065063389},{"time":"2026-09-15T14:45:00-04:00","shares":2,"pnl":-228.9562507934479},{"time":"2026-09-15T14:50:00-04:00","shares":1,"pnl":-228.53563922118224},{"time":"2026-09-15T14:55:00-04:00","shares":0,"pnl":-228.70367340086955},{"time":"2026-09-15T15:00:00-04:00","shares":0,"pnl":-228.70367340086955},{"time":"2026-09-15T15:05:00-04:00","shares":1,"pnl":-225.0978048705961},{"time":"2026-09-15T15:10:00-04:00","shares":0,"pnl":-225.863012268057},{"time":"2026-09-15T15:15:00-04:00","shares":0,"pnl":-225.863012268057},{"time":"2026-09-15T15:20:00-04:00","shares":0,"pnl":-225.863012268057},{"time":"2026-09-15T15:25:00-04:00","shares":-1,"pnl":-227.15658654784212},{"time":"2026-09-15T15:30:00-04:00","shares":-1,"pnl":-228.25729455565465},{"time":"2026-09-15T15:35:00-04:00","shares":-4,"pnl":-271.347702209463},{"time":"2026-09-15T15:40:00-04:00","shares":-11,"pnl":-266.9221846313376},{"time":"2026-09-15T15:45:00-04:00","shares":-13,"pnl":-301.7617161254784},{"time":"2026-09-15T15:50:00-04:00","shares":-12,"pnl":-262.60816046141554}],"summary":{"net_pnl":-262.60816046141554,"gross_pnl":-182.6324462890522,"cost":79.97571417236331,"fill_count":46,"ending_shares":-12},"source_hashes":{"fills_sha256":"1773d880309aa6ed18571f60367dd6e70228364185393bc15b0a014e80df66d1","marks_sha256":"ced4c0a899ef214863a89f9ef41b3be1c69e25ae1ccec8ae84788960faf4ba3d","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-15/context/TSLA.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"TSLA","date":"2026-09-15","variant":"context","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-15T15:50:00-04:00","partial":true,"starting_equity":47958.07,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-15T09:30:00-04:00","session_close":"2026-09-15T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-15T09:35:00-04:00","bar_open":"2026-09-15T09:30:00-04:00","open":358.7250061035156,"high":360.69000244140625,"low":354.63128662109375,"close":355.4849853515625,"volume":2022902.0,"vwap":356.9354248046875},{"time":"2026-09-15T09:40:00-04:00","bar_open":"2026-09-15T09:35:00-04:00","open":355.54998779296875,"high":361.7200012207031,"low":355.54998779296875,"close":361.6000061035156,"volume":1135113.0,"vwap":357.9015627318861},{"time":"2026-09-15T09:45:00-04:00","bar_open":"2026-09-15T09:40:00-04:00","open":361.6400146484375,"high":362.1099853515625,"low":360.1499938964844,"close":361.04998779296875,"volume":941432.0,"vwap":358.6368421385916},{"time":"2026-09-15T09:50:00-04:00","bar_open":"2026-09-15T09:45:00-04:00","open":361.0799865722656,"high":361.75,"low":360.3299865722656,"close":361.4778137207031,"volume":530020.0,"vwap":358.9286833736186},{"time":"2026-09-15T09:55:00-04:00","bar_open":"2026-09-15T09:50:00-04:00","open":361.4056091308594,"high":362.0,"low":360.0801086425781,"close":360.5899963378906,"volume":694269.0,"vwap":359.18446345508323},{"time":"2026-09-15T10:00:00-04:00","bar_open":"2026-09-15T09:55:00-04:00","open":360.6567077636719,"high":361.29998779296875,"low":358.6300048828125,"close":359.1499938964844,"volume":537794.0,"vwap":359.23115173616094},{"time":"2026-09-15T10:05:00-04:00","bar_open":"2026-09-15T10:00:00-04:00","open":359.1000061035156,"high":360.19000244140625,"low":359.010009765625,"close":359.70361328125,"volume":413305.0,"vwap":359.2577218599167},{"time":"2026-09-15T10:10:00-04:00","bar_open":"2026-09-15T10:05:00-04:00","open":359.7099914550781,"high":359.8800048828125,"low":358.1600036621094,"close":358.3450012207031,"volume":367792.0,"vwap":359.2321018452655},{"time":"2026-09-15T10:15:00-04:00","bar_open":"2026-09-15T10:10:00-04:00","open":358.3450012207031,"high":359.659912109375,"low":358.32000732421875,"close":359.07000732421875,"volume":295905.0,"vwap":359.22291321995306},{"time":"2026-09-15T10:20:00-04:00","bar_open":"2026-09-15T10:15:00-04:00","open":359.04998779296875,"high":359.9649963378906,"low":358.95001220703125,"close":359.44500732421875,"volume":260093.0,"vwap":359.2312387035512},{"time":"2026-09-15T10:25:00-04:00","bar_open":"2026-09-15T10:20:00-04:00","open":359.3800964355469,"high":359.54998779296875,"low":358.6700134277344,"close":358.92999267578125,"volume":227066.0,"vwap":359.2256966456569},{"time":"2026-09-15T10:30:00-04:00","bar_open":"2026-09-15T10:25:00-04:00","open":358.92999267578125,"high":359.54998779296875,"low":358.79998779296875,"close":359.2900085449219,"volume":261245.0,"vwap":359.2252762915081},{"time":"2026-09-15T10:35:00-04:00","bar_open":"2026-09-15T10:30:00-04:00","open":359.25,"high":359.2900085449219,"low":358.1099853515625,"close":358.875,"volume":271401.0,"vwap":359.20935219355164},{"time":"2026-09-15T10:40:00-04:00","bar_open":"2026-09-15T10:35:00-04:00","open":358.875,"high":358.94000244140625,"low":358.1000061035156,"close":358.4200134277344,"volume":195090.0,"vwap":359.1920604105311},{"time":"2026-09-15T10:45:00-04:00","bar_open":"2026-09-15T10:40:00-04:00","open":358.3699951171875,"high":358.3999938964844,"low":357.6300048828125,"close":357.77801513671875,"volume":343932.0,"vwap":359.1412213470377},{"time":"2026-09-15T10:50:00-04:00","bar_open":"2026-09-15T10:45:00-04:00","open":357.8258056640625,"high":358.4200134277344,"low":357.1449890136719,"close":357.1499938964844,"volume":266475.0,"vwap":359.09349709658534},{"time":"2026-09-15T10:55:00-04:00","bar_open":"2026-09-15T10:50:00-04:00","open":357.19500732421875,"high":357.19500732421875,"low":355.8900146484375,"close":356.04998779296875,"volume":440753.0,"vwap":358.9634841867827},{"time":"2026-09-15T11:00:00-04:00","bar_open":"2026-09-15T10:55:00-04:00","open":356.11199951171875,"high":357.8096923828125,"low":355.8800048828125,"close":357.6099853515625,"volume":414168.0,"vwap":358.88324102274817},{"time":"2026-09-15T11:05:00-04:00","bar_open":"2026-09-15T11:00:00-04:00","open":357.5609130859375,"high":358.3299865722656,"low":357.55010986328125,"close":358.0828857421875,"volume":254788.0,"vwap":358.86013046226645},{"time":"2026-09-15T11:10:00-04:00","bar_open":"2026-09-15T11:05:00-04:00","open":358.07000732421875,"high":359.9150085449219,"low":358.0,"close":359.635009765625,"volume":456444.0,"vwap":358.87441187396564},{"time":"2026-09-15T11:15:00-04:00","bar_open":"2026-09-15T11:10:00-04:00","open":359.635009765625,"high":359.9800109863281,"low":358.8699951171875,"close":359.17498779296875,"volume":374531.0,"vwap":358.8907601712715},{"time":"2026-09-15T11:20:00-04:00","bar_open":"2026-09-15T11:15:00-04:00","open":359.1199951171875,"high":360.32000732421875,"low":358.85009765625,"close":360.19000244140625,"volume":287675.0,"vwap":358.91420774009833},{"time":"2026-09-15T11:25:00-04:00","bar_open":"2026-09-15T11:20:00-04:00","open":360.2349853515625,"high":361.8800048828125,"low":359.9599914550781,"close":361.5899963378906,"volume":608035.0,"vwap":359.0310489690485},{"time":"2026-09-15T11:30:00-04:00","bar_open":"2026-09-15T11:25:00-04:00","open":361.57000732421875,"high":361.94000244140625,"low":360.19000244140625,"close":360.8399963378906,"volume":696172.0,"vwap":359.14195680714687},{"time":"2026-09-15T11:35:00-04:00","bar_open":"2026-09-15T11:30:00-04:00","open":360.92999267578125,"high":361.1400146484375,"low":359.6238098144531,"close":360.8399963378906,"volume":327235.0,"vwap":359.17805765006005},{"time":"2026-09-15T11:40:00-04:00","bar_open":"2026-09-15T11:35:00-04:00","open":360.8900146484375,"high":360.95001220703125,"low":359.7099914550781,"close":359.9400939941406,"volume":229807.0,"vwap":359.19632956401966},{"time":"2026-09-15T11:45:00-04:00","bar_open":"2026-09-15T11:40:00-04:00","open":359.9700012207031,"high":361.0,"low":359.9100036621094,"close":360.739990234375,"volume":215228.0,"vwap":359.2186231365647},{"time":"2026-09-15T11:50:00-04:00","bar_open":"2026-09-15T11:45:00-04:00","open":360.6000061035156,"high":361.0,"low":360.2596130371094,"close":360.84869384765625,"volume":195132.0,"vwap":359.24045732431335},{"time":"2026-09-15T11:55:00-04:00","bar_open":"2026-09-15T11:50:00-04:00","open":360.9150085449219,"high":362.3900146484375,"low":360.7900085449219,"close":362.1000061035156,"volume":586665.0,"vwap":359.34717814701065},{"time":"2026-09-15T12:00:00-04:00","bar_open":"2026-09-15T11:55:00-04:00","open":362.1000061035156,"high":362.1499938964844,"low":360.2300109863281,"close":361.114990234375,"volume":383834.0,"vwap":359.39619644502125},{"time":"2026-09-15T12:05:00-04:00","bar_open":"2026-09-15T12:00:00-04:00","open":361.1650085449219,"high":361.8500061035156,"low":360.6200866699219,"close":361.5350036621094,"volume":336414.0,"vwap":359.4409609931738},{"time":"2026-09-15T12:10:00-04:00","bar_open":"2026-09-15T12:05:00-04:00","open":361.5539855957031,"high":361.8299865722656,"low":361.1400146484375,"close":361.70599365234375,"volume":176534.0,"vwap":359.46631126370016},{"time":"2026-09-15T12:15:00-04:00","bar_open":"2026-09-15T12:10:00-04:00","open":361.760009765625,"high":361.9800109863281,"low":360.75,"close":360.8160095214844,"volume":204005.0,"vwap":359.48972137199036},{"time":"2026-09-15T12:20:00-04:00","bar_open":"2026-09-15T12:15:00-04:00","open":360.82000732421875,"high":361.1000061035156,"low":360.5299987792969,"close":360.8599853515625,"volume":199571.0,"vwap":359.5073758625165},{"time":"2026-09-15T12:25:00-04:00","bar_open":"2026-09-15T12:20:00-04:00","open":360.8299865722656,"high":361.0,"low":359.8900146484375,"close":360.76971435546875,"volume":255490.0,"vwap":359.5247199577974},{"time":"2026-09-15T12:30:00-04:00","bar_open":"2026-09-15T12:25:00-04:00","open":360.760009765625,"high":361.25,"low":360.7101135253906,"close":361.1794128417969,"volume":171234.0,"vwap":359.54144800588335},{"time":"2026-09-15T12:35:00-04:00","bar_open":"2026-09-15T12:30:00-04:00","open":361.17999267578125,"high":361.6549987792969,"low":360.66009521484375,"close":361.4700012207031,"volume":907830.0,"vwap":359.63618012698186},{"time":"2026-09-15T12:40:00-04:00","bar_open":"2026-09-15T12:35:00-04:00","open":361.5,"high":361.7200012207031,"low":360.9779052734375,"close":361.2099914550781,"volume":199814.0,"vwap":359.65613677623264},{"time":"2026-09-15T12:45:00-04:00","bar_open":"2026-09-15T12:40:00-04:00","open":361.2850036621094,"high":361.2850036621094,"low":359.80010986328125,"close":360.1199951171875,"volume":170487.0,"vwap":359.6636778145342},{"time":"2026-09-15T12:50:00-04:00","bar_open":"2026-09-15T12:45:00-04:00","open":360.05999755859375,"high":360.1698913574219,"low":358.8800048828125,"close":359.44500732421875,"volume":350221.0,"vwap":359.6603116224663},{"time":"2026-09-15T12:55:00-04:00","bar_open":"2026-09-15T12:50:00-04:00","open":359.4100036621094,"high":361.4798889160156,"low":359.25,"close":361.010009765625,"volume":370313.0,"vwap":359.679687812108},{"time":"2026-09-15T13:00:00-04:00","bar_open":"2026-09-15T12:55:00-04:00","open":361.05999755859375,"high":361.5400085449219,"low":359.9599914550781,"close":360.4949951171875,"volume":327137.0,"vwap":359.69769179028845},{"time":"2026-09-15T13:05:00-04:00","bar_open":"2026-09-15T13:00:00-04:00","open":360.54998779296875,"high":360.54998779296875,"low":358.7900085449219,"close":358.8399963378906,"volume":348913.0,"vwap":359.69187358197576},{"time":"2026-09-15T13:10:00-04:00","bar_open":"2026-09-15T13:05:00-04:00","open":358.8212890625,"high":359.83160400390625,"low":358.6499938964844,"close":359.2950134277344,"volume":306911.0,"vwap":359.6847130575195},{"time":"2026-09-15T13:15:00-04:00","bar_open":"2026-09-15T13:10:00-04:00","open":359.20001220703125,"high":359.6337890625,"low":359.1000061035156,"close":359.45001220703125,"volume":116793.0,"vwap":359.6828988068586},{"time":"2026-09-15T13:20:00-04:00","bar_open":"2026-09-15T13:15:00-04:00","open":359.45001220703125,"high":360.239990234375,"low":359.2200012207031,"close":360.239990234375,"volume":196317.0,"vwap":359.68515711615765},{"time":"2026-09-15T13:25:00-04:00","bar_open":"2026-09-15T13:20:00-04:00","open":360.2149963378906,"high":360.29998779296875,"low":359.2500915527344,"close":359.3500061035156,"volume":166819.0,"vwap":359.68470329017356},{"time":"2026-09-15T13:30:00-04:00","bar_open":"2026-09-15T13:25:00-04:00","open":359.3500061035156,"high":359.47491455078125,"low":358.8500061035156,"close":359.125,"volume":160798.0,"vwap":359.6802249614545},{"time":"2026-09-15T13:35:00-04:00","bar_open":"2026-09-15T13:30:00-04:00","open":359.05010986328125,"high":359.3800048828125,"low":356.1199951171875,"close":356.9400939941406,"volume":660779.0,"vwap":359.60702295258653},{"time":"2026-09-15T13:40:00-04:00","bar_open":"2026-09-15T13:35:00-04:00","open":357.2066955566406,"high":357.2066955566406,"low":355.1600036621094,"close":356.8299865722656,"volume":805199.0,"vwap":359.48202555557333},{"time":"2026-09-15T13:45:00-04:00","bar_open":"2026-09-15T13:40:00-04:00","open":356.8299865722656,"high":357.75,"low":356.760009765625,"close":357.3599853515625,"volume":364464.0,"vwap":359.4440368762018},{"time":"2026-09-15T13:50:00-04:00","bar_open":"2026-09-15T13:45:00-04:00","open":357.3399963378906,"high":357.70001220703125,"low":356.6199951171875,"close":357.0799865722656,"volume":191063.0,"vwap":359.42323286731914},{"time":"2026-09-15T13:55:00-04:00","bar_open":"2026-09-15T13:50:00-04:00","open":357.0799865722656,"high":357.1499938964844,"low":356.5299987792969,"close":356.9375,"volume":210286.0,"vwap":359.3982052633342},{"time":"2026-09-15T14:00:00-04:00","bar_open":"2026-09-15T13:55:00-04:00","open":356.92999267578125,"high":357.6300048828125,"low":356.27911376953125,"close":357.375,"volume":246921.0,"vwap":359.371968240621},{"time":"2026-09-15T14:05:00-04:00","bar_open":"2026-09-15T14:00:00-04:00","open":357.3800048828125,"high":358.1099853515625,"low":356.79998779296875,"close":357.4200134277344,"volume":297207.0,"vwap":359.34588479531254},{"time":"2026-09-15T14:10:00-04:00","bar_open":"2026-09-15T14:05:00-04:00","open":357.45001220703125,"high":357.7200012207031,"low":357.1400146484375,"close":357.4700012207031,"volume":131074.0,"vwap":359.334604410453},{"time":"2026-09-15T14:15:00-04:00","bar_open":"2026-09-15T14:10:00-04:00","open":357.4849853515625,"high":358.0899963378906,"low":357.4100036621094,"close":357.4100036621094,"volume":206569.0,"vwap":359.3188856027575},{"time":"2026-09-15T14:20:00-04:00","bar_open":"2026-09-15T14:15:00-04:00","open":357.4200134277344,"high":358.17999267578125,"low":357.1700134277344,"close":357.5199890136719,"volume":244268.0,"vwap":359.3005251771917},{"time":"2026-09-15T14:25:00-04:00","bar_open":"2026-09-15T14:20:00-04:00","open":357.44000244140625,"high":357.65631103515625,"low":357.20001220703125,"close":357.6300048828125,"volume":96124.0,"vwap":359.29286591833363},{"time":"2026-09-15T14:30:00-04:00","bar_open":"2026-09-15T14:25:00-04:00","open":357.6199951171875,"high":358.0799865722656,"low":357.3999938964844,"close":358.0000915527344,"volume":127166.0,"vwap":359.28468157782675},{"time":"2026-09-15T14:35:00-04:00","bar_open":"2026-09-15T14:30:00-04:00","open":358.0400085449219,"high":358.0799865722656,"low":357.30999755859375,"close":357.5199890136719,"volume":149384.0,"vwap":359.2739452482237},{"time":"2026-09-15T14:40:00-04:00","bar_open":"2026-09-15T14:35:00-04:00","open":357.5400085449219,"high":357.70001220703125,"low":356.91668701171875,"close":357.2149963378906,"volume":132295.0,"vwap":359.262491464093},{"time":"2026-09-15T14:45:00-04:00","bar_open":"2026-09-15T14:40:00-04:00","open":357.2076110839844,"high":357.3999938964844,"low":356.8800048828125,"close":357.1600036621094,"volume":133452.0,"vwap":359.25031871535043},{"time":"2026-09-15T14:50:00-04:00","bar_open":"2026-09-15T14:45:00-04:00","open":357.0849914550781,"high":357.239990234375,"low":356.5444030761719,"close":356.5849914550781,"volume":120849.0,"vwap":359.23756613935814},{"time":"2026-09-15T14:55:00-04:00","bar_open":"2026-09-15T14:50:00-04:00","open":356.5899963378906,"high":356.989990234375,"low":356.3800048828125,"close":356.8500061035156,"volume":159534.0,"vwap":359.220594016573},{"time":"2026-09-15T15:00:00-04:00","bar_open":"2026-09-15T14:55:00-04:00","open":356.8500061035156,"high":357.5899963378906,"low":356.7300109863281,"close":357.2655029296875,"volume":168939.0,"vwap":359.2061230408943},{"time":"2026-09-15T15:05:00-04:00","bar_open":"2026-09-15T15:00:00-04:00","open":357.25,"high":357.3800048828125,"low":356.3680114746094,"close":356.989990234375,"volume":151096.0,"vwap":359.1915607851675},{"time":"2026-09-15T15:10:00-04:00","bar_open":"2026-09-15T15:05:00-04:00","open":356.9849853515625,"high":357.1499938964844,"low":356.79998779296875,"close":357.0450134277344,"volume":151326.0,"vwap":359.1777018403226},{"time":"2026-09-15T15:15:00-04:00","bar_open":"2026-09-15T15:10:00-04:00","open":357.07000732421875,"high":357.1600036621094,"low":355.8999938964844,"close":356.2850036621094,"volume":195976.0,"vwap":359.1555475387827},{"time":"2026-09-15T15:20:00-04:00","bar_open":"2026-09-15T15:15:00-04:00","open":356.2535095214844,"high":356.6549987792969,"low":356.05999755859375,"close":356.4750061035156,"volume":187340.0,"vwap":359.1343053347822},{"time":"2026-09-15T15:25:00-04:00","bar_open":"2026-09-15T15:20:00-04:00","open":356.42999267578125,"high":356.5899963378906,"low":355.60009765625,"close":355.875,"volume":206434.0,"vwap":359.1081191245498},{"time":"2026-09-15T15:30:00-04:00","bar_open":"2026-09-15T15:25:00-04:00","open":355.875,"high":356.2970886230469,"low":355.8699951171875,"close":355.9599914550781,"volume":173998.0,"vwap":359.0865326929374},{"time":"2026-09-15T15:35:00-04:00","bar_open":"2026-09-15T15:30:00-04:00","open":355.92999267578125,"high":356.0173034667969,"low":355.39599609375,"close":355.5299987792969,"volume":246289.0,"vwap":359.0525983784169},{"time":"2026-09-15T15:40:00-04:00","bar_open":"2026-09-15T15:35:00-04:00","open":355.5050048828125,"high":355.6099853515625,"low":354.1600036621094,"close":354.4700012207031,"volume":500356.0,"vwap":358.96796974089546},{"time":"2026-09-15T15:45:00-04:00","bar_open":"2026-09-15T15:40:00-04:00","open":354.4599914550781,"high":355.29998779296875,"low":354.04998779296875,"close":355.1465148925781,"volume":487383.0,"vwap":358.89027965143055},{"time":"2026-09-15T15:50:00-04:00","bar_open":"2026-09-15T15:45:00-04:00","open":355.1300048828125,"high":355.3800048828125,"low":354.7300109863281,"close":355.32000732421875,"volume":288175.0,"vwap":358.8491200766971}],"fills":[{"time":"2026-09-15T09:35:00-04:00","action":"X","shares":33,"quantity":-33,"price":355.37221279907226,"reference_price":355.54998779296875,"shares_before":0,"shares_after":-33,"assumed_cost":5.866574798583985,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:35:00-04:00","pnl":null},{"time":"2026-09-15T09:40:00-04:00","action":"X","shares":58,"quantity":-58,"price":361.4591946411133,"reference_price":361.6400146484375,"shares_before":-33,"shares_after":-91,"assumed_cost":10.487560424804688,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:40:00-04:00","pnl":null},{"time":"2026-09-15T09:45:00-04:00","action":"C","shares":91,"quantity":91,"price":361.2605265655517,"reference_price":361.0799865722656,"shares_before":-91,"shares_after":0,"assumed_cost":16.429139389038085,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:45:00-04:00","pnl":null},{"time":"2026-09-15T09:45:00-04:00","action":"B","shares":14,"quantity":14,"price":361.2605265655517,"reference_price":361.0799865722656,"shares_before":0,"shares_after":14,"assumed_cost":2.52755990600586,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:45:00-04:00","pnl":null},{"time":"2026-09-15T09:50:00-04:00","action":"S","shares":14,"quantity":-14,"price":361.224906326294,"reference_price":361.4056091308594,"shares_before":14,"shares_after":0,"assumed_cost":2.529839263916016,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:50:00-04:00","pnl":null},{"time":"2026-09-15T10:00:00-04:00","action":"B","shares":39,"quantity":39,"price":359.2795561065674,"reference_price":359.1000061035156,"shares_before":0,"shares_after":39,"assumed_cost":7.002450119018555,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:00:00-04:00","pnl":null},{"time":"2026-09-15T10:10:00-04:00","action":"S","shares":22,"quantity":-22,"price":358.1658287200928,"reference_price":358.3450012207031,"shares_before":39,"shares_after":17,"assumed_cost":3.9417950134277344,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:10:00-04:00","pnl":null},{"time":"2026-09-15T10:15:00-04:00","action":"S","shares":17,"quantity":-17,"price":358.8704627990723,"reference_price":359.04998779296875,"shares_before":17,"shares_after":0,"assumed_cost":3.0519248962402346,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:15:00-04:00","pnl":null},{"time":"2026-09-15T10:15:00-04:00","action":"X","shares":55,"quantity":-55,"price":358.8704627990723,"reference_price":359.04998779296875,"shares_before":0,"shares_after":-55,"assumed_cost":9.87387466430664,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:15:00-04:00","pnl":null},{"time":"2026-09-15T10:20:00-04:00","action":"C","shares":1,"quantity":1,"price":359.55978648376464,"reference_price":359.3800964355469,"shares_before":-55,"shares_after":-54,"assumed_cost":0.1796900482177734,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:20:00-04:00","pnl":null},{"time":"2026-09-15T10:25:00-04:00","action":"C","shares":5,"quantity":5,"price":359.1094576721191,"reference_price":358.92999267578125,"shares_before":-54,"shares_after":-49,"assumed_cost":0.8973249816894531,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:25:00-04:00","pnl":null},{"time":"2026-09-15T10:30:00-04:00","action":"C","shares":49,"quantity":49,"price":359.429625,"reference_price":359.25,"shares_before":-49,"shares_after":0,"assumed_cost":8.801625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:30:00-04:00","pnl":null},{"time":"2026-09-15T10:35:00-04:00","action":"B","shares":12,"quantity":12,"price":359.0544375,"reference_price":358.875,"shares_before":0,"shares_after":12,"assumed_cost":2.15325,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:35:00-04:00","pnl":null},{"time":"2026-09-15T10:55:00-04:00","action":"S","shares":12,"quantity":-12,"price":355.9339435119629,"reference_price":356.11199951171875,"shares_before":12,"shares_after":0,"assumed_cost":2.1366719970703123,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:55:00-04:00","pnl":null},{"time":"2026-09-15T10:55:00-04:00","action":"X","shares":1,"quantity":-1,"price":355.9339435119629,"reference_price":356.11199951171875,"shares_before":0,"shares_after":-1,"assumed_cost":0.1780559997558593,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:55:00-04:00","pnl":null},{"time":"2026-09-15T11:00:00-04:00","action":"X","shares":66,"quantity":-66,"price":357.38213262939456,"reference_price":357.5609130859375,"shares_before":-1,"shares_after":-67,"assumed_cost":11.799510131835936,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:00:00-04:00","pnl":null},{"time":"2026-09-15T11:05:00-04:00","action":"C","shares":1,"quantity":1,"price":358.24904232788083,"reference_price":358.07000732421875,"shares_before":-67,"shares_after":-66,"assumed_cost":0.1790350036621093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:05:00-04:00","pnl":null},{"time":"2026-09-15T11:10:00-04:00","action":"X","shares":25,"quantity":-25,"price":359.4551922607422,"reference_price":359.635009765625,"shares_before":-66,"shares_after":-91,"assumed_cost":4.4954376220703125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:10:00-04:00","pnl":null},{"time":"2026-09-15T11:15:00-04:00","action":"C","shares":37,"quantity":37,"price":359.29955511474606,"reference_price":359.1199951171875,"shares_before":-91,"shares_after":-54,"assumed_cost":6.643719909667968,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:15:00-04:00","pnl":null},{"time":"2026-09-15T11:20:00-04:00","action":"C","shares":1,"quantity":1,"price":360.4151028442383,"reference_price":360.2349853515625,"shares_before":-54,"shares_after":-53,"assumed_cost":0.1801174926757812,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:20:00-04:00","pnl":null},{"time":"2026-09-15T11:25:00-04:00","action":"C","shares":3,"quantity":3,"price":361.7507923278808,"reference_price":361.5700073242188,"shares_before":-53,"shares_after":-50,"assumed_cost":0.5423550109863281,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:25:00-04:00","pnl":null},{"time":"2026-09-15T11:30:00-04:00","action":"C","shares":45,"quantity":45,"price":361.1104576721192,"reference_price":360.9299926757813,"shares_before":-50,"shares_after":-5,"assumed_cost":8.120924835205079,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:30:00-04:00","pnl":null},{"time":"2026-09-15T11:35:00-04:00","action":"C","shares":1,"quantity":1,"price":361.0704596557617,"reference_price":360.8900146484375,"shares_before":-5,"shares_after":-4,"assumed_cost":0.1804450073242187,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:35:00-04:00","pnl":null},{"time":"2026-09-15T11:40:00-04:00","action":"C","shares":4,"quantity":4,"price":360.14998622131344,"reference_price":359.9700012207031,"shares_before":-4,"shares_after":0,"assumed_cost":0.7199400024414062,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:40:00-04:00","pnl":null},{"time":"2026-09-15T11:40:00-04:00","action":"B","shares":6,"quantity":6,"price":360.14998622131344,"reference_price":359.9700012207031,"shares_before":0,"shares_after":6,"assumed_cost":1.0799100036621094,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:40:00-04:00","pnl":null},{"time":"2026-09-15T11:45:00-04:00","action":"S","shares":6,"quantity":-6,"price":360.4197061004639,"reference_price":360.6000061035156,"shares_before":6,"shares_after":0,"assumed_cost":1.081800018310547,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:45:00-04:00","pnl":null},{"time":"2026-09-15T11:50:00-04:00","action":"B","shares":1,"quantity":1,"price":361.09546604919433,"reference_price":360.9150085449219,"shares_before":0,"shares_after":1,"assumed_cost":0.1804575042724609,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:50:00-04:00","pnl":null},{"time":"2026-09-15T11:55:00-04:00","action":"S","shares":1,"quantity":-1,"price":361.9189561004639,"reference_price":362.1000061035156,"shares_before":1,"shares_after":0,"assumed_cost":0.1810500030517578,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:55:00-04:00","pnl":null},{"time":"2026-09-15T12:00:00-04:00","action":"X","shares":1,"quantity":-1,"price":360.9844260406495,"reference_price":361.1650085449219,"shares_before":0,"shares_after":-1,"assumed_cost":0.1805825042724609,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:00:00-04:00","pnl":null},{"time":"2026-09-15T12:05:00-04:00","action":"C","shares":1,"quantity":1,"price":361.734762588501,"reference_price":361.5539855957031,"shares_before":-1,"shares_after":0,"assumed_cost":0.1807769927978515,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:05:00-04:00","pnl":null},{"time":"2026-09-15T12:10:00-04:00","action":"B","shares":11,"quantity":11,"price":361.9408897705078,"reference_price":361.760009765625,"shares_before":0,"shares_after":11,"assumed_cost":1.9896800537109376,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:10:00-04:00","pnl":null},{"time":"2026-09-15T12:15:00-04:00","action":"S","shares":11,"quantity":-11,"price":360.6395973205567,"reference_price":360.8200073242188,"shares_before":11,"shares_after":0,"assumed_cost":1.9845100402832032,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:15:00-04:00","pnl":null},{"time":"2026-09-15T12:35:00-04:00","action":"B","shares":12,"quantity":12,"price":361.68075,"reference_price":361.5,"shares_before":0,"shares_after":12,"assumed_cost":2.169,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:35:00-04:00","pnl":null},{"time":"2026-09-15T12:40:00-04:00","action":"S","shares":7,"quantity":-7,"price":361.1043611602784,"reference_price":361.2850036621094,"shares_before":12,"shares_after":5,"assumed_cost":1.2644975128173828,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:40:00-04:00","pnl":null},{"time":"2026-09-15T12:45:00-04:00","action":"S","shares":5,"quantity":-5,"price":359.8799675598145,"reference_price":360.0599975585937,"shares_before":5,"shares_after":0,"assumed_cost":0.9001499938964844,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:45:00-04:00","pnl":null},{"time":"2026-09-15T12:55:00-04:00","action":"X","shares":27,"quantity":-27,"price":360.8794675598145,"reference_price":361.05999755859375,"shares_before":0,"shares_after":-27,"assumed_cost":4.874309967041016,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:55:00-04:00","pnl":null},{"time":"2026-09-15T13:00:00-04:00","action":"C","shares":1,"quantity":1,"price":360.7302627868653,"reference_price":360.5499877929688,"shares_before":-27,"shares_after":-26,"assumed_cost":0.1802749938964843,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:00:00-04:00","pnl":null},{"time":"2026-09-15T13:10:00-04:00","action":"C","shares":1,"quantity":1,"price":359.37961221313475,"reference_price":359.20001220703125,"shares_before":-26,"shares_after":-25,"assumed_cost":0.1796000061035156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:10:00-04:00","pnl":null},{"time":"2026-09-15T13:15:00-04:00","action":"C","shares":1,"quantity":1,"price":359.6297372131347,"reference_price":359.45001220703125,"shares_before":-25,"shares_after":-24,"assumed_cost":0.1797250061035156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:15:00-04:00","pnl":null},{"time":"2026-09-15T13:20:00-04:00","action":"C","shares":1,"quantity":1,"price":360.3951038360596,"reference_price":360.2149963378906,"shares_before":-24,"shares_after":-23,"assumed_cost":0.1801074981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:20:00-04:00","pnl":null},{"time":"2026-09-15T13:25:00-04:00","action":"C","shares":1,"quantity":1,"price":359.5296811065673,"reference_price":359.3500061035156,"shares_before":-23,"shares_after":-22,"assumed_cost":0.1796750030517578,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:25:00-04:00","pnl":null},{"time":"2026-09-15T13:30:00-04:00","action":"C","shares":22,"quantity":22,"price":359.22963491821287,"reference_price":359.05010986328125,"shares_before":-22,"shares_after":0,"assumed_cost":3.9495512084960938,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:30:00-04:00","pnl":null},{"time":"2026-09-15T13:30:00-04:00","action":"B","shares":20,"quantity":20,"price":359.22963491821287,"reference_price":359.05010986328125,"shares_before":0,"shares_after":20,"assumed_cost":3.5905010986328123,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:30:00-04:00","pnl":null},{"time":"2026-09-15T13:35:00-04:00","action":"S","shares":20,"quantity":-20,"price":357.02809220886235,"reference_price":357.2066955566406,"shares_before":20,"shares_after":0,"assumed_cost":3.5720669555664064,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:35:00-04:00","pnl":null},{"time":"2026-09-15T13:35:00-04:00","action":"X","shares":78,"quantity":-78,"price":357.02809220886235,"reference_price":357.2066955566406,"shares_before":0,"shares_after":-78,"assumed_cost":13.931061126708984,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:35:00-04:00","pnl":null},{"time":"2026-09-15T13:45:00-04:00","action":"C","shares":1,"quantity":1,"price":357.51866633605954,"reference_price":357.3399963378906,"shares_before":-78,"shares_after":-77,"assumed_cost":0.1786699981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:45:00-04:00","pnl":null},{"time":"2026-09-15T13:50:00-04:00","action":"C","shares":26,"quantity":26,"price":357.25852656555173,"reference_price":357.0799865722656,"shares_before":-77,"shares_after":-51,"assumed_cost":4.642039825439453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:50:00-04:00","pnl":null},{"time":"2026-09-15T13:55:00-04:00","action":"C","shares":51,"quantity":51,"price":357.1084576721192,"reference_price":356.92999267578125,"shares_before":-51,"shares_after":0,"assumed_cost":9.10171481323242,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:55:00-04:00","pnl":null},{"time":"2026-09-15T14:00:00-04:00","action":"B","shares":17,"quantity":17,"price":357.5586948852539,"reference_price":357.3800048828125,"shares_before":0,"shares_after":17,"assumed_cost":3.0377300415039064,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:00:00-04:00","pnl":null},{"time":"2026-09-15T14:15:00-04:00","action":"S","shares":1,"quantity":-1,"price":357.2413034210205,"reference_price":357.4200134277344,"shares_before":17,"shares_after":16,"assumed_cost":0.1787100067138672,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:15:00-04:00","pnl":null},{"time":"2026-09-15T14:25:00-04:00","action":"S","shares":1,"quantity":-1,"price":357.4411851196289,"reference_price":357.6199951171875,"shares_before":16,"shares_after":15,"assumed_cost":0.1788099975585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:25:00-04:00","pnl":null},{"time":"2026-09-15T14:30:00-04:00","action":"S","shares":1,"quantity":-1,"price":357.86098854064943,"reference_price":358.0400085449219,"shares_before":15,"shares_after":14,"assumed_cost":0.1790200042724609,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:30:00-04:00","pnl":null},{"time":"2026-09-15T14:35:00-04:00","action":"S","shares":1,"quantity":-1,"price":357.3612385406494,"reference_price":357.5400085449219,"shares_before":14,"shares_after":13,"assumed_cost":0.1787700042724609,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:35:00-04:00","pnl":null},{"time":"2026-09-15T14:55:00-04:00","action":"S","shares":1,"quantity":-1,"price":356.67158110046387,"reference_price":356.8500061035156,"shares_before":13,"shares_after":12,"assumed_cost":0.1784250030517578,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:55:00-04:00","pnl":null},{"time":"2026-09-15T15:00:00-04:00","action":"S","shares":12,"quantity":-12,"price":357.07137500000005,"reference_price":357.25,"shares_before":12,"shares_after":0,"assumed_cost":2.1435,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:00:00-04:00","pnl":null},{"time":"2026-09-15T15:30:00-04:00","action":"B","shares":4,"quantity":4,"price":356.10795767211914,"reference_price":355.92999267578125,"shares_before":0,"shares_after":4,"assumed_cost":0.7118599853515625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:30:00-04:00","pnl":null},{"time":"2026-09-15T15:35:00-04:00","action":"S","shares":1,"quantity":-1,"price":355.32725238037114,"reference_price":355.5050048828125,"shares_before":4,"shares_after":3,"assumed_cost":0.1777525024414062,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:35:00-04:00","pnl":null},{"time":"2026-09-15T15:40:00-04:00","action":"S","shares":3,"quantity":-3,"price":354.2827614593506,"reference_price":354.4599914550781,"shares_before":3,"shares_after":0,"assumed_cost":0.5316899871826172,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:40:00-04:00","pnl":null}],"marks":[{"time":"2026-09-15T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:40:00-04:00","shares":-33,"pnl":-205.5171790466302},{"time":"2026-09-15T09:45:00-04:00","shares":-91,"pnl":-163.63257760620036},{"time":"2026-09-15T09:50:00-04:00","shares":14,"pnl":-179.749585739135},{"time":"2026-09-15T09:55:00-04:00","shares":0,"pnl":-183.29028926086264},{"time":"2026-09-15T10:00:00-04:00","shares":0,"pnl":-183.29028926086264},{"time":"2026-09-15T10:05:00-04:00","shares":39,"pnl":-166.7520594482412},{"time":"2026-09-15T10:10:00-04:00","shares":39,"pnl":-219.73792980956927},{"time":"2026-09-15T10:15:00-04:00","shares":17,"pnl":-211.3546210632303},{"time":"2026-09-15T10:20:00-04:00","shares":-55,"pnl":-246.34682687377423},{"time":"2026-09-15T10:25:00-04:00","shares":-54,"pnl":-218.650815017696},{"time":"2026-09-15T10:30:00-04:00","shares":-49,"pnl":-237.1889175872748},{"time":"2026-09-15T10:35:00-04:00","shares":0,"pnl":-244.03012388610296},{"time":"2026-09-15T10:40:00-04:00","shares":12,"pnl":-251.64321275329075},{"time":"2026-09-15T10:45:00-04:00","shares":12,"pnl":-259.34719224547825},{"time":"2026-09-15T10:50:00-04:00","shares":12,"pnl":-266.88344712829075},{"time":"2026-09-15T10:55:00-04:00","shares":12,"pnl":-280.08352037047825},{"time":"2026-09-15T11:00:00-04:00","shares":-1,"pnl":-283.152093582148},{"time":"2026-09-15T11:05:00-04:00","shares":-67,"pnl":-329.87469941710515},{"time":"2026-09-15T11:10:00-04:00","shares":-66,"pnl":-432.4810415496722},{"time":"2026-09-15T11:15:00-04:00","shares":-91,"pnl":-395.1144796600238},{"time":"2026-09-15T11:20:00-04:00","shares":-54,"pnl":-454.5342615814079},{"time":"2026-09-15T11:25:00-04:00","shares":-53,"pnl":-528.9590384979128},{"time":"2026-09-15T11:30:00-04:00","shares":-50,"pnl":-491.9414264678853},{"time":"2026-09-15T11:35:00-04:00","shares":-5,"pnl":-504.1121865081677},{"time":"2026-09-15T11:40:00-04:00","shares":-4,"pnl":-500.7430404510387},{"time":"2026-09-15T11:45:00-04:00","shares":6,"pnl":-498.0425852813605},{"time":"2026-09-15T11:50:00-04:00","shares":0,"pnl":-499.9642900848271},{"time":"2026-09-15T11:55:00-04:00","shares":1,"pnl":-498.9597500305058},{"time":"2026-09-15T12:00:00-04:00","shares":0,"pnl":-499.1408000335575},{"time":"2026-09-15T12:05:00-04:00","shares":-1,"pnl":-499.6913776550175},{"time":"2026-09-15T12:10:00-04:00","shares":0,"pnl":-499.89113658140906},{"time":"2026-09-15T12:15:00-04:00","shares":11,"pnl":-512.2648193206669},{"time":"2026-09-15T12:20:00-04:00","shares":0,"pnl":-514.2053535308714},{"time":"2026-09-15T12:25:00-04:00","shares":0,"pnl":-514.2053535308714},{"time":"2026-09-15T12:30:00-04:00","shares":0,"pnl":-514.2053535308714},{"time":"2026-09-15T12:35:00-04:00","shares":0,"pnl":-514.2053535308714},{"time":"2026-09-15T12:40:00-04:00","shares":12,"pnl":-519.8544560699338},{"time":"2026-09-15T12:45:00-04:00","shares":5,"pnl":-526.0438498229851},{"time":"2026-09-15T12:50:00-04:00","shares":0,"pnl":-527.2439876098501},{"time":"2026-09-15T12:55:00-04:00","shares":0,"pnl":-527.2439876098501},{"time":"2026-09-15T13:00:00-04:00","shares":-27,"pnl":-516.8632316589228},{"time":"2026-09-15T13:05:00-04:00","shares":-26,"pnl":-474.0685310668814},{"time":"2026-09-15T13:10:00-04:00","shares":-26,"pnl":-485.8989754028189},{"time":"2026-09-15T13:15:00-04:00","shares":-25,"pnl":-489.85854367064167},{"time":"2026-09-15T13:20:00-04:00","shares":-24,"pnl":-508.9977413329953},{"time":"2026-09-15T13:25:00-04:00","shares":-23,"pnl":-488.6832199249138},{"time":"2026-09-15T13:30:00-04:00","shares":-22,"pnl":-483.91276065062175},{"time":"2026-09-15T13:35:00-04:00","shares":20,"pnl":-532.0055473327502},{"time":"2026-09-15T13:40:00-04:00","shares":-78,"pnl":-514.7933433837716},{"time":"2026-09-15T13:45:00-04:00","shares":-78,"pnl":-556.1332481689278},{"time":"2026-09-15T13:50:00-04:00","shares":-77,"pnl":-534.7320231475642},{"time":"2026-09-15T13:55:00-04:00","shares":-51,"pnl":-532.107247787455},{"time":"2026-09-15T14:00:00-04:00","shares":0,"pnl":-540.8260890655292},{"time":"2026-09-15T14:05:00-04:00","shares":17,"pnl":-543.1836738433612},{"time":"2026-09-15T14:10:00-04:00","shares":17,"pnl":-542.3338813628925},{"time":"2026-09-15T14:15:00-04:00","shares":17,"pnl":-543.3538398589862},{"time":"2026-09-15T14:20:00-04:00","shares":16,"pnl":-541.7627744750753},{"time":"2026-09-15T14:25:00-04:00","shares":16,"pnl":-540.0025205688253},{"time":"2026-09-15T14:30:00-04:00","shares":15,"pnl":-534.6400402831805},{"time":"2026-09-15T14:35:00-04:00","shares":14,"pnl":-541.5005788421404},{"time":"2026-09-15T14:40:00-04:00","shares":13,"pnl":-545.624234100319},{"time":"2026-09-15T14:45:00-04:00","shares":13,"pnl":-546.3391388854752},{"time":"2026-09-15T14:50:00-04:00","shares":13,"pnl":-553.8142975768815},{"time":"2026-09-15T14:55:00-04:00","shares":13,"pnl":-550.369107147194},{"time":"2026-09-15T15:00:00-04:00","shares":12,"pnl":-545.5615702361829},{"time":"2026-09-15T15:05:00-04:00","shares":0,"pnl":-547.8911053924321},{"time":"2026-09-15T15:10:00-04:00","shares":0,"pnl":-547.8911053924321},{"time":"2026-09-15T15:15:00-04:00","shares":0,"pnl":-547.8911053924321},{"time":"2026-09-15T15:20:00-04:00","shares":0,"pnl":-547.8911053924321},{"time":"2026-09-15T15:25:00-04:00","shares":0,"pnl":-547.8911053924321},{"time":"2026-09-15T15:30:00-04:00","shares":0,"pnl":-547.8911053924321},{"time":"2026-09-15T15:35:00-04:00","shares":4,"pnl":-550.2029409637212},{"time":"2026-09-15T15:40:00-04:00","shares":3,"pnl":-553.5856800384281},{"time":"2026-09-15T15:45:00-04:00","shares":0,"pnl":-554.1473993224859},{"time":"2026-09-15T15:50:00-04:00","shares":0,"pnl":-554.1473993224859}],"summary":{"net_pnl":-554.1473993224859,"gross_pnl":-381.8005981445074,"cost":172.3468011779785,"fill_count":58,"ending_shares":0},"source_hashes":{"fills_sha256":"1773d880309aa6ed18571f60367dd6e70228364185393bc15b0a014e80df66d1","marks_sha256":"ced4c0a899ef214863a89f9ef41b3be1c69e25ae1ccec8ae84788960faf4ba3d","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-15/levels/NVDA.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"NVDA","date":"2026-09-15","variant":"levels","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-15T15:50:00-04:00","partial":true,"starting_equity":47958.07,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-15T09:30:00-04:00","session_close":"2026-09-15T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-15T09:35:00-04:00","bar_open":"2026-09-15T09:30:00-04:00","open":213.08999633789062,"high":213.87950134277344,"low":212.5625,"close":213.37989807128906,"volume":9144789.0,"vwap":213.27396647135416},{"time":"2026-09-15T09:40:00-04:00","bar_open":"2026-09-15T09:35:00-04:00","open":213.3809051513672,"high":213.6199951171875,"low":212.6710968017578,"close":213.08949279785156,"volume":2119682.0,"vwap":213.2462851353456},{"time":"2026-09-15T09:45:00-04:00","bar_open":"2026-09-15T09:40:00-04:00","open":213.0850067138672,"high":213.60989379882812,"low":212.9199981689453,"close":213.30999755859375,"volume":1887876.0,"vwap":213.2511192507815},{"time":"2026-09-15T09:50:00-04:00","bar_open":"2026-09-15T09:45:00-04:00","open":213.31500244140625,"high":213.94000244140625,"low":213.2100067138672,"close":213.57000732421875,"volume":1844948.0,"vwap":213.29075828980672},{"time":"2026-09-15T09:55:00-04:00","bar_open":"2026-09-15T09:50:00-04:00","open":213.5500030517578,"high":213.7169952392578,"low":213.17999267578125,"close":213.25079345703125,"volume":1473221.0,"vwap":213.29897260370234},{"time":"2026-09-15T10:00:00-04:00","bar_open":"2026-09-15T09:55:00-04:00","open":213.27000427246094,"high":213.44000244140625,"low":212.99000549316406,"close":213.25,"volume":1423358.0,"vwap":213.29322127957045},{"time":"2026-09-15T10:05:00-04:00","bar_open":"2026-09-15T10:00:00-04:00","open":213.25999450683594,"high":213.30239868164062,"low":212.47999572753906,"close":212.81500244140625,"volume":2309803.0,"vwap":213.24435584885418},{"time":"2026-09-15T10:10:00-04:00","bar_open":"2026-09-15T10:05:00-04:00","open":212.79049682617188,"high":213.25,"low":212.79049682617188,"close":213.1199951171875,"volume":1008577.0,"vwap":213.23528111648247},{"time":"2026-09-15T10:15:00-04:00","bar_open":"2026-09-15T10:10:00-04:00","open":213.11000061035156,"high":213.1699981689453,"low":212.41050720214844,"close":212.63999938964844,"volume":1332275.0,"vwap":213.20602228878982},{"time":"2026-09-15T10:20:00-04:00","bar_open":"2026-09-15T10:15:00-04:00","open":212.63499450683594,"high":212.77999877929688,"low":212.49000549316406,"close":212.6300048828125,"volume":838493.0,"vwap":213.1854863152339},{"time":"2026-09-15T10:25:00-04:00","bar_open":"2026-09-15T10:20:00-04:00","open":212.6199951171875,"high":212.7899932861328,"low":211.9600067138672,"close":212.67999267578125,"volume":1497913.0,"vwap":213.1428129260201},{"time":"2026-09-15T10:30:00-04:00","bar_open":"2026-09-15T10:25:00-04:00","open":212.67999267578125,"high":212.89999389648438,"low":212.41000366210938,"close":212.74009704589844,"volume":850663.0,"vwap":213.1276239951484},{"time":"2026-09-15T10:35:00-04:00","bar_open":"2026-09-15T10:30:00-04:00","open":212.74000549316406,"high":212.97999572753906,"low":212.6199951171875,"close":212.6999969482422,"volume":957247.0,"vwap":213.1146774170981},{"time":"2026-09-15T10:40:00-04:00","bar_open":"2026-09-15T10:35:00-04:00","open":212.6999969482422,"high":213.05999755859375,"low":212.68499755859375,"close":212.80999755859375,"volume":876931.0,"vwap":213.10631036001504},{"time":"2026-09-15T10:45:00-04:00","bar_open":"2026-09-15T10:40:00-04:00","open":212.8199005126953,"high":212.91000366210938,"low":212.52049255371094,"close":212.7100067138672,"volume":886347.0,"vwap":213.09407347285568},{"time":"2026-09-15T10:50:00-04:00","bar_open":"2026-09-15T10:45:00-04:00","open":212.7100067138672,"high":212.9499969482422,"low":212.1699981689453,"close":212.24000549316406,"volume":824588.0,"vwap":213.07602682607197},{"time":"2026-09-15T10:55:00-04:00","bar_open":"2026-09-15T10:50:00-04:00","open":212.22000122070312,"high":212.3000030517578,"low":211.6300048828125,"close":212.1313934326172,"volume":1294661.0,"vwap":213.03132513648077},{"time":"2026-09-15T11:00:00-04:00","bar_open":"2026-09-15T10:55:00-04:00","open":212.13499450683594,"high":212.39999389648438,"low":212.0,"close":212.03500366210938,"volume":964503.0,"vwap":213.00421746821328},{"time":"2026-09-15T11:05:00-04:00","bar_open":"2026-09-15T11:00:00-04:00","open":212.03500366210938,"high":212.55999755859375,"low":212.02000427246094,"close":212.55999755859375,"volume":842636.0,"vwap":212.98797248764637},{"time":"2026-09-15T11:10:00-04:00","bar_open":"2026-09-15T11:05:00-04:00","open":212.56500244140625,"high":212.58999633789062,"low":212.14500427246094,"close":212.19410705566406,"volume":628318.0,"vwap":212.9750609411501},{"time":"2026-09-15T11:15:00-04:00","bar_open":"2026-09-15T11:10:00-04:00","open":212.17999267578125,"high":212.35000610351562,"low":212.1199951171875,"close":212.2299041748047,"volume":561634.0,"vwap":212.96265056792802},{"time":"2026-09-15T11:20:00-04:00","bar_open":"2026-09-15T11:15:00-04:00","open":212.22500610351562,"high":212.3699951171875,"low":212.11000061035156,"close":212.22000122070312,"volume":454675.0,"vwap":212.95290417780498},{"time":"2026-09-15T11:25:00-04:00","bar_open":"2026-09-15T11:20:00-04:00","open":212.2100067138672,"high":212.22999572753906,"low":211.97999572753906,"close":212.11000061035156,"volume":695286.0,"vwap":212.9359570107014},{"time":"2026-09-15T11:30:00-04:00","bar_open":"2026-09-15T11:25:00-04:00","open":212.10000610351562,"high":212.36000061035156,"low":212.10000610351562,"close":212.25999450683594,"volume":1388829.0,"vwap":212.90918774320548},{"time":"2026-09-15T11:35:00-04:00","bar_open":"2026-09-15T11:30:00-04:00","open":212.2510986328125,"high":212.2550048828125,"low":211.99049377441406,"close":212.1699981689453,"volume":522912.0,"vwap":212.8981858156306},{"time":"2026-09-15T11:40:00-04:00","bar_open":"2026-09-15T11:35:00-04:00","open":212.1699981689453,"high":212.39999389648438,"low":212.11000061035156,"close":212.2100067138672,"volume":477485.0,"vwap":212.88971657384656},{"time":"2026-09-15T11:45:00-04:00","bar_open":"2026-09-15T11:40:00-04:00","open":212.2100067138672,"high":212.47000122070312,"low":212.11000061035156,"close":212.27999877929688,"volume":594696.0,"vwap":212.88020440060916},{"time":"2026-09-15T11:50:00-04:00","bar_open":"2026-09-15T11:45:00-04:00","open":212.27999877929688,"high":212.38999938964844,"low":212.01199340820312,"close":212.10189819335938,"volume":576544.0,"vwap":212.86947686584},{"time":"2026-09-15T11:55:00-04:00","bar_open":"2026-09-15T11:50:00-04:00","open":212.09500122070312,"high":212.3699951171875,"low":211.92999267578125,"close":212.27499389648438,"volume":712081.0,"vwap":212.85709809972428},{"time":"2026-09-15T12:00:00-04:00","bar_open":"2026-09-15T11:55:00-04:00","open":212.27499389648438,"high":212.44000244140625,"low":212.16000366210938,"close":212.17990112304688,"volume":527496.0,"vwap":212.84912756858623},{"time":"2026-09-15T12:05:00-04:00","bar_open":"2026-09-15T12:00:00-04:00","open":212.19000244140625,"high":212.35000610351562,"low":212.16000366210938,"close":212.3000030517578,"volume":404694.0,"vwap":212.84325709847985},{"time":"2026-09-15T12:10:00-04:00","bar_open":"2026-09-15T12:05:00-04:00","open":212.2899932861328,"high":212.32000732421875,"low":211.97999572753906,"close":212.02999877929688,"volume":535992.0,"vwap":212.8335431133259},{"time":"2026-09-15T12:15:00-04:00","bar_open":"2026-09-15T12:10:00-04:00","open":212.0399932861328,"high":212.08999633789062,"low":211.83999633789062,"close":211.8419952392578,"volume":619690.0,"vwap":212.81982224810565},{"time":"2026-09-15T12:20:00-04:00","bar_open":"2026-09-15T12:15:00-04:00","open":211.8498992919922,"high":212.02000427246094,"low":211.80499267578125,"close":211.89010620117188,"volume":541936.0,"vwap":212.80791097473931},{"time":"2026-09-15T12:25:00-04:00","bar_open":"2026-09-15T12:20:00-04:00","open":211.89500427246094,"high":212.13999938964844,"low":211.86000061035156,"close":212.12010192871094,"volume":591119.0,"vwap":212.79715792394126},{"time":"2026-09-15T12:30:00-04:00","bar_open":"2026-09-15T12:25:00-04:00","open":212.125,"high":212.1699981689453,"low":211.91050720214844,"close":211.97000122070312,"volume":454782.0,"vwap":212.7888405067274},{"time":"2026-09-15T12:35:00-04:00","bar_open":"2026-09-15T12:30:00-04:00","open":211.9600067138672,"high":211.9600067138672,"low":211.75,"close":211.83999633789062,"volume":503441.0,"vwap":212.77789195526472},{"time":"2026-09-15T12:40:00-04:00","bar_open":"2026-09-15T12:35:00-04:00","open":211.83399963378906,"high":211.9600067138672,"low":211.7100067138672,"close":211.85000610351562,"volume":452387.0,"vwap":212.76816561897203},{"time":"2026-09-15T12:45:00-04:00","bar_open":"2026-09-15T12:40:00-04:00","open":211.8560028076172,"high":212.19500732421875,"low":211.7899932861328,"close":212.0800018310547,"volume":434746.0,"vwap":212.7607993614263},{"time":"2026-09-15T12:50:00-04:00","bar_open":"2026-09-15T12:45:00-04:00","open":212.0749969482422,"high":212.14999389648438,"low":211.87109375,"close":212.05419921875,"volume":401272.0,"vwap":212.75415907580302},{"time":"2026-09-15T12:55:00-04:00","bar_open":"2026-09-15T12:50:00-04:00","open":212.0500030517578,"high":212.16000366210938,"low":211.9600067138672,"close":212.08999633789062,"volume":453926.0,"vwap":212.74724436589636},{"time":"2026-09-15T13:00:00-04:00","bar_open":"2026-09-15T12:55:00-04:00","open":212.08999633789062,"high":212.13999938964844,"low":211.6999969482422,"close":211.77000427246094,"volume":518441.0,"vwap":212.73723357124123},{"time":"2026-09-15T13:05:00-04:00","bar_open":"2026-09-15T13:00:00-04:00","open":211.77499389648438,"high":211.8000030517578,"low":211.39999389648438,"close":211.46240234375,"volume":867968.0,"vwap":212.7150539035354},{"time":"2026-09-15T13:10:00-04:00","bar_open":"2026-09-15T13:05:00-04:00","open":211.4550018310547,"high":211.52999877929688,"low":211.27000427246094,"close":211.4499969482422,"volume":627276.0,"vwap":212.6976979649378},{"time":"2026-09-15T13:15:00-04:00","bar_open":"2026-09-15T13:10:00-04:00","open":211.4499969482422,"high":211.6199951171875,"low":211.4199981689453,"close":211.4250030517578,"volume":427931.0,"vwap":212.68676912269885},{"time":"2026-09-15T13:20:00-04:00","bar_open":"2026-09-15T13:15:00-04:00","open":211.4250030517578,"high":211.65499877929688,"low":211.3542022705078,"close":211.64999389648438,"volume":456396.0,"vwap":212.67594684674364},{"time":"2026-09-15T13:25:00-04:00","bar_open":"2026-09-15T13:20:00-04:00","open":211.66000366210938,"high":211.74029541015625,"low":211.24000549316406,"close":211.3000030517578,"volume":685161.0,"vwap":212.6582980663006},{"time":"2026-09-15T13:30:00-04:00","bar_open":"2026-09-15T13:25:00-04:00","open":211.2899932861328,"high":211.35989379882812,"low":211.16000366210938,"close":211.3300018310547,"volume":477154.0,"vwap":212.6449011149057},{"time":"2026-09-15T13:35:00-04:00","bar_open":"2026-09-15T13:30:00-04:00","open":211.33990478515625,"high":211.6199951171875,"low":211.3300018310547,"close":211.5449981689453,"volume":432935.0,"vwap":212.63485389593095},{"time":"2026-09-15T13:40:00-04:00","bar_open":"2026-09-15T13:35:00-04:00","open":211.5449981689453,"high":211.7899932861328,"low":211.5,"close":211.5699005126953,"volume":439809.0,"vwap":212.6258990807407},{"time":"2026-09-15T13:45:00-04:00","bar_open":"2026-09-15T13:40:00-04:00","open":211.55999755859375,"high":211.69650268554688,"low":211.5,"close":211.54989624023438,"volume":551715.0,"vwap":212.61447263278964},{"time":"2026-09-15T13:50:00-04:00","bar_open":"2026-09-15T13:45:00-04:00","open":211.55999755859375,"high":211.77000427246094,"low":211.4700927734375,"close":211.7104949951172,"volume":690738.0,"vwap":212.601435091777},{"time":"2026-09-15T13:55:00-04:00","bar_open":"2026-09-15T13:50:00-04:00","open":211.7100067138672,"high":211.97999572753906,"low":211.6699981689453,"close":211.83999633789062,"volume":463608.0,"vwap":212.59449747781022},{"time":"2026-09-15T14:00:00-04:00","bar_open":"2026-09-15T13:55:00-04:00","open":211.835205078125,"high":211.97999572753906,"low":211.77499389648438,"close":211.9597930908203,"volume":407581.0,"vwap":212.5890883148274},{"time":"2026-09-15T14:05:00-04:00","bar_open":"2026-09-15T14:00:00-04:00","open":211.9600067138672,"high":212.101806640625,"low":211.9199981689453,"close":212.0500030517578,"volume":718947.0,"vwap":212.58137515695034},{"time":"2026-09-15T14:10:00-04:00","bar_open":"2026-09-15T14:05:00-04:00","open":212.05499267578125,"high":212.11000061035156,"low":211.77000427246094,"close":211.88999938964844,"volume":474788.0,"vwap":212.5754972145393},{"time":"2026-09-15T14:15:00-04:00","bar_open":"2026-09-15T14:10:00-04:00","open":211.88999938964844,"high":211.9499969482422,"low":211.6699981689453,"close":211.6999969482422,"volume":495489.0,"vwap":212.56808851695786},{"time":"2026-09-15T14:20:00-04:00","bar_open":"2026-09-15T14:15:00-04:00","open":211.7100067138672,"high":211.8000030517578,"low":211.55999755859375,"close":211.71499633789062,"volume":435891.0,"vwap":212.56102500718836},{"time":"2026-09-15T14:25:00-04:00","bar_open":"2026-09-15T14:20:00-04:00","open":211.7100067138672,"high":211.97500610351562,"low":211.7050018310547,"close":211.9550018310547,"volume":341527.0,"vwap":212.5567410738779},{"time":"2026-09-15T14:30:00-04:00","bar_open":"2026-09-15T14:25:00-04:00","open":211.93499755859375,"high":212.1999969482422,"low":211.92999267578125,"close":212.10000610351562,"volume":539156.0,"vwap":212.55203196918995},{"time":"2026-09-15T14:35:00-04:00","bar_open":"2026-09-15T14:30:00-04:00","open":212.10000610351562,"high":212.19000244140625,"low":211.92999267578125,"close":212.02999877929688,"volume":504301.0,"vwap":212.54746770725748},{"time":"2026-09-15T14:40:00-04:00","bar_open":"2026-09-15T14:35:00-04:00","open":212.02499389648438,"high":212.1699981689453,"low":211.9949951171875,"close":212.16000366210938,"volume":400794.0,"vwap":212.54431748983743},{"time":"2026-09-15T14:45:00-04:00","bar_open":"2026-09-15T14:40:00-04:00","open":212.15499877929688,"high":212.3300018310547,"low":211.9499969482422,"close":212.0124053955078,"volume":587187.0,"vwap":212.53967000522894},{"time":"2026-09-15T14:50:00-04:00","bar_open":"2026-09-15T14:45:00-04:00","open":212.02000427246094,"high":212.07000732421875,"low":211.91000366210938,"close":211.9813995361328,"volume":433109.0,"vwap":212.53546354368532},{"time":"2026-09-15T14:55:00-04:00","bar_open":"2026-09-15T14:50:00-04:00","open":211.99000549316406,"high":212.1199951171875,"low":211.9499969482422,"close":212.0749969482422,"volume":492252.0,"vwap":212.53128470553727},{"time":"2026-09-15T15:00:00-04:00","bar_open":"2026-09-15T14:55:00-04:00","open":212.07330322265625,"high":212.14999389648438,"low":212.02000427246094,"close":212.110107421875,"volume":369066.0,"vwap":212.52848617234258},{"time":"2026-09-15T15:05:00-04:00","bar_open":"2026-09-15T15:00:00-04:00","open":212.10000610351562,"high":212.10000610351562,"low":211.91000366210938,"close":211.9597930908203,"volume":418593.0,"vwap":212.5246107550658},{"time":"2026-09-15T15:10:00-04:00","bar_open":"2026-09-15T15:05:00-04:00","open":211.9499969482422,"high":212.02000427246094,"low":211.8800048828125,"close":212.01499938964844,"volume":415374.0,"vwap":212.52069038450088},{"time":"2026-09-15T15:15:00-04:00","bar_open":"2026-09-15T15:10:00-04:00","open":212.01100158691406,"high":212.19000244140625,"low":211.99000549316406,"close":212.01499938964844,"volume":405022.0,"vwap":212.51756169194246},{"time":"2026-09-15T15:20:00-04:00","bar_open":"2026-09-15T15:15:00-04:00","open":212.02000427246094,"high":212.11000061035156,"low":211.88999938964844,"close":212.10000610351562,"volume":421082.0,"vwap":212.5141297275073},{"time":"2026-09-15T15:25:00-04:00","bar_open":"2026-09-15T15:20:00-04:00","open":212.10000610351562,"high":212.10499572753906,"low":212.0,"close":212.0500030517578,"volume":406127.0,"vwap":212.510989881492},{"time":"2026-09-15T15:30:00-04:00","bar_open":"2026-09-15T15:25:00-04:00","open":212.02000427246094,"high":212.14999389648438,"low":211.97999572753906,"close":212.1363983154297,"volume":483128.0,"vwap":212.5076072891288},{"time":"2026-09-15T15:35:00-04:00","bar_open":"2026-09-15T15:30:00-04:00","open":212.11000061035156,"high":212.1699981689453,"low":212.0,"close":212.02499389648438,"volume":543212.0,"vwap":212.5036557047881},{"time":"2026-09-15T15:40:00-04:00","bar_open":"2026-09-15T15:35:00-04:00","open":212.02499389648438,"high":212.02499389648438,"low":211.75,"close":211.82000732421875,"volume":565622.0,"vwap":212.49777330004707},{"time":"2026-09-15T15:45:00-04:00","bar_open":"2026-09-15T15:40:00-04:00","open":211.82000732421875,"high":212.00999450683594,"low":211.75999450683594,"close":211.93499755859375,"volume":570746.0,"vwap":212.49228403159938},{"time":"2026-09-15T15:50:00-04:00","bar_open":"2026-09-15T15:45:00-04:00","open":211.92999267578125,"high":212.14999389648438,"low":211.83009338378906,"close":212.02999877929688,"volume":706018.0,"vwap":212.48677746778972}],"fills":[{"time":"2026-09-15T09:50:00-04:00","action":"X","shares":9,"quantity":-9,"price":213.44322805023197,"reference_price":213.5500030517578,"shares_before":0,"shares_after":-9,"assumed_cost":0.9609750137329102,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:50:00-04:00","pnl":null},{"time":"2026-09-15T09:55:00-04:00","action":"C","shares":1,"quantity":1,"price":213.37663927459715,"reference_price":213.2700042724609,"shares_before":-9,"shares_after":-8,"assumed_cost":0.1066350021362304,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:55:00-04:00","pnl":null},{"time":"2026-09-15T10:10:00-04:00","action":"X","shares":13,"quantity":-13,"price":213.0034456100464,"reference_price":213.1100006103516,"shares_before":-8,"shares_after":-21,"assumed_cost":1.3852150039672853,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:10:00-04:00","pnl":null},{"time":"2026-09-15T10:15:00-04:00","action":"C","shares":1,"quantity":1,"price":212.7413120040893,"reference_price":212.63499450683597,"shares_before":-21,"shares_after":-20,"assumed_cost":0.1063174972534179,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:15:00-04:00","pnl":null},{"time":"2026-09-15T10:20:00-04:00","action":"X","shares":14,"quantity":-14,"price":212.5136851196289,"reference_price":212.6199951171875,"shares_before":-20,"shares_after":-34,"assumed_cost":1.4883399658203125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:20:00-04:00","pnl":null},{"time":"2026-09-15T10:25:00-04:00","action":"X","shares":80,"quantity":-80,"price":212.57365267944337,"reference_price":212.67999267578125,"shares_before":-34,"shares_after":-114,"assumed_cost":8.50719970703125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:25:00-04:00","pnl":null},{"time":"2026-09-15T10:35:00-04:00","action":"C","shares":25,"quantity":25,"price":212.8063469467163,"reference_price":212.6999969482422,"shares_before":-114,"shares_after":-89,"assumed_cost":2.6587499618530277,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:35:00-04:00","pnl":null},{"time":"2026-09-15T10:50:00-04:00","action":"C","shares":1,"quantity":1,"price":212.32611122131345,"reference_price":212.22000122070312,"shares_before":-89,"shares_after":-88,"assumed_cost":0.1061100006103515,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:50:00-04:00","pnl":null},{"time":"2026-09-15T10:55:00-04:00","action":"C","shares":1,"quantity":1,"price":212.24106200408931,"reference_price":212.13499450683597,"shares_before":-88,"shares_after":-87,"assumed_cost":0.1060674972534179,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:55:00-04:00","pnl":null},{"time":"2026-09-15T11:00:00-04:00","action":"C","shares":17,"quantity":17,"price":212.1410211639404,"reference_price":212.03500366210935,"shares_before":-87,"shares_after":-70,"assumed_cost":1.8022975311279297,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:00:00-04:00","pnl":null},{"time":"2026-09-15T11:05:00-04:00","action":"C","shares":1,"quantity":1,"price":212.67128494262693,"reference_price":212.56500244140625,"shares_before":-70,"shares_after":-69,"assumed_cost":0.1062825012207031,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:05:00-04:00","pnl":null},{"time":"2026-09-15T11:10:00-04:00","action":"C","shares":17,"quantity":17,"price":212.28608267211916,"reference_price":212.17999267578125,"shares_before":-69,"shares_after":-52,"assumed_cost":1.8035299377441407,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:10:00-04:00","pnl":null},{"time":"2026-09-15T11:20:00-04:00","action":"C","shares":1,"quantity":1,"price":212.3161117172241,"reference_price":212.2100067138672,"shares_before":-52,"shares_after":-51,"assumed_cost":0.1061050033569336,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:20:00-04:00","pnl":null},{"time":"2026-09-15T11:35:00-04:00","action":"C","shares":1,"quantity":1,"price":212.27608316802977,"reference_price":212.1699981689453,"shares_before":-51,"shares_after":-50,"assumed_cost":0.1060849990844726,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:35:00-04:00","pnl":null},{"time":"2026-09-15T11:45:00-04:00","action":"X","shares":13,"quantity":-13,"price":212.17385877990725,"reference_price":212.27999877929688,"shares_before":-50,"shares_after":-63,"assumed_cost":1.3798199920654295,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:45:00-04:00","pnl":null},{"time":"2026-09-15T11:50:00-04:00","action":"C","shares":1,"quantity":1,"price":212.20104872131347,"reference_price":212.09500122070312,"shares_before":-63,"shares_after":-62,"assumed_cost":0.1060475006103515,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:50:00-04:00","pnl":null},{"time":"2026-09-15T11:55:00-04:00","action":"X","shares":30,"quantity":-30,"price":212.1688563995361,"reference_price":212.2749938964844,"shares_before":-62,"shares_after":-92,"assumed_cost":3.1841249084472656,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:55:00-04:00","pnl":null},{"time":"2026-09-15T12:00:00-04:00","action":"C","shares":1,"quantity":1,"price":212.29609744262692,"reference_price":212.19000244140625,"shares_before":-92,"shares_after":-91,"assumed_cost":0.1060950012207031,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:00:00-04:00","pnl":null},{"time":"2026-09-15T12:05:00-04:00","action":"C","shares":1,"quantity":1,"price":212.3961382827759,"reference_price":212.2899932861328,"shares_before":-91,"shares_after":-90,"assumed_cost":0.1061449966430664,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:05:00-04:00","pnl":null},{"time":"2026-09-15T12:10:00-04:00","action":"C","shares":8,"quantity":8,"price":212.14601328277587,"reference_price":212.0399932861328,"shares_before":-90,"shares_after":-82,"assumed_cost":0.8481599731445313,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:10:00-04:00","pnl":null},{"time":"2026-09-15T12:15:00-04:00","action":"C","shares":9,"quantity":9,"price":211.95582424163817,"reference_price":211.8498992919922,"shares_before":-82,"shares_after":-73,"assumed_cost":0.9533245468139648,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:15:00-04:00","pnl":null},{"time":"2026-09-15T12:20:00-04:00","action":"C","shares":1,"quantity":1,"price":212.0009517745972,"reference_price":211.8950042724609,"shares_before":-73,"shares_after":-72,"assumed_cost":0.1059475021362304,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:20:00-04:00","pnl":null},{"time":"2026-09-15T12:25:00-04:00","action":"C","shares":1,"quantity":1,"price":212.2310625,"reference_price":212.125,"shares_before":-72,"shares_after":-71,"assumed_cost":0.1060625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:25:00-04:00","pnl":null},{"time":"2026-09-15T12:45:00-04:00","action":"C","shares":1,"quantity":1,"price":212.1810344467163,"reference_price":212.0749969482422,"shares_before":-71,"shares_after":-70,"assumed_cost":0.1060374984741211,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:45:00-04:00","pnl":null},{"time":"2026-09-15T12:50:00-04:00","action":"C","shares":1,"quantity":1,"price":212.15602805328368,"reference_price":212.0500030517578,"shares_before":-70,"shares_after":-69,"assumed_cost":0.1060250015258789,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:50:00-04:00","pnl":null},{"time":"2026-09-15T12:55:00-04:00","action":"C","shares":1,"quantity":1,"price":212.19604133605955,"reference_price":212.08999633789065,"shares_before":-69,"shares_after":-68,"assumed_cost":0.1060449981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:55:00-04:00","pnl":null},{"time":"2026-09-15T13:05:00-04:00","action":"C","shares":1,"quantity":1,"price":211.5607293319702,"reference_price":211.4550018310547,"shares_before":-68,"shares_after":-67,"assumed_cost":0.1057275009155273,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:05:00-04:00","pnl":null},{"time":"2026-09-15T13:15:00-04:00","action":"C","shares":1,"quantity":1,"price":211.53071555328367,"reference_price":211.4250030517578,"shares_before":-67,"shares_after":-66,"assumed_cost":0.1057125015258789,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:15:00-04:00","pnl":null},{"time":"2026-09-15T13:25:00-04:00","action":"C","shares":1,"quantity":1,"price":211.39563828277588,"reference_price":211.2899932861328,"shares_before":-66,"shares_after":-65,"assumed_cost":0.1056449966430664,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:25:00-04:00","pnl":null},{"time":"2026-09-15T13:35:00-04:00","action":"C","shares":65,"quantity":65,"price":211.65077066802976,"reference_price":211.5449981689453,"shares_before":-65,"shares_after":0,"assumed_cost":6.875212440490722,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:35:00-04:00","pnl":null},{"time":"2026-09-15T13:40:00-04:00","action":"X","shares":24,"quantity":-24,"price":211.45421755981445,"reference_price":211.55999755859372,"shares_before":0,"shares_after":-24,"assumed_cost":2.538719970703125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:40:00-04:00","pnl":null},{"time":"2026-09-15T13:45:00-04:00","action":"C","shares":1,"quantity":1,"price":211.66577755737305,"reference_price":211.55999755859372,"shares_before":-24,"shares_after":-23,"assumed_cost":0.1057799987792968,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:45:00-04:00","pnl":null},{"time":"2026-09-15T13:50:00-04:00","action":"C","shares":1,"quantity":1,"price":211.81586171722407,"reference_price":211.7100067138672,"shares_before":-23,"shares_after":-22,"assumed_cost":0.1058550033569336,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:50:00-04:00","pnl":null},{"time":"2026-09-15T13:55:00-04:00","action":"C","shares":1,"quantity":1,"price":211.94112268066405,"reference_price":211.835205078125,"shares_before":-22,"shares_after":-21,"assumed_cost":0.1059176025390625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:55:00-04:00","pnl":null},{"time":"2026-09-15T14:05:00-04:00","action":"X","shares":26,"quantity":-26,"price":211.94896517944335,"reference_price":212.05499267578125,"shares_before":-21,"shares_after":-47,"assumed_cost":2.756714904785156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:05:00-04:00","pnl":null},{"time":"2026-09-15T14:10:00-04:00","action":"C","shares":1,"quantity":1,"price":211.99594438934324,"reference_price":211.88999938964844,"shares_before":-47,"shares_after":-46,"assumed_cost":0.1059449996948242,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:10:00-04:00","pnl":null},{"time":"2026-09-15T14:20:00-04:00","action":"C","shares":1,"quantity":1,"price":211.81586171722407,"reference_price":211.7100067138672,"shares_before":-46,"shares_after":-45,"assumed_cost":0.1058550033569336,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:20:00-04:00","pnl":null},{"time":"2026-09-15T14:25:00-04:00","action":"X","shares":7,"quantity":-7,"price":211.82903005981447,"reference_price":211.93499755859372,"shares_before":-45,"shares_after":-52,"assumed_cost":0.7417724914550782,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:25:00-04:00","pnl":null},{"time":"2026-09-15T14:30:00-04:00","action":"X","shares":2,"quantity":-2,"price":211.9939561004639,"reference_price":212.1000061035156,"shares_before":-52,"shares_after":-54,"assumed_cost":0.2121000061035156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:30:00-04:00","pnl":null},{"time":"2026-09-15T14:45:00-04:00","action":"C","shares":1,"quantity":1,"price":212.1260142745972,"reference_price":212.0200042724609,"shares_before":-54,"shares_after":-53,"assumed_cost":0.1060100021362304,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:45:00-04:00","pnl":null},{"time":"2026-09-15T14:50:00-04:00","action":"C","shares":1,"quantity":1,"price":212.09600049591063,"reference_price":211.9900054931641,"shares_before":-53,"shares_after":-52,"assumed_cost":0.105995002746582,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:50:00-04:00","pnl":null},{"time":"2026-09-15T15:00:00-04:00","action":"C","shares":1,"quantity":1,"price":212.20605610656736,"reference_price":212.1000061035156,"shares_before":-52,"shares_after":-51,"assumed_cost":0.1060500030517578,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:00:00-04:00","pnl":null},{"time":"2026-09-15T15:10:00-04:00","action":"C","shares":10,"quantity":10,"price":212.11700708770752,"reference_price":212.0110015869141,"shares_before":-51,"shares_after":-41,"assumed_cost":1.0600550079345703,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:10:00-04:00","pnl":null},{"time":"2026-09-15T15:15:00-04:00","action":"X","shares":4,"quantity":-4,"price":211.9139942703247,"reference_price":212.0200042724609,"shares_before":-41,"shares_after":-45,"assumed_cost":0.4240400085449218,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:15:00-04:00","pnl":null},{"time":"2026-09-15T15:40:00-04:00","action":"C","shares":1,"quantity":1,"price":211.92591732788085,"reference_price":211.82000732421875,"shares_before":-45,"shares_after":-44,"assumed_cost":0.1059100036621093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:40:00-04:00","pnl":null}],"marks":[{"time":"2026-09-15T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:40:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:45:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:50:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:55:00-04:00","shares":-9,"pnl":1.731911338806185},{"time":"2026-09-15T10:00:00-04:00","shares":-8,"pnl":1.6124131774902253},{"time":"2026-09-15T10:05:00-04:00","shares":-8,"pnl":5.092393646240225},{"time":"2026-09-15T10:10:00-04:00","shares":-8,"pnl":2.6524522399902253},{"time":"2026-09-15T10:15:00-04:00","shares":-21,"pnl":11.217218925476118},{"time":"2026-09-15T10:20:00-04:00","shares":-20,"pnl":11.31579644775411},{"time":"2026-09-15T10:25:00-04:00","shares":-34,"pnl":7.98773480224645},{"time":"2026-09-15T10:30:00-04:00","shares":-114,"pnl":-7.3713630981437746},{"time":"2026-09-15T10:35:00-04:00","shares":-114,"pnl":-2.7999519653312746},{"time":"2026-09-15T10:40:00-04:00","shares":-89,"pnl":-15.24875624847482},{"time":"2026-09-15T10:45:00-04:00","shares":-89,"pnl":-6.349571067810757},{"time":"2026-09-15T10:50:00-04:00","shares":-89,"pnl":35.48053757476737},{"time":"2026-09-15T10:55:00-04:00","shares":-88,"pnl":44.9522931747415},{"time":"2026-09-15T11:00:00-04:00","shares":-87,"pnl":53.22853463744832},{"time":"2026-09-15T11:05:00-04:00","shares":-70,"pnl":14.676664352413354},{"time":"2026-09-15T11:10:00-04:00","shares":-69,"pnl":39.811821670527934},{"time":"2026-09-15T11:15:00-04:00","shares":-52,"pnl":36.38678599547893},{"time":"2026-09-15T11:20:00-04:00","shares":-52,"pnl":36.90173960876018},{"time":"2026-09-15T11:25:00-04:00","shares":-51,"pnl":42.41566024016902},{"time":"2026-09-15T11:30:00-04:00","shares":-51,"pnl":34.76597151946589},{"time":"2026-09-15T11:35:00-04:00","shares":-51,"pnl":39.35578475188777},{"time":"2026-09-15T11:40:00-04:00","shares":-50,"pnl":37.24927250670953},{"time":"2026-09-15T11:45:00-04:00","shares":-50,"pnl":33.74966923522516},{"time":"2026-09-15T11:50:00-04:00","shares":-63,"pnl":43.59018615722198},{"time":"2026-09-15T11:55:00-04:00","shares":-62,"pnl":32.75910203551757},{"time":"2026-09-15T12:00:00-04:00","shares":-92,"pnl":38.32351228332118},{"time":"2026-09-15T12:05:00-04:00","shares":-91,"pnl":27.278040451044944},{"time":"2026-09-15T12:10:00-04:00","shares":-90,"pnl":51.48228974151061},{"time":"2026-09-15T12:15:00-04:00","shares":-82,"pnl":65.97046399688043},{"time":"2026-09-15T12:20:00-04:00","shares":-73,"pnl":61.43390275573074},{"time":"2026-09-15T12:25:00-04:00","shares":-72,"pnl":44.7633647994935},{"time":"2026-09-15T12:30:00-04:00","shares":-71,"pnl":55.30955449676003},{"time":"2026-09-15T12:35:00-04:00","shares":-71,"pnl":64.53990117644753},{"time":"2026-09-15T12:40:00-04:00","shares":-71,"pnl":63.82920781707253},{"time":"2026-09-15T12:45:00-04:00","shares":-71,"pnl":47.49951116179909},{"time":"2026-09-15T12:50:00-04:00","shares":-70,"pnl":49.20466140746612},{"time":"2026-09-15T12:55:00-04:00","shares":-69,"pnl":46.63283135222992},{"time":"2026-09-15T13:00:00-04:00","shares":-68,"pnl":68.28624680327994},{"time":"2026-09-15T13:05:00-04:00","shares":-68,"pnl":89.20317795562369},{"time":"2026-09-15T13:10:00-04:00","shares":-67,"pnl":89.9360124664272},{"time":"2026-09-15T13:15:00-04:00","shares":-67,"pnl":91.61060353088033},{"time":"2026-09-15T13:20:00-04:00","shares":-66,"pnl":76.65549527740222},{"time":"2026-09-15T13:25:00-04:00","shares":-66,"pnl":99.75489102935536},{"time":"2026-09-15T13:30:00-04:00","shares":-65,"pnl":97.70933514403988},{"time":"2026-09-15T13:35:00-04:00","shares":-65,"pnl":83.73457318114924},{"time":"2026-09-15T13:40:00-04:00","shares":0,"pnl":76.85936074066012},{"time":"2026-09-15T13:45:00-04:00","shares":-24,"pnl":74.56307241058221},{"time":"2026-09-15T13:50:00-04:00","shares":-23,"pnl":70.75341973113882},{"time":"2026-09-15T13:55:00-04:00","shares":-22,"pnl":67.79902346801646},{"time":"2026-09-15T14:00:00-04:00","shares":-21,"pnl":65.18216531371945},{"time":"2026-09-15T14:05:00-04:00","shares":-21,"pnl":63.28775613403195},{"time":"2026-09-15T14:10:00-04:00","shares":-47,"pnl":68.18094357299742},{"time":"2026-09-15T14:15:00-04:00","shares":-46,"pnl":76.81511087798935},{"time":"2026-09-15T14:20:00-04:00","shares":-46,"pnl":76.12513895416123},{"time":"2026-09-15T14:25:00-04:00","shares":-45,"pnl":65.22402638244421},{"time":"2026-09-15T14:30:00-04:00","shares":-52,"pnl":56.80200181579494},{"time":"2026-09-15T14:35:00-04:00","shares":-54,"pnl":60.37029731750408},{"time":"2026-09-15T14:40:00-04:00","shares":-54,"pnl":53.35003364562908},{"time":"2026-09-15T14:45:00-04:00","shares":-54,"pnl":61.32034004211346},{"time":"2026-09-15T14:50:00-04:00","shares":-53,"pnl":62.850041709898505},{"time":"2026-09-15T14:55:00-04:00","shares":-52,"pnl":57.86837532043319},{"time":"2026-09-15T15:00:00-04:00","shares":-52,"pnl":56.04263069152694},{"time":"2026-09-15T15:05:00-04:00","shares":-51,"pnl":63.61271289062279},{"time":"2026-09-15T15:10:00-04:00","shares":-51,"pnl":60.79719165038841},{"time":"2026-09-15T15:15:00-04:00","shares":-41,"pnl":59.77711466979781},{"time":"2026-09-15T15:20:00-04:00","shares":-45,"pnl":55.54779206847888},{"time":"2026-09-15T15:25:00-04:00","shares":-45,"pnl":57.79792939758045},{"time":"2026-09-15T15:30:00-04:00","shares":-45,"pnl":53.91014253234607},{"time":"2026-09-15T15:35:00-04:00","shares":-45,"pnl":58.923341384885134},{"time":"2026-09-15T15:40:00-04:00","shares":-45,"pnl":68.14773713683826},{"time":"2026-09-15T15:45:00-04:00","shares":-44,"pnl":62.98225682067641},{"time":"2026-09-15T15:50:00-04:00","shares":-44,"pnl":58.80220310973891}],"summary":{"net_pnl":58.80220310973891,"gross_pnl":101.24496459960707,"cost":42.44276148986816,"fill_count":45,"ending_shares":-44},"source_hashes":{"fills_sha256":"7ccb9c0f9a3c7d891f6d428d7e9ffdb92a44a1f1a7f2de456bb703c57302d439","marks_sha256":"2f02c06d1331e469d29b1713493810a19d11dbb8e62b2e6cd4e1c635e146e590","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-15/levels/PLTR.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"PLTR","date":"2026-09-15","variant":"levels","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-15T15:50:00-04:00","partial":true,"starting_equity":47958.07,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-15T09:30:00-04:00","session_close":"2026-09-15T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-15T09:35:00-04:00","bar_open":"2026-09-15T09:30:00-04:00","open":170.23500061035156,"high":172.13340759277344,"low":169.4499969482422,"close":169.80499267578125,"volume":1387204.0,"vwap":170.46279907226562},{"time":"2026-09-15T09:40:00-04:00","bar_open":"2026-09-15T09:35:00-04:00","open":169.77499389648438,"high":172.2299041748047,"low":169.5399932861328,"close":172.2299041748047,"volume":627332.0,"vwap":170.73386522297324},{"time":"2026-09-15T09:45:00-04:00","bar_open":"2026-09-15T09:40:00-04:00","open":171.9611053466797,"high":173.16990661621094,"low":171.92010498046875,"close":172.64999389648438,"volume":517031.0,"vwap":171.11090831786782},{"time":"2026-09-15T09:50:00-04:00","bar_open":"2026-09-15T09:45:00-04:00","open":172.64500427246094,"high":172.8000030517578,"low":171.86000061035156,"close":172.08250427246094,"volume":503368.0,"vwap":171.299421486416},{"time":"2026-09-15T09:55:00-04:00","bar_open":"2026-09-15T09:50:00-04:00","open":172.05999755859375,"high":172.75999450683594,"low":171.8800048828125,"close":172.722900390625,"volume":330285.0,"vwap":171.41276891263726},{"time":"2026-09-15T10:00:00-04:00","bar_open":"2026-09-15T09:55:00-04:00","open":172.63999938964844,"high":173.00999450683594,"low":172.42999267578125,"close":172.52499389648438,"volume":303501.0,"vwap":171.51553400790485},{"time":"2026-09-15T10:05:00-04:00","bar_open":"2026-09-15T10:00:00-04:00","open":172.5800018310547,"high":172.85499572753906,"low":171.60499572753906,"close":171.60499572753906,"volume":403545.0,"vwap":171.5656892727254},{"time":"2026-09-15T10:10:00-04:00","bar_open":"2026-09-15T10:05:00-04:00","open":171.64500427246094,"high":171.7100067138672,"low":170.64129638671875,"close":171.43499755859375,"volume":461673.0,"vwap":171.53477600528507},{"time":"2026-09-15T10:15:00-04:00","bar_open":"2026-09-15T10:10:00-04:00","open":171.42999267578125,"high":172.0749969482422,"low":170.8300018310547,"close":171.10459899902344,"volume":347441.0,"vwap":171.52066567388567},{"time":"2026-09-15T10:20:00-04:00","bar_open":"2026-09-15T10:15:00-04:00","open":171.15789794921875,"high":171.24000549316406,"low":170.86000061035156,"close":171.0,"volume":215076.0,"vwap":171.50009980362142},{"time":"2026-09-15T10:25:00-04:00","bar_open":"2026-09-15T10:20:00-04:00","open":171.05999755859375,"high":171.05999755859375,"low":170.5500030517578,"close":170.84849548339844,"volume":327077.0,"vwap":171.45905479332086},{"time":"2026-09-15T10:30:00-04:00","bar_open":"2026-09-15T10:25:00-04:00","open":170.82000732421875,"high":170.9199981689453,"low":170.5850067138672,"close":170.58999633789062,"volume":123336.0,"vwap":171.44213997312164},{"time":"2026-09-15T10:35:00-04:00","bar_open":"2026-09-15T10:30:00-04:00","open":170.58999633789062,"high":170.85000610351562,"low":170.5,"close":170.67999267578125,"volume":459785.0,"vwap":171.38354606521628},{"time":"2026-09-15T10:40:00-04:00","bar_open":"2026-09-15T10:35:00-04:00","open":170.67999267578125,"high":171.10000610351562,"low":170.625,"close":171.0399932861328,"volume":207737.0,"vwap":171.36810618013652},{"time":"2026-09-15T10:45:00-04:00","bar_open":"2026-09-15T10:40:00-04:00","open":171.00999450683594,"high":171.1999969482422,"low":170.55999755859375,"close":170.85499572753906,"volume":325896.0,"vwap":171.3433689304499},{"time":"2026-09-15T10:50:00-04:00","bar_open":"2026-09-15T10:45:00-04:00","open":170.72000122070312,"high":170.97000122070312,"low":170.6699981689453,"close":170.85000610351562,"volume":125009.0,"vwap":171.33374062471103},{"time":"2026-09-15T10:55:00-04:00","bar_open":"2026-09-15T10:50:00-04:00","open":170.8300018310547,"high":170.86990356445312,"low":170.45899963378906,"close":170.75999450683594,"volume":140816.0,"vwap":171.32055219250037},{"time":"2026-09-15T11:00:00-04:00","bar_open":"2026-09-15T10:55:00-04:00","open":170.7899932861328,"high":171.24989318847656,"low":170.5500030517578,"close":170.8350067138672,"volume":187058.0,"vwap":171.30872256066982},{"time":"2026-09-15T11:05:00-04:00","bar_open":"2026-09-15T11:00:00-04:00","open":170.82000732421875,"high":171.4799041748047,"low":170.72999572753906,"close":171.40499877929688,"volume":133554.0,"vwap":171.30677817874084},{"time":"2026-09-15T11:10:00-04:00","bar_open":"2026-09-15T11:05:00-04:00","open":171.4149932861328,"high":172.125,"low":171.3000030517578,"close":172.11000061035156,"volume":265122.0,"vwap":171.32608252698228},{"time":"2026-09-15T11:15:00-04:00","bar_open":"2026-09-15T11:10:00-04:00","open":172.11000061035156,"high":172.25,"low":171.60000610351562,"close":171.73060607910156,"volume":215691.0,"vwap":171.34122608892176},{"time":"2026-09-15T11:20:00-04:00","bar_open":"2026-09-15T11:15:00-04:00","open":171.77999877929688,"high":172.36500549316406,"low":171.75999450683594,"close":172.08999633789062,"volume":236185.0,"vwap":171.36322059861283},{"time":"2026-09-15T11:25:00-04:00","bar_open":"2026-09-15T11:20:00-04:00","open":172.07000732421875,"high":172.16000366210938,"low":171.64999389648438,"close":171.8800048828125,"volume":132034.0,"vwap":171.37205150136347},{"time":"2026-09-15T11:30:00-04:00","bar_open":"2026-09-15T11:25:00-04:00","open":171.8699951171875,"high":171.8800048828125,"low":171.64999389648438,"close":171.6999969482422,"volume":84895.0,"vwap":171.37596183692094},{"time":"2026-09-15T11:35:00-04:00","bar_open":"2026-09-15T11:30:00-04:00","open":171.7100067138672,"high":172.5,"low":171.64999389648438,"close":172.27000427246094,"volume":238629.0,"vwap":171.3979301904612},{"time":"2026-09-15T11:40:00-04:00","bar_open":"2026-09-15T11:35:00-04:00","open":172.3199005126953,"high":172.5,"low":172.25,"close":172.3300018310547,"volume":126481.0,"vwap":171.41237204666604},{"time":"2026-09-15T11:45:00-04:00","bar_open":"2026-09-15T11:40:00-04:00","open":172.3551025390625,"high":172.82000732421875,"low":172.3551025390625,"close":172.75999450683594,"volume":117711.0,"vwap":171.42935553583592},{"time":"2026-09-15T11:50:00-04:00","bar_open":"2026-09-15T11:45:00-04:00","open":172.7686004638672,"high":172.82000732421875,"low":172.39999389648438,"close":172.63499450683594,"volume":154142.0,"vwap":171.45042696946587},{"time":"2026-09-15T11:55:00-04:00","bar_open":"2026-09-15T11:50:00-04:00","open":172.6027069091797,"high":172.92999267578125,"low":172.52999877929688,"close":172.76370239257812,"volume":155729.0,"vwap":171.47313202730365},{"time":"2026-09-15T12:00:00-04:00","bar_open":"2026-09-15T11:55:00-04:00","open":172.7449951171875,"high":173.49000549316406,"low":172.72999572753906,"close":173.46009826660156,"volume":246892.0,"vwap":171.52070682748425},{"time":"2026-09-15T12:05:00-04:00","bar_open":"2026-09-15T12:00:00-04:00","open":173.46609497070312,"high":173.57989501953125,"low":172.86000061035156,"close":172.9499969482422,"volume":230974.0,"vwap":171.5605405307777},{"time":"2026-09-15T12:10:00-04:00","bar_open":"2026-09-15T12:05:00-04:00","open":172.96499633789062,"high":173.60000610351562,"low":172.60000610351562,"close":173.4199981689453,"volume":413756.0,"vwap":171.63043262341444},{"time":"2026-09-15T12:15:00-04:00","bar_open":"2026-09-15T12:10:00-04:00","open":173.38999938964844,"high":173.47999572753906,"low":173.07000732421875,"close":173.3679962158203,"volume":158838.0,"vwap":171.65730550569847},{"time":"2026-09-15T12:20:00-04:00","bar_open":"2026-09-15T12:15:00-04:00","open":173.3300018310547,"high":173.8800048828125,"low":173.17999267578125,"close":173.86000061035156,"volume":180756.0,"vwap":171.69284338253445},{"time":"2026-09-15T12:25:00-04:00","bar_open":"2026-09-15T12:20:00-04:00","open":173.8699951171875,"high":173.9499969482422,"low":173.2183074951172,"close":173.64999389648438,"volume":251760.0,"vwap":171.73944424176614},{"time":"2026-09-15T12:30:00-04:00","bar_open":"2026-09-15T12:25:00-04:00","open":173.6699981689453,"high":174.26829528808594,"low":173.57000732421875,"close":174.2030029296875,"volume":220602.0,"vwap":171.78696950818642},{"time":"2026-09-15T12:35:00-04:00","bar_open":"2026-09-15T12:30:00-04:00","open":174.21499633789062,"high":174.8800048828125,"low":174.2100067138672,"close":174.6199951171875,"volume":358110.0,"vwap":171.8782777097717},{"time":"2026-09-15T12:40:00-04:00","bar_open":"2026-09-15T12:35:00-04:00","open":174.64999389648438,"high":174.75999450683594,"low":174.30999755859375,"close":174.5500030517578,"volume":252938.0,"vwap":171.93856175076098},{"time":"2026-09-15T12:45:00-04:00","bar_open":"2026-09-15T12:40:00-04:00","open":174.5500030517578,"high":174.5800018310547,"low":174.2310028076172,"close":174.35499572753906,"volume":129300.0,"vwap":171.9666038006945},{"time":"2026-09-15T12:50:00-04:00","bar_open":"2026-09-15T12:45:00-04:00","open":174.35000610351562,"high":174.9398956298828,"low":174.10000610351562,"close":174.92999267578125,"volume":269099.0,"vwap":172.02918902673164},{"time":"2026-09-15T12:55:00-04:00","bar_open":"2026-09-15T12:50:00-04:00","open":174.94000244140625,"high":175.25,"low":174.74000549316406,"close":175.2100067138672,"volume":393447.0,"vwap":172.12911432373159},{"time":"2026-09-15T13:00:00-04:00","bar_open":"2026-09-15T12:55:00-04:00","open":175.2100067138672,"high":175.27999877929688,"low":174.85000610351562,"close":175.1699981689453,"volume":1313331.0,"vwap":172.42307308769674},{"time":"2026-09-15T13:05:00-04:00","bar_open":"2026-09-15T13:00:00-04:00","open":175.17999267578125,"high":175.7299041748047,"low":175.0500030517578,"close":175.69500732421875,"volume":287193.0,"vwap":172.48806190660355},{"time":"2026-09-15T13:10:00-04:00","bar_open":"2026-09-15T13:05:00-04:00","open":175.69500732421875,"high":175.69500732421875,"low":175.0,"close":175.35000610351562,"volume":271175.0,"vwap":172.54413930477548},{"time":"2026-09-15T13:15:00-04:00","bar_open":"2026-09-15T13:10:00-04:00","open":175.3699951171875,"high":175.88999938964844,"low":175.35000610351562,"close":175.39999389648438,"volume":237382.0,"vwap":172.59480041577703},{"time":"2026-09-15T13:20:00-04:00","bar_open":"2026-09-15T13:15:00-04:00","open":175.44500732421875,"high":176.4600067138672,"low":175.3300018310547,"close":176.3000030517578,"volume":417575.0,"vwap":172.69382074174482},{"time":"2026-09-15T13:25:00-04:00","bar_open":"2026-09-15T13:20:00-04:00","open":176.3625030517578,"high":176.58999633789062,"low":175.8699951171875,"close":176.3800048828125,"volume":275968.0,"vwap":172.76086050263172},{"time":"2026-09-15T13:30:00-04:00","bar_open":"2026-09-15T13:25:00-04:00","open":176.42999267578125,"high":176.57789611816406,"low":175.84010314941406,"close":175.91000366210938,"volume":206204.0,"vwap":172.80698817719465},{"time":"2026-09-15T13:35:00-04:00","bar_open":"2026-09-15T13:30:00-04:00","open":175.92999267578125,"high":176.0198974609375,"low":175.55999755859375,"close":175.96499633789062,"volume":217638.0,"vwap":172.8505738579487},{"time":"2026-09-15T13:40:00-04:00","bar_open":"2026-09-15T13:35:00-04:00","open":175.92999267578125,"high":176.11500549316406,"low":175.2200927734375,"close":176.0500030517578,"volume":206780.0,"vwap":172.89012774662555},{"time":"2026-09-15T13:45:00-04:00","bar_open":"2026-09-15T13:40:00-04:00","open":176.0500030517578,"high":176.3199005126953,"low":175.69000244140625,"close":175.82000732421875,"volume":193013.0,"vwap":172.9279373064559},{"time":"2026-09-15T13:50:00-04:00","bar_open":"2026-09-15T13:45:00-04:00","open":175.76499938964844,"high":175.8800048828125,"low":175.24000549316406,"close":175.25,"volume":160644.0,"vwap":172.95373479358653},{"time":"2026-09-15T13:55:00-04:00","bar_open":"2026-09-15T13:50:00-04:00","open":175.25,"high":175.3000030517578,"low":174.30999755859375,"close":174.4600067138672,"volume":246341.0,"vwap":172.9804785146365},{"time":"2026-09-15T14:00:00-04:00","bar_open":"2026-09-15T13:55:00-04:00","open":174.4600067138672,"high":174.55999755859375,"low":174.125,"close":174.20269775390625,"volume":162889.0,"vwap":172.99374096360052},{"time":"2026-09-15T14:05:00-04:00","bar_open":"2026-09-15T14:00:00-04:00","open":174.19000244140625,"high":174.33990478515625,"low":173.55499267578125,"close":173.55499267578125,"volume":223509.0,"vwap":173.00496985328974},{"time":"2026-09-15T14:10:00-04:00","bar_open":"2026-09-15T14:05:00-04:00","open":173.57000732421875,"high":174.139892578125,"low":173.00999450683594,"close":174.09500122070312,"volume":300811.0,"vwap":173.01837495638324},{"time":"2026-09-15T14:15:00-04:00","bar_open":"2026-09-15T14:10:00-04:00","open":174.09500122070312,"high":174.94000244140625,"low":173.63999938964844,"close":174.83279418945312,"volume":315169.0,"vwap":173.04531165433542},{"time":"2026-09-15T14:20:00-04:00","bar_open":"2026-09-15T14:15:00-04:00","open":174.83999633789062,"high":174.875,"low":174.4499969482422,"close":174.77999877929688,"volume":232448.0,"vwap":173.0676600783506},{"time":"2026-09-15T14:25:00-04:00","bar_open":"2026-09-15T14:20:00-04:00","open":174.7550048828125,"high":175.1999969482422,"low":174.6269989013672,"close":175.05499267578125,"volume":296310.0,"vwap":173.0996681476991},{"time":"2026-09-15T14:30:00-04:00","bar_open":"2026-09-15T14:25:00-04:00","open":175.05499267578125,"high":175.47000122070312,"low":175.0,"close":175.36500549316406,"volume":198978.0,"vwap":173.12412803908597},{"time":"2026-09-15T14:35:00-04:00","bar_open":"2026-09-15T14:30:00-04:00","open":175.375,"high":175.39999389648438,"low":174.9149932861328,"close":174.92669677734375,"volume":226772.0,"vwap":173.14884478824465},{"time":"2026-09-15T14:40:00-04:00","bar_open":"2026-09-15T14:35:00-04:00","open":174.9199981689453,"high":175.35000610351562,"low":174.89999389648438,"close":175.24000549316406,"volume":268604.0,"vwap":173.17854529694011},{"time":"2026-09-15T14:45:00-04:00","bar_open":"2026-09-15T14:40:00-04:00","open":175.24000549316406,"high":175.36500549316406,"low":175.0,"close":175.14500427246094,"volume":125379.0,"vwap":173.1921567223311},{"time":"2026-09-15T14:50:00-04:00","bar_open":"2026-09-15T14:45:00-04:00","open":175.1199951171875,"high":175.13999938964844,"low":174.19000244140625,"close":174.57000732421875,"volume":372813.0,"vwap":173.22086313621014},{"time":"2026-09-15T14:55:00-04:00","bar_open":"2026-09-15T14:50:00-04:00","open":174.5800018310547,"high":174.8699951171875,"low":174.35000610351562,"close":174.63999938964844,"volume":186804.0,"vwap":173.23468934715146},{"time":"2026-09-15T15:00:00-04:00","bar_open":"2026-09-15T14:55:00-04:00","open":174.55999755859375,"high":174.639892578125,"low":174.35009765625,"close":174.61309814453125,"volume":123987.0,"vwap":173.24315826532364},{"time":"2026-09-15T15:05:00-04:00","bar_open":"2026-09-15T15:00:00-04:00","open":174.6009979248047,"high":175.10000610351562,"low":174.6009979248047,"close":174.87249755859375,"volume":232609.0,"vwap":173.26265906108304},{"time":"2026-09-15T15:10:00-04:00","bar_open":"2026-09-15T15:05:00-04:00","open":174.9114990234375,"high":174.94000244140625,"low":173.8000030517578,"close":174.52499389648438,"volume":314057.0,"vwap":173.28125468312035},{"time":"2026-09-15T15:15:00-04:00","bar_open":"2026-09-15T15:10:00-04:00","open":174.52499389648438,"high":174.5800018310547,"low":173.5,"close":173.7100067138672,"volume":228241.0,"vwap":173.28873209183604},{"time":"2026-09-15T15:20:00-04:00","bar_open":"2026-09-15T15:15:00-04:00","open":173.68499755859375,"high":174.1699981689453,"low":173.4499969482422,"close":173.9250030517578,"volume":232823.0,"vwap":173.29523502140816},{"time":"2026-09-15T15:25:00-04:00","bar_open":"2026-09-15T15:20:00-04:00","open":173.9250030517578,"high":174.10000610351562,"low":173.74000549316406,"close":173.75,"volume":97548.0,"vwap":173.29798760444098},{"time":"2026-09-15T15:30:00-04:00","bar_open":"2026-09-15T15:25:00-04:00","open":173.7689971923828,"high":174.0198974609375,"low":173.6199951171875,"close":173.67999267578125,"volume":209213.0,"vwap":173.3028760319024},{"time":"2026-09-15T15:35:00-04:00","bar_open":"2026-09-15T15:30:00-04:00","open":173.7100067138672,"high":173.84500122070312,"low":173.4600067138672,"close":173.61000061035156,"volume":184007.0,"vwap":173.30588328736158},{"time":"2026-09-15T15:40:00-04:00","bar_open":"2026-09-15T15:35:00-04:00","open":173.61000061035156,"high":173.6300048828125,"low":172.7899932861328,"close":173.14999389648438,"volume":355355.0,"vwap":173.303911165041},{"time":"2026-09-15T15:45:00-04:00","bar_open":"2026-09-15T15:40:00-04:00","open":173.14999389648438,"high":173.15499877929688,"low":172.80999755859375,"close":173.07000732421875,"volume":241299.0,"vwap":173.30057266834908},{"time":"2026-09-15T15:50:00-04:00","bar_open":"2026-09-15T15:45:00-04:00","open":173.0850067138672,"high":173.2198944091797,"low":172.08999633789062,"close":172.55999755859375,"volume":604706.0,"vwap":173.28172304106303}],"fills":[{"time":"2026-09-15T09:35:00-04:00","action":"X","shares":122,"quantity":-122,"price":169.69010639953615,"reference_price":169.77499389648438,"shares_before":0,"shares_after":-122,"assumed_cost":10.356274627685549,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:35:00-04:00","pnl":null},{"time":"2026-09-15T09:40:00-04:00","action":"C","shares":54,"quantity":54,"price":172.04708589935302,"reference_price":171.9611053466797,"shares_before":-122,"shares_after":-68,"assumed_cost":4.642949844360351,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:40:00-04:00","pnl":null},{"time":"2026-09-15T09:45:00-04:00","action":"C","shares":55,"quantity":55,"price":172.73132677459716,"reference_price":172.64500427246094,"shares_before":-68,"shares_after":-13,"assumed_cost":4.747737617492676,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:45:00-04:00","pnl":null},{"time":"2026-09-15T09:50:00-04:00","action":"C","shares":13,"quantity":13,"price":172.14602755737303,"reference_price":172.05999755859375,"shares_before":-13,"shares_after":0,"assumed_cost":1.118389984130859,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:50:00-04:00","pnl":null},{"time":"2026-09-15T09:50:00-04:00","action":"B","shares":59,"quantity":59,"price":172.14602755737303,"reference_price":172.05999755859375,"shares_before":0,"shares_after":59,"assumed_cost":5.075769927978516,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:50:00-04:00","pnl":null},{"time":"2026-09-15T10:00:00-04:00","action":"S","shares":1,"quantity":-1,"price":172.49371183013918,"reference_price":172.5800018310547,"shares_before":59,"shares_after":58,"assumed_cost":0.0862900009155273,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:00:00-04:00","pnl":null},{"time":"2026-09-15T10:05:00-04:00","action":"B","shares":74,"quantity":74,"price":171.73082677459715,"reference_price":171.64500427246094,"shares_before":58,"shares_after":132,"assumed_cost":6.350865158081055,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:05:00-04:00","pnl":null},{"time":"2026-09-15T10:10:00-04:00","action":"S","shares":1,"quantity":-1,"price":171.34427767944337,"reference_price":171.42999267578125,"shares_before":132,"shares_after":131,"assumed_cost":0.0857149963378906,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:10:00-04:00","pnl":null},{"time":"2026-09-15T10:15:00-04:00","action":"S","shares":27,"quantity":-27,"price":171.07231900024416,"reference_price":171.15789794921875,"shares_before":131,"shares_after":104,"assumed_cost":2.310631622314453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:15:00-04:00","pnl":null},{"time":"2026-09-15T10:20:00-04:00","action":"S","shares":53,"quantity":-53,"price":170.97446755981446,"reference_price":171.05999755859375,"shares_before":104,"shares_after":51,"assumed_cost":4.533089935302734,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:20:00-04:00","pnl":null},{"time":"2026-09-15T10:30:00-04:00","action":"S","shares":1,"quantity":-1,"price":170.5047013397217,"reference_price":170.58999633789062,"shares_before":51,"shares_after":50,"assumed_cost":0.0852949981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:30:00-04:00","pnl":null},{"time":"2026-09-15T10:35:00-04:00","action":"S","shares":21,"quantity":-21,"price":170.59465267944336,"reference_price":170.67999267578125,"shares_before":50,"shares_after":29,"assumed_cost":1.7921399230957031,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:35:00-04:00","pnl":null},{"time":"2026-09-15T10:40:00-04:00","action":"S","shares":1,"quantity":-1,"price":170.92448950958254,"reference_price":171.00999450683594,"shares_before":29,"shares_after":28,"assumed_cost":0.0855049972534179,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:40:00-04:00","pnl":null},{"time":"2026-09-15T10:45:00-04:00","action":"S","shares":10,"quantity":-10,"price":170.6346412200928,"reference_price":170.72000122070312,"shares_before":28,"shares_after":18,"assumed_cost":0.8536000061035156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:45:00-04:00","pnl":null},{"time":"2026-09-15T10:50:00-04:00","action":"B","shares":30,"quantity":30,"price":170.91541683197022,"reference_price":170.8300018310547,"shares_before":18,"shares_after":48,"assumed_cost":2.5624500274658204,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:50:00-04:00","pnl":null},{"time":"2026-09-15T11:00:00-04:00","action":"S","shares":1,"quantity":-1,"price":170.73459732055665,"reference_price":170.82000732421875,"shares_before":48,"shares_after":47,"assumed_cost":0.0854100036621093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:00:00-04:00","pnl":null},{"time":"2026-09-15T11:10:00-04:00","action":"S","shares":1,"quantity":-1,"price":172.02394561004638,"reference_price":172.11000061035156,"shares_before":47,"shares_after":46,"assumed_cost":0.0860550003051757,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:10:00-04:00","pnl":null},{"time":"2026-09-15T11:20:00-04:00","action":"S","shares":40,"quantity":-40,"price":171.98397232055666,"reference_price":172.07000732421875,"shares_before":46,"shares_after":6,"assumed_cost":3.441400146484375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:20:00-04:00","pnl":null},{"time":"2026-09-15T11:25:00-04:00","action":"S","shares":6,"quantity":-6,"price":171.78406011962892,"reference_price":171.8699951171875,"shares_before":6,"shares_after":0,"assumed_cost":0.5156099853515625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:25:00-04:00","pnl":null},{"time":"2026-09-15T11:30:00-04:00","action":"X","shares":99,"quantity":-99,"price":171.62415171051026,"reference_price":171.7100067138672,"shares_before":0,"shares_after":-99,"assumed_cost":8.499645332336426,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:30:00-04:00","pnl":null},{"time":"2026-09-15T11:35:00-04:00","action":"C","shares":48,"quantity":48,"price":172.40606046295164,"reference_price":172.3199005126953,"shares_before":-99,"shares_after":-51,"assumed_cost":4.135677612304687,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:35:00-04:00","pnl":null},{"time":"2026-09-15T11:40:00-04:00","action":"C","shares":1,"quantity":1,"price":172.441280090332,"reference_price":172.3551025390625,"shares_before":-51,"shares_after":-50,"assumed_cost":0.0861775512695312,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:40:00-04:00","pnl":null},{"time":"2026-09-15T11:45:00-04:00","action":"C","shares":1,"quantity":1,"price":172.8549847640991,"reference_price":172.7686004638672,"shares_before":-50,"shares_after":-49,"assumed_cost":0.0863843002319336,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:45:00-04:00","pnl":null},{"time":"2026-09-15T11:50:00-04:00","action":"C","shares":49,"quantity":49,"price":172.68900826263427,"reference_price":172.6027069091797,"shares_before":-49,"shares_after":0,"assumed_cost":4.228766319274903,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:50:00-04:00","pnl":null},{"time":"2026-09-15T11:50:00-04:00","action":"B","shares":37,"quantity":37,"price":172.68900826263427,"reference_price":172.6027069091797,"shares_before":0,"shares_after":37,"assumed_cost":3.193150077819824,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:50:00-04:00","pnl":null},{"time":"2026-09-15T12:00:00-04:00","action":"B","shares":31,"quantity":31,"price":173.55282801818848,"reference_price":173.46609497070312,"shares_before":37,"shares_after":68,"assumed_cost":2.6887244720458985,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:00:00-04:00","pnl":null},{"time":"2026-09-15T12:05:00-04:00","action":"B","shares":34,"quantity":34,"price":173.05147883605957,"reference_price":172.96499633789062,"shares_before":68,"shares_after":102,"assumed_cost":2.9404049377441406,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:05:00-04:00","pnl":null},{"time":"2026-09-15T12:10:00-04:00","action":"B","shares":8,"quantity":8,"price":173.4766943893433,"reference_price":173.38999938964844,"shares_before":102,"shares_after":110,"assumed_cost":0.6935599975585938,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:10:00-04:00","pnl":null},{"time":"2026-09-15T12:15:00-04:00","action":"B","shares":55,"quantity":55,"price":173.41666683197022,"reference_price":173.3300018310547,"shares_before":110,"shares_after":165,"assumed_cost":4.766575050354004,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:15:00-04:00","pnl":null},{"time":"2026-09-15T12:20:00-04:00","action":"S","shares":83,"quantity":-83,"price":173.7830601196289,"reference_price":173.8699951171875,"shares_before":165,"shares_after":82,"assumed_cost":7.215604797363281,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:20:00-04:00","pnl":null},{"time":"2026-09-15T12:30:00-04:00","action":"S","shares":55,"quantity":-55,"price":174.1278888397217,"reference_price":174.21499633789062,"shares_before":82,"shares_after":27,"assumed_cost":4.790912399291992,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:30:00-04:00","pnl":null},{"time":"2026-09-15T12:45:00-04:00","action":"S","shares":21,"quantity":-21,"price":174.26283110046387,"reference_price":174.35000610351562,"shares_before":27,"shares_after":6,"assumed_cost":1.830675064086914,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:45:00-04:00","pnl":null},{"time":"2026-09-15T12:55:00-04:00","action":"S","shares":6,"quantity":-6,"price":175.12240171051027,"reference_price":175.2100067138672,"shares_before":6,"shares_after":0,"assumed_cost":0.5256300201416015,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:55:00-04:00","pnl":null},{"time":"2026-09-15T13:05:00-04:00","action":"B","shares":16,"quantity":16,"price":175.78285482788084,"reference_price":175.69500732421875,"shares_before":0,"shares_after":16,"assumed_cost":1.40556005859375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:05:00-04:00","pnl":null},{"time":"2026-09-15T13:20:00-04:00","action":"S","shares":14,"quantity":-14,"price":176.27432180023197,"reference_price":176.3625030517578,"shares_before":16,"shares_after":2,"assumed_cost":1.2345375213623049,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:20:00-04:00","pnl":null},{"time":"2026-09-15T13:25:00-04:00","action":"S","shares":2,"quantity":-2,"price":176.34177767944337,"reference_price":176.42999267578125,"shares_before":2,"shares_after":0,"assumed_cost":0.1764299926757812,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:25:00-04:00","pnl":null},{"time":"2026-09-15T13:25:00-04:00","action":"X","shares":84,"quantity":-84,"price":176.34177767944337,"reference_price":176.42999267578125,"shares_before":0,"shares_after":-84,"assumed_cost":7.410059692382813,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:25:00-04:00","pnl":null},{"time":"2026-09-15T13:30:00-04:00","action":"X","shares":5,"quantity":-5,"price":175.84202767944336,"reference_price":175.92999267578125,"shares_before":-84,"shares_after":-89,"assumed_cost":0.4398249816894531,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:30:00-04:00","pnl":null},{"time":"2026-09-15T13:35:00-04:00","action":"C","shares":1,"quantity":1,"price":176.01795767211914,"reference_price":175.92999267578125,"shares_before":-89,"shares_after":-88,"assumed_cost":0.0879649963378906,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:35:00-04:00","pnl":null},{"time":"2026-09-15T13:40:00-04:00","action":"X","shares":69,"quantity":-69,"price":175.96197805023195,"reference_price":176.0500030517578,"shares_before":-88,"shares_after":-157,"assumed_cost":6.073725105285645,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:40:00-04:00","pnl":null},{"time":"2026-09-15T13:45:00-04:00","action":"C","shares":1,"quantity":1,"price":175.85288188934325,"reference_price":175.76499938964844,"shares_before":-157,"shares_after":-156,"assumed_cost":0.0878824996948242,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:45:00-04:00","pnl":null},{"time":"2026-09-15T13:50:00-04:00","action":"C","shares":1,"quantity":1,"price":175.337625,"reference_price":175.25,"shares_before":-156,"shares_after":-155,"assumed_cost":0.087625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:50:00-04:00","pnl":null},{"time":"2026-09-15T13:55:00-04:00","action":"C","shares":96,"quantity":96,"price":174.5472367172241,"reference_price":174.4600067138672,"shares_before":-155,"shares_after":-59,"assumed_cost":8.374080322265625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:55:00-04:00","pnl":null},{"time":"2026-09-15T14:00:00-04:00","action":"C","shares":1,"quantity":1,"price":174.27709744262694,"reference_price":174.19000244140625,"shares_before":-59,"shares_after":-58,"assumed_cost":0.0870950012207031,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:00:00-04:00","pnl":null},{"time":"2026-09-15T14:05:00-04:00","action":"C","shares":40,"quantity":40,"price":173.65679232788085,"reference_price":173.57000732421875,"shares_before":-58,"shares_after":-18,"assumed_cost":3.471400146484375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:05:00-04:00","pnl":null},{"time":"2026-09-15T14:20:00-04:00","action":"C","shares":4,"quantity":4,"price":174.8423823852539,"reference_price":174.7550048828125,"shares_before":-18,"shares_after":-14,"assumed_cost":0.349510009765625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:20:00-04:00","pnl":null},{"time":"2026-09-15T14:35:00-04:00","action":"C","shares":14,"quantity":14,"price":175.0074581680298,"reference_price":174.9199981689453,"shares_before":-14,"shares_after":0,"assumed_cost":1.2244399871826173,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:35:00-04:00","pnl":null},{"time":"2026-09-15T14:35:00-04:00","action":"B","shares":15,"quantity":15,"price":175.0074581680298,"reference_price":174.9199981689453,"shares_before":0,"shares_after":15,"assumed_cost":1.31189998626709,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:35:00-04:00","pnl":null},{"time":"2026-09-15T14:40:00-04:00","action":"B","shares":3,"quantity":3,"price":175.32762549591064,"reference_price":175.24000549316406,"shares_before":15,"shares_after":18,"assumed_cost":0.2628600082397461,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:40:00-04:00","pnl":null},{"time":"2026-09-15T14:45:00-04:00","action":"B","shares":14,"quantity":14,"price":175.20755511474607,"reference_price":175.1199951171875,"shares_before":18,"shares_after":32,"assumed_cost":1.2258399658203123,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:45:00-04:00","pnl":null},{"time":"2026-09-15T14:50:00-04:00","action":"B","shares":56,"quantity":56,"price":174.6672918319702,"reference_price":174.5800018310547,"shares_before":32,"shares_after":88,"assumed_cost":4.888240051269531,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:50:00-04:00","pnl":null},{"time":"2026-09-15T14:55:00-04:00","action":"S","shares":1,"quantity":-1,"price":174.47271755981447,"reference_price":174.55999755859375,"shares_before":88,"shares_after":87,"assumed_cost":0.0872799987792968,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:55:00-04:00","pnl":null},{"time":"2026-09-15T15:00:00-04:00","action":"S","shares":1,"quantity":-1,"price":174.51369742584228,"reference_price":174.6009979248047,"shares_before":87,"shares_after":86,"assumed_cost":0.0873004989624023,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:00:00-04:00","pnl":null},{"time":"2026-09-15T15:10:00-04:00","action":"B","shares":90,"quantity":90,"price":174.6122563934326,"reference_price":174.52499389648438,"shares_before":86,"shares_after":176,"assumed_cost":7.853624725341797,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:10:00-04:00","pnl":null},{"time":"2026-09-15T15:15:00-04:00","action":"S","shares":99,"quantity":-99,"price":173.59815505981447,"reference_price":173.68499755859375,"shares_before":176,"shares_after":77,"assumed_cost":8.59740737915039,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:15:00-04:00","pnl":null},{"time":"2026-09-15T15:20:00-04:00","action":"S","shares":77,"quantity":-77,"price":173.83804055023194,"reference_price":173.9250030517578,"shares_before":77,"shares_after":0,"assumed_cost":6.696112617492676,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:20:00-04:00","pnl":null},{"time":"2026-09-15T15:20:00-04:00","action":"X","shares":45,"quantity":-45,"price":173.83804055023194,"reference_price":173.9250030517578,"shares_before":0,"shares_after":-45,"assumed_cost":3.913312568664551,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:20:00-04:00","pnl":null},{"time":"2026-09-15T15:25:00-04:00","action":"C","shares":1,"quantity":1,"price":173.855881690979,"reference_price":173.7689971923828,"shares_before":-45,"shares_after":-44,"assumed_cost":0.0868844985961914,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:25:00-04:00","pnl":null},{"time":"2026-09-15T15:30:00-04:00","action":"C","shares":1,"quantity":1,"price":173.79686171722412,"reference_price":173.7100067138672,"shares_before":-44,"shares_after":-43,"assumed_cost":0.0868550033569336,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:30:00-04:00","pnl":null},{"time":"2026-09-15T15:35:00-04:00","action":"C","shares":43,"quantity":43,"price":173.69680561065672,"reference_price":173.61000061035156,"shares_before":-43,"shares_after":0,"assumed_cost":3.732615013122559,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:35:00-04:00","pnl":null},{"time":"2026-09-15T15:35:00-04:00","action":"B","shares":62,"quantity":62,"price":173.69680561065672,"reference_price":173.61000061035156,"shares_before":0,"shares_after":62,"assumed_cost":5.381910018920898,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:35:00-04:00","pnl":null},{"time":"2026-09-15T15:40:00-04:00","action":"S","shares":62,"quantity":-62,"price":173.06341889953617,"reference_price":173.14999389648438,"shares_before":62,"shares_after":0,"assumed_cost":5.367649810791016,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:40:00-04:00","pnl":null}],"marks":[{"time":"2026-09-15T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:40:00-04:00","shares":-122,"pnl":-309.855328582762},{"time":"2026-09-15T09:45:00-04:00","shares":-68,"pnl":-328.5492427825902},{"time":"2026-09-15T09:50:00-04:00","shares":-13,"pnl":-325.6451859664885},{"time":"2026-09-15T09:55:00-04:00","shares":59,"pnl":-292.4354915084805},{"time":"2026-09-15T10:00:00-04:00","shares":59,"pnl":-304.11197466277736},{"time":"2026-09-15T10:05:00-04:00","shares":58,"pnl":-357.5031505279512},{"time":"2026-09-15T10:10:00-04:00","shares":132,"pnl":-389.2544063110327},{"time":"2026-09-15T10:15:00-04:00","shares":131,"pnl":-432.6273374938937},{"time":"2026-09-15T10:20:00-04:00","shares":104,"pnl":-444.3771933593707},{"time":"2026-09-15T10:25:00-04:00","shares":51,"pnl":-453.4571430358847},{"time":"2026-09-15T10:30:00-04:00","shares":51,"pnl":-466.6405994567831},{"time":"2026-09-15T10:35:00-04:00","shares":50,"pnl":-462.2260775604209},{"time":"2026-09-15T10:40:00-04:00","shares":29,"pnl":-453.5781997833219},{"time":"2026-09-15T10:45:00-04:00","shares":28,"pnl":-458.8736352004971},{"time":"2026-09-15T10:50:00-04:00","shares":18,"pnl":-461.1669935073815},{"time":"2026-09-15T10:55:00-04:00","shares":48,"pnl":-467.4498720016454},{"time":"2026-09-15T11:00:00-04:00","shares":48,"pnl":-463.8492860641454},{"time":"2026-09-15T11:05:00-04:00","shares":47,"pnl":-437.1600683822599},{"time":"2026-09-15T11:10:00-04:00","shares":47,"pnl":-404.0249823226896},{"time":"2026-09-15T11:15:00-04:00","shares":46,"pnl":-421.5631857604949},{"time":"2026-09-15T11:20:00-04:00","shares":46,"pnl":-405.031233856198},{"time":"2026-09-15T11:25:00-04:00","shares":6,"pnl":-410.5321432800256},{"time":"2026-09-15T11:30:00-04:00","shares":0,"pnl":-411.1078118591272},{"time":"2026-09-15T11:35:00-04:00","shares":-99,"pnl":-475.0472154922463},{"time":"2026-09-15T11:40:00-04:00","shares":-51,"pnl":-484.6377881240805},{"time":"2026-09-15T11:45:00-04:00","shares":-50,"pnl":-506.2487001724203},{"time":"2026-09-15T11:50:00-04:00","shares":-49,"pnl":-500.2186904296832},{"time":"2026-09-15T11:55:00-04:00","shares":37,"pnl":-500.1016816558795},{"time":"2026-09-15T12:00:00-04:00","shares":37,"pnl":-474.3350343170123},{"time":"2026-09-15T12:05:00-04:00","shares":68,"pnl":-511.8965462646447},{"time":"2026-09-15T12:10:00-04:00","shares":102,"pnl":-467.4068059387173},{"time":"2026-09-15T12:15:00-04:00","shares":110,"pnl":-473.5805905456509},{"time":"2026-09-15T12:20:00-04:00","shares":165,"pnl":-395.07674933624},{"time":"2026-09-15T12:25:00-04:00","shares":82,"pnl":-418.6833606033288},{"time":"2026-09-15T12:30:00-04:00","shares":82,"pnl":-373.3366198806725},{"time":"2026-09-15T12:35:00-04:00","shares":27,"pnl":-366.2091057662929},{"time":"2026-09-15T12:40:00-04:00","shares":27,"pnl":-368.0988915328944},{"time":"2026-09-15T12:45:00-04:00","shares":27,"pnl":-373.3640892868007},{"time":"2026-09-15T12:50:00-04:00","shares":6,"pnl":-371.8495647659265},{"time":"2026-09-15T12:55:00-04:00","shares":6,"pnl":-370.1694805374109},{"time":"2026-09-15T13:00:00-04:00","shares":0,"pnl":-370.6951105575524},{"time":"2026-09-15T13:05:00-04:00","shares":0,"pnl":-370.6951105575524},{"time":"2026-09-15T13:10:00-04:00","shares":16,"pnl":-377.6206901473961},{"time":"2026-09-15T13:15:00-04:00","shares":16,"pnl":-376.8208854598961},{"time":"2026-09-15T13:20:00-04:00","shares":16,"pnl":-362.4207389755211},{"time":"2026-09-15T13:25:00-04:00","shares":2,"pnl":-362.6202728347739},{"time":"2026-09-15T13:30:00-04:00","shares":-84,"pnl":-326.4277097854556},{"time":"2026-09-15T13:35:00-04:00","shares":-89,"pnl":-331.661937843317},{"time":"2026-09-15T13:40:00-04:00","shares":-88,"pnl":-339.1954899978573},{"time":"2026-09-15T13:45:00-04:00","shares":-157,"pnl":-309.1598858795114},{"time":"2026-09-15T13:50:00-04:00","shares":-156,"pnl":-220.2716178665105},{"time":"2026-09-15T13:55:00-04:00","shares":-155,"pnl":-97.91028351592468},{"time":"2026-09-15T14:00:00-04:00","shares":-59,"pnl":-91.10313520049384},{"time":"2026-09-15T14:05:00-04:00","shares":-58,"pnl":-53.61064035796517},{"time":"2026-09-15T14:10:00-04:00","shares":-18,"pnl":-67.40278025054249},{"time":"2026-09-15T14:15:00-04:00","shares":-18,"pnl":-80.68305368804249},{"time":"2026-09-15T14:20:00-04:00","shares":-18,"pnl":-79.73273630522999},{"time":"2026-09-15T14:25:00-04:00","shares":-14,"pnl":-83.83218527983945},{"time":"2026-09-15T14:30:00-04:00","shares":-14,"pnl":-88.17236472319883},{"time":"2026-09-15T14:35:00-04:00","shares":-14,"pnl":-82.03604270171445},{"time":"2026-09-15T14:40:00-04:00","shares":15,"pnl":-79.67849229430476},{"time":"2026-09-15T14:45:00-04:00","shares":18,"pnl":-81.65137427520085},{"time":"2026-09-15T14:50:00-04:00","shares":32,"pnl":-100.9269884109426},{"time":"2026-09-15T14:55:00-04:00","shares":88,"pnl":-100.21561908721196},{"time":"2026-09-15T15:00:00-04:00","shares":87,"pnl":-102.72330924224116},{"time":"2026-09-15T15:05:00-04:00","shares":86,"pnl":-80.5143603515553},{"time":"2026-09-15T15:10:00-04:00","shares":86,"pnl":-110.39967529296156},{"time":"2026-09-15T15:15:00-04:00","shares":176,"pnl":-261.691044158928},{"time":"2026-09-15T15:20:00-04:00","shares":77,"pnl":-256.2096398925678},{"time":"2026-09-15T15:25:00-04:00","shares":-45,"pnl":-258.94392774962216},{"time":"2026-09-15T15:30:00-04:00","shares":-44,"pnl":-255.96948717497617},{"time":"2026-09-15T15:35:00-04:00","shares":-43,"pnl":-253.07669740294205},{"time":"2026-09-15T15:40:00-04:00","shares":62,"pnl":-290.7116386947491},{"time":"2026-09-15T15:45:00-04:00","shares":0,"pnl":-296.0792885055398},{"time":"2026-09-15T15:50:00-04:00","shares":0,"pnl":-296.0792885055398}],"summary":{"net_pnl":-296.0792885055398,"gross_pnl":-121.49229431150903,"cost":174.58699419403078,"fill_count":62,"ending_shares":0},"source_hashes":{"fills_sha256":"7ccb9c0f9a3c7d891f6d428d7e9ffdb92a44a1f1a7f2de456bb703c57302d439","marks_sha256":"2f02c06d1331e469d29b1713493810a19d11dbb8e62b2e6cd4e1c635e146e590","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-15/levels/SNDK.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"SNDK","date":"2026-09-15","variant":"levels","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-15T15:50:00-04:00","partial":true,"starting_equity":47958.07,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-15T09:30:00-04:00","session_close":"2026-09-15T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-15T09:35:00-04:00","bar_open":"2026-09-15T09:30:00-04:00","open":1569.7099609375,"high":1579.989990234375,"low":1555.550048828125,"close":1572.280029296875,"volume":569439.0,"vwap":1569.2733561197917},{"time":"2026-09-15T09:40:00-04:00","bar_open":"2026-09-15T09:35:00-04:00","open":1572.5400390625,"high":1578.4814453125,"low":1550.010009765625,"close":1550.2587890625,"volume":275354.0,"vwap":1566.1149917323305},{"time":"2026-09-15T09:45:00-04:00","bar_open":"2026-09-15T09:40:00-04:00","open":1550.6199951171875,"high":1557.849853515625,"low":1546.1500244140625,"close":1549.6700439453125,"volume":195439.0,"vwap":1563.3171390269736},{"time":"2026-09-15T09:50:00-04:00","bar_open":"2026-09-15T09:45:00-04:00","open":1550.1600341796875,"high":1565.0999755859375,"low":1550.0899658203125,"close":1564.5050048828125,"volume":193643.0,"vwap":1562.7805925714176},{"time":"2026-09-15T09:55:00-04:00","bar_open":"2026-09-15T09:50:00-04:00","open":1564.4100341796875,"high":1565.43994140625,"low":1551.81005859375,"close":1555.5401611328125,"volume":114869.0,"vwap":1562.3390957306299},{"time":"2026-09-15T10:00:00-04:00","bar_open":"2026-09-15T09:55:00-04:00","open":1556.4300537109375,"high":1561.9300537109375,"low":1549.0,"close":1557.39501953125,"volume":125708.0,"vwap":1561.80787897322},{"time":"2026-09-15T10:05:00-04:00","bar_open":"2026-09-15T10:00:00-04:00","open":1557.0,"high":1564.0,"low":1556.1300048828125,"close":1559.2349853515625,"volume":102321.0,"vwap":1561.676825065971},{"time":"2026-09-15T10:10:00-04:00","bar_open":"2026-09-15T10:05:00-04:00","open":1559.2550048828125,"high":1568.0,"low":1558.0,"close":1565.0,"volume":100644.0,"vwap":1561.7962143520342},{"time":"2026-09-15T10:15:00-04:00","bar_open":"2026-09-15T10:10:00-04:00","open":1565.0250244140625,"high":1567.199951171875,"low":1558.170654296875,"close":1559.2900390625,"volume":122090.0,"vwap":1561.779750335334},{"time":"2026-09-15T10:20:00-04:00","bar_open":"2026-09-15T10:15:00-04:00","open":1559.2750244140625,"high":1565.449951171875,"low":1558.8800048828125,"close":1564.074951171875,"volume":76252.0,"vwap":1561.8212912827817},{"time":"2026-09-15T10:25:00-04:00","bar_open":"2026-09-15T10:20:00-04:00","open":1564.21875,"high":1566.4300537109375,"low":1556.4901123046875,"close":1562.3599853515625,"volume":98025.0,"vwap":1561.81824984964},{"time":"2026-09-15T10:30:00-04:00","bar_open":"2026-09-15T10:25:00-04:00","open":1563.175048828125,"high":1565.5899658203125,"low":1554.6099853515625,"close":1563.7049560546875,"volume":97688.0,"vwap":1561.793886981627},{"time":"2026-09-15T10:35:00-04:00","bar_open":"2026-09-15T10:30:00-04:00","open":1563.5350341796875,"high":1568.06005859375,"low":1558.56005859375,"close":1561.4200439453125,"volume":111417.0,"vwap":1561.839117883647},{"time":"2026-09-15T10:40:00-04:00","bar_open":"2026-09-15T10:35:00-04:00","open":1561.050048828125,"high":1563.344970703125,"low":1554.31005859375,"close":1554.8006591796875,"volume":83128.0,"vwap":1561.6793970897584},{"time":"2026-09-15T10:45:00-04:00","bar_open":"2026-09-15T10:40:00-04:00","open":1555.1500244140625,"high":1555.5400390625,"low":1550.10009765625,"close":1553.0400390625,"volume":100037.0,"vwap":1561.3079239118601},{"time":"2026-09-15T10:50:00-04:00","bar_open":"2026-09-15T10:45:00-04:00","open":1552.824951171875,"high":1554.5499267578125,"low":1548.02001953125,"close":1549.530029296875,"volume":80030.0,"vwap":1560.9608578250243},{"time":"2026-09-15T10:55:00-04:00","bar_open":"2026-09-15T10:50:00-04:00","open":1549.8800048828125,"high":1549.8800048828125,"low":1540.0999755859375,"close":1543.530029296875,"volume":140005.0,"vwap":1560.0698849077296},{"time":"2026-09-15T11:00:00-04:00","bar_open":"2026-09-15T10:55:00-04:00","open":1543.60498046875,"high":1545.1600341796875,"low":1540.0,"close":1542.760009765625,"volume":102587.0,"vwap":1559.4048445308713},{"time":"2026-09-15T11:05:00-04:00","bar_open":"2026-09-15T11:00:00-04:00","open":1542.6199951171875,"high":1545.1988525390625,"low":1539.199951171875,"close":1541.4949951171875,"volume":77438.0,"vwap":1558.916600848134},{"time":"2026-09-15T11:10:00-04:00","bar_open":"2026-09-15T11:05:00-04:00","open":1541.4949951171875,"high":1542.3505859375,"low":1535.242431640625,"close":1535.5,"volume":73098.0,"vwap":1558.370300951371},{"time":"2026-09-15T11:15:00-04:00","bar_open":"2026-09-15T11:10:00-04:00","open":1535.5050048828125,"high":1537.4898681640625,"low":1528.0,"close":1537.1300048828125,"volume":154258.0,"vwap":1557.1251104449236},{"time":"2026-09-15T11:20:00-04:00","bar_open":"2026-09-15T11:15:00-04:00","open":1537.1300048828125,"high":1538.3599853515625,"low":1533.182373046875,"close":1534.0,"volume":61531.0,"vwap":1556.6831281937725},{"time":"2026-09-15T11:25:00-04:00","bar_open":"2026-09-15T11:20:00-04:00","open":1533.5699462890625,"high":1537.0,"low":1532.5301513671875,"close":1533.81494140625,"volume":50062.0,"vwap":1556.3246437597493},{"time":"2026-09-15T11:30:00-04:00","bar_open":"2026-09-15T11:25:00-04:00","open":1533.81494140625,"high":1537.1800537109375,"low":1533.7301025390625,"close":1535.0050048828125,"volume":55724.0,"vwap":1555.9540728747513},{"time":"2026-09-15T11:35:00-04:00","bar_open":"2026-09-15T11:30:00-04:00","open":1535.6199951171875,"high":1541.9998779296875,"low":1535.6199951171875,"close":1540.199951171875,"volume":70887.0,"vwap":1555.5881783762939},{"time":"2026-09-15T11:40:00-04:00","bar_open":"2026-09-15T11:35:00-04:00","open":1539.81005859375,"high":1542.389892578125,"low":1539.5699462890625,"close":1541.050048828125,"volume":46618.0,"vwap":1555.3807782876647},{"time":"2026-09-15T11:45:00-04:00","bar_open":"2026-09-15T11:40:00-04:00","open":1540.699951171875,"high":1543.4200439453125,"low":1538.3900146484375,"close":1540.3299560546875,"volume":52651.0,"vwap":1555.1489354169803},{"time":"2026-09-15T11:50:00-04:00","bar_open":"2026-09-15T11:45:00-04:00","open":1540.1300048828125,"high":1541.0400390625,"low":1536.7099609375,"close":1536.8563232421875,"volume":71271.0,"vwap":1554.7939261921524},{"time":"2026-09-15T11:55:00-04:00","bar_open":"2026-09-15T11:50:00-04:00","open":1537.989990234375,"high":1540.9476318359375,"low":1534.43994140625,"close":1536.1650390625,"volume":45735.0,"vwap":1554.5603436653187},{"time":"2026-09-15T12:00:00-04:00","bar_open":"2026-09-15T11:55:00-04:00","open":1536.1650390625,"high":1536.6199951171875,"low":1530.0,"close":1530.2099609375,"volume":58877.0,"vwap":1554.1862170582085},{"time":"2026-09-15T12:05:00-04:00","bar_open":"2026-09-15T12:00:00-04:00","open":1530.864990234375,"high":1535.969970703125,"low":1530.010009765625,"close":1534.1031494140625,"volume":52286.0,"vwap":1553.8802797807582},{"time":"2026-09-15T12:10:00-04:00","bar_open":"2026-09-15T12:05:00-04:00","open":1533.7099609375,"high":1534.9998779296875,"low":1524.050048828125,"close":1524.300048828125,"volume":93126.0,"vwap":1553.2148508046826},{"time":"2026-09-15T12:15:00-04:00","bar_open":"2026-09-15T12:10:00-04:00","open":1524.510009765625,"high":1525.1302490234375,"low":1516.0,"close":1518.0,"volume":193479.0,"vwap":1551.5292174186143},{"time":"2026-09-15T12:20:00-04:00","bar_open":"2026-09-15T12:15:00-04:00","open":1518.0,"high":1522.8399658203125,"low":1517.949951171875,"close":1522.5999755859375,"volume":109541.0,"vwap":1550.6873091037537},{"time":"2026-09-15T12:25:00-04:00","bar_open":"2026-09-15T12:20:00-04:00","open":1522.780029296875,"high":1531.0,"low":1522.64013671875,"close":1529.280029296875,"volume":87724.0,"vwap":1550.1872333454894},{"time":"2026-09-15T12:30:00-04:00","bar_open":"2026-09-15T12:25:00-04:00","open":1529.010009765625,"high":1529.800048828125,"low":1525.0,"close":1525.2674560546875,"volume":50280.0,"vwap":1549.8985924740339},{"time":"2026-09-15T12:35:00-04:00","bar_open":"2026-09-15T12:30:00-04:00","open":1525.0,"high":1527.6800537109375,"low":1519.56005859375,"close":1524.699951171875,"volume":54353.0,"vwap":1549.5589389365928},{"time":"2026-09-15T12:40:00-04:00","bar_open":"2026-09-15T12:35:00-04:00","open":1524.699951171875,"high":1527.93994140625,"low":1523.3350830078125,"close":1527.8900146484375,"volume":34974.0,"vwap":1549.3651909243024},{"time":"2026-09-15T12:45:00-04:00","bar_open":"2026-09-15T12:40:00-04:00","open":1527.5899658203125,"high":1529.34814453125,"low":1525.5101318359375,"close":1526.02001953125,"volume":41995.0,"vwap":1549.1424637049008},{"time":"2026-09-15T12:50:00-04:00","bar_open":"2026-09-15T12:45:00-04:00","open":1525.7869873046875,"high":1529.2703857421875,"low":1523.8900146484375,"close":1526.5999755859375,"volume":38067.0,"vwap":1548.9410334787135},{"time":"2026-09-15T12:55:00-04:00","bar_open":"2026-09-15T12:50:00-04:00","open":1526.530029296875,"high":1530.409912109375,"low":1526.35498046875,"close":1529.52001953125,"volume":42878.0,"vwap":1548.7400704503937},{"time":"2026-09-15T13:00:00-04:00","bar_open":"2026-09-15T12:55:00-04:00","open":1529.8499755859375,"high":1531.8800048828125,"low":1527.5400390625,"close":1530.969970703125,"volume":42521.0,"vwap":1548.55807654554},{"time":"2026-09-15T13:05:00-04:00","bar_open":"2026-09-15T13:00:00-04:00","open":1531.18994140625,"high":1532.64990234375,"low":1526.8184814453125,"close":1527.4320068359375,"volume":51078.0,"vwap":1548.3306034229092},{"time":"2026-09-15T13:10:00-04:00","bar_open":"2026-09-15T13:05:00-04:00","open":1527.56005859375,"high":1534.369873046875,"low":1526.8675537109375,"close":1531.1300048828125,"volume":42838.0,"vwap":1548.1614348511798},{"time":"2026-09-15T13:15:00-04:00","bar_open":"2026-09-15T13:10:00-04:00","open":1531.8800048828125,"high":1533.3299560546875,"low":1529.8800048828125,"close":1531.739990234375,"volume":44862.0,"vwap":1547.9963434502015},{"time":"2026-09-15T13:20:00-04:00","bar_open":"2026-09-15T13:15:00-04:00","open":1531.5799560546875,"high":1533.969482421875,"low":1530.550048828125,"close":1533.0350341796875,"volume":44740.0,"vwap":1547.8435282097548},{"time":"2026-09-15T13:25:00-04:00","bar_open":"2026-09-15T13:20:00-04:00","open":1533.0350341796875,"high":1534.1600341796875,"low":1530.5,"close":1531.191162109375,"volume":40909.0,"vwap":1547.7013356886034},{"time":"2026-09-15T13:30:00-04:00","bar_open":"2026-09-15T13:25:00-04:00","open":1531.2900390625,"high":1532.5699462890625,"low":1530.859619140625,"close":1531.739990234375,"volume":34411.0,"vwap":1547.5819874136446},{"time":"2026-09-15T13:35:00-04:00","bar_open":"2026-09-15T13:30:00-04:00","open":1531.4100341796875,"high":1537.4000244140625,"low":1531.4100341796875,"close":1534.8699951171875,"volume":43185.0,"vwap":1547.4610530211546},{"time":"2026-09-15T13:40:00-04:00","bar_open":"2026-09-15T13:35:00-04:00","open":1534.7349853515625,"high":1537.8133544921875,"low":1533.8299560546875,"close":1534.5050048828125,"volume":38615.0,"vwap":1547.3615789616795},{"time":"2026-09-15T13:45:00-04:00","bar_open":"2026-09-15T13:40:00-04:00","open":1534.780029296875,"high":1536.4000244140625,"low":1532.47998046875,"close":1535.030029296875,"volume":34966.0,"vwap":1547.267385169134},{"time":"2026-09-15T13:50:00-04:00","bar_open":"2026-09-15T13:45:00-04:00","open":1535.3349609375,"high":1535.6700439453125,"low":1525.9000244140625,"close":1527.1474609375,"volume":58254.0,"vwap":1547.0518232487132},{"time":"2026-09-15T13:55:00-04:00","bar_open":"2026-09-15T13:50:00-04:00","open":1526.92431640625,"high":1528.2750244140625,"low":1524.0,"close":1525.4649658203125,"volume":48438.0,"vwap":1546.8398495449253},{"time":"2026-09-15T14:00:00-04:00","bar_open":"2026-09-15T13:55:00-04:00","open":1525.837158203125,"high":1527.47998046875,"low":1522.25,"close":1523.1600341796875,"volume":43448.0,"vwap":1546.6388857788024},{"time":"2026-09-15T14:05:00-04:00","bar_open":"2026-09-15T14:00:00-04:00","open":1523.6300048828125,"high":1524.1500244140625,"low":1517.3399658203125,"close":1520.06005859375,"volume":82430.0,"vwap":1546.204431407939},{"time":"2026-09-15T14:10:00-04:00","bar_open":"2026-09-15T14:05:00-04:00","open":1520.06005859375,"high":1522.3223876953125,"low":1517.93994140625,"close":1518.25,"volume":47902.0,"vwap":1545.9488425577724},{"time":"2026-09-15T14:15:00-04:00","bar_open":"2026-09-15T14:10:00-04:00","open":1517.8499755859375,"high":1518.25,"low":1514.4200439453125,"close":1516.43994140625,"volume":81238.0,"vwap":1545.476324482689},{"time":"2026-09-15T14:20:00-04:00","bar_open":"2026-09-15T14:15:00-04:00","open":1516.5050048828125,"high":1518.68994140625,"low":1513.2099609375,"close":1515.3050537109375,"volume":44831.0,"vwap":1545.2164252050616},{"time":"2026-09-15T14:25:00-04:00","bar_open":"2026-09-15T14:20:00-04:00","open":1514.8199462890625,"high":1515.5699462890625,"low":1512.8900146484375,"close":1513.8349609375,"volume":42694.0,"vwap":1544.9595944618939},{"time":"2026-09-15T14:30:00-04:00","bar_open":"2026-09-15T14:25:00-04:00","open":1513.75,"high":1518.68994140625,"low":1513.300048828125,"close":1517.8299560546875,"volume":55569.0,"vwap":1544.6582542121414},{"time":"2026-09-15T14:35:00-04:00","bar_open":"2026-09-15T14:30:00-04:00","open":1517.719970703125,"high":1518.199951171875,"low":1513.0,"close":1513.3349609375,"volume":46782.0,"vwap":1544.393863392175},{"time":"2026-09-15T14:40:00-04:00","bar_open":"2026-09-15T14:35:00-04:00","open":1513.489990234375,"high":1516.739990234375,"low":1509.14013671875,"close":1515.68994140625,"volume":54777.0,"vwap":1544.0800304762838},{"time":"2026-09-15T14:45:00-04:00","bar_open":"2026-09-15T14:40:00-04:00","open":1515.81494140625,"high":1515.81494140625,"low":1511.3499755859375,"close":1514.60498046875,"volume":57255.0,"vwap":1543.7595299238935},{"time":"2026-09-15T14:50:00-04:00","bar_open":"2026-09-15T14:45:00-04:00","open":1514.97802734375,"high":1516.6500244140625,"low":1513.56005859375,"close":1515.4100341796875,"volume":35790.0,"vwap":1543.5710929158104},{"time":"2026-09-15T14:55:00-04:00","bar_open":"2026-09-15T14:50:00-04:00","open":1516.0,"high":1518.9000244140625,"low":1515.949951171875,"close":1516.989990234375,"volume":55000.0,"vwap":1543.3071289926204},{"time":"2026-09-15T15:00:00-04:00","bar_open":"2026-09-15T14:55:00-04:00","open":1516.100830078125,"high":1517.2470703125,"low":1514.0699462890625,"close":1516.1199951171875,"volume":33855.0,"vwap":1543.1382519622155},{"time":"2026-09-15T15:05:00-04:00","bar_open":"2026-09-15T15:00:00-04:00","open":1516.046142578125,"high":1521.6099853515625,"low":1515.52001953125,"close":1520.4100341796875,"volume":53151.0,"vwap":1542.9094309742286},{"time":"2026-09-15T15:10:00-04:00","bar_open":"2026-09-15T15:05:00-04:00","open":1520.405029296875,"high":1521.47705078125,"low":1517.5999755859375,"close":1519.405029296875,"volume":51466.0,"vwap":1542.6948684672477},{"time":"2026-09-15T15:15:00-04:00","bar_open":"2026-09-15T15:10:00-04:00","open":1519.6400146484375,"high":1520.616455078125,"low":1517.0,"close":1517.8599853515625,"volume":31233.0,"vwap":1542.5610237803965},{"time":"2026-09-15T15:20:00-04:00","bar_open":"2026-09-15T15:15:00-04:00","open":1517.860107421875,"high":1519.6400146484375,"low":1516.4000244140625,"close":1519.12255859375,"volume":42654.0,"vwap":1542.3798252197182},{"time":"2026-09-15T15:25:00-04:00","bar_open":"2026-09-15T15:20:00-04:00","open":1518.5450439453125,"high":1520.0350341796875,"low":1516.9818115234375,"close":1519.079345703125,"volume":29608.0,"vwap":1542.2572471954834},{"time":"2026-09-15T15:30:00-04:00","bar_open":"2026-09-15T15:25:00-04:00","open":1518.8299560546875,"high":1522.2158203125,"low":1518.590087890625,"close":1520.1800537109375,"volume":50619.0,"vwap":1542.0648938479196},{"time":"2026-09-15T15:35:00-04:00","bar_open":"2026-09-15T15:30:00-04:00","open":1520.0699462890625,"high":1530.8599853515625,"low":1520.0699462890625,"close":1530.300048828125,"volume":125249.0,"vwap":1541.7464925458535},{"time":"2026-09-15T15:40:00-04:00","bar_open":"2026-09-15T15:35:00-04:00","open":1530.0,"high":1531.8800048828125,"low":1528.0,"close":1529.219970703125,"volume":113396.0,"vwap":1541.5191737927908},{"time":"2026-09-15T15:45:00-04:00","bar_open":"2026-09-15T15:40:00-04:00","open":1529.594970703125,"high":1532.5,"low":1529.219970703125,"close":1531.8399658203125,"volume":72354.0,"vwap":1541.3962466068604},{"time":"2026-09-15T15:50:00-04:00","bar_open":"2026-09-15T15:45:00-04:00","open":1532.0,"high":1535.885009765625,"low":1527.6800537109375,"close":1528.5,"volume":143003.0,"vwap":1541.1502471215763}],"fills":[{"time":"2026-09-15T09:45:00-04:00","action":"X","shares":6,"quantity":-6,"price":1549.3849541625978,"reference_price":1550.1600341796875,"shares_before":0,"shares_after":-6,"assumed_cost":4.650480102539063,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:45:00-04:00","pnl":null},{"time":"2026-09-15T09:55:00-04:00","action":"X","shares":3,"quantity":-3,"price":1555.651838684082,"reference_price":1556.4300537109375,"shares_before":-6,"shares_after":-9,"assumed_cost":2.334645080566406,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:55:00-04:00","pnl":null},{"time":"2026-09-15T10:00:00-04:00","action":"C","shares":1,"quantity":1,"price":1557.7785,"reference_price":1557.0,"shares_before":-9,"shares_after":-8,"assumed_cost":0.7785,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:00:00-04:00","pnl":null},{"time":"2026-09-15T10:05:00-04:00","action":"C","shares":1,"quantity":1,"price":1560.034632385254,"reference_price":1559.2550048828125,"shares_before":-8,"shares_after":-7,"assumed_cost":0.7796275024414062,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:05:00-04:00","pnl":null},{"time":"2026-09-15T10:10:00-04:00","action":"C","shares":1,"quantity":1,"price":1565.8075369262694,"reference_price":1565.0250244140625,"shares_before":-7,"shares_after":-6,"assumed_cost":0.7825125122070312,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:10:00-04:00","pnl":null},{"time":"2026-09-15T10:15:00-04:00","action":"C","shares":6,"quantity":6,"price":1560.0546619262695,"reference_price":1559.2750244140625,"shares_before":-6,"shares_after":0,"assumed_cost":4.677825073242188,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:15:00-04:00","pnl":null},{"time":"2026-09-15T10:20:00-04:00","action":"B","shares":3,"quantity":3,"price":1565.000859375,"reference_price":1564.21875,"shares_before":0,"shares_after":3,"assumed_cost":2.346328125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:20:00-04:00","pnl":null},{"time":"2026-09-15T10:30:00-04:00","action":"B","shares":3,"quantity":3,"price":1564.3168016967772,"reference_price":1563.5350341796875,"shares_before":3,"shares_after":6,"assumed_cost":2.345302551269531,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:30:00-04:00","pnl":null},{"time":"2026-09-15T10:35:00-04:00","action":"S","shares":1,"quantity":-1,"price":1560.269523803711,"reference_price":1561.050048828125,"shares_before":6,"shares_after":5,"assumed_cost":0.7805250244140625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:35:00-04:00","pnl":null},{"time":"2026-09-15T10:40:00-04:00","action":"S","shares":2,"quantity":-2,"price":1554.3724494018556,"reference_price":1555.1500244140625,"shares_before":5,"shares_after":3,"assumed_cost":1.5551500244140626,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:40:00-04:00","pnl":null},{"time":"2026-09-15T10:45:00-04:00","action":"S","shares":3,"quantity":-3,"price":1552.0485386962891,"reference_price":1552.824951171875,"shares_before":3,"shares_after":0,"assumed_cost":2.3292374267578126,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:45:00-04:00","pnl":null},{"time":"2026-09-15T11:15:00-04:00","action":"B","shares":3,"quantity":3,"price":1537.898569885254,"reference_price":1537.1300048828125,"shares_before":0,"shares_after":3,"assumed_cost":2.3056950073242186,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:15:00-04:00","pnl":null},{"time":"2026-09-15T11:20:00-04:00","action":"S","shares":2,"quantity":-2,"price":1532.803161315918,"reference_price":1533.5699462890625,"shares_before":3,"shares_after":1,"assumed_cost":1.5335699462890624,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:20:00-04:00","pnl":null},{"time":"2026-09-15T11:25:00-04:00","action":"S","shares":1,"quantity":-1,"price":1533.048033935547,"reference_price":1533.81494140625,"shares_before":1,"shares_after":0,"assumed_cost":0.766907470703125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:25:00-04:00","pnl":null},{"time":"2026-09-15T11:45:00-04:00","action":"B","shares":3,"quantity":3,"price":1540.9000698852535,"reference_price":1540.1300048828125,"shares_before":0,"shares_after":3,"assumed_cost":2.310195007324219,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:45:00-04:00","pnl":null},{"time":"2026-09-15T11:50:00-04:00","action":"S","shares":3,"quantity":-3,"price":1537.220995239258,"reference_price":1537.989990234375,"shares_before":3,"shares_after":0,"assumed_cost":2.3069849853515625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:50:00-04:00","pnl":null},{"time":"2026-09-15T12:00:00-04:00","action":"B","shares":1,"quantity":1,"price":1531.630422729492,"reference_price":1530.864990234375,"shares_before":0,"shares_after":1,"assumed_cost":0.7654324951171875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:00:00-04:00","pnl":null},{"time":"2026-09-15T12:05:00-04:00","action":"S","shares":1,"quantity":-1,"price":1532.943105957031,"reference_price":1533.7099609375,"shares_before":1,"shares_after":0,"assumed_cost":0.76685498046875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:05:00-04:00","pnl":null},{"time":"2026-09-15T12:35:00-04:00","action":"B","shares":2,"quantity":2,"price":1525.462301147461,"reference_price":1524.699951171875,"shares_before":0,"shares_after":2,"assumed_cost":1.524699951171875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:35:00-04:00","pnl":null},{"time":"2026-09-15T12:40:00-04:00","action":"S","shares":1,"quantity":-1,"price":1526.8261708374023,"reference_price":1527.5899658203125,"shares_before":2,"shares_after":1,"assumed_cost":0.7637949829101562,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:40:00-04:00","pnl":null},{"time":"2026-09-15T13:00:00-04:00","action":"B","shares":1,"quantity":1,"price":1531.955536376953,"reference_price":1531.18994140625,"shares_before":1,"shares_after":2,"assumed_cost":0.765594970703125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:00:00-04:00","pnl":null},{"time":"2026-09-15T13:05:00-04:00","action":"S","shares":2,"quantity":-2,"price":1526.7962785644531,"reference_price":1527.56005859375,"shares_before":2,"shares_after":0,"assumed_cost":1.52756005859375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:05:00-04:00","pnl":null},{"time":"2026-09-15T13:10:00-04:00","action":"B","shares":1,"quantity":1,"price":1532.6459448852538,"reference_price":1531.8800048828125,"shares_before":0,"shares_after":1,"assumed_cost":0.7659400024414063,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:10:00-04:00","pnl":null},{"time":"2026-09-15T13:15:00-04:00","action":"S","shares":1,"quantity":-1,"price":1530.8141660766605,"reference_price":1531.5799560546875,"shares_before":1,"shares_after":0,"assumed_cost":0.7657899780273437,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:15:00-04:00","pnl":null},{"time":"2026-09-15T13:25:00-04:00","action":"X","shares":1,"quantity":-1,"price":1530.5243940429689,"reference_price":1531.2900390625,"shares_before":0,"shares_after":-1,"assumed_cost":0.76564501953125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:25:00-04:00","pnl":null},{"time":"2026-09-15T13:30:00-04:00","action":"C","shares":1,"quantity":1,"price":1532.1757391967772,"reference_price":1531.4100341796875,"shares_before":-1,"shares_after":0,"assumed_cost":0.7657050170898437,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:30:00-04:00","pnl":null},{"time":"2026-09-15T13:50:00-04:00","action":"X","shares":1,"quantity":-1,"price":1526.160854248047,"reference_price":1526.92431640625,"shares_before":0,"shares_after":-1,"assumed_cost":0.763462158203125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:50:00-04:00","pnl":null},{"time":"2026-09-15T13:55:00-04:00","action":"X","shares":2,"quantity":-2,"price":1525.0742396240234,"reference_price":1525.837158203125,"shares_before":-1,"shares_after":-3,"assumed_cost":1.525837158203125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:55:00-04:00","pnl":null},{"time":"2026-09-15T14:00:00-04:00","action":"X","shares":1,"quantity":-1,"price":1522.8681898803711,"reference_price":1523.6300048828125,"shares_before":-3,"shares_after":-4,"assumed_cost":0.7618150024414062,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:00:00-04:00","pnl":null},{"time":"2026-09-15T14:05:00-04:00","action":"C","shares":2,"quantity":2,"price":1520.8200886230468,"reference_price":1520.06005859375,"shares_before":-4,"shares_after":-2,"assumed_cost":1.52006005859375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:05:00-04:00","pnl":null},{"time":"2026-09-15T14:10:00-04:00","action":"C","shares":1,"quantity":1,"price":1518.6089005737304,"reference_price":1517.8499755859375,"shares_before":-2,"shares_after":-1,"assumed_cost":0.7589249877929688,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:10:00-04:00","pnl":null},{"time":"2026-09-15T14:20:00-04:00","action":"C","shares":1,"quantity":1,"price":1515.5773562622069,"reference_price":1514.8199462890625,"shares_before":-1,"shares_after":0,"assumed_cost":0.7574099731445313,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:20:00-04:00","pnl":null},{"time":"2026-09-15T14:25:00-04:00","action":"X","shares":1,"quantity":-1,"price":1512.9931250000002,"reference_price":1513.75,"shares_before":0,"shares_after":-1,"assumed_cost":0.756875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:25:00-04:00","pnl":null},{"time":"2026-09-15T14:30:00-04:00","action":"C","shares":1,"quantity":1,"price":1518.4788306884766,"reference_price":1517.719970703125,"shares_before":-1,"shares_after":0,"assumed_cost":0.7588599853515625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:30:00-04:00","pnl":null},{"time":"2026-09-15T14:35:00-04:00","action":"X","shares":3,"quantity":-3,"price":1512.733245239258,"reference_price":1513.489990234375,"shares_before":0,"shares_after":-3,"assumed_cost":2.2702349853515624,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:35:00-04:00","pnl":null},{"time":"2026-09-15T14:40:00-04:00","action":"C","shares":3,"quantity":3,"price":1516.572848876953,"reference_price":1515.81494140625,"shares_before":-3,"shares_after":0,"assumed_cost":2.273722412109375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:40:00-04:00","pnl":null},{"time":"2026-09-15T14:40:00-04:00","action":"B","shares":1,"quantity":1,"price":1516.572848876953,"reference_price":1515.81494140625,"shares_before":0,"shares_after":1,"assumed_cost":0.757907470703125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:40:00-04:00","pnl":null},{"time":"2026-09-15T14:45:00-04:00","action":"S","shares":1,"quantity":-1,"price":1514.2205383300782,"reference_price":1514.97802734375,"shares_before":1,"shares_after":0,"assumed_cost":0.757489013671875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:45:00-04:00","pnl":null},{"time":"2026-09-15T14:50:00-04:00","action":"X","shares":1,"quantity":-1,"price":1515.2420000000002,"reference_price":1516.0,"shares_before":0,"shares_after":-1,"assumed_cost":0.758,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:50:00-04:00","pnl":null},{"time":"2026-09-15T14:55:00-04:00","action":"C","shares":1,"quantity":1,"price":1516.858880493164,"reference_price":1516.100830078125,"shares_before":-1,"shares_after":0,"assumed_cost":0.7580504150390625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:55:00-04:00","pnl":null},{"time":"2026-09-15T15:30:00-04:00","action":"X","shares":1,"quantity":-1,"price":1519.309911315918,"reference_price":1520.0699462890625,"shares_before":0,"shares_after":-1,"assumed_cost":0.7600349731445313,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:30:00-04:00","pnl":null},{"time":"2026-09-15T15:35:00-04:00","action":"X","shares":4,"quantity":-4,"price":1529.235,"reference_price":1530.0,"shares_before":-1,"shares_after":-5,"assumed_cost":3.06,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:35:00-04:00","pnl":null},{"time":"2026-09-15T15:45:00-04:00","action":"C","shares":1,"quantity":1,"price":1532.7659999999998,"reference_price":1532.0,"shares_before":-5,"shares_after":-4,"assumed_cost":0.766,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:45:00-04:00","pnl":null}],"marks":[{"time":"2026-09-15T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:40:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:45:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:50:00-04:00","shares":-6,"pnl":-90.7203043212885},{"time":"2026-09-15T09:55:00-04:00","shares":-6,"pnl":-36.931241821288495},{"time":"2026-09-15T10:00:00-04:00","shares":-9,"pnl":-53.289934753416674},{"time":"2026-09-15T10:05:00-04:00","shares":-8,"pnl":-68.39314178466702},{"time":"2026-09-15T10:10:00-04:00","shares":-7,"pnl":-109.54789135742068},{"time":"2026-09-15T10:15:00-04:00","shares":-6,"pnl":-76.09566265869034},{"time":"2026-09-15T10:20:00-04:00","shares":0,"pnl":-80.68339984130762},{"time":"2026-09-15T10:25:00-04:00","shares":3,"pnl":-88.60602191161979},{"time":"2026-09-15T10:30:00-04:00","shares":3,"pnl":-84.57110980224479},{"time":"2026-09-15T10:35:00-04:00","shares":6,"pnl":-100.1161193847638},{"time":"2026-09-15T10:40:00-04:00","shares":5,"pnl":-134.36356335449},{"time":"2026-09-15T10:45:00-04:00","shares":3,"pnl":-140.5018432617162},{"time":"2026-09-15T10:50:00-04:00","shares":0,"pnl":-143.47634436034878},{"time":"2026-09-15T10:55:00-04:00","shares":0,"pnl":-143.47634436034878},{"time":"2026-09-15T11:00:00-04:00","shares":0,"pnl":-143.47634436034878},{"time":"2026-09-15T11:05:00-04:00","shares":0,"pnl":-143.47634436034878},{"time":"2026-09-15T11:10:00-04:00","shares":0,"pnl":-143.47634436034878},{"time":"2026-09-15T11:15:00-04:00","shares":0,"pnl":-143.47634436034878},{"time":"2026-09-15T11:20:00-04:00","shares":3,"pnl":-155.17205401611045},{"time":"2026-09-15T11:25:00-04:00","shares":1,"pnl":-157.7507899780244},{"time":"2026-09-15T11:30:00-04:00","shares":0,"pnl":-158.5176974487274},{"time":"2026-09-15T11:35:00-04:00","shares":0,"pnl":-158.5176974487274},{"time":"2026-09-15T11:40:00-04:00","shares":0,"pnl":-158.5176974487274},{"time":"2026-09-15T11:45:00-04:00","shares":0,"pnl":-158.5176974487274},{"time":"2026-09-15T11:50:00-04:00","shares":3,"pnl":-170.6489373779259},{"time":"2026-09-15T11:55:00-04:00","shares":0,"pnl":-169.55492138671434},{"time":"2026-09-15T12:00:00-04:00","shares":0,"pnl":-169.55492138671434},{"time":"2026-09-15T12:05:00-04:00","shares":1,"pnl":-167.08219470214385},{"time":"2026-09-15T12:10:00-04:00","shares":0,"pnl":-168.24223815917503},{"time":"2026-09-15T12:15:00-04:00","shares":0,"pnl":-168.24223815917503},{"time":"2026-09-15T12:20:00-04:00","shares":0,"pnl":-168.24223815917503},{"time":"2026-09-15T12:25:00-04:00","shares":0,"pnl":-168.24223815917503},{"time":"2026-09-15T12:30:00-04:00","shares":0,"pnl":-168.24223815917503},{"time":"2026-09-15T12:35:00-04:00","shares":0,"pnl":-168.24223815917503},{"time":"2026-09-15T12:40:00-04:00","shares":2,"pnl":-163.38681115722193},{"time":"2026-09-15T12:45:00-04:00","shares":1,"pnl":-166.3206500854444},{"time":"2026-09-15T12:50:00-04:00","shares":1,"pnl":-165.7406940307569},{"time":"2026-09-15T12:55:00-04:00","shares":1,"pnl":-162.8206500854444},{"time":"2026-09-15T13:00:00-04:00","shares":1,"pnl":-161.3706989135694},{"time":"2026-09-15T13:05:00-04:00","shares":2,"pnl":-169.43219232177216},{"time":"2026-09-15T13:10:00-04:00","shares":0,"pnl":-170.7036488647409},{"time":"2026-09-15T13:15:00-04:00","shares":1,"pnl":-171.6096035156197},{"time":"2026-09-15T13:20:00-04:00","shares":0,"pnl":-172.53542767333442},{"time":"2026-09-15T13:25:00-04:00","shares":0,"pnl":-172.53542767333442},{"time":"2026-09-15T13:30:00-04:00","shares":-1,"pnl":-173.75102386474055},{"time":"2026-09-15T13:35:00-04:00","shares":0,"pnl":-174.1867728271427},{"time":"2026-09-15T13:40:00-04:00","shares":0,"pnl":-174.1867728271427},{"time":"2026-09-15T13:45:00-04:00","shares":0,"pnl":-174.1867728271427},{"time":"2026-09-15T13:50:00-04:00","shares":0,"pnl":-174.1867728271427},{"time":"2026-09-15T13:55:00-04:00","shares":-1,"pnl":-173.4908843994083},{"time":"2026-09-15T14:00:00-04:00","shares":-3,"pnl":-167.35754187011116},{"time":"2026-09-15T14:05:00-04:00","shares":-4,"pnl":-155.2494838256771},{"time":"2026-09-15T14:10:00-04:00","shares":-2,"pnl":-153.14942669677066},{"time":"2026-09-15T14:15:00-04:00","shares":-1,"pnl":-151.698268676751},{"time":"2026-09-15T14:20:00-04:00","shares":-1,"pnl":-150.5633809814385},{"time":"2026-09-15T14:25:00-04:00","shares":0,"pnl":-150.8356835327079},{"time":"2026-09-15T14:30:00-04:00","shares":-1,"pnl":-155.6725145873952},{"time":"2026-09-15T14:35:00-04:00","shares":0,"pnl":-156.3213892211843},{"time":"2026-09-15T14:40:00-04:00","shares":-3,"pnl":-165.19147772216093},{"time":"2026-09-15T14:45:00-04:00","shares":1,"pnl":-169.80806854247317},{"time":"2026-09-15T14:50:00-04:00","shares":0,"pnl":-170.192510681145},{"time":"2026-09-15T14:55:00-04:00","shares":-1,"pnl":-171.9405009155198},{"time":"2026-09-15T15:00:00-04:00","shares":0,"pnl":-171.80939117430876},{"time":"2026-09-15T15:05:00-04:00","shares":0,"pnl":-171.80939117430876},{"time":"2026-09-15T15:10:00-04:00","shares":0,"pnl":-171.80939117430876},{"time":"2026-09-15T15:15:00-04:00","shares":0,"pnl":-171.80939117430876},{"time":"2026-09-15T15:20:00-04:00","shares":0,"pnl":-171.80939117430876},{"time":"2026-09-15T15:25:00-04:00","shares":0,"pnl":-171.80939117430876},{"time":"2026-09-15T15:30:00-04:00","shares":0,"pnl":-171.80939117430876},{"time":"2026-09-15T15:35:00-04:00","shares":-1,"pnl":-182.7995286865157},{"time":"2026-09-15T15:40:00-04:00","shares":-5,"pnl":-181.65933337401475},{"time":"2026-09-15T15:45:00-04:00","shares":-5,"pnl":-194.75930895995225},{"time":"2026-09-15T15:50:00-04:00","shares":-4,"pnl":-182.32547985838937}],"summary":{"net_pnl":-182.32547985838937,"gross_pnl":-120.80029296874093,"cost":61.52518688964843,"fill_count":43,"ending_shares":-4},"source_hashes":{"fills_sha256":"7ccb9c0f9a3c7d891f6d428d7e9ffdb92a44a1f1a7f2de456bb703c57302d439","marks_sha256":"2f02c06d1331e469d29b1713493810a19d11dbb8e62b2e6cd4e1c635e146e590","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-15/levels/TSLA.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"TSLA","date":"2026-09-15","variant":"levels","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-15T15:50:00-04:00","partial":true,"starting_equity":47958.07,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-15T09:30:00-04:00","session_close":"2026-09-15T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-15T09:35:00-04:00","bar_open":"2026-09-15T09:30:00-04:00","open":358.7250061035156,"high":360.69000244140625,"low":354.63128662109375,"close":355.4849853515625,"volume":2022902.0,"vwap":356.9354248046875},{"time":"2026-09-15T09:40:00-04:00","bar_open":"2026-09-15T09:35:00-04:00","open":355.54998779296875,"high":361.7200012207031,"low":355.54998779296875,"close":361.6000061035156,"volume":1135113.0,"vwap":357.9015627318861},{"time":"2026-09-15T09:45:00-04:00","bar_open":"2026-09-15T09:40:00-04:00","open":361.6400146484375,"high":362.1099853515625,"low":360.1499938964844,"close":361.04998779296875,"volume":941432.0,"vwap":358.6368421385916},{"time":"2026-09-15T09:50:00-04:00","bar_open":"2026-09-15T09:45:00-04:00","open":361.0799865722656,"high":361.75,"low":360.3299865722656,"close":361.4778137207031,"volume":530020.0,"vwap":358.9286833736186},{"time":"2026-09-15T09:55:00-04:00","bar_open":"2026-09-15T09:50:00-04:00","open":361.4056091308594,"high":362.0,"low":360.0801086425781,"close":360.5899963378906,"volume":694269.0,"vwap":359.18446345508323},{"time":"2026-09-15T10:00:00-04:00","bar_open":"2026-09-15T09:55:00-04:00","open":360.6567077636719,"high":361.29998779296875,"low":358.6300048828125,"close":359.1499938964844,"volume":537794.0,"vwap":359.23115173616094},{"time":"2026-09-15T10:05:00-04:00","bar_open":"2026-09-15T10:00:00-04:00","open":359.1000061035156,"high":360.19000244140625,"low":359.010009765625,"close":359.70361328125,"volume":413305.0,"vwap":359.2577218599167},{"time":"2026-09-15T10:10:00-04:00","bar_open":"2026-09-15T10:05:00-04:00","open":359.7099914550781,"high":359.8800048828125,"low":358.1600036621094,"close":358.3450012207031,"volume":367792.0,"vwap":359.2321018452655},{"time":"2026-09-15T10:15:00-04:00","bar_open":"2026-09-15T10:10:00-04:00","open":358.3450012207031,"high":359.659912109375,"low":358.32000732421875,"close":359.07000732421875,"volume":295905.0,"vwap":359.22291321995306},{"time":"2026-09-15T10:20:00-04:00","bar_open":"2026-09-15T10:15:00-04:00","open":359.04998779296875,"high":359.9649963378906,"low":358.95001220703125,"close":359.44500732421875,"volume":260093.0,"vwap":359.2312387035512},{"time":"2026-09-15T10:25:00-04:00","bar_open":"2026-09-15T10:20:00-04:00","open":359.3800964355469,"high":359.54998779296875,"low":358.6700134277344,"close":358.92999267578125,"volume":227066.0,"vwap":359.2256966456569},{"time":"2026-09-15T10:30:00-04:00","bar_open":"2026-09-15T10:25:00-04:00","open":358.92999267578125,"high":359.54998779296875,"low":358.79998779296875,"close":359.2900085449219,"volume":261245.0,"vwap":359.2252762915081},{"time":"2026-09-15T10:35:00-04:00","bar_open":"2026-09-15T10:30:00-04:00","open":359.25,"high":359.2900085449219,"low":358.1099853515625,"close":358.875,"volume":271401.0,"vwap":359.20935219355164},{"time":"2026-09-15T10:40:00-04:00","bar_open":"2026-09-15T10:35:00-04:00","open":358.875,"high":358.94000244140625,"low":358.1000061035156,"close":358.4200134277344,"volume":195090.0,"vwap":359.1920604105311},{"time":"2026-09-15T10:45:00-04:00","bar_open":"2026-09-15T10:40:00-04:00","open":358.3699951171875,"high":358.3999938964844,"low":357.6300048828125,"close":357.77801513671875,"volume":343932.0,"vwap":359.1412213470377},{"time":"2026-09-15T10:50:00-04:00","bar_open":"2026-09-15T10:45:00-04:00","open":357.8258056640625,"high":358.4200134277344,"low":357.1449890136719,"close":357.1499938964844,"volume":266475.0,"vwap":359.09349709658534},{"time":"2026-09-15T10:55:00-04:00","bar_open":"2026-09-15T10:50:00-04:00","open":357.19500732421875,"high":357.19500732421875,"low":355.8900146484375,"close":356.04998779296875,"volume":440753.0,"vwap":358.9634841867827},{"time":"2026-09-15T11:00:00-04:00","bar_open":"2026-09-15T10:55:00-04:00","open":356.11199951171875,"high":357.8096923828125,"low":355.8800048828125,"close":357.6099853515625,"volume":414168.0,"vwap":358.88324102274817},{"time":"2026-09-15T11:05:00-04:00","bar_open":"2026-09-15T11:00:00-04:00","open":357.5609130859375,"high":358.3299865722656,"low":357.55010986328125,"close":358.0828857421875,"volume":254788.0,"vwap":358.86013046226645},{"time":"2026-09-15T11:10:00-04:00","bar_open":"2026-09-15T11:05:00-04:00","open":358.07000732421875,"high":359.9150085449219,"low":358.0,"close":359.635009765625,"volume":456444.0,"vwap":358.87441187396564},{"time":"2026-09-15T11:15:00-04:00","bar_open":"2026-09-15T11:10:00-04:00","open":359.635009765625,"high":359.9800109863281,"low":358.8699951171875,"close":359.17498779296875,"volume":374531.0,"vwap":358.8907601712715},{"time":"2026-09-15T11:20:00-04:00","bar_open":"2026-09-15T11:15:00-04:00","open":359.1199951171875,"high":360.32000732421875,"low":358.85009765625,"close":360.19000244140625,"volume":287675.0,"vwap":358.91420774009833},{"time":"2026-09-15T11:25:00-04:00","bar_open":"2026-09-15T11:20:00-04:00","open":360.2349853515625,"high":361.8800048828125,"low":359.9599914550781,"close":361.5899963378906,"volume":608035.0,"vwap":359.0310489690485},{"time":"2026-09-15T11:30:00-04:00","bar_open":"2026-09-15T11:25:00-04:00","open":361.57000732421875,"high":361.94000244140625,"low":360.19000244140625,"close":360.8399963378906,"volume":696172.0,"vwap":359.14195680714687},{"time":"2026-09-15T11:35:00-04:00","bar_open":"2026-09-15T11:30:00-04:00","open":360.92999267578125,"high":361.1400146484375,"low":359.6238098144531,"close":360.8399963378906,"volume":327235.0,"vwap":359.17805765006005},{"time":"2026-09-15T11:40:00-04:00","bar_open":"2026-09-15T11:35:00-04:00","open":360.8900146484375,"high":360.95001220703125,"low":359.7099914550781,"close":359.9400939941406,"volume":229807.0,"vwap":359.19632956401966},{"time":"2026-09-15T11:45:00-04:00","bar_open":"2026-09-15T11:40:00-04:00","open":359.9700012207031,"high":361.0,"low":359.9100036621094,"close":360.739990234375,"volume":215228.0,"vwap":359.2186231365647},{"time":"2026-09-15T11:50:00-04:00","bar_open":"2026-09-15T11:45:00-04:00","open":360.6000061035156,"high":361.0,"low":360.2596130371094,"close":360.84869384765625,"volume":195132.0,"vwap":359.24045732431335},{"time":"2026-09-15T11:55:00-04:00","bar_open":"2026-09-15T11:50:00-04:00","open":360.9150085449219,"high":362.3900146484375,"low":360.7900085449219,"close":362.1000061035156,"volume":586665.0,"vwap":359.34717814701065},{"time":"2026-09-15T12:00:00-04:00","bar_open":"2026-09-15T11:55:00-04:00","open":362.1000061035156,"high":362.1499938964844,"low":360.2300109863281,"close":361.114990234375,"volume":383834.0,"vwap":359.39619644502125},{"time":"2026-09-15T12:05:00-04:00","bar_open":"2026-09-15T12:00:00-04:00","open":361.1650085449219,"high":361.8500061035156,"low":360.6200866699219,"close":361.5350036621094,"volume":336414.0,"vwap":359.4409609931738},{"time":"2026-09-15T12:10:00-04:00","bar_open":"2026-09-15T12:05:00-04:00","open":361.5539855957031,"high":361.8299865722656,"low":361.1400146484375,"close":361.70599365234375,"volume":176534.0,"vwap":359.46631126370016},{"time":"2026-09-15T12:15:00-04:00","bar_open":"2026-09-15T12:10:00-04:00","open":361.760009765625,"high":361.9800109863281,"low":360.75,"close":360.8160095214844,"volume":204005.0,"vwap":359.48972137199036},{"time":"2026-09-15T12:20:00-04:00","bar_open":"2026-09-15T12:15:00-04:00","open":360.82000732421875,"high":361.1000061035156,"low":360.5299987792969,"close":360.8599853515625,"volume":199571.0,"vwap":359.5073758625165},{"time":"2026-09-15T12:25:00-04:00","bar_open":"2026-09-15T12:20:00-04:00","open":360.8299865722656,"high":361.0,"low":359.8900146484375,"close":360.76971435546875,"volume":255490.0,"vwap":359.5247199577974},{"time":"2026-09-15T12:30:00-04:00","bar_open":"2026-09-15T12:25:00-04:00","open":360.760009765625,"high":361.25,"low":360.7101135253906,"close":361.1794128417969,"volume":171234.0,"vwap":359.54144800588335},{"time":"2026-09-15T12:35:00-04:00","bar_open":"2026-09-15T12:30:00-04:00","open":361.17999267578125,"high":361.6549987792969,"low":360.66009521484375,"close":361.4700012207031,"volume":907830.0,"vwap":359.63618012698186},{"time":"2026-09-15T12:40:00-04:00","bar_open":"2026-09-15T12:35:00-04:00","open":361.5,"high":361.7200012207031,"low":360.9779052734375,"close":361.2099914550781,"volume":199814.0,"vwap":359.65613677623264},{"time":"2026-09-15T12:45:00-04:00","bar_open":"2026-09-15T12:40:00-04:00","open":361.2850036621094,"high":361.2850036621094,"low":359.80010986328125,"close":360.1199951171875,"volume":170487.0,"vwap":359.6636778145342},{"time":"2026-09-15T12:50:00-04:00","bar_open":"2026-09-15T12:45:00-04:00","open":360.05999755859375,"high":360.1698913574219,"low":358.8800048828125,"close":359.44500732421875,"volume":350221.0,"vwap":359.6603116224663},{"time":"2026-09-15T12:55:00-04:00","bar_open":"2026-09-15T12:50:00-04:00","open":359.4100036621094,"high":361.4798889160156,"low":359.25,"close":361.010009765625,"volume":370313.0,"vwap":359.679687812108},{"time":"2026-09-15T13:00:00-04:00","bar_open":"2026-09-15T12:55:00-04:00","open":361.05999755859375,"high":361.5400085449219,"low":359.9599914550781,"close":360.4949951171875,"volume":327137.0,"vwap":359.69769179028845},{"time":"2026-09-15T13:05:00-04:00","bar_open":"2026-09-15T13:00:00-04:00","open":360.54998779296875,"high":360.54998779296875,"low":358.7900085449219,"close":358.8399963378906,"volume":348913.0,"vwap":359.69187358197576},{"time":"2026-09-15T13:10:00-04:00","bar_open":"2026-09-15T13:05:00-04:00","open":358.8212890625,"high":359.83160400390625,"low":358.6499938964844,"close":359.2950134277344,"volume":306911.0,"vwap":359.6847130575195},{"time":"2026-09-15T13:15:00-04:00","bar_open":"2026-09-15T13:10:00-04:00","open":359.20001220703125,"high":359.6337890625,"low":359.1000061035156,"close":359.45001220703125,"volume":116793.0,"vwap":359.6828988068586},{"time":"2026-09-15T13:20:00-04:00","bar_open":"2026-09-15T13:15:00-04:00","open":359.45001220703125,"high":360.239990234375,"low":359.2200012207031,"close":360.239990234375,"volume":196317.0,"vwap":359.68515711615765},{"time":"2026-09-15T13:25:00-04:00","bar_open":"2026-09-15T13:20:00-04:00","open":360.2149963378906,"high":360.29998779296875,"low":359.2500915527344,"close":359.3500061035156,"volume":166819.0,"vwap":359.68470329017356},{"time":"2026-09-15T13:30:00-04:00","bar_open":"2026-09-15T13:25:00-04:00","open":359.3500061035156,"high":359.47491455078125,"low":358.8500061035156,"close":359.125,"volume":160798.0,"vwap":359.6802249614545},{"time":"2026-09-15T13:35:00-04:00","bar_open":"2026-09-15T13:30:00-04:00","open":359.05010986328125,"high":359.3800048828125,"low":356.1199951171875,"close":356.9400939941406,"volume":660779.0,"vwap":359.60702295258653},{"time":"2026-09-15T13:40:00-04:00","bar_open":"2026-09-15T13:35:00-04:00","open":357.2066955566406,"high":357.2066955566406,"low":355.1600036621094,"close":356.8299865722656,"volume":805199.0,"vwap":359.48202555557333},{"time":"2026-09-15T13:45:00-04:00","bar_open":"2026-09-15T13:40:00-04:00","open":356.8299865722656,"high":357.75,"low":356.760009765625,"close":357.3599853515625,"volume":364464.0,"vwap":359.4440368762018},{"time":"2026-09-15T13:50:00-04:00","bar_open":"2026-09-15T13:45:00-04:00","open":357.3399963378906,"high":357.70001220703125,"low":356.6199951171875,"close":357.0799865722656,"volume":191063.0,"vwap":359.42323286731914},{"time":"2026-09-15T13:55:00-04:00","bar_open":"2026-09-15T13:50:00-04:00","open":357.0799865722656,"high":357.1499938964844,"low":356.5299987792969,"close":356.9375,"volume":210286.0,"vwap":359.3982052633342},{"time":"2026-09-15T14:00:00-04:00","bar_open":"2026-09-15T13:55:00-04:00","open":356.92999267578125,"high":357.6300048828125,"low":356.27911376953125,"close":357.375,"volume":246921.0,"vwap":359.371968240621},{"time":"2026-09-15T14:05:00-04:00","bar_open":"2026-09-15T14:00:00-04:00","open":357.3800048828125,"high":358.1099853515625,"low":356.79998779296875,"close":357.4200134277344,"volume":297207.0,"vwap":359.34588479531254},{"time":"2026-09-15T14:10:00-04:00","bar_open":"2026-09-15T14:05:00-04:00","open":357.45001220703125,"high":357.7200012207031,"low":357.1400146484375,"close":357.4700012207031,"volume":131074.0,"vwap":359.334604410453},{"time":"2026-09-15T14:15:00-04:00","bar_open":"2026-09-15T14:10:00-04:00","open":357.4849853515625,"high":358.0899963378906,"low":357.4100036621094,"close":357.4100036621094,"volume":206569.0,"vwap":359.3188856027575},{"time":"2026-09-15T14:20:00-04:00","bar_open":"2026-09-15T14:15:00-04:00","open":357.4200134277344,"high":358.17999267578125,"low":357.1700134277344,"close":357.5199890136719,"volume":244268.0,"vwap":359.3005251771917},{"time":"2026-09-15T14:25:00-04:00","bar_open":"2026-09-15T14:20:00-04:00","open":357.44000244140625,"high":357.65631103515625,"low":357.20001220703125,"close":357.6300048828125,"volume":96124.0,"vwap":359.29286591833363},{"time":"2026-09-15T14:30:00-04:00","bar_open":"2026-09-15T14:25:00-04:00","open":357.6199951171875,"high":358.0799865722656,"low":357.3999938964844,"close":358.0000915527344,"volume":127166.0,"vwap":359.28468157782675},{"time":"2026-09-15T14:35:00-04:00","bar_open":"2026-09-15T14:30:00-04:00","open":358.0400085449219,"high":358.0799865722656,"low":357.30999755859375,"close":357.5199890136719,"volume":149384.0,"vwap":359.2739452482237},{"time":"2026-09-15T14:40:00-04:00","bar_open":"2026-09-15T14:35:00-04:00","open":357.5400085449219,"high":357.70001220703125,"low":356.91668701171875,"close":357.2149963378906,"volume":132295.0,"vwap":359.262491464093},{"time":"2026-09-15T14:45:00-04:00","bar_open":"2026-09-15T14:40:00-04:00","open":357.2076110839844,"high":357.3999938964844,"low":356.8800048828125,"close":357.1600036621094,"volume":133452.0,"vwap":359.25031871535043},{"time":"2026-09-15T14:50:00-04:00","bar_open":"2026-09-15T14:45:00-04:00","open":357.0849914550781,"high":357.239990234375,"low":356.5444030761719,"close":356.5849914550781,"volume":120849.0,"vwap":359.23756613935814},{"time":"2026-09-15T14:55:00-04:00","bar_open":"2026-09-15T14:50:00-04:00","open":356.5899963378906,"high":356.989990234375,"low":356.3800048828125,"close":356.8500061035156,"volume":159534.0,"vwap":359.220594016573},{"time":"2026-09-15T15:00:00-04:00","bar_open":"2026-09-15T14:55:00-04:00","open":356.8500061035156,"high":357.5899963378906,"low":356.7300109863281,"close":357.2655029296875,"volume":168939.0,"vwap":359.2061230408943},{"time":"2026-09-15T15:05:00-04:00","bar_open":"2026-09-15T15:00:00-04:00","open":357.25,"high":357.3800048828125,"low":356.3680114746094,"close":356.989990234375,"volume":151096.0,"vwap":359.1915607851675},{"time":"2026-09-15T15:10:00-04:00","bar_open":"2026-09-15T15:05:00-04:00","open":356.9849853515625,"high":357.1499938964844,"low":356.79998779296875,"close":357.0450134277344,"volume":151326.0,"vwap":359.1777018403226},{"time":"2026-09-15T15:15:00-04:00","bar_open":"2026-09-15T15:10:00-04:00","open":357.07000732421875,"high":357.1600036621094,"low":355.8999938964844,"close":356.2850036621094,"volume":195976.0,"vwap":359.1555475387827},{"time":"2026-09-15T15:20:00-04:00","bar_open":"2026-09-15T15:15:00-04:00","open":356.2535095214844,"high":356.6549987792969,"low":356.05999755859375,"close":356.4750061035156,"volume":187340.0,"vwap":359.1343053347822},{"time":"2026-09-15T15:25:00-04:00","bar_open":"2026-09-15T15:20:00-04:00","open":356.42999267578125,"high":356.5899963378906,"low":355.60009765625,"close":355.875,"volume":206434.0,"vwap":359.1081191245498},{"time":"2026-09-15T15:30:00-04:00","bar_open":"2026-09-15T15:25:00-04:00","open":355.875,"high":356.2970886230469,"low":355.8699951171875,"close":355.9599914550781,"volume":173998.0,"vwap":359.0865326929374},{"time":"2026-09-15T15:35:00-04:00","bar_open":"2026-09-15T15:30:00-04:00","open":355.92999267578125,"high":356.0173034667969,"low":355.39599609375,"close":355.5299987792969,"volume":246289.0,"vwap":359.0525983784169},{"time":"2026-09-15T15:40:00-04:00","bar_open":"2026-09-15T15:35:00-04:00","open":355.5050048828125,"high":355.6099853515625,"low":354.1600036621094,"close":354.4700012207031,"volume":500356.0,"vwap":358.96796974089546},{"time":"2026-09-15T15:45:00-04:00","bar_open":"2026-09-15T15:40:00-04:00","open":354.4599914550781,"high":355.29998779296875,"low":354.04998779296875,"close":355.1465148925781,"volume":487383.0,"vwap":358.89027965143055},{"time":"2026-09-15T15:50:00-04:00","bar_open":"2026-09-15T15:45:00-04:00","open":355.1300048828125,"high":355.3800048828125,"low":354.7300109863281,"close":355.32000732421875,"volume":288175.0,"vwap":358.8491200766971}],"fills":[{"time":"2026-09-15T09:35:00-04:00","action":"X","shares":69,"quantity":-69,"price":355.37221279907226,"reference_price":355.54998779296875,"shares_before":0,"shares_after":-69,"assumed_cost":12.26647457885742,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:35:00-04:00","pnl":null},{"time":"2026-09-15T09:40:00-04:00","action":"X","shares":22,"quantity":-22,"price":361.4591946411133,"reference_price":361.6400146484375,"shares_before":-69,"shares_after":-91,"assumed_cost":3.978040161132813,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:40:00-04:00","pnl":null},{"time":"2026-09-15T09:45:00-04:00","action":"C","shares":91,"quantity":91,"price":361.2605265655517,"reference_price":361.0799865722656,"shares_before":-91,"shares_after":0,"assumed_cost":16.429139389038085,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:45:00-04:00","pnl":null},{"time":"2026-09-15T09:45:00-04:00","action":"B","shares":23,"quantity":23,"price":361.2605265655517,"reference_price":361.0799865722656,"shares_before":0,"shares_after":23,"assumed_cost":4.152419845581055,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:45:00-04:00","pnl":null},{"time":"2026-09-15T09:50:00-04:00","action":"S","shares":23,"quantity":-23,"price":361.224906326294,"reference_price":361.4056091308594,"shares_before":23,"shares_after":0,"assumed_cost":4.156164505004883,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:50:00-04:00","pnl":null},{"time":"2026-09-15T09:55:00-04:00","action":"B","shares":26,"quantity":26,"price":360.8370361175537,"reference_price":360.6567077636719,"shares_before":0,"shares_after":26,"assumed_cost":4.688537200927734,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:55:00-04:00","pnl":null},{"time":"2026-09-15T10:00:00-04:00","action":"S","shares":1,"quantity":-1,"price":358.92045610046387,"reference_price":359.1000061035156,"shares_before":26,"shares_after":25,"assumed_cost":0.1795500030517578,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:00:00-04:00","pnl":null},{"time":"2026-09-15T10:10:00-04:00","action":"S","shares":25,"quantity":-25,"price":358.1658287200928,"reference_price":358.3450012207031,"shares_before":25,"shares_after":0,"assumed_cost":4.479312515258789,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:10:00-04:00","pnl":null},{"time":"2026-09-15T10:10:00-04:00","action":"X","shares":4,"quantity":-4,"price":358.1658287200928,"reference_price":358.3450012207031,"shares_before":0,"shares_after":-4,"assumed_cost":0.7166900024414062,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:10:00-04:00","pnl":null},{"time":"2026-09-15T10:15:00-04:00","action":"X","shares":58,"quantity":-58,"price":358.8704627990723,"reference_price":359.04998779296875,"shares_before":-4,"shares_after":-62,"assumed_cost":10.412449645996094,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:15:00-04:00","pnl":null},{"time":"2026-09-15T10:25:00-04:00","action":"C","shares":48,"quantity":48,"price":359.1094576721191,"reference_price":358.92999267578125,"shares_before":-62,"shares_after":-14,"assumed_cost":8.61431982421875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:25:00-04:00","pnl":null},{"time":"2026-09-15T10:30:00-04:00","action":"C","shares":14,"quantity":14,"price":359.429625,"reference_price":359.25,"shares_before":-14,"shares_after":0,"assumed_cost":2.51475,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:30:00-04:00","pnl":null},{"time":"2026-09-15T10:35:00-04:00","action":"B","shares":30,"quantity":30,"price":359.0544375,"reference_price":358.875,"shares_before":0,"shares_after":30,"assumed_cost":5.383125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:35:00-04:00","pnl":null},{"time":"2026-09-15T10:40:00-04:00","action":"S","shares":1,"quantity":-1,"price":358.1908101196289,"reference_price":358.3699951171875,"shares_before":30,"shares_after":29,"assumed_cost":0.1791849975585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:40:00-04:00","pnl":null},{"time":"2026-09-15T10:45:00-04:00","action":"S","shares":1,"quantity":-1,"price":357.6468927612305,"reference_price":357.8258056640625,"shares_before":29,"shares_after":28,"assumed_cost":0.1789129028320312,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:45:00-04:00","pnl":null},{"time":"2026-09-15T10:55:00-04:00","action":"S","shares":28,"quantity":-28,"price":355.9339435119629,"reference_price":356.11199951171875,"shares_before":28,"shares_after":0,"assumed_cost":4.985567993164063,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:55:00-04:00","pnl":null},{"time":"2026-09-15T11:00:00-04:00","action":"X","shares":27,"quantity":-27,"price":357.38213262939456,"reference_price":357.5609130859375,"shares_before":0,"shares_after":-27,"assumed_cost":4.827072326660156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:00:00-04:00","pnl":null},{"time":"2026-09-15T11:05:00-04:00","action":"C","shares":1,"quantity":1,"price":358.24904232788083,"reference_price":358.07000732421875,"shares_before":-27,"shares_after":-26,"assumed_cost":0.1790350036621093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:05:00-04:00","pnl":null},{"time":"2026-09-15T11:10:00-04:00","action":"X","shares":44,"quantity":-44,"price":359.4551922607422,"reference_price":359.635009765625,"shares_before":-26,"shares_after":-70,"assumed_cost":7.91197021484375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:10:00-04:00","pnl":null},{"time":"2026-09-15T11:15:00-04:00","action":"C","shares":59,"quantity":59,"price":359.29955511474606,"reference_price":359.1199951171875,"shares_before":-70,"shares_after":-11,"assumed_cost":10.594039855957032,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:15:00-04:00","pnl":null},{"time":"2026-09-15T11:20:00-04:00","action":"C","shares":1,"quantity":1,"price":360.4151028442383,"reference_price":360.2349853515625,"shares_before":-11,"shares_after":-10,"assumed_cost":0.1801174926757812,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:20:00-04:00","pnl":null},{"time":"2026-09-15T11:30:00-04:00","action":"C","shares":1,"quantity":1,"price":361.1104576721192,"reference_price":360.9299926757813,"shares_before":-10,"shares_after":-9,"assumed_cost":0.1804649963378906,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:30:00-04:00","pnl":null},{"time":"2026-09-15T11:35:00-04:00","action":"C","shares":1,"quantity":1,"price":361.0704596557617,"reference_price":360.8900146484375,"shares_before":-9,"shares_after":-8,"assumed_cost":0.1804450073242187,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:35:00-04:00","pnl":null},{"time":"2026-09-15T11:40:00-04:00","action":"C","shares":8,"quantity":8,"price":360.14998622131344,"reference_price":359.9700012207031,"shares_before":-8,"shares_after":0,"assumed_cost":1.4398800048828124,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:40:00-04:00","pnl":null},{"time":"2026-09-15T11:40:00-04:00","action":"B","shares":17,"quantity":17,"price":360.14998622131344,"reference_price":359.9700012207031,"shares_before":0,"shares_after":17,"assumed_cost":3.0597450103759765,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:40:00-04:00","pnl":null},{"time":"2026-09-15T11:45:00-04:00","action":"S","shares":17,"quantity":-17,"price":360.4197061004639,"reference_price":360.6000061035156,"shares_before":17,"shares_after":0,"assumed_cost":3.0651000518798828,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:45:00-04:00","pnl":null},{"time":"2026-09-15T11:50:00-04:00","action":"B","shares":36,"quantity":36,"price":361.09546604919433,"reference_price":360.9150085449219,"shares_before":0,"shares_after":36,"assumed_cost":6.496470153808594,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:50:00-04:00","pnl":null},{"time":"2026-09-15T11:55:00-04:00","action":"S","shares":5,"quantity":-5,"price":361.9189561004639,"reference_price":362.1000061035156,"shares_before":36,"shares_after":31,"assumed_cost":0.905250015258789,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:55:00-04:00","pnl":null},{"time":"2026-09-15T12:00:00-04:00","action":"S","shares":15,"quantity":-15,"price":360.9844260406495,"reference_price":361.1650085449219,"shares_before":31,"shares_after":16,"assumed_cost":2.7087375640869142,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:00:00-04:00","pnl":null},{"time":"2026-09-15T12:05:00-04:00","action":"S","shares":1,"quantity":-1,"price":361.37320860290527,"reference_price":361.5539855957031,"shares_before":16,"shares_after":15,"assumed_cost":0.1807769927978515,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:05:00-04:00","pnl":null},{"time":"2026-09-15T12:10:00-04:00","action":"B","shares":6,"quantity":6,"price":361.9408897705078,"reference_price":361.760009765625,"shares_before":15,"shares_after":21,"assumed_cost":1.085280029296875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:10:00-04:00","pnl":null},{"time":"2026-09-15T12:15:00-04:00","action":"S","shares":21,"quantity":-21,"price":360.6395973205567,"reference_price":360.8200073242188,"shares_before":21,"shares_after":0,"assumed_cost":3.788610076904297,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:15:00-04:00","pnl":null},{"time":"2026-09-15T12:30:00-04:00","action":"B","shares":18,"quantity":18,"price":361.3605826721191,"reference_price":361.1799926757813,"shares_before":0,"shares_after":18,"assumed_cost":3.250619934082031,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:30:00-04:00","pnl":null},{"time":"2026-09-15T12:35:00-04:00","action":"S","shares":1,"quantity":-1,"price":361.31925,"reference_price":361.5,"shares_before":18,"shares_after":17,"assumed_cost":0.18075,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:35:00-04:00","pnl":null},{"time":"2026-09-15T12:40:00-04:00","action":"S","shares":1,"quantity":-1,"price":361.1043611602784,"reference_price":361.2850036621094,"shares_before":17,"shares_after":16,"assumed_cost":0.1806425018310546,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:40:00-04:00","pnl":null},{"time":"2026-09-15T12:50:00-04:00","action":"S","shares":16,"quantity":-16,"price":359.2302986602783,"reference_price":359.4100036621094,"shares_before":16,"shares_after":0,"assumed_cost":2.875280029296875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:50:00-04:00","pnl":null},{"time":"2026-09-15T12:55:00-04:00","action":"X","shares":76,"quantity":-76,"price":360.8794675598145,"reference_price":361.05999755859375,"shares_before":0,"shares_after":-76,"assumed_cost":13.720279907226562,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:55:00-04:00","pnl":null},{"time":"2026-09-15T13:00:00-04:00","action":"C","shares":4,"quantity":4,"price":360.7302627868653,"reference_price":360.5499877929688,"shares_before":-76,"shares_after":-72,"assumed_cost":0.7210999755859375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:00:00-04:00","pnl":null},{"time":"2026-09-15T13:05:00-04:00","action":"C","shares":1,"quantity":1,"price":359.00069970703123,"reference_price":358.8212890625,"shares_before":-72,"shares_after":-71,"assumed_cost":0.17941064453125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:05:00-04:00","pnl":null},{"time":"2026-09-15T13:15:00-04:00","action":"C","shares":71,"quantity":71,"price":359.6297372131347,"reference_price":359.45001220703125,"shares_before":-71,"shares_after":0,"assumed_cost":12.76047543334961,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:15:00-04:00","pnl":null},{"time":"2026-09-15T13:20:00-04:00","action":"X","shares":30,"quantity":-30,"price":360.0348888397217,"reference_price":360.2149963378906,"shares_before":0,"shares_after":-30,"assumed_cost":5.403224945068359,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:20:00-04:00","pnl":null},{"time":"2026-09-15T13:25:00-04:00","action":"C","shares":30,"quantity":30,"price":359.5296811065673,"reference_price":359.3500061035156,"shares_before":-30,"shares_after":0,"assumed_cost":5.390250091552734,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:25:00-04:00","pnl":null},{"time":"2026-09-15T13:25:00-04:00","action":"B","shares":22,"quantity":22,"price":359.5296811065673,"reference_price":359.3500061035156,"shares_before":0,"shares_after":22,"assumed_cost":3.952850067138672,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:25:00-04:00","pnl":null},{"time":"2026-09-15T13:30:00-04:00","action":"S","shares":1,"quantity":-1,"price":358.87058480834963,"reference_price":359.05010986328125,"shares_before":22,"shares_after":21,"assumed_cost":0.1795250549316406,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:30:00-04:00","pnl":null},{"time":"2026-09-15T13:35:00-04:00","action":"S","shares":21,"quantity":-21,"price":357.02809220886235,"reference_price":357.2066955566406,"shares_before":21,"shares_after":0,"assumed_cost":3.750670303344727,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:35:00-04:00","pnl":null},{"time":"2026-09-15T13:35:00-04:00","action":"X","shares":80,"quantity":-80,"price":357.02809220886235,"reference_price":357.2066955566406,"shares_before":0,"shares_after":-80,"assumed_cost":14.288267822265626,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:35:00-04:00","pnl":null},{"time":"2026-09-15T13:40:00-04:00","action":"C","shares":80,"quantity":80,"price":357.00840156555176,"reference_price":356.8299865722656,"shares_before":-80,"shares_after":0,"assumed_cost":14.273199462890624,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:40:00-04:00","pnl":null},{"time":"2026-09-15T13:40:00-04:00","action":"B","shares":32,"quantity":32,"price":357.00840156555176,"reference_price":356.8299865722656,"shares_before":0,"shares_after":32,"assumed_cost":5.70927978515625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:40:00-04:00","pnl":null},{"time":"2026-09-15T13:45:00-04:00","action":"B","shares":1,"quantity":1,"price":357.51866633605954,"reference_price":357.3399963378906,"shares_before":32,"shares_after":33,"assumed_cost":0.1786699981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:45:00-04:00","pnl":null},{"time":"2026-09-15T13:50:00-04:00","action":"S","shares":6,"quantity":-6,"price":356.9014465789795,"reference_price":357.0799865722656,"shares_before":33,"shares_after":27,"assumed_cost":1.071239959716797,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:50:00-04:00","pnl":null},{"time":"2026-09-15T13:55:00-04:00","action":"S","shares":27,"quantity":-27,"price":356.75152767944337,"reference_price":356.92999267578125,"shares_before":27,"shares_after":0,"assumed_cost":4.818554901123047,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:55:00-04:00","pnl":null},{"time":"2026-09-15T13:55:00-04:00","action":"X","shares":2,"quantity":-2,"price":356.75152767944337,"reference_price":356.92999267578125,"shares_before":0,"shares_after":-2,"assumed_cost":0.3569299926757812,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:55:00-04:00","pnl":null},{"time":"2026-09-15T14:00:00-04:00","action":"C","shares":2,"quantity":2,"price":357.5586948852539,"reference_price":357.3800048828125,"shares_before":-2,"shares_after":0,"assumed_cost":0.3573800048828125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:00:00-04:00","pnl":null},{"time":"2026-09-15T14:00:00-04:00","action":"B","shares":2,"quantity":2,"price":357.5586948852539,"reference_price":357.3800048828125,"shares_before":0,"shares_after":2,"assumed_cost":0.3573800048828125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:00:00-04:00","pnl":null},{"time":"2026-09-15T14:05:00-04:00","action":"S","shares":1,"quantity":-1,"price":357.27128720092776,"reference_price":357.45001220703125,"shares_before":2,"shares_after":1,"assumed_cost":0.1787250061035156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:05:00-04:00","pnl":null},{"time":"2026-09-15T14:20:00-04:00","action":"B","shares":12,"quantity":12,"price":357.61872244262696,"reference_price":357.44000244140625,"shares_before":1,"shares_after":13,"assumed_cost":2.144640014648437,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:20:00-04:00","pnl":null},{"time":"2026-09-15T14:25:00-04:00","action":"S","shares":1,"quantity":-1,"price":357.4411851196289,"reference_price":357.6199951171875,"shares_before":13,"shares_after":12,"assumed_cost":0.1788099975585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:25:00-04:00","pnl":null},{"time":"2026-09-15T14:30:00-04:00","action":"S","shares":12,"quantity":-12,"price":357.86098854064943,"reference_price":358.0400085449219,"shares_before":12,"shares_after":0,"assumed_cost":2.148240051269531,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:30:00-04:00","pnl":null},{"time":"2026-09-15T14:50:00-04:00","action":"X","shares":7,"quantity":-7,"price":356.4117013397217,"reference_price":356.5899963378906,"shares_before":0,"shares_after":-7,"assumed_cost":1.2480649871826173,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:50:00-04:00","pnl":null},{"time":"2026-09-15T15:00:00-04:00","action":"C","shares":1,"quantity":1,"price":357.42862499999995,"reference_price":357.25,"shares_before":-7,"shares_after":-6,"assumed_cost":0.178625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:00:00-04:00","pnl":null},{"time":"2026-09-15T15:05:00-04:00","action":"X","shares":46,"quantity":-46,"price":356.8064928588867,"reference_price":356.9849853515625,"shares_before":-6,"shares_after":-52,"assumed_cost":8.210654663085938,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:05:00-04:00","pnl":null},{"time":"2026-09-15T15:10:00-04:00","action":"C","shares":38,"quantity":38,"price":357.24854232788084,"reference_price":357.07000732421875,"shares_before":-52,"shares_after":-14,"assumed_cost":6.784330139160156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:10:00-04:00","pnl":null},{"time":"2026-09-15T15:20:00-04:00","action":"C","shares":14,"quantity":14,"price":356.60820767211914,"reference_price":356.42999267578125,"shares_before":-14,"shares_after":0,"assumed_cost":2.495009948730469,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:20:00-04:00","pnl":null},{"time":"2026-09-15T15:40:00-04:00","action":"X","shares":1,"quantity":-1,"price":354.2827614593506,"reference_price":354.4599914550781,"shares_before":0,"shares_after":-1,"assumed_cost":0.177229995727539,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:40:00-04:00","pnl":null}],"marks":[{"time":"2026-09-15T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:40:00-04:00","shares":-69,"pnl":-429.7177380065914},{"time":"2026-09-15T09:45:00-04:00","shares":-91,"pnl":-382.763923919676},{"time":"2026-09-15T09:50:00-04:00","shares":23,"pnl":-396.9253476562481},{"time":"2026-09-15T09:55:00-04:00","shares":0,"pnl":-402.7422177276585},{"time":"2026-09-15T10:00:00-04:00","shares":26,"pnl":-446.6053154754609},{"time":"2026-09-15T10:05:00-04:00","shares":25,"pnl":-432.9943686523402},{"time":"2026-09-15T10:10:00-04:00","shares":25,"pnl":-466.9596701660121},{"time":"2026-09-15T10:15:00-04:00","shares":-4,"pnl":-475.0556970977732},{"time":"2026-09-15T10:20:00-04:00","shares":-62,"pnl":-509.8792795562695},{"time":"2026-09-15T10:25:00-04:00","shares":-62,"pnl":-477.94837135314447},{"time":"2026-09-15T10:30:00-04:00","shares":-14,"pnl":-491.6029133453303},{"time":"2026-09-15T10:35:00-04:00","shares":0,"pnl":-493.55754371642433},{"time":"2026-09-15T10:40:00-04:00","shares":30,"pnl":-512.5902658843934},{"time":"2026-09-15T10:45:00-04:00","shares":29,"pnl":-531.4374196319513},{"time":"2026-09-15T10:50:00-04:00","shares":28,"pnl":-549.1531367340012},{"time":"2026-09-15T10:55:00-04:00","shares":28,"pnl":-579.9533076324387},{"time":"2026-09-15T11:00:00-04:00","shares":0,"pnl":-583.2025475006012},{"time":"2026-09-15T11:05:00-04:00","shares":-27,"pnl":-602.1228815460108},{"time":"2026-09-15T11:10:00-04:00","shares":-26,"pnl":-642.6442627410797},{"time":"2026-09-15T11:15:00-04:00","shares":-70,"pnl":-618.3546948699877},{"time":"2026-09-15T11:20:00-04:00","shares":-11,"pnl":-636.8693279876607},{"time":"2026-09-15T11:25:00-04:00","shares":-10,"pnl":-651.0943673553365},{"time":"2026-09-15T11:30:00-04:00","shares":-10,"pnl":-643.5943673553365},{"time":"2026-09-15T11:35:00-04:00","shares":-9,"pnl":-643.864828689565},{"time":"2026-09-15T11:40:00-04:00","shares":-8,"pnl":-636.896073257436},{"time":"2026-09-15T11:45:00-04:00","shares":17,"pnl":-628.5451428527722},{"time":"2026-09-15T11:50:00-04:00","shares":0,"pnl":-633.9899731292608},{"time":"2026-09-15T11:55:00-04:00","shares":36,"pnl":-597.8265311736941},{"time":"2026-09-15T12:00:00-04:00","shares":31,"pnl":-629.2672731323128},{"time":"2026-09-15T12:05:00-04:00","shares":16,"pnl":-624.5055211944464},{"time":"2026-09-15T12:10:00-04:00","shares":15,"pnl":-622.1024664001352},{"time":"2026-09-15T12:15:00-04:00","shares":21,"pnl":-642.2015098571665},{"time":"2026-09-15T12:20:00-04:00","shares":0,"pnl":-645.9061660766483},{"time":"2026-09-15T12:25:00-04:00","shares":0,"pnl":-645.9061660766483},{"time":"2026-09-15T12:30:00-04:00","shares":0,"pnl":-645.9061660766483},{"time":"2026-09-15T12:35:00-04:00","shares":18,"pnl":-643.936632202136},{"time":"2026-09-15T12:40:00-04:00","shares":17,"pnl":-648.5075494384637},{"time":"2026-09-15T12:45:00-04:00","shares":16,"pnl":-666.0531211395137},{"time":"2026-09-15T12:50:00-04:00","shares":16,"pnl":-676.8529258270137},{"time":"2026-09-15T12:55:00-04:00","shares":0,"pnl":-680.2882644500605},{"time":"2026-09-15T13:00:00-04:00","shares":-76,"pnl":-651.0683588104112},{"time":"2026-09-15T13:05:00-04:00","shares":-72,"pnl":-532.8495173797455},{"time":"2026-09-15T13:10:00-04:00","shares":-71,"pnl":-565.3164341277916},{"time":"2026-09-15T13:15:00-04:00","shares":-71,"pnl":-576.3213474578697},{"time":"2026-09-15T13:20:00-04:00","shares":0,"pnl":-589.0818228912176},{"time":"2026-09-15T13:25:00-04:00","shares":-30,"pnl":-568.535340805036},{"time":"2026-09-15T13:30:00-04:00","shares":22,"pnl":-582.8285752410702},{"time":"2026-09-15T13:35:00-04:00","shares":21,"pnl":-628.966016555767},{"time":"2026-09-15T13:40:00-04:00","shares":-80,"pnl":-611.2696031188752},{"time":"2026-09-15T13:45:00-04:00","shares":32,"pnl":-614.2921214294238},{"time":"2026-09-15T13:50:00-04:00","shares":33,"pnl":-623.6907621307182},{"time":"2026-09-15T13:55:00-04:00","shares":27,"pnl":-628.6091395416079},{"time":"2026-09-15T14:00:00-04:00","shares":-2,"pnl":-634.8773368377506},{"time":"2026-09-15T14:05:00-04:00","shares":2,"pnl":-635.5220895232974},{"time":"2026-09-15T14:10:00-04:00","shares":1,"pnl":-635.6208279571352},{"time":"2026-09-15T14:15:00-04:00","shares":1,"pnl":-635.680825515729},{"time":"2026-09-15T14:20:00-04:00","shares":1,"pnl":-635.5708401641665},{"time":"2026-09-15T14:25:00-04:00","shares":13,"pnl":-635.3254350128},{"time":"2026-09-15T14:30:00-04:00","shares":12,"pnl":-631.0732147369208},{"time":"2026-09-15T14:35:00-04:00","shares":0,"pnl":-632.7424508819404},{"time":"2026-09-15T14:40:00-04:00","shares":0,"pnl":-632.7424508819404},{"time":"2026-09-15T14:45:00-04:00","shares":0,"pnl":-632.7424508819404},{"time":"2026-09-15T14:50:00-04:00","shares":0,"pnl":-632.7424508819404},{"time":"2026-09-15T14:55:00-04:00","shares":-7,"pnl":-635.8105842284981},{"time":"2026-09-15T15:00:00-04:00","shares":-7,"pnl":-638.7190620117012},{"time":"2026-09-15T15:05:00-04:00","shares":-6,"pnl":-637.2291079101387},{"time":"2026-09-15T15:10:00-04:00","shares":-52,"pnl":-648.5311932372861},{"time":"2026-09-15T15:15:00-04:00","shares":-14,"pnl":-645.6251547241009},{"time":"2026-09-15T15:20:00-04:00","shares":-14,"pnl":-648.2851889037884},{"time":"2026-09-15T15:25:00-04:00","shares":0,"pnl":-650.1500108642376},{"time":"2026-09-15T15:30:00-04:00","shares":0,"pnl":-650.1500108642376},{"time":"2026-09-15T15:35:00-04:00","shares":0,"pnl":-650.1500108642376},{"time":"2026-09-15T15:40:00-04:00","shares":0,"pnl":-650.1500108642376},{"time":"2026-09-15T15:45:00-04:00","shares":-1,"pnl":-651.0137642974652},{"time":"2026-09-15T15:50:00-04:00","shares":-1,"pnl":-651.1872567291058}],"summary":{"net_pnl":-651.1872567291058,"gross_pnl":-403.38931274412045,"cost":247.79794398498535,"fill_count":64,"ending_shares":-1},"source_hashes":{"fills_sha256":"7ccb9c0f9a3c7d891f6d428d7e9ffdb92a44a1f1a7f2de456bb703c57302d439","marks_sha256":"2f02c06d1331e469d29b1713493810a19d11dbb8e62b2e6cd4e1c635e146e590","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-15/levels_error_risk/NVDA.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"NVDA","date":"2026-09-15","variant":"levels_error_risk","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-15T15:50:00-04:00","partial":true,"starting_equity":47958.07,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-15T09:30:00-04:00","session_close":"2026-09-15T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-15T09:35:00-04:00","bar_open":"2026-09-15T09:30:00-04:00","open":213.08999633789062,"high":213.87950134277344,"low":212.5625,"close":213.37989807128906,"volume":9144789.0,"vwap":213.27396647135416},{"time":"2026-09-15T09:40:00-04:00","bar_open":"2026-09-15T09:35:00-04:00","open":213.3809051513672,"high":213.6199951171875,"low":212.6710968017578,"close":213.08949279785156,"volume":2119682.0,"vwap":213.2462851353456},{"time":"2026-09-15T09:45:00-04:00","bar_open":"2026-09-15T09:40:00-04:00","open":213.0850067138672,"high":213.60989379882812,"low":212.9199981689453,"close":213.30999755859375,"volume":1887876.0,"vwap":213.2511192507815},{"time":"2026-09-15T09:50:00-04:00","bar_open":"2026-09-15T09:45:00-04:00","open":213.31500244140625,"high":213.94000244140625,"low":213.2100067138672,"close":213.57000732421875,"volume":1844948.0,"vwap":213.29075828980672},{"time":"2026-09-15T09:55:00-04:00","bar_open":"2026-09-15T09:50:00-04:00","open":213.5500030517578,"high":213.7169952392578,"low":213.17999267578125,"close":213.25079345703125,"volume":1473221.0,"vwap":213.29897260370234},{"time":"2026-09-15T10:00:00-04:00","bar_open":"2026-09-15T09:55:00-04:00","open":213.27000427246094,"high":213.44000244140625,"low":212.99000549316406,"close":213.25,"volume":1423358.0,"vwap":213.29322127957045},{"time":"2026-09-15T10:05:00-04:00","bar_open":"2026-09-15T10:00:00-04:00","open":213.25999450683594,"high":213.30239868164062,"low":212.47999572753906,"close":212.81500244140625,"volume":2309803.0,"vwap":213.24435584885418},{"time":"2026-09-15T10:10:00-04:00","bar_open":"2026-09-15T10:05:00-04:00","open":212.79049682617188,"high":213.25,"low":212.79049682617188,"close":213.1199951171875,"volume":1008577.0,"vwap":213.23528111648247},{"time":"2026-09-15T10:15:00-04:00","bar_open":"2026-09-15T10:10:00-04:00","open":213.11000061035156,"high":213.1699981689453,"low":212.41050720214844,"close":212.63999938964844,"volume":1332275.0,"vwap":213.20602228878982},{"time":"2026-09-15T10:20:00-04:00","bar_open":"2026-09-15T10:15:00-04:00","open":212.63499450683594,"high":212.77999877929688,"low":212.49000549316406,"close":212.6300048828125,"volume":838493.0,"vwap":213.1854863152339},{"time":"2026-09-15T10:25:00-04:00","bar_open":"2026-09-15T10:20:00-04:00","open":212.6199951171875,"high":212.7899932861328,"low":211.9600067138672,"close":212.67999267578125,"volume":1497913.0,"vwap":213.1428129260201},{"time":"2026-09-15T10:30:00-04:00","bar_open":"2026-09-15T10:25:00-04:00","open":212.67999267578125,"high":212.89999389648438,"low":212.41000366210938,"close":212.74009704589844,"volume":850663.0,"vwap":213.1276239951484},{"time":"2026-09-15T10:35:00-04:00","bar_open":"2026-09-15T10:30:00-04:00","open":212.74000549316406,"high":212.97999572753906,"low":212.6199951171875,"close":212.6999969482422,"volume":957247.0,"vwap":213.1146774170981},{"time":"2026-09-15T10:40:00-04:00","bar_open":"2026-09-15T10:35:00-04:00","open":212.6999969482422,"high":213.05999755859375,"low":212.68499755859375,"close":212.80999755859375,"volume":876931.0,"vwap":213.10631036001504},{"time":"2026-09-15T10:45:00-04:00","bar_open":"2026-09-15T10:40:00-04:00","open":212.8199005126953,"high":212.91000366210938,"low":212.52049255371094,"close":212.7100067138672,"volume":886347.0,"vwap":213.09407347285568},{"time":"2026-09-15T10:50:00-04:00","bar_open":"2026-09-15T10:45:00-04:00","open":212.7100067138672,"high":212.9499969482422,"low":212.1699981689453,"close":212.24000549316406,"volume":824588.0,"vwap":213.07602682607197},{"time":"2026-09-15T10:55:00-04:00","bar_open":"2026-09-15T10:50:00-04:00","open":212.22000122070312,"high":212.3000030517578,"low":211.6300048828125,"close":212.1313934326172,"volume":1294661.0,"vwap":213.03132513648077},{"time":"2026-09-15T11:00:00-04:00","bar_open":"2026-09-15T10:55:00-04:00","open":212.13499450683594,"high":212.39999389648438,"low":212.0,"close":212.03500366210938,"volume":964503.0,"vwap":213.00421746821328},{"time":"2026-09-15T11:05:00-04:00","bar_open":"2026-09-15T11:00:00-04:00","open":212.03500366210938,"high":212.55999755859375,"low":212.02000427246094,"close":212.55999755859375,"volume":842636.0,"vwap":212.98797248764637},{"time":"2026-09-15T11:10:00-04:00","bar_open":"2026-09-15T11:05:00-04:00","open":212.56500244140625,"high":212.58999633789062,"low":212.14500427246094,"close":212.19410705566406,"volume":628318.0,"vwap":212.9750609411501},{"time":"2026-09-15T11:15:00-04:00","bar_open":"2026-09-15T11:10:00-04:00","open":212.17999267578125,"high":212.35000610351562,"low":212.1199951171875,"close":212.2299041748047,"volume":561634.0,"vwap":212.96265056792802},{"time":"2026-09-15T11:20:00-04:00","bar_open":"2026-09-15T11:15:00-04:00","open":212.22500610351562,"high":212.3699951171875,"low":212.11000061035156,"close":212.22000122070312,"volume":454675.0,"vwap":212.95290417780498},{"time":"2026-09-15T11:25:00-04:00","bar_open":"2026-09-15T11:20:00-04:00","open":212.2100067138672,"high":212.22999572753906,"low":211.97999572753906,"close":212.11000061035156,"volume":695286.0,"vwap":212.9359570107014},{"time":"2026-09-15T11:30:00-04:00","bar_open":"2026-09-15T11:25:00-04:00","open":212.10000610351562,"high":212.36000061035156,"low":212.10000610351562,"close":212.25999450683594,"volume":1388829.0,"vwap":212.90918774320548},{"time":"2026-09-15T11:35:00-04:00","bar_open":"2026-09-15T11:30:00-04:00","open":212.2510986328125,"high":212.2550048828125,"low":211.99049377441406,"close":212.1699981689453,"volume":522912.0,"vwap":212.8981858156306},{"time":"2026-09-15T11:40:00-04:00","bar_open":"2026-09-15T11:35:00-04:00","open":212.1699981689453,"high":212.39999389648438,"low":212.11000061035156,"close":212.2100067138672,"volume":477485.0,"vwap":212.88971657384656},{"time":"2026-09-15T11:45:00-04:00","bar_open":"2026-09-15T11:40:00-04:00","open":212.2100067138672,"high":212.47000122070312,"low":212.11000061035156,"close":212.27999877929688,"volume":594696.0,"vwap":212.88020440060916},{"time":"2026-09-15T11:50:00-04:00","bar_open":"2026-09-15T11:45:00-04:00","open":212.27999877929688,"high":212.38999938964844,"low":212.01199340820312,"close":212.10189819335938,"volume":576544.0,"vwap":212.86947686584},{"time":"2026-09-15T11:55:00-04:00","bar_open":"2026-09-15T11:50:00-04:00","open":212.09500122070312,"high":212.3699951171875,"low":211.92999267578125,"close":212.27499389648438,"volume":712081.0,"vwap":212.85709809972428},{"time":"2026-09-15T12:00:00-04:00","bar_open":"2026-09-15T11:55:00-04:00","open":212.27499389648438,"high":212.44000244140625,"low":212.16000366210938,"close":212.17990112304688,"volume":527496.0,"vwap":212.84912756858623},{"time":"2026-09-15T12:05:00-04:00","bar_open":"2026-09-15T12:00:00-04:00","open":212.19000244140625,"high":212.35000610351562,"low":212.16000366210938,"close":212.3000030517578,"volume":404694.0,"vwap":212.84325709847985},{"time":"2026-09-15T12:10:00-04:00","bar_open":"2026-09-15T12:05:00-04:00","open":212.2899932861328,"high":212.32000732421875,"low":211.97999572753906,"close":212.02999877929688,"volume":535992.0,"vwap":212.8335431133259},{"time":"2026-09-15T12:15:00-04:00","bar_open":"2026-09-15T12:10:00-04:00","open":212.0399932861328,"high":212.08999633789062,"low":211.83999633789062,"close":211.8419952392578,"volume":619690.0,"vwap":212.81982224810565},{"time":"2026-09-15T12:20:00-04:00","bar_open":"2026-09-15T12:15:00-04:00","open":211.8498992919922,"high":212.02000427246094,"low":211.80499267578125,"close":211.89010620117188,"volume":541936.0,"vwap":212.80791097473931},{"time":"2026-09-15T12:25:00-04:00","bar_open":"2026-09-15T12:20:00-04:00","open":211.89500427246094,"high":212.13999938964844,"low":211.86000061035156,"close":212.12010192871094,"volume":591119.0,"vwap":212.79715792394126},{"time":"2026-09-15T12:30:00-04:00","bar_open":"2026-09-15T12:25:00-04:00","open":212.125,"high":212.1699981689453,"low":211.91050720214844,"close":211.97000122070312,"volume":454782.0,"vwap":212.7888405067274},{"time":"2026-09-15T12:35:00-04:00","bar_open":"2026-09-15T12:30:00-04:00","open":211.9600067138672,"high":211.9600067138672,"low":211.75,"close":211.83999633789062,"volume":503441.0,"vwap":212.77789195526472},{"time":"2026-09-15T12:40:00-04:00","bar_open":"2026-09-15T12:35:00-04:00","open":211.83399963378906,"high":211.9600067138672,"low":211.7100067138672,"close":211.85000610351562,"volume":452387.0,"vwap":212.76816561897203},{"time":"2026-09-15T12:45:00-04:00","bar_open":"2026-09-15T12:40:00-04:00","open":211.8560028076172,"high":212.19500732421875,"low":211.7899932861328,"close":212.0800018310547,"volume":434746.0,"vwap":212.7607993614263},{"time":"2026-09-15T12:50:00-04:00","bar_open":"2026-09-15T12:45:00-04:00","open":212.0749969482422,"high":212.14999389648438,"low":211.87109375,"close":212.05419921875,"volume":401272.0,"vwap":212.75415907580302},{"time":"2026-09-15T12:55:00-04:00","bar_open":"2026-09-15T12:50:00-04:00","open":212.0500030517578,"high":212.16000366210938,"low":211.9600067138672,"close":212.08999633789062,"volume":453926.0,"vwap":212.74724436589636},{"time":"2026-09-15T13:00:00-04:00","bar_open":"2026-09-15T12:55:00-04:00","open":212.08999633789062,"high":212.13999938964844,"low":211.6999969482422,"close":211.77000427246094,"volume":518441.0,"vwap":212.73723357124123},{"time":"2026-09-15T13:05:00-04:00","bar_open":"2026-09-15T13:00:00-04:00","open":211.77499389648438,"high":211.8000030517578,"low":211.39999389648438,"close":211.46240234375,"volume":867968.0,"vwap":212.7150539035354},{"time":"2026-09-15T13:10:00-04:00","bar_open":"2026-09-15T13:05:00-04:00","open":211.4550018310547,"high":211.52999877929688,"low":211.27000427246094,"close":211.4499969482422,"volume":627276.0,"vwap":212.6976979649378},{"time":"2026-09-15T13:15:00-04:00","bar_open":"2026-09-15T13:10:00-04:00","open":211.4499969482422,"high":211.6199951171875,"low":211.4199981689453,"close":211.4250030517578,"volume":427931.0,"vwap":212.68676912269885},{"time":"2026-09-15T13:20:00-04:00","bar_open":"2026-09-15T13:15:00-04:00","open":211.4250030517578,"high":211.65499877929688,"low":211.3542022705078,"close":211.64999389648438,"volume":456396.0,"vwap":212.67594684674364},{"time":"2026-09-15T13:25:00-04:00","bar_open":"2026-09-15T13:20:00-04:00","open":211.66000366210938,"high":211.74029541015625,"low":211.24000549316406,"close":211.3000030517578,"volume":685161.0,"vwap":212.6582980663006},{"time":"2026-09-15T13:30:00-04:00","bar_open":"2026-09-15T13:25:00-04:00","open":211.2899932861328,"high":211.35989379882812,"low":211.16000366210938,"close":211.3300018310547,"volume":477154.0,"vwap":212.6449011149057},{"time":"2026-09-15T13:35:00-04:00","bar_open":"2026-09-15T13:30:00-04:00","open":211.33990478515625,"high":211.6199951171875,"low":211.3300018310547,"close":211.5449981689453,"volume":432935.0,"vwap":212.63485389593095},{"time":"2026-09-15T13:40:00-04:00","bar_open":"2026-09-15T13:35:00-04:00","open":211.5449981689453,"high":211.7899932861328,"low":211.5,"close":211.5699005126953,"volume":439809.0,"vwap":212.6258990807407},{"time":"2026-09-15T13:45:00-04:00","bar_open":"2026-09-15T13:40:00-04:00","open":211.55999755859375,"high":211.69650268554688,"low":211.5,"close":211.54989624023438,"volume":551715.0,"vwap":212.61447263278964},{"time":"2026-09-15T13:50:00-04:00","bar_open":"2026-09-15T13:45:00-04:00","open":211.55999755859375,"high":211.77000427246094,"low":211.4700927734375,"close":211.7104949951172,"volume":690738.0,"vwap":212.601435091777},{"time":"2026-09-15T13:55:00-04:00","bar_open":"2026-09-15T13:50:00-04:00","open":211.7100067138672,"high":211.97999572753906,"low":211.6699981689453,"close":211.83999633789062,"volume":463608.0,"vwap":212.59449747781022},{"time":"2026-09-15T14:00:00-04:00","bar_open":"2026-09-15T13:55:00-04:00","open":211.835205078125,"high":211.97999572753906,"low":211.77499389648438,"close":211.9597930908203,"volume":407581.0,"vwap":212.5890883148274},{"time":"2026-09-15T14:05:00-04:00","bar_open":"2026-09-15T14:00:00-04:00","open":211.9600067138672,"high":212.101806640625,"low":211.9199981689453,"close":212.0500030517578,"volume":718947.0,"vwap":212.58137515695034},{"time":"2026-09-15T14:10:00-04:00","bar_open":"2026-09-15T14:05:00-04:00","open":212.05499267578125,"high":212.11000061035156,"low":211.77000427246094,"close":211.88999938964844,"volume":474788.0,"vwap":212.5754972145393},{"time":"2026-09-15T14:15:00-04:00","bar_open":"2026-09-15T14:10:00-04:00","open":211.88999938964844,"high":211.9499969482422,"low":211.6699981689453,"close":211.6999969482422,"volume":495489.0,"vwap":212.56808851695786},{"time":"2026-09-15T14:20:00-04:00","bar_open":"2026-09-15T14:15:00-04:00","open":211.7100067138672,"high":211.8000030517578,"low":211.55999755859375,"close":211.71499633789062,"volume":435891.0,"vwap":212.56102500718836},{"time":"2026-09-15T14:25:00-04:00","bar_open":"2026-09-15T14:20:00-04:00","open":211.7100067138672,"high":211.97500610351562,"low":211.7050018310547,"close":211.9550018310547,"volume":341527.0,"vwap":212.5567410738779},{"time":"2026-09-15T14:30:00-04:00","bar_open":"2026-09-15T14:25:00-04:00","open":211.93499755859375,"high":212.1999969482422,"low":211.92999267578125,"close":212.10000610351562,"volume":539156.0,"vwap":212.55203196918995},{"time":"2026-09-15T14:35:00-04:00","bar_open":"2026-09-15T14:30:00-04:00","open":212.10000610351562,"high":212.19000244140625,"low":211.92999267578125,"close":212.02999877929688,"volume":504301.0,"vwap":212.54746770725748},{"time":"2026-09-15T14:40:00-04:00","bar_open":"2026-09-15T14:35:00-04:00","open":212.02499389648438,"high":212.1699981689453,"low":211.9949951171875,"close":212.16000366210938,"volume":400794.0,"vwap":212.54431748983743},{"time":"2026-09-15T14:45:00-04:00","bar_open":"2026-09-15T14:40:00-04:00","open":212.15499877929688,"high":212.3300018310547,"low":211.9499969482422,"close":212.0124053955078,"volume":587187.0,"vwap":212.53967000522894},{"time":"2026-09-15T14:50:00-04:00","bar_open":"2026-09-15T14:45:00-04:00","open":212.02000427246094,"high":212.07000732421875,"low":211.91000366210938,"close":211.9813995361328,"volume":433109.0,"vwap":212.53546354368532},{"time":"2026-09-15T14:55:00-04:00","bar_open":"2026-09-15T14:50:00-04:00","open":211.99000549316406,"high":212.1199951171875,"low":211.9499969482422,"close":212.0749969482422,"volume":492252.0,"vwap":212.53128470553727},{"time":"2026-09-15T15:00:00-04:00","bar_open":"2026-09-15T14:55:00-04:00","open":212.07330322265625,"high":212.14999389648438,"low":212.02000427246094,"close":212.110107421875,"volume":369066.0,"vwap":212.52848617234258},{"time":"2026-09-15T15:05:00-04:00","bar_open":"2026-09-15T15:00:00-04:00","open":212.10000610351562,"high":212.10000610351562,"low":211.91000366210938,"close":211.9597930908203,"volume":418593.0,"vwap":212.5246107550658},{"time":"2026-09-15T15:10:00-04:00","bar_open":"2026-09-15T15:05:00-04:00","open":211.9499969482422,"high":212.02000427246094,"low":211.8800048828125,"close":212.01499938964844,"volume":415374.0,"vwap":212.52069038450088},{"time":"2026-09-15T15:15:00-04:00","bar_open":"2026-09-15T15:10:00-04:00","open":212.01100158691406,"high":212.19000244140625,"low":211.99000549316406,"close":212.01499938964844,"volume":405022.0,"vwap":212.51756169194246},{"time":"2026-09-15T15:20:00-04:00","bar_open":"2026-09-15T15:15:00-04:00","open":212.02000427246094,"high":212.11000061035156,"low":211.88999938964844,"close":212.10000610351562,"volume":421082.0,"vwap":212.5141297275073},{"time":"2026-09-15T15:25:00-04:00","bar_open":"2026-09-15T15:20:00-04:00","open":212.10000610351562,"high":212.10499572753906,"low":212.0,"close":212.0500030517578,"volume":406127.0,"vwap":212.510989881492},{"time":"2026-09-15T15:30:00-04:00","bar_open":"2026-09-15T15:25:00-04:00","open":212.02000427246094,"high":212.14999389648438,"low":211.97999572753906,"close":212.1363983154297,"volume":483128.0,"vwap":212.5076072891288},{"time":"2026-09-15T15:35:00-04:00","bar_open":"2026-09-15T15:30:00-04:00","open":212.11000061035156,"high":212.1699981689453,"low":212.0,"close":212.02499389648438,"volume":543212.0,"vwap":212.5036557047881},{"time":"2026-09-15T15:40:00-04:00","bar_open":"2026-09-15T15:35:00-04:00","open":212.02499389648438,"high":212.02499389648438,"low":211.75,"close":211.82000732421875,"volume":565622.0,"vwap":212.49777330004707},{"time":"2026-09-15T15:45:00-04:00","bar_open":"2026-09-15T15:40:00-04:00","open":211.82000732421875,"high":212.00999450683594,"low":211.75999450683594,"close":211.93499755859375,"volume":570746.0,"vwap":212.49228403159938},{"time":"2026-09-15T15:50:00-04:00","bar_open":"2026-09-15T15:45:00-04:00","open":211.92999267578125,"high":212.14999389648438,"low":211.83009338378906,"close":212.02999877929688,"volume":706018.0,"vwap":212.48677746778972}],"fills":[{"time":"2026-09-15T10:10:00-04:00","action":"X","shares":13,"quantity":-13,"price":213.0034456100464,"reference_price":213.1100006103516,"shares_before":0,"shares_after":-13,"assumed_cost":1.3852150039672853,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:10:00-04:00","pnl":null},{"time":"2026-09-15T10:20:00-04:00","action":"X","shares":20,"quantity":-20,"price":212.5136851196289,"reference_price":212.6199951171875,"shares_before":-13,"shares_after":-33,"assumed_cost":2.126199951171875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:20:00-04:00","pnl":null},{"time":"2026-09-15T10:25:00-04:00","action":"X","shares":57,"quantity":-57,"price":212.57365267944337,"reference_price":212.67999267578125,"shares_before":-33,"shares_after":-90,"assumed_cost":6.061379791259766,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:25:00-04:00","pnl":null},{"time":"2026-09-15T10:30:00-04:00","action":"C","shares":6,"quantity":6,"price":212.84637549591065,"reference_price":212.7400054931641,"shares_before":-90,"shares_after":-84,"assumed_cost":0.6382200164794922,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:30:00-04:00","pnl":null},{"time":"2026-09-15T10:35:00-04:00","action":"C","shares":3,"quantity":3,"price":212.8063469467163,"reference_price":212.6999969482422,"shares_before":-84,"shares_after":-81,"assumed_cost":0.3190499954223633,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:35:00-04:00","pnl":null},{"time":"2026-09-15T10:40:00-04:00","action":"C","shares":4,"quantity":4,"price":212.92631046295165,"reference_price":212.8199005126953,"shares_before":-81,"shares_after":-77,"assumed_cost":0.4256398010253906,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:40:00-04:00","pnl":null},{"time":"2026-09-15T10:45:00-04:00","action":"C","shares":26,"quantity":26,"price":212.8163617172241,"reference_price":212.7100067138672,"shares_before":-77,"shares_after":-51,"assumed_cost":2.765230087280273,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:45:00-04:00","pnl":null},{"time":"2026-09-15T10:50:00-04:00","action":"C","shares":4,"quantity":4,"price":212.32611122131345,"reference_price":212.22000122070312,"shares_before":-51,"shares_after":-47,"assumed_cost":0.4244400024414062,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:50:00-04:00","pnl":null},{"time":"2026-09-15T11:00:00-04:00","action":"C","shares":1,"quantity":1,"price":212.1410211639404,"reference_price":212.03500366210935,"shares_before":-47,"shares_after":-46,"assumed_cost":0.1060175018310546,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:00:00-04:00","pnl":null},{"time":"2026-09-15T11:10:00-04:00","action":"C","shares":1,"quantity":1,"price":212.28608267211916,"reference_price":212.17999267578125,"shares_before":-46,"shares_after":-45,"assumed_cost":0.1060899963378906,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:10:00-04:00","pnl":null},{"time":"2026-09-15T11:15:00-04:00","action":"C","shares":1,"quantity":1,"price":212.33111860656737,"reference_price":212.2250061035156,"shares_before":-45,"shares_after":-44,"assumed_cost":0.1061125030517578,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:15:00-04:00","pnl":null},{"time":"2026-09-15T11:25:00-04:00","action":"C","shares":1,"quantity":1,"price":212.20605610656736,"reference_price":212.1000061035156,"shares_before":-44,"shares_after":-43,"assumed_cost":0.1060500030517578,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:25:00-04:00","pnl":null},{"time":"2026-09-15T11:30:00-04:00","action":"C","shares":1,"quantity":1,"price":212.3572241821289,"reference_price":212.2510986328125,"shares_before":-43,"shares_after":-42,"assumed_cost":0.1061255493164062,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:30:00-04:00","pnl":null},{"time":"2026-09-15T11:35:00-04:00","action":"C","shares":1,"quantity":1,"price":212.27608316802977,"reference_price":212.1699981689453,"shares_before":-42,"shares_after":-41,"assumed_cost":0.1060849990844726,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:35:00-04:00","pnl":null},{"time":"2026-09-15T11:45:00-04:00","action":"C","shares":1,"quantity":1,"price":212.3861387786865,"reference_price":212.27999877929688,"shares_before":-41,"shares_after":-40,"assumed_cost":0.1061399993896484,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:45:00-04:00","pnl":null},{"time":"2026-09-15T11:50:00-04:00","action":"C","shares":1,"quantity":1,"price":212.20104872131347,"reference_price":212.09500122070312,"shares_before":-40,"shares_after":-39,"assumed_cost":0.1060475006103515,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:50:00-04:00","pnl":null},{"time":"2026-09-15T11:55:00-04:00","action":"X","shares":2,"quantity":-2,"price":212.1688563995361,"reference_price":212.2749938964844,"shares_before":-39,"shares_after":-41,"assumed_cost":0.2122749938964843,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:55:00-04:00","pnl":null},{"time":"2026-09-15T12:15:00-04:00","action":"C","shares":1,"quantity":1,"price":211.95582424163817,"reference_price":211.8498992919922,"shares_before":-41,"shares_after":-40,"assumed_cost":0.1059249496459961,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:15:00-04:00","pnl":null},{"time":"2026-09-15T12:20:00-04:00","action":"C","shares":1,"quantity":1,"price":212.0009517745972,"reference_price":211.8950042724609,"shares_before":-40,"shares_after":-39,"assumed_cost":0.1059475021362304,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:20:00-04:00","pnl":null},{"time":"2026-09-15T12:30:00-04:00","action":"C","shares":1,"quantity":1,"price":212.0659867172241,"reference_price":211.9600067138672,"shares_before":-39,"shares_after":-38,"assumed_cost":0.1059800033569336,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:30:00-04:00","pnl":null},{"time":"2026-09-15T12:45:00-04:00","action":"C","shares":1,"quantity":1,"price":212.1810344467163,"reference_price":212.0749969482422,"shares_before":-38,"shares_after":-37,"assumed_cost":0.1060374984741211,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:45:00-04:00","pnl":null},{"time":"2026-09-15T12:55:00-04:00","action":"C","shares":1,"quantity":1,"price":212.19604133605955,"reference_price":212.08999633789065,"shares_before":-37,"shares_after":-36,"assumed_cost":0.1060449981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:55:00-04:00","pnl":null},{"time":"2026-09-15T13:10:00-04:00","action":"C","shares":1,"quantity":1,"price":211.5557219467163,"reference_price":211.4499969482422,"shares_before":-36,"shares_after":-35,"assumed_cost":0.105724998474121,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:10:00-04:00","pnl":null},{"time":"2026-09-15T13:15:00-04:00","action":"C","shares":1,"quantity":1,"price":211.53071555328367,"reference_price":211.4250030517578,"shares_before":-35,"shares_after":-34,"assumed_cost":0.1057125015258789,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:15:00-04:00","pnl":null},{"time":"2026-09-15T13:25:00-04:00","action":"C","shares":1,"quantity":1,"price":211.39563828277588,"reference_price":211.2899932861328,"shares_before":-34,"shares_after":-33,"assumed_cost":0.1056449966430664,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:25:00-04:00","pnl":null},{"time":"2026-09-15T13:35:00-04:00","action":"C","shares":33,"quantity":33,"price":211.65077066802976,"reference_price":211.5449981689453,"shares_before":-33,"shares_after":0,"assumed_cost":3.490492469787598,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:35:00-04:00","pnl":null},{"time":"2026-09-15T13:40:00-04:00","action":"X","shares":13,"quantity":-13,"price":211.45421755981445,"reference_price":211.55999755859372,"shares_before":0,"shares_after":-13,"assumed_cost":1.3751399841308594,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:40:00-04:00","pnl":null},{"time":"2026-09-15T13:45:00-04:00","action":"X","shares":4,"quantity":-4,"price":211.45421755981445,"reference_price":211.55999755859372,"shares_before":-13,"shares_after":-17,"assumed_cost":0.4231199951171875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:45:00-04:00","pnl":null},{"time":"2026-09-15T13:50:00-04:00","action":"C","shares":1,"quantity":1,"price":211.81586171722407,"reference_price":211.7100067138672,"shares_before":-17,"shares_after":-16,"assumed_cost":0.1058550033569336,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:50:00-04:00","pnl":null},{"time":"2026-09-15T13:55:00-04:00","action":"C","shares":1,"quantity":1,"price":211.94112268066405,"reference_price":211.835205078125,"shares_before":-16,"shares_after":-15,"assumed_cost":0.1059176025390625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:55:00-04:00","pnl":null},{"time":"2026-09-15T14:05:00-04:00","action":"X","shares":5,"quantity":-5,"price":211.94896517944335,"reference_price":212.05499267578125,"shares_before":-15,"shares_after":-20,"assumed_cost":0.5301374816894531,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:05:00-04:00","pnl":null},{"time":"2026-09-15T14:10:00-04:00","action":"C","shares":1,"quantity":1,"price":211.99594438934324,"reference_price":211.88999938964844,"shares_before":-20,"shares_after":-19,"assumed_cost":0.1059449996948242,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:10:00-04:00","pnl":null},{"time":"2026-09-15T14:15:00-04:00","action":"C","shares":1,"quantity":1,"price":211.81586171722407,"reference_price":211.7100067138672,"shares_before":-19,"shares_after":-18,"assumed_cost":0.1058550033569336,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:15:00-04:00","pnl":null},{"time":"2026-09-15T14:20:00-04:00","action":"C","shares":1,"quantity":1,"price":211.81586171722407,"reference_price":211.7100067138672,"shares_before":-18,"shares_after":-17,"assumed_cost":0.1058550033569336,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:20:00-04:00","pnl":null},{"time":"2026-09-15T14:30:00-04:00","action":"X","shares":5,"quantity":-5,"price":211.9939561004639,"reference_price":212.1000061035156,"shares_before":-17,"shares_after":-22,"assumed_cost":0.530250015258789,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:30:00-04:00","pnl":null},{"time":"2026-09-15T14:35:00-04:00","action":"C","shares":1,"quantity":1,"price":212.1310063934326,"reference_price":212.0249938964844,"shares_before":-22,"shares_after":-21,"assumed_cost":0.1060124969482421,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:35:00-04:00","pnl":null},{"time":"2026-09-15T14:40:00-04:00","action":"C","shares":1,"quantity":1,"price":212.2610762786865,"reference_price":212.15499877929688,"shares_before":-21,"shares_after":-20,"assumed_cost":0.1060774993896484,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:40:00-04:00","pnl":null},{"time":"2026-09-15T14:45:00-04:00","action":"C","shares":1,"quantity":1,"price":212.1260142745972,"reference_price":212.0200042724609,"shares_before":-20,"shares_after":-19,"assumed_cost":0.1060100021362304,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:45:00-04:00","pnl":null},{"time":"2026-09-15T15:15:00-04:00","action":"X","shares":4,"quantity":-4,"price":211.9139942703247,"reference_price":212.0200042724609,"shares_before":-19,"shares_after":-23,"assumed_cost":0.4240400085449218,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:15:00-04:00","pnl":null},{"time":"2026-09-15T15:30:00-04:00","action":"C","shares":1,"quantity":1,"price":212.21605561065672,"reference_price":212.1100006103516,"shares_before":-23,"shares_after":-22,"assumed_cost":0.1060550003051757,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:30:00-04:00","pnl":null},{"time":"2026-09-15T15:35:00-04:00","action":"C","shares":1,"quantity":1,"price":212.1310063934326,"reference_price":212.0249938964844,"shares_before":-22,"shares_after":-21,"assumed_cost":0.1060124969482421,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:35:00-04:00","pnl":null},{"time":"2026-09-15T15:45:00-04:00","action":"C","shares":1,"quantity":1,"price":212.03595767211917,"reference_price":211.92999267578125,"shares_before":-21,"shares_after":-20,"assumed_cost":0.1059649963378906,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:45:00-04:00","pnl":null}],"marks":[{"time":"2026-09-15T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:40:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:45:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:50:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:55:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T10:00:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T10:05:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T10:10:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T10:15:00-04:00","shares":-13,"pnl":4.72480086517362},{"time":"2026-09-15T10:20:00-04:00","shares":-13,"pnl":4.854729454040808},{"time":"2026-09-15T10:25:00-04:00","shares":-33,"pnl":0.878737022399946},{"time":"2026-09-15T10:30:00-04:00","shares":-90,"pnl":-10.592036079404352},{"time":"2026-09-15T10:35:00-04:00","shares":-84,"pnl":-7.861298576353874},{"time":"2026-09-15T10:40:00-04:00","shares":-81,"pnl":-17.090398010252102},{"time":"2026-09-15T10:45:00-04:00","shares":-77,"pnl":-9.85635458373872},{"time":"2026-09-15T10:50:00-04:00","shares":-51,"pnl":11.34847758484102},{"time":"2026-09-15T10:55:00-04:00","shares":-47,"pnl":16.108821517946126},{"time":"2026-09-15T11:00:00-04:00","shares":-47,"pnl":20.639140731813317},{"time":"2026-09-15T11:05:00-04:00","shares":-46,"pnl":-3.6165960082980746},{"time":"2026-09-15T11:10:00-04:00","shares":-46,"pnl":13.21436712646755},{"time":"2026-09-15T11:15:00-04:00","shares":-45,"pnl":11.511521148684553},{"time":"2026-09-15T11:20:00-04:00","shares":-44,"pnl":11.846036697390446},{"time":"2026-09-15T11:25:00-04:00","shares":-44,"pnl":16.686063552859196},{"time":"2026-09-15T11:30:00-04:00","shares":-43,"pnl":10.14027050781442},{"time":"2026-09-15T11:35:00-04:00","shares":-42,"pnl":13.822887023927253},{"time":"2026-09-15T11:40:00-04:00","shares":-41,"pnl":12.076451683045889},{"time":"2026-09-15T11:45:00-04:00","shares":-41,"pnl":9.2067770004287},{"time":"2026-09-15T11:50:00-04:00","shares":-40,"pnl":16.224660438538194},{"time":"2026-09-15T11:55:00-04:00","shares":-39,"pnl":9.374777488708787},{"time":"2026-09-15T12:00:00-04:00","shares":-41,"pnl":13.061306205749132},{"time":"2026-09-15T12:05:00-04:00","shares":-41,"pnl":8.137127128600696},{"time":"2026-09-15T12:10:00-04:00","shares":-41,"pnl":19.207302299499133},{"time":"2026-09-15T12:15:00-04:00","shares":-41,"pnl":26.915447441100696},{"time":"2026-09-15T12:20:00-04:00","shares":-40,"pnl":24.877179962157243},{"time":"2026-09-15T12:25:00-04:00","shares":-39,"pnl":15.796501014709063},{"time":"2026-09-15T12:30:00-04:00","shares":-39,"pnl":21.650428627013756},{"time":"2026-09-15T12:35:00-04:00","shares":-38,"pnl":26.494628677367476},{"time":"2026-09-15T12:40:00-04:00","shares":-38,"pnl":26.114257583617476},{"time":"2026-09-15T12:45:00-04:00","shares":-38,"pnl":17.374419937133098},{"time":"2026-09-15T12:50:00-04:00","shares":-37,"pnl":18.22808397674453},{"time":"2026-09-15T12:55:00-04:00","shares":-37,"pnl":16.903590568541404},{"time":"2026-09-15T13:00:00-04:00","shares":-36,"pnl":28.317259925841427},{"time":"2026-09-15T13:05:00-04:00","shares":-36,"pnl":39.39092935943518},{"time":"2026-09-15T13:10:00-04:00","shares":-36,"pnl":39.83752359771643},{"time":"2026-09-15T13:15:00-04:00","shares":-35,"pnl":40.606584976195336},{"time":"2026-09-15T13:20:00-04:00","shares":-34,"pnl":32.851183753966325},{"time":"2026-09-15T13:25:00-04:00","shares":-34,"pnl":44.75087247466945},{"time":"2026-09-15T13:30:00-04:00","shares":-33,"pnl":43.66527752685488},{"time":"2026-09-15T13:35:00-04:00","shares":-33,"pnl":36.570398376464254},{"time":"2026-09-15T13:40:00-04:00","shares":0,"pnl":33.079905906677595},{"time":"2026-09-15T13:45:00-04:00","shares":-13,"pnl":31.836083061218687},{"time":"2026-09-15T13:50:00-04:00","shares":-17,"pnl":28.72318950653107},{"time":"2026-09-15T13:55:00-04:00","shares":-16,"pnl":26.54580130004933},{"time":"2026-09-15T14:00:00-04:00","shares":-15,"pnl":24.647723663330453},{"time":"2026-09-15T14:05:00-04:00","shares":-15,"pnl":23.294574249267956},{"time":"2026-09-15T14:10:00-04:00","shares":-20,"pnl":25.989458129883133},{"time":"2026-09-15T14:15:00-04:00","shares":-19,"pnl":29.493559516907226},{"time":"2026-09-15T14:20:00-04:00","shares":-18,"pnl":29.107705734253614},{"time":"2026-09-15T14:25:00-04:00","shares":-17,"pnl":24.92674697113125},{"time":"2026-09-15T14:30:00-04:00","shares":-17,"pnl":22.461674339295318},{"time":"2026-09-15T14:35:00-04:00","shares":-22,"pnl":23.471585456849425},{"time":"2026-09-15T14:40:00-04:00","shares":-21,"pnl":20.64047530365133},{"time":"2026-09-15T14:45:00-04:00","shares":-20,"pnl":23.49136801910572},{"time":"2026-09-15T14:50:00-04:00","shares":-19,"pnl":23.966870468141224},{"time":"2026-09-15T14:55:00-04:00","shares":-19,"pnl":22.1885196380631},{"time":"2026-09-15T15:00:00-04:00","shares":-19,"pnl":21.52142063903966},{"time":"2026-09-15T15:05:00-04:00","shares":-19,"pnl":24.377392929078724},{"time":"2026-09-15T15:10:00-04:00","shares":-19,"pnl":23.32847325134435},{"time":"2026-09-15T15:15:00-04:00","shares":-19,"pnl":23.32847325134435},{"time":"2026-09-15T15:20:00-04:00","shares":-23,"pnl":20.969298355104},{"time":"2026-09-15T15:25:00-04:00","shares":-23,"pnl":22.11936854553369},{"time":"2026-09-15T15:30:00-04:00","shares":-23,"pnl":20.132277481080564},{"time":"2026-09-15T15:35:00-04:00","shares":-22,"pnl":22.503517402650687},{"time":"2026-09-15T15:40:00-04:00","shares":-21,"pnl":26.702222923280715},{"time":"2026-09-15T15:45:00-04:00","shares":-21,"pnl":24.287428001405715},{"time":"2026-09-15T15:50:00-04:00","shares":-20,"pnl":22.2864434738176}],"summary":{"net_pnl":22.2864434738176,"gross_pnl":46.2785186767595,"cost":23.992075202941898,"fill_count":42,"ending_shares":-20},"source_hashes":{"fills_sha256":"fc041ca2110e65c2aa1b2451af35dddf6e1d4c0529f7129eb32197d05bb3919e","marks_sha256":"6e44c2f3ee324a26fae71ec87c708a785c03a085196cb5a32334c2487b84477e","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-15/levels_error_risk/PLTR.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"PLTR","date":"2026-09-15","variant":"levels_error_risk","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-15T15:50:00-04:00","partial":true,"starting_equity":47958.07,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-15T09:30:00-04:00","session_close":"2026-09-15T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-15T09:35:00-04:00","bar_open":"2026-09-15T09:30:00-04:00","open":170.23500061035156,"high":172.13340759277344,"low":169.4499969482422,"close":169.80499267578125,"volume":1387204.0,"vwap":170.46279907226562},{"time":"2026-09-15T09:40:00-04:00","bar_open":"2026-09-15T09:35:00-04:00","open":169.77499389648438,"high":172.2299041748047,"low":169.5399932861328,"close":172.2299041748047,"volume":627332.0,"vwap":170.73386522297324},{"time":"2026-09-15T09:45:00-04:00","bar_open":"2026-09-15T09:40:00-04:00","open":171.9611053466797,"high":173.16990661621094,"low":171.92010498046875,"close":172.64999389648438,"volume":517031.0,"vwap":171.11090831786782},{"time":"2026-09-15T09:50:00-04:00","bar_open":"2026-09-15T09:45:00-04:00","open":172.64500427246094,"high":172.8000030517578,"low":171.86000061035156,"close":172.08250427246094,"volume":503368.0,"vwap":171.299421486416},{"time":"2026-09-15T09:55:00-04:00","bar_open":"2026-09-15T09:50:00-04:00","open":172.05999755859375,"high":172.75999450683594,"low":171.8800048828125,"close":172.722900390625,"volume":330285.0,"vwap":171.41276891263726},{"time":"2026-09-15T10:00:00-04:00","bar_open":"2026-09-15T09:55:00-04:00","open":172.63999938964844,"high":173.00999450683594,"low":172.42999267578125,"close":172.52499389648438,"volume":303501.0,"vwap":171.51553400790485},{"time":"2026-09-15T10:05:00-04:00","bar_open":"2026-09-15T10:00:00-04:00","open":172.5800018310547,"high":172.85499572753906,"low":171.60499572753906,"close":171.60499572753906,"volume":403545.0,"vwap":171.5656892727254},{"time":"2026-09-15T10:10:00-04:00","bar_open":"2026-09-15T10:05:00-04:00","open":171.64500427246094,"high":171.7100067138672,"low":170.64129638671875,"close":171.43499755859375,"volume":461673.0,"vwap":171.53477600528507},{"time":"2026-09-15T10:15:00-04:00","bar_open":"2026-09-15T10:10:00-04:00","open":171.42999267578125,"high":172.0749969482422,"low":170.8300018310547,"close":171.10459899902344,"volume":347441.0,"vwap":171.52066567388567},{"time":"2026-09-15T10:20:00-04:00","bar_open":"2026-09-15T10:15:00-04:00","open":171.15789794921875,"high":171.24000549316406,"low":170.86000061035156,"close":171.0,"volume":215076.0,"vwap":171.50009980362142},{"time":"2026-09-15T10:25:00-04:00","bar_open":"2026-09-15T10:20:00-04:00","open":171.05999755859375,"high":171.05999755859375,"low":170.5500030517578,"close":170.84849548339844,"volume":327077.0,"vwap":171.45905479332086},{"time":"2026-09-15T10:30:00-04:00","bar_open":"2026-09-15T10:25:00-04:00","open":170.82000732421875,"high":170.9199981689453,"low":170.5850067138672,"close":170.58999633789062,"volume":123336.0,"vwap":171.44213997312164},{"time":"2026-09-15T10:35:00-04:00","bar_open":"2026-09-15T10:30:00-04:00","open":170.58999633789062,"high":170.85000610351562,"low":170.5,"close":170.67999267578125,"volume":459785.0,"vwap":171.38354606521628},{"time":"2026-09-15T10:40:00-04:00","bar_open":"2026-09-15T10:35:00-04:00","open":170.67999267578125,"high":171.10000610351562,"low":170.625,"close":171.0399932861328,"volume":207737.0,"vwap":171.36810618013652},{"time":"2026-09-15T10:45:00-04:00","bar_open":"2026-09-15T10:40:00-04:00","open":171.00999450683594,"high":171.1999969482422,"low":170.55999755859375,"close":170.85499572753906,"volume":325896.0,"vwap":171.3433689304499},{"time":"2026-09-15T10:50:00-04:00","bar_open":"2026-09-15T10:45:00-04:00","open":170.72000122070312,"high":170.97000122070312,"low":170.6699981689453,"close":170.85000610351562,"volume":125009.0,"vwap":171.33374062471103},{"time":"2026-09-15T10:55:00-04:00","bar_open":"2026-09-15T10:50:00-04:00","open":170.8300018310547,"high":170.86990356445312,"low":170.45899963378906,"close":170.75999450683594,"volume":140816.0,"vwap":171.32055219250037},{"time":"2026-09-15T11:00:00-04:00","bar_open":"2026-09-15T10:55:00-04:00","open":170.7899932861328,"high":171.24989318847656,"low":170.5500030517578,"close":170.8350067138672,"volume":187058.0,"vwap":171.30872256066982},{"time":"2026-09-15T11:05:00-04:00","bar_open":"2026-09-15T11:00:00-04:00","open":170.82000732421875,"high":171.4799041748047,"low":170.72999572753906,"close":171.40499877929688,"volume":133554.0,"vwap":171.30677817874084},{"time":"2026-09-15T11:10:00-04:00","bar_open":"2026-09-15T11:05:00-04:00","open":171.4149932861328,"high":172.125,"low":171.3000030517578,"close":172.11000061035156,"volume":265122.0,"vwap":171.32608252698228},{"time":"2026-09-15T11:15:00-04:00","bar_open":"2026-09-15T11:10:00-04:00","open":172.11000061035156,"high":172.25,"low":171.60000610351562,"close":171.73060607910156,"volume":215691.0,"vwap":171.34122608892176},{"time":"2026-09-15T11:20:00-04:00","bar_open":"2026-09-15T11:15:00-04:00","open":171.77999877929688,"high":172.36500549316406,"low":171.75999450683594,"close":172.08999633789062,"volume":236185.0,"vwap":171.36322059861283},{"time":"2026-09-15T11:25:00-04:00","bar_open":"2026-09-15T11:20:00-04:00","open":172.07000732421875,"high":172.16000366210938,"low":171.64999389648438,"close":171.8800048828125,"volume":132034.0,"vwap":171.37205150136347},{"time":"2026-09-15T11:30:00-04:00","bar_open":"2026-09-15T11:25:00-04:00","open":171.8699951171875,"high":171.8800048828125,"low":171.64999389648438,"close":171.6999969482422,"volume":84895.0,"vwap":171.37596183692094},{"time":"2026-09-15T11:35:00-04:00","bar_open":"2026-09-15T11:30:00-04:00","open":171.7100067138672,"high":172.5,"low":171.64999389648438,"close":172.27000427246094,"volume":238629.0,"vwap":171.3979301904612},{"time":"2026-09-15T11:40:00-04:00","bar_open":"2026-09-15T11:35:00-04:00","open":172.3199005126953,"high":172.5,"low":172.25,"close":172.3300018310547,"volume":126481.0,"vwap":171.41237204666604},{"time":"2026-09-15T11:45:00-04:00","bar_open":"2026-09-15T11:40:00-04:00","open":172.3551025390625,"high":172.82000732421875,"low":172.3551025390625,"close":172.75999450683594,"volume":117711.0,"vwap":171.42935553583592},{"time":"2026-09-15T11:50:00-04:00","bar_open":"2026-09-15T11:45:00-04:00","open":172.7686004638672,"high":172.82000732421875,"low":172.39999389648438,"close":172.63499450683594,"volume":154142.0,"vwap":171.45042696946587},{"time":"2026-09-15T11:55:00-04:00","bar_open":"2026-09-15T11:50:00-04:00","open":172.6027069091797,"high":172.92999267578125,"low":172.52999877929688,"close":172.76370239257812,"volume":155729.0,"vwap":171.47313202730365},{"time":"2026-09-15T12:00:00-04:00","bar_open":"2026-09-15T11:55:00-04:00","open":172.7449951171875,"high":173.49000549316406,"low":172.72999572753906,"close":173.46009826660156,"volume":246892.0,"vwap":171.52070682748425},{"time":"2026-09-15T12:05:00-04:00","bar_open":"2026-09-15T12:00:00-04:00","open":173.46609497070312,"high":173.57989501953125,"low":172.86000061035156,"close":172.9499969482422,"volume":230974.0,"vwap":171.5605405307777},{"time":"2026-09-15T12:10:00-04:00","bar_open":"2026-09-15T12:05:00-04:00","open":172.96499633789062,"high":173.60000610351562,"low":172.60000610351562,"close":173.4199981689453,"volume":413756.0,"vwap":171.63043262341444},{"time":"2026-09-15T12:15:00-04:00","bar_open":"2026-09-15T12:10:00-04:00","open":173.38999938964844,"high":173.47999572753906,"low":173.07000732421875,"close":173.3679962158203,"volume":158838.0,"vwap":171.65730550569847},{"time":"2026-09-15T12:20:00-04:00","bar_open":"2026-09-15T12:15:00-04:00","open":173.3300018310547,"high":173.8800048828125,"low":173.17999267578125,"close":173.86000061035156,"volume":180756.0,"vwap":171.69284338253445},{"time":"2026-09-15T12:25:00-04:00","bar_open":"2026-09-15T12:20:00-04:00","open":173.8699951171875,"high":173.9499969482422,"low":173.2183074951172,"close":173.64999389648438,"volume":251760.0,"vwap":171.73944424176614},{"time":"2026-09-15T12:30:00-04:00","bar_open":"2026-09-15T12:25:00-04:00","open":173.6699981689453,"high":174.26829528808594,"low":173.57000732421875,"close":174.2030029296875,"volume":220602.0,"vwap":171.78696950818642},{"time":"2026-09-15T12:35:00-04:00","bar_open":"2026-09-15T12:30:00-04:00","open":174.21499633789062,"high":174.8800048828125,"low":174.2100067138672,"close":174.6199951171875,"volume":358110.0,"vwap":171.8782777097717},{"time":"2026-09-15T12:40:00-04:00","bar_open":"2026-09-15T12:35:00-04:00","open":174.64999389648438,"high":174.75999450683594,"low":174.30999755859375,"close":174.5500030517578,"volume":252938.0,"vwap":171.93856175076098},{"time":"2026-09-15T12:45:00-04:00","bar_open":"2026-09-15T12:40:00-04:00","open":174.5500030517578,"high":174.5800018310547,"low":174.2310028076172,"close":174.35499572753906,"volume":129300.0,"vwap":171.9666038006945},{"time":"2026-09-15T12:50:00-04:00","bar_open":"2026-09-15T12:45:00-04:00","open":174.35000610351562,"high":174.9398956298828,"low":174.10000610351562,"close":174.92999267578125,"volume":269099.0,"vwap":172.02918902673164},{"time":"2026-09-15T12:55:00-04:00","bar_open":"2026-09-15T12:50:00-04:00","open":174.94000244140625,"high":175.25,"low":174.74000549316406,"close":175.2100067138672,"volume":393447.0,"vwap":172.12911432373159},{"time":"2026-09-15T13:00:00-04:00","bar_open":"2026-09-15T12:55:00-04:00","open":175.2100067138672,"high":175.27999877929688,"low":174.85000610351562,"close":175.1699981689453,"volume":1313331.0,"vwap":172.42307308769674},{"time":"2026-09-15T13:05:00-04:00","bar_open":"2026-09-15T13:00:00-04:00","open":175.17999267578125,"high":175.7299041748047,"low":175.0500030517578,"close":175.69500732421875,"volume":287193.0,"vwap":172.48806190660355},{"time":"2026-09-15T13:10:00-04:00","bar_open":"2026-09-15T13:05:00-04:00","open":175.69500732421875,"high":175.69500732421875,"low":175.0,"close":175.35000610351562,"volume":271175.0,"vwap":172.54413930477548},{"time":"2026-09-15T13:15:00-04:00","bar_open":"2026-09-15T13:10:00-04:00","open":175.3699951171875,"high":175.88999938964844,"low":175.35000610351562,"close":175.39999389648438,"volume":237382.0,"vwap":172.59480041577703},{"time":"2026-09-15T13:20:00-04:00","bar_open":"2026-09-15T13:15:00-04:00","open":175.44500732421875,"high":176.4600067138672,"low":175.3300018310547,"close":176.3000030517578,"volume":417575.0,"vwap":172.69382074174482},{"time":"2026-09-15T13:25:00-04:00","bar_open":"2026-09-15T13:20:00-04:00","open":176.3625030517578,"high":176.58999633789062,"low":175.8699951171875,"close":176.3800048828125,"volume":275968.0,"vwap":172.76086050263172},{"time":"2026-09-15T13:30:00-04:00","bar_open":"2026-09-15T13:25:00-04:00","open":176.42999267578125,"high":176.57789611816406,"low":175.84010314941406,"close":175.91000366210938,"volume":206204.0,"vwap":172.80698817719465},{"time":"2026-09-15T13:35:00-04:00","bar_open":"2026-09-15T13:30:00-04:00","open":175.92999267578125,"high":176.0198974609375,"low":175.55999755859375,"close":175.96499633789062,"volume":217638.0,"vwap":172.8505738579487},{"time":"2026-09-15T13:40:00-04:00","bar_open":"2026-09-15T13:35:00-04:00","open":175.92999267578125,"high":176.11500549316406,"low":175.2200927734375,"close":176.0500030517578,"volume":206780.0,"vwap":172.89012774662555},{"time":"2026-09-15T13:45:00-04:00","bar_open":"2026-09-15T13:40:00-04:00","open":176.0500030517578,"high":176.3199005126953,"low":175.69000244140625,"close":175.82000732421875,"volume":193013.0,"vwap":172.9279373064559},{"time":"2026-09-15T13:50:00-04:00","bar_open":"2026-09-15T13:45:00-04:00","open":175.76499938964844,"high":175.8800048828125,"low":175.24000549316406,"close":175.25,"volume":160644.0,"vwap":172.95373479358653},{"time":"2026-09-15T13:55:00-04:00","bar_open":"2026-09-15T13:50:00-04:00","open":175.25,"high":175.3000030517578,"low":174.30999755859375,"close":174.4600067138672,"volume":246341.0,"vwap":172.9804785146365},{"time":"2026-09-15T14:00:00-04:00","bar_open":"2026-09-15T13:55:00-04:00","open":174.4600067138672,"high":174.55999755859375,"low":174.125,"close":174.20269775390625,"volume":162889.0,"vwap":172.99374096360052},{"time":"2026-09-15T14:05:00-04:00","bar_open":"2026-09-15T14:00:00-04:00","open":174.19000244140625,"high":174.33990478515625,"low":173.55499267578125,"close":173.55499267578125,"volume":223509.0,"vwap":173.00496985328974},{"time":"2026-09-15T14:10:00-04:00","bar_open":"2026-09-15T14:05:00-04:00","open":173.57000732421875,"high":174.139892578125,"low":173.00999450683594,"close":174.09500122070312,"volume":300811.0,"vwap":173.01837495638324},{"time":"2026-09-15T14:15:00-04:00","bar_open":"2026-09-15T14:10:00-04:00","open":174.09500122070312,"high":174.94000244140625,"low":173.63999938964844,"close":174.83279418945312,"volume":315169.0,"vwap":173.04531165433542},{"time":"2026-09-15T14:20:00-04:00","bar_open":"2026-09-15T14:15:00-04:00","open":174.83999633789062,"high":174.875,"low":174.4499969482422,"close":174.77999877929688,"volume":232448.0,"vwap":173.0676600783506},{"time":"2026-09-15T14:25:00-04:00","bar_open":"2026-09-15T14:20:00-04:00","open":174.7550048828125,"high":175.1999969482422,"low":174.6269989013672,"close":175.05499267578125,"volume":296310.0,"vwap":173.0996681476991},{"time":"2026-09-15T14:30:00-04:00","bar_open":"2026-09-15T14:25:00-04:00","open":175.05499267578125,"high":175.47000122070312,"low":175.0,"close":175.36500549316406,"volume":198978.0,"vwap":173.12412803908597},{"time":"2026-09-15T14:35:00-04:00","bar_open":"2026-09-15T14:30:00-04:00","open":175.375,"high":175.39999389648438,"low":174.9149932861328,"close":174.92669677734375,"volume":226772.0,"vwap":173.14884478824465},{"time":"2026-09-15T14:40:00-04:00","bar_open":"2026-09-15T14:35:00-04:00","open":174.9199981689453,"high":175.35000610351562,"low":174.89999389648438,"close":175.24000549316406,"volume":268604.0,"vwap":173.17854529694011},{"time":"2026-09-15T14:45:00-04:00","bar_open":"2026-09-15T14:40:00-04:00","open":175.24000549316406,"high":175.36500549316406,"low":175.0,"close":175.14500427246094,"volume":125379.0,"vwap":173.1921567223311},{"time":"2026-09-15T14:50:00-04:00","bar_open":"2026-09-15T14:45:00-04:00","open":175.1199951171875,"high":175.13999938964844,"low":174.19000244140625,"close":174.57000732421875,"volume":372813.0,"vwap":173.22086313621014},{"time":"2026-09-15T14:55:00-04:00","bar_open":"2026-09-15T14:50:00-04:00","open":174.5800018310547,"high":174.8699951171875,"low":174.35000610351562,"close":174.63999938964844,"volume":186804.0,"vwap":173.23468934715146},{"time":"2026-09-15T15:00:00-04:00","bar_open":"2026-09-15T14:55:00-04:00","open":174.55999755859375,"high":174.639892578125,"low":174.35009765625,"close":174.61309814453125,"volume":123987.0,"vwap":173.24315826532364},{"time":"2026-09-15T15:05:00-04:00","bar_open":"2026-09-15T15:00:00-04:00","open":174.6009979248047,"high":175.10000610351562,"low":174.6009979248047,"close":174.87249755859375,"volume":232609.0,"vwap":173.26265906108304},{"time":"2026-09-15T15:10:00-04:00","bar_open":"2026-09-15T15:05:00-04:00","open":174.9114990234375,"high":174.94000244140625,"low":173.8000030517578,"close":174.52499389648438,"volume":314057.0,"vwap":173.28125468312035},{"time":"2026-09-15T15:15:00-04:00","bar_open":"2026-09-15T15:10:00-04:00","open":174.52499389648438,"high":174.5800018310547,"low":173.5,"close":173.7100067138672,"volume":228241.0,"vwap":173.28873209183604},{"time":"2026-09-15T15:20:00-04:00","bar_open":"2026-09-15T15:15:00-04:00","open":173.68499755859375,"high":174.1699981689453,"low":173.4499969482422,"close":173.9250030517578,"volume":232823.0,"vwap":173.29523502140816},{"time":"2026-09-15T15:25:00-04:00","bar_open":"2026-09-15T15:20:00-04:00","open":173.9250030517578,"high":174.10000610351562,"low":173.74000549316406,"close":173.75,"volume":97548.0,"vwap":173.29798760444098},{"time":"2026-09-15T15:30:00-04:00","bar_open":"2026-09-15T15:25:00-04:00","open":173.7689971923828,"high":174.0198974609375,"low":173.6199951171875,"close":173.67999267578125,"volume":209213.0,"vwap":173.3028760319024},{"time":"2026-09-15T15:35:00-04:00","bar_open":"2026-09-15T15:30:00-04:00","open":173.7100067138672,"high":173.84500122070312,"low":173.4600067138672,"close":173.61000061035156,"volume":184007.0,"vwap":173.30588328736158},{"time":"2026-09-15T15:40:00-04:00","bar_open":"2026-09-15T15:35:00-04:00","open":173.61000061035156,"high":173.6300048828125,"low":172.7899932861328,"close":173.14999389648438,"volume":355355.0,"vwap":173.303911165041},{"time":"2026-09-15T15:45:00-04:00","bar_open":"2026-09-15T15:40:00-04:00","open":173.14999389648438,"high":173.15499877929688,"low":172.80999755859375,"close":173.07000732421875,"volume":241299.0,"vwap":173.30057266834908},{"time":"2026-09-15T15:50:00-04:00","bar_open":"2026-09-15T15:45:00-04:00","open":173.0850067138672,"high":173.2198944091797,"low":172.08999633789062,"close":172.55999755859375,"volume":604706.0,"vwap":173.28172304106303}],"fills":[{"time":"2026-09-15T09:35:00-04:00","action":"X","shares":135,"quantity":-135,"price":169.69010639953615,"reference_price":169.77499389648438,"shares_before":0,"shares_after":-135,"assumed_cost":11.459812088012695,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:35:00-04:00","pnl":null},{"time":"2026-09-15T09:40:00-04:00","action":"C","shares":71,"quantity":71,"price":172.04708589935302,"reference_price":171.9611053466797,"shares_before":-135,"shares_after":-64,"assumed_cost":6.104619239807129,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:40:00-04:00","pnl":null},{"time":"2026-09-15T09:45:00-04:00","action":"C","shares":53,"quantity":53,"price":172.73132677459716,"reference_price":172.64500427246094,"shares_before":-64,"shares_after":-11,"assumed_cost":4.575092613220215,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:45:00-04:00","pnl":null},{"time":"2026-09-15T09:50:00-04:00","action":"C","shares":11,"quantity":11,"price":172.14602755737303,"reference_price":172.05999755859375,"shares_before":-11,"shares_after":0,"assumed_cost":0.9463299865722656,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:50:00-04:00","pnl":null},{"time":"2026-09-15T09:50:00-04:00","action":"B","shares":41,"quantity":41,"price":172.14602755737303,"reference_price":172.05999755859375,"shares_before":0,"shares_after":41,"assumed_cost":3.527229949951172,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:50:00-04:00","pnl":null},{"time":"2026-09-15T10:05:00-04:00","action":"B","shares":113,"quantity":113,"price":171.73082677459715,"reference_price":171.64500427246094,"shares_before":41,"shares_after":154,"assumed_cost":9.697942741394042,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:05:00-04:00","pnl":null},{"time":"2026-09-15T10:10:00-04:00","action":"S","shares":13,"quantity":-13,"price":171.34427767944337,"reference_price":171.42999267578125,"shares_before":154,"shares_after":141,"assumed_cost":1.114294952392578,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:10:00-04:00","pnl":null},{"time":"2026-09-15T10:15:00-04:00","action":"S","shares":26,"quantity":-26,"price":171.07231900024416,"reference_price":171.15789794921875,"shares_before":141,"shares_after":115,"assumed_cost":2.225052673339844,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:15:00-04:00","pnl":null},{"time":"2026-09-15T10:20:00-04:00","action":"S","shares":67,"quantity":-67,"price":170.97446755981446,"reference_price":171.05999755859375,"shares_before":115,"shares_after":48,"assumed_cost":5.73050991821289,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:20:00-04:00","pnl":null},{"time":"2026-09-15T10:25:00-04:00","action":"B","shares":13,"quantity":13,"price":170.90541732788083,"reference_price":170.82000732421875,"shares_before":48,"shares_after":61,"assumed_cost":1.1103300476074218,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:25:00-04:00","pnl":null},{"time":"2026-09-15T10:30:00-04:00","action":"S","shares":1,"quantity":-1,"price":170.5047013397217,"reference_price":170.58999633789062,"shares_before":61,"shares_after":60,"assumed_cost":0.0852949981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:30:00-04:00","pnl":null},{"time":"2026-09-15T10:35:00-04:00","action":"S","shares":8,"quantity":-8,"price":170.59465267944336,"reference_price":170.67999267578125,"shares_before":60,"shares_after":52,"assumed_cost":0.682719970703125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:35:00-04:00","pnl":null},{"time":"2026-09-15T10:45:00-04:00","action":"S","shares":35,"quantity":-35,"price":170.6346412200928,"reference_price":170.72000122070312,"shares_before":52,"shares_after":17,"assumed_cost":2.987600021362305,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:45:00-04:00","pnl":null},{"time":"2026-09-15T10:50:00-04:00","action":"B","shares":18,"quantity":18,"price":170.91541683197022,"reference_price":170.8300018310547,"shares_before":17,"shares_after":35,"assumed_cost":1.537470016479492,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:50:00-04:00","pnl":null},{"time":"2026-09-15T10:55:00-04:00","action":"S","shares":1,"quantity":-1,"price":170.70459828948975,"reference_price":170.7899932861328,"shares_before":35,"shares_after":34,"assumed_cost":0.0853949966430664,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:55:00-04:00","pnl":null},{"time":"2026-09-15T11:10:00-04:00","action":"S","shares":1,"quantity":-1,"price":172.02394561004638,"reference_price":172.11000061035156,"shares_before":34,"shares_after":33,"assumed_cost":0.0860550003051757,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:10:00-04:00","pnl":null},{"time":"2026-09-15T11:20:00-04:00","action":"S","shares":28,"quantity":-28,"price":171.98397232055666,"reference_price":172.07000732421875,"shares_before":33,"shares_after":5,"assumed_cost":2.4089801025390627,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:20:00-04:00","pnl":null},{"time":"2026-09-15T11:25:00-04:00","action":"S","shares":5,"quantity":-5,"price":171.78406011962892,"reference_price":171.8699951171875,"shares_before":5,"shares_after":0,"assumed_cost":0.4296749877929687,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:25:00-04:00","pnl":null},{"time":"2026-09-15T11:30:00-04:00","action":"X","shares":57,"quantity":-57,"price":171.62415171051026,"reference_price":171.7100067138672,"shares_before":0,"shares_after":-57,"assumed_cost":4.893735191345215,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:30:00-04:00","pnl":null},{"time":"2026-09-15T11:35:00-04:00","action":"C","shares":28,"quantity":28,"price":172.40606046295164,"reference_price":172.3199005126953,"shares_before":-57,"shares_after":-29,"assumed_cost":2.4124786071777344,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:35:00-04:00","pnl":null},{"time":"2026-09-15T11:45:00-04:00","action":"C","shares":4,"quantity":4,"price":172.8549847640991,"reference_price":172.7686004638672,"shares_before":-29,"shares_after":-25,"assumed_cost":0.3455372009277344,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:45:00-04:00","pnl":null},{"time":"2026-09-15T11:50:00-04:00","action":"C","shares":25,"quantity":25,"price":172.68900826263427,"reference_price":172.6027069091797,"shares_before":-25,"shares_after":0,"assumed_cost":2.1575338363647463,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:50:00-04:00","pnl":null},{"time":"2026-09-15T11:50:00-04:00","action":"B","shares":27,"quantity":27,"price":172.68900826263427,"reference_price":172.6027069091797,"shares_before":0,"shares_after":27,"assumed_cost":2.330136543273926,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:50:00-04:00","pnl":null},{"time":"2026-09-15T11:55:00-04:00","action":"S","shares":1,"quantity":-1,"price":172.65862261962891,"reference_price":172.7449951171875,"shares_before":27,"shares_after":26,"assumed_cost":0.0863724975585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:55:00-04:00","pnl":null},{"time":"2026-09-15T12:00:00-04:00","action":"B","shares":20,"quantity":20,"price":173.55282801818848,"reference_price":173.46609497070312,"shares_before":26,"shares_after":46,"assumed_cost":1.734660949707031,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:00:00-04:00","pnl":null},{"time":"2026-09-15T12:05:00-04:00","action":"B","shares":24,"quantity":24,"price":173.05147883605957,"reference_price":172.96499633789062,"shares_before":46,"shares_after":70,"assumed_cost":2.075579956054688,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:05:00-04:00","pnl":null},{"time":"2026-09-15T12:10:00-04:00","action":"B","shares":10,"quantity":10,"price":173.4766943893433,"reference_price":173.38999938964844,"shares_before":70,"shares_after":80,"assumed_cost":0.8669499969482422,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:10:00-04:00","pnl":null},{"time":"2026-09-15T12:15:00-04:00","action":"B","shares":48,"quantity":48,"price":173.41666683197022,"reference_price":173.3300018310547,"shares_before":80,"shares_after":128,"assumed_cost":4.159920043945313,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:15:00-04:00","pnl":null},{"time":"2026-09-15T12:20:00-04:00","action":"S","shares":76,"quantity":-76,"price":173.7830601196289,"reference_price":173.8699951171875,"shares_before":128,"shares_after":52,"assumed_cost":6.607059814453125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:20:00-04:00","pnl":null},{"time":"2026-09-15T12:25:00-04:00","action":"S","shares":1,"quantity":-1,"price":173.58316316986085,"reference_price":173.6699981689453,"shares_before":52,"shares_after":51,"assumed_cost":0.0868349990844726,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:25:00-04:00","pnl":null},{"time":"2026-09-15T12:30:00-04:00","action":"S","shares":30,"quantity":-30,"price":174.1278888397217,"reference_price":174.21499633789062,"shares_before":51,"shares_after":21,"assumed_cost":2.61322494506836,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:30:00-04:00","pnl":null},{"time":"2026-09-15T12:35:00-04:00","action":"S","shares":1,"quantity":-1,"price":174.5626688995361,"reference_price":174.64999389648438,"shares_before":21,"shares_after":20,"assumed_cost":0.0873249969482421,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:35:00-04:00","pnl":null},{"time":"2026-09-15T12:45:00-04:00","action":"S","shares":9,"quantity":-9,"price":174.26283110046387,"reference_price":174.35000610351562,"shares_before":20,"shares_after":11,"assumed_cost":0.7845750274658203,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:45:00-04:00","pnl":null},{"time":"2026-09-15T12:50:00-04:00","action":"S","shares":1,"quantity":-1,"price":174.85253244018557,"reference_price":174.94000244140625,"shares_before":11,"shares_after":10,"assumed_cost":0.0874700012207031,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:50:00-04:00","pnl":null},{"time":"2026-09-15T13:00:00-04:00","action":"S","shares":1,"quantity":-1,"price":175.09240267944338,"reference_price":175.17999267578125,"shares_before":10,"shares_after":9,"assumed_cost":0.0875899963378906,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:00:00-04:00","pnl":null},{"time":"2026-09-15T13:05:00-04:00","action":"B","shares":13,"quantity":13,"price":175.78285482788084,"reference_price":175.69500732421875,"shares_before":9,"shares_after":22,"assumed_cost":1.142017547607422,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:05:00-04:00","pnl":null},{"time":"2026-09-15T13:10:00-04:00","action":"S","shares":1,"quantity":-1,"price":175.2823101196289,"reference_price":175.3699951171875,"shares_before":22,"shares_after":21,"assumed_cost":0.0876849975585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:10:00-04:00","pnl":null},{"time":"2026-09-15T13:15:00-04:00","action":"S","shares":1,"quantity":-1,"price":175.35728482055666,"reference_price":175.44500732421875,"shares_before":21,"shares_after":20,"assumed_cost":0.0877225036621093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:15:00-04:00","pnl":null},{"time":"2026-09-15T13:20:00-04:00","action":"S","shares":14,"quantity":-14,"price":176.27432180023197,"reference_price":176.3625030517578,"shares_before":20,"shares_after":6,"assumed_cost":1.2345375213623049,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:20:00-04:00","pnl":null},{"time":"2026-09-15T13:25:00-04:00","action":"S","shares":6,"quantity":-6,"price":176.34177767944337,"reference_price":176.42999267578125,"shares_before":6,"shares_after":0,"assumed_cost":0.5292899780273438,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:25:00-04:00","pnl":null},{"time":"2026-09-15T13:25:00-04:00","action":"X","shares":46,"quantity":-46,"price":176.34177767944337,"reference_price":176.42999267578125,"shares_before":0,"shares_after":-46,"assumed_cost":4.057889831542969,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:25:00-04:00","pnl":null},{"time":"2026-09-15T13:30:00-04:00","action":"X","shares":4,"quantity":-4,"price":175.84202767944336,"reference_price":175.92999267578125,"shares_before":-46,"shares_after":-50,"assumed_cost":0.3518599853515625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:30:00-04:00","pnl":null},{"time":"2026-09-15T13:35:00-04:00","action":"X","shares":28,"quantity":-28,"price":175.84202767944336,"reference_price":175.92999267578125,"shares_before":-50,"shares_after":-78,"assumed_cost":2.4630198974609376,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:35:00-04:00","pnl":null},{"time":"2026-09-15T13:40:00-04:00","action":"X","shares":28,"quantity":-28,"price":175.96197805023195,"reference_price":176.0500030517578,"shares_before":-78,"shares_after":-106,"assumed_cost":2.4647000427246093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:40:00-04:00","pnl":null},{"time":"2026-09-15T13:45:00-04:00","action":"C","shares":1,"quantity":1,"price":175.85288188934325,"reference_price":175.76499938964844,"shares_before":-106,"shares_after":-105,"assumed_cost":0.0878824996948242,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:45:00-04:00","pnl":null},{"time":"2026-09-15T13:50:00-04:00","action":"C","shares":1,"quantity":1,"price":175.337625,"reference_price":175.25,"shares_before":-105,"shares_after":-104,"assumed_cost":0.087625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:50:00-04:00","pnl":null},{"time":"2026-09-15T13:55:00-04:00","action":"C","shares":71,"quantity":71,"price":174.5472367172241,"reference_price":174.4600067138672,"shares_before":-104,"shares_after":-33,"assumed_cost":6.193330238342285,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:55:00-04:00","pnl":null},{"time":"2026-09-15T14:05:00-04:00","action":"C","shares":26,"quantity":26,"price":173.65679232788085,"reference_price":173.57000732421875,"shares_before":-33,"shares_after":-7,"assumed_cost":2.256410095214844,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:05:00-04:00","pnl":null},{"time":"2026-09-15T14:10:00-04:00","action":"C","shares":1,"quantity":1,"price":174.18204872131346,"reference_price":174.09500122070312,"shares_before":-7,"shares_after":-6,"assumed_cost":0.0870475006103515,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:10:00-04:00","pnl":null},{"time":"2026-09-15T14:15:00-04:00","action":"C","shares":1,"quantity":1,"price":174.92741633605957,"reference_price":174.83999633789062,"shares_before":-6,"shares_after":-5,"assumed_cost":0.0874199981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:15:00-04:00","pnl":null},{"time":"2026-09-15T14:35:00-04:00","action":"C","shares":5,"quantity":5,"price":175.0074581680298,"reference_price":174.9199981689453,"shares_before":-5,"shares_after":0,"assumed_cost":0.4372999954223633,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:35:00-04:00","pnl":null},{"time":"2026-09-15T14:35:00-04:00","action":"B","shares":9,"quantity":9,"price":175.0074581680298,"reference_price":174.9199981689453,"shares_before":0,"shares_after":9,"assumed_cost":0.787139991760254,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:35:00-04:00","pnl":null},{"time":"2026-09-15T14:40:00-04:00","action":"B","shares":4,"quantity":4,"price":175.32762549591064,"reference_price":175.24000549316406,"shares_before":9,"shares_after":13,"assumed_cost":0.3504800109863281,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:40:00-04:00","pnl":null},{"time":"2026-09-15T14:45:00-04:00","action":"B","shares":7,"quantity":7,"price":175.20755511474607,"reference_price":175.1199951171875,"shares_before":13,"shares_after":20,"assumed_cost":0.6129199829101563,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:45:00-04:00","pnl":null},{"time":"2026-09-15T14:50:00-04:00","action":"B","shares":34,"quantity":34,"price":174.6672918319702,"reference_price":174.5800018310547,"shares_before":20,"shares_after":54,"assumed_cost":2.967860031127929,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:50:00-04:00","pnl":null},{"time":"2026-09-15T14:55:00-04:00","action":"S","shares":1,"quantity":-1,"price":174.47271755981447,"reference_price":174.55999755859375,"shares_before":54,"shares_after":53,"assumed_cost":0.0872799987792968,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:55:00-04:00","pnl":null},{"time":"2026-09-15T15:05:00-04:00","action":"S","shares":1,"quantity":-1,"price":174.82404327392578,"reference_price":174.9114990234375,"shares_before":53,"shares_after":52,"assumed_cost":0.0874557495117187,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:05:00-04:00","pnl":null},{"time":"2026-09-15T15:10:00-04:00","action":"B","shares":74,"quantity":74,"price":174.6122563934326,"reference_price":174.52499389648438,"shares_before":52,"shares_after":126,"assumed_cost":6.4574247741699216,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:10:00-04:00","pnl":null},{"time":"2026-09-15T15:15:00-04:00","action":"S","shares":71,"quantity":-71,"price":173.59815505981447,"reference_price":173.68499755859375,"shares_before":126,"shares_after":55,"assumed_cost":6.165817413330078,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:15:00-04:00","pnl":null},{"time":"2026-09-15T15:20:00-04:00","action":"S","shares":55,"quantity":-55,"price":173.83804055023194,"reference_price":173.9250030517578,"shares_before":55,"shares_after":0,"assumed_cost":4.78293758392334,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:20:00-04:00","pnl":null},{"time":"2026-09-15T15:20:00-04:00","action":"X","shares":27,"quantity":-27,"price":173.83804055023194,"reference_price":173.9250030517578,"shares_before":0,"shares_after":-27,"assumed_cost":2.3479875411987305,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:20:00-04:00","pnl":null},{"time":"2026-09-15T15:25:00-04:00","action":"C","shares":1,"quantity":1,"price":173.855881690979,"reference_price":173.7689971923828,"shares_before":-27,"shares_after":-26,"assumed_cost":0.0868844985961914,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:25:00-04:00","pnl":null},{"time":"2026-09-15T15:30:00-04:00","action":"C","shares":1,"quantity":1,"price":173.79686171722412,"reference_price":173.7100067138672,"shares_before":-26,"shares_after":-25,"assumed_cost":0.0868550033569336,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:30:00-04:00","pnl":null},{"time":"2026-09-15T15:35:00-04:00","action":"C","shares":25,"quantity":25,"price":173.69680561065672,"reference_price":173.61000061035156,"shares_before":-25,"shares_after":0,"assumed_cost":2.1701250076293945,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:35:00-04:00","pnl":null},{"time":"2026-09-15T15:35:00-04:00","action":"B","shares":33,"quantity":33,"price":173.69680561065672,"reference_price":173.61000061035156,"shares_before":0,"shares_after":33,"assumed_cost":2.864565010070801,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:35:00-04:00","pnl":null},{"time":"2026-09-15T15:40:00-04:00","action":"S","shares":33,"quantity":-33,"price":173.06341889953617,"reference_price":173.14999389648438,"shares_before":33,"shares_after":0,"assumed_cost":2.856974899291992,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:40:00-04:00","pnl":null}],"marks":[{"time":"2026-09-15T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:40:00-04:00","shares":-135,"pnl":-342.87269966125314},{"time":"2026-09-15T09:45:00-04:00","shares":-64,"pnl":-356.77834429168433},{"time":"2026-09-15T09:50:00-04:00","shares":-11,"pnl":-354.8466009674048},{"time":"2026-09-15T09:55:00-04:00","shares":41,"pnl":-331.8935709381067},{"time":"2026-09-15T10:00:00-04:00","shares":41,"pnl":-340.0077371978723},{"time":"2026-09-15T10:05:00-04:00","shares":41,"pnl":-377.7276621246301},{"time":"2026-09-15T10:10:00-04:00","shares":154,"pnl":-418.1262884597745},{"time":"2026-09-15T10:15:00-04:00","shares":141,"pnl":-465.8918437881439},{"time":"2026-09-15T10:20:00-04:00","shares":115,"pnl":-478.7600086441016},{"time":"2026-09-15T10:25:00-04:00","shares":48,"pnl":-487.7428989334076},{"time":"2026-09-15T10:30:00-04:00","shares":61,"pnl":-504.2513307876561},{"time":"2026-09-15T10:35:00-04:00","shares":60,"pnl":-498.93684551238766},{"time":"2026-09-15T10:40:00-04:00","shares":52,"pnl":-480.89953374481047},{"time":"2026-09-15T10:45:00-04:00","shares":52,"pnl":-490.5194067916855},{"time":"2026-09-15T10:50:00-04:00","shares":17,"pnl":-498.3166381607034},{"time":"2026-09-15T10:55:00-04:00","shares":35,"pnl":-502.6444371566749},{"time":"2026-09-15T11:00:00-04:00","shares":34,"pnl":-500.1494183349587},{"time":"2026-09-15T11:05:00-04:00","shares":34,"pnl":-480.7696881103493},{"time":"2026-09-15T11:10:00-04:00","shares":34,"pnl":-456.79962585448993},{"time":"2026-09-15T11:15:00-04:00","shares":33,"pnl":-469.4057003860453},{"time":"2026-09-15T11:20:00-04:00","shares":33,"pnl":-457.5458218460062},{"time":"2026-09-15T11:25:00-04:00","shares":5,"pnl":-461.56445160674775},{"time":"2026-09-15T11:30:00-04:00","shares":0,"pnl":-462.0441754226656},{"time":"2026-09-15T11:35:00-04:00","shares":-57,"pnl":-498.8577714538533},{"time":"2026-09-15T11:40:00-04:00","shares":-29,"pnl":-504.4072739868116},{"time":"2026-09-15T11:45:00-04:00","shares":-29,"pnl":-516.8770615844678},{"time":"2026-09-15T11:50:00-04:00","shares":-25,"pnl":-514.1320226135203},{"time":"2026-09-15T11:55:00-04:00","shares":27,"pnl":-513.4656249999944},{"time":"2026-09-15T12:00:00-04:00","shares":26,"pnl":-495.46441204833445},{"time":"2026-09-15T12:05:00-04:00","shares":46,"pnl":-520.783667724605},{"time":"2026-09-15T12:10:00-04:00","shares":70,"pnl":-490.3191475830026},{"time":"2026-09-15T12:15:00-04:00","shares":80,"pnl":-495.0462660369813},{"time":"2026-09-15T12:20:00-04:00","shares":128,"pnl":-434.4058931121763},{"time":"2026-09-15T12:25:00-04:00","shares":52,"pnl":-451.1737195281912},{"time":"2026-09-15T12:30:00-04:00","shares":51,"pnl":-423.037089561456},{"time":"2026-09-15T12:35:00-04:00","shares":21,"pnl":-416.53367632293066},{"time":"2026-09-15T12:40:00-04:00","shares":20,"pnl":-417.9908438491757},{"time":"2026-09-15T12:45:00-04:00","shares":20,"pnl":-421.8909903335507},{"time":"2026-09-15T12:50:00-04:00","shares":11,"pnl":-416.3955055465631},{"time":"2026-09-15T12:55:00-04:00","shares":10,"pnl":-413.6728254012992},{"time":"2026-09-15T13:00:00-04:00","shares":10,"pnl":-414.0729108505179},{"time":"2026-09-15T13:05:00-04:00","shares":9,"pnl":-409.4254239425589},{"time":"2026-09-15T13:10:00-04:00","shares":22,"pnl":-418.1574683456347},{"time":"2026-09-15T13:15:00-04:00","shares":21,"pnl":-417.1754206771775},{"time":"2026-09-15T13:20:00-04:00","shares":20,"pnl":-399.2179466476364},{"time":"2026-09-15T13:25:00-04:00","shares":6,"pnl":-399.09747318267046},{"time":"2026-09-15T13:30:00-04:00","shares":-46,"pnl":-379.4652316055217},{"time":"2026-09-15T13:35:00-04:00","shares":-50,"pnl":-382.486769325249},{"time":"2026-09-15T13:40:00-04:00","shares":-78,"pnl":-392.5604154434132},{"time":"2026-09-15T13:45:00-04:00","shares":-106,"pnl":-370.6455683669956},{"time":"2026-09-15T13:50:00-04:00","shares":-105,"pnl":-310.8276738891509},{"time":"2026-09-15T13:55:00-04:00","shares":-104,"pnl":-228.7559971313385},{"time":"2026-09-15T14:00:00-04:00","shares":-33,"pnl":-226.45813169096985},{"time":"2026-09-15T14:05:00-04:00","shares":-33,"pnl":-205.0838641128448},{"time":"2026-09-15T14:10:00-04:00","shares":-7,"pnl":-211.5107148818879},{"time":"2026-09-15T14:15:00-04:00","shares":-6,"pnl":-216.02452019499825},{"time":"2026-09-15T14:20:00-04:00","shares":-5,"pnl":-215.85516529082335},{"time":"2026-09-15T14:25:00-04:00","shares":-5,"pnl":-217.23013477324525},{"time":"2026-09-15T14:30:00-04:00","shares":-5,"pnl":-218.7801988601593},{"time":"2026-09-15T14:35:00-04:00","shares":-5,"pnl":-216.58865528105773},{"time":"2026-09-15T14:40:00-04:00","shares":9,"pnl":-214.8995363082795},{"time":"2026-09-15T14:45:00-04:00","shares":13,"pnl":-216.4850321884064},{"time":"2026-09-15T14:50:00-04:00","shares":20,"pnl":-228.42282704924585},{"time":"2026-09-15T14:55:00-04:00","shares":54,"pnl":-227.95092877959175},{"time":"2026-09-15T15:00:00-04:00","shares":53,"pnl":-229.5439766006366},{"time":"2026-09-15T15:05:00-04:00","shares":53,"pnl":-215.7958076553241},{"time":"2026-09-15T15:10:00-04:00","shares":52,"pnl":-233.9144523696796},{"time":"2026-09-15T15:15:00-04:00","shares":126,"pnl":-343.06026215361635},{"time":"2026-09-15T15:20:00-04:00","shares":55,"pnl":-339.1769310073741},{"time":"2026-09-15T15:25:00-04:00","shares":-27,"pnl":-341.5827737350346},{"time":"2026-09-15T15:30:00-04:00","shares":-26,"pnl":-339.8684649963261},{"time":"2026-09-15T15:35:00-04:00","shares":-25,"pnl":-338.2355324020268},{"time":"2026-09-15T15:40:00-04:00","shares":33,"pnl":-358.45044397734455},{"time":"2026-09-15T15:45:00-04:00","shares":0,"pnl":-361.3074188766359},{"time":"2026-09-15T15:50:00-04:00","shares":0,"pnl":-361.3074188766359}],"summary":{"net_pnl":-361.3074188766359,"gross_pnl":-220.7275848388551,"cost":140.57983403778078,"fill_count":66,"ending_shares":0},"source_hashes":{"fills_sha256":"fc041ca2110e65c2aa1b2451af35dddf6e1d4c0529f7129eb32197d05bb3919e","marks_sha256":"6e44c2f3ee324a26fae71ec87c708a785c03a085196cb5a32334c2487b84477e","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-15/levels_error_risk/SNDK.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"SNDK","date":"2026-09-15","variant":"levels_error_risk","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-15T15:50:00-04:00","partial":true,"starting_equity":47958.07,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-15T09:30:00-04:00","session_close":"2026-09-15T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-15T09:35:00-04:00","bar_open":"2026-09-15T09:30:00-04:00","open":1569.7099609375,"high":1579.989990234375,"low":1555.550048828125,"close":1572.280029296875,"volume":569439.0,"vwap":1569.2733561197917},{"time":"2026-09-15T09:40:00-04:00","bar_open":"2026-09-15T09:35:00-04:00","open":1572.5400390625,"high":1578.4814453125,"low":1550.010009765625,"close":1550.2587890625,"volume":275354.0,"vwap":1566.1149917323305},{"time":"2026-09-15T09:45:00-04:00","bar_open":"2026-09-15T09:40:00-04:00","open":1550.6199951171875,"high":1557.849853515625,"low":1546.1500244140625,"close":1549.6700439453125,"volume":195439.0,"vwap":1563.3171390269736},{"time":"2026-09-15T09:50:00-04:00","bar_open":"2026-09-15T09:45:00-04:00","open":1550.1600341796875,"high":1565.0999755859375,"low":1550.0899658203125,"close":1564.5050048828125,"volume":193643.0,"vwap":1562.7805925714176},{"time":"2026-09-15T09:55:00-04:00","bar_open":"2026-09-15T09:50:00-04:00","open":1564.4100341796875,"high":1565.43994140625,"low":1551.81005859375,"close":1555.5401611328125,"volume":114869.0,"vwap":1562.3390957306299},{"time":"2026-09-15T10:00:00-04:00","bar_open":"2026-09-15T09:55:00-04:00","open":1556.4300537109375,"high":1561.9300537109375,"low":1549.0,"close":1557.39501953125,"volume":125708.0,"vwap":1561.80787897322},{"time":"2026-09-15T10:05:00-04:00","bar_open":"2026-09-15T10:00:00-04:00","open":1557.0,"high":1564.0,"low":1556.1300048828125,"close":1559.2349853515625,"volume":102321.0,"vwap":1561.676825065971},{"time":"2026-09-15T10:10:00-04:00","bar_open":"2026-09-15T10:05:00-04:00","open":1559.2550048828125,"high":1568.0,"low":1558.0,"close":1565.0,"volume":100644.0,"vwap":1561.7962143520342},{"time":"2026-09-15T10:15:00-04:00","bar_open":"2026-09-15T10:10:00-04:00","open":1565.0250244140625,"high":1567.199951171875,"low":1558.170654296875,"close":1559.2900390625,"volume":122090.0,"vwap":1561.779750335334},{"time":"2026-09-15T10:20:00-04:00","bar_open":"2026-09-15T10:15:00-04:00","open":1559.2750244140625,"high":1565.449951171875,"low":1558.8800048828125,"close":1564.074951171875,"volume":76252.0,"vwap":1561.8212912827817},{"time":"2026-09-15T10:25:00-04:00","bar_open":"2026-09-15T10:20:00-04:00","open":1564.21875,"high":1566.4300537109375,"low":1556.4901123046875,"close":1562.3599853515625,"volume":98025.0,"vwap":1561.81824984964},{"time":"2026-09-15T10:30:00-04:00","bar_open":"2026-09-15T10:25:00-04:00","open":1563.175048828125,"high":1565.5899658203125,"low":1554.6099853515625,"close":1563.7049560546875,"volume":97688.0,"vwap":1561.793886981627},{"time":"2026-09-15T10:35:00-04:00","bar_open":"2026-09-15T10:30:00-04:00","open":1563.5350341796875,"high":1568.06005859375,"low":1558.56005859375,"close":1561.4200439453125,"volume":111417.0,"vwap":1561.839117883647},{"time":"2026-09-15T10:40:00-04:00","bar_open":"2026-09-15T10:35:00-04:00","open":1561.050048828125,"high":1563.344970703125,"low":1554.31005859375,"close":1554.8006591796875,"volume":83128.0,"vwap":1561.6793970897584},{"time":"2026-09-15T10:45:00-04:00","bar_open":"2026-09-15T10:40:00-04:00","open":1555.1500244140625,"high":1555.5400390625,"low":1550.10009765625,"close":1553.0400390625,"volume":100037.0,"vwap":1561.3079239118601},{"time":"2026-09-15T10:50:00-04:00","bar_open":"2026-09-15T10:45:00-04:00","open":1552.824951171875,"high":1554.5499267578125,"low":1548.02001953125,"close":1549.530029296875,"volume":80030.0,"vwap":1560.9608578250243},{"time":"2026-09-15T10:55:00-04:00","bar_open":"2026-09-15T10:50:00-04:00","open":1549.8800048828125,"high":1549.8800048828125,"low":1540.0999755859375,"close":1543.530029296875,"volume":140005.0,"vwap":1560.0698849077296},{"time":"2026-09-15T11:00:00-04:00","bar_open":"2026-09-15T10:55:00-04:00","open":1543.60498046875,"high":1545.1600341796875,"low":1540.0,"close":1542.760009765625,"volume":102587.0,"vwap":1559.4048445308713},{"time":"2026-09-15T11:05:00-04:00","bar_open":"2026-09-15T11:00:00-04:00","open":1542.6199951171875,"high":1545.1988525390625,"low":1539.199951171875,"close":1541.4949951171875,"volume":77438.0,"vwap":1558.916600848134},{"time":"2026-09-15T11:10:00-04:00","bar_open":"2026-09-15T11:05:00-04:00","open":1541.4949951171875,"high":1542.3505859375,"low":1535.242431640625,"close":1535.5,"volume":73098.0,"vwap":1558.370300951371},{"time":"2026-09-15T11:15:00-04:00","bar_open":"2026-09-15T11:10:00-04:00","open":1535.5050048828125,"high":1537.4898681640625,"low":1528.0,"close":1537.1300048828125,"volume":154258.0,"vwap":1557.1251104449236},{"time":"2026-09-15T11:20:00-04:00","bar_open":"2026-09-15T11:15:00-04:00","open":1537.1300048828125,"high":1538.3599853515625,"low":1533.182373046875,"close":1534.0,"volume":61531.0,"vwap":1556.6831281937725},{"time":"2026-09-15T11:25:00-04:00","bar_open":"2026-09-15T11:20:00-04:00","open":1533.5699462890625,"high":1537.0,"low":1532.5301513671875,"close":1533.81494140625,"volume":50062.0,"vwap":1556.3246437597493},{"time":"2026-09-15T11:30:00-04:00","bar_open":"2026-09-15T11:25:00-04:00","open":1533.81494140625,"high":1537.1800537109375,"low":1533.7301025390625,"close":1535.0050048828125,"volume":55724.0,"vwap":1555.9540728747513},{"time":"2026-09-15T11:35:00-04:00","bar_open":"2026-09-15T11:30:00-04:00","open":1535.6199951171875,"high":1541.9998779296875,"low":1535.6199951171875,"close":1540.199951171875,"volume":70887.0,"vwap":1555.5881783762939},{"time":"2026-09-15T11:40:00-04:00","bar_open":"2026-09-15T11:35:00-04:00","open":1539.81005859375,"high":1542.389892578125,"low":1539.5699462890625,"close":1541.050048828125,"volume":46618.0,"vwap":1555.3807782876647},{"time":"2026-09-15T11:45:00-04:00","bar_open":"2026-09-15T11:40:00-04:00","open":1540.699951171875,"high":1543.4200439453125,"low":1538.3900146484375,"close":1540.3299560546875,"volume":52651.0,"vwap":1555.1489354169803},{"time":"2026-09-15T11:50:00-04:00","bar_open":"2026-09-15T11:45:00-04:00","open":1540.1300048828125,"high":1541.0400390625,"low":1536.7099609375,"close":1536.8563232421875,"volume":71271.0,"vwap":1554.7939261921524},{"time":"2026-09-15T11:55:00-04:00","bar_open":"2026-09-15T11:50:00-04:00","open":1537.989990234375,"high":1540.9476318359375,"low":1534.43994140625,"close":1536.1650390625,"volume":45735.0,"vwap":1554.5603436653187},{"time":"2026-09-15T12:00:00-04:00","bar_open":"2026-09-15T11:55:00-04:00","open":1536.1650390625,"high":1536.6199951171875,"low":1530.0,"close":1530.2099609375,"volume":58877.0,"vwap":1554.1862170582085},{"time":"2026-09-15T12:05:00-04:00","bar_open":"2026-09-15T12:00:00-04:00","open":1530.864990234375,"high":1535.969970703125,"low":1530.010009765625,"close":1534.1031494140625,"volume":52286.0,"vwap":1553.8802797807582},{"time":"2026-09-15T12:10:00-04:00","bar_open":"2026-09-15T12:05:00-04:00","open":1533.7099609375,"high":1534.9998779296875,"low":1524.050048828125,"close":1524.300048828125,"volume":93126.0,"vwap":1553.2148508046826},{"time":"2026-09-15T12:15:00-04:00","bar_open":"2026-09-15T12:10:00-04:00","open":1524.510009765625,"high":1525.1302490234375,"low":1516.0,"close":1518.0,"volume":193479.0,"vwap":1551.5292174186143},{"time":"2026-09-15T12:20:00-04:00","bar_open":"2026-09-15T12:15:00-04:00","open":1518.0,"high":1522.8399658203125,"low":1517.949951171875,"close":1522.5999755859375,"volume":109541.0,"vwap":1550.6873091037537},{"time":"2026-09-15T12:25:00-04:00","bar_open":"2026-09-15T12:20:00-04:00","open":1522.780029296875,"high":1531.0,"low":1522.64013671875,"close":1529.280029296875,"volume":87724.0,"vwap":1550.1872333454894},{"time":"2026-09-15T12:30:00-04:00","bar_open":"2026-09-15T12:25:00-04:00","open":1529.010009765625,"high":1529.800048828125,"low":1525.0,"close":1525.2674560546875,"volume":50280.0,"vwap":1549.8985924740339},{"time":"2026-09-15T12:35:00-04:00","bar_open":"2026-09-15T12:30:00-04:00","open":1525.0,"high":1527.6800537109375,"low":1519.56005859375,"close":1524.699951171875,"volume":54353.0,"vwap":1549.5589389365928},{"time":"2026-09-15T12:40:00-04:00","bar_open":"2026-09-15T12:35:00-04:00","open":1524.699951171875,"high":1527.93994140625,"low":1523.3350830078125,"close":1527.8900146484375,"volume":34974.0,"vwap":1549.3651909243024},{"time":"2026-09-15T12:45:00-04:00","bar_open":"2026-09-15T12:40:00-04:00","open":1527.5899658203125,"high":1529.34814453125,"low":1525.5101318359375,"close":1526.02001953125,"volume":41995.0,"vwap":1549.1424637049008},{"time":"2026-09-15T12:50:00-04:00","bar_open":"2026-09-15T12:45:00-04:00","open":1525.7869873046875,"high":1529.2703857421875,"low":1523.8900146484375,"close":1526.5999755859375,"volume":38067.0,"vwap":1548.9410334787135},{"time":"2026-09-15T12:55:00-04:00","bar_open":"2026-09-15T12:50:00-04:00","open":1526.530029296875,"high":1530.409912109375,"low":1526.35498046875,"close":1529.52001953125,"volume":42878.0,"vwap":1548.7400704503937},{"time":"2026-09-15T13:00:00-04:00","bar_open":"2026-09-15T12:55:00-04:00","open":1529.8499755859375,"high":1531.8800048828125,"low":1527.5400390625,"close":1530.969970703125,"volume":42521.0,"vwap":1548.55807654554},{"time":"2026-09-15T13:05:00-04:00","bar_open":"2026-09-15T13:00:00-04:00","open":1531.18994140625,"high":1532.64990234375,"low":1526.8184814453125,"close":1527.4320068359375,"volume":51078.0,"vwap":1548.3306034229092},{"time":"2026-09-15T13:10:00-04:00","bar_open":"2026-09-15T13:05:00-04:00","open":1527.56005859375,"high":1534.369873046875,"low":1526.8675537109375,"close":1531.1300048828125,"volume":42838.0,"vwap":1548.1614348511798},{"time":"2026-09-15T13:15:00-04:00","bar_open":"2026-09-15T13:10:00-04:00","open":1531.8800048828125,"high":1533.3299560546875,"low":1529.8800048828125,"close":1531.739990234375,"volume":44862.0,"vwap":1547.9963434502015},{"time":"2026-09-15T13:20:00-04:00","bar_open":"2026-09-15T13:15:00-04:00","open":1531.5799560546875,"high":1533.969482421875,"low":1530.550048828125,"close":1533.0350341796875,"volume":44740.0,"vwap":1547.8435282097548},{"time":"2026-09-15T13:25:00-04:00","bar_open":"2026-09-15T13:20:00-04:00","open":1533.0350341796875,"high":1534.1600341796875,"low":1530.5,"close":1531.191162109375,"volume":40909.0,"vwap":1547.7013356886034},{"time":"2026-09-15T13:30:00-04:00","bar_open":"2026-09-15T13:25:00-04:00","open":1531.2900390625,"high":1532.5699462890625,"low":1530.859619140625,"close":1531.739990234375,"volume":34411.0,"vwap":1547.5819874136446},{"time":"2026-09-15T13:35:00-04:00","bar_open":"2026-09-15T13:30:00-04:00","open":1531.4100341796875,"high":1537.4000244140625,"low":1531.4100341796875,"close":1534.8699951171875,"volume":43185.0,"vwap":1547.4610530211546},{"time":"2026-09-15T13:40:00-04:00","bar_open":"2026-09-15T13:35:00-04:00","open":1534.7349853515625,"high":1537.8133544921875,"low":1533.8299560546875,"close":1534.5050048828125,"volume":38615.0,"vwap":1547.3615789616795},{"time":"2026-09-15T13:45:00-04:00","bar_open":"2026-09-15T13:40:00-04:00","open":1534.780029296875,"high":1536.4000244140625,"low":1532.47998046875,"close":1535.030029296875,"volume":34966.0,"vwap":1547.267385169134},{"time":"2026-09-15T13:50:00-04:00","bar_open":"2026-09-15T13:45:00-04:00","open":1535.3349609375,"high":1535.6700439453125,"low":1525.9000244140625,"close":1527.1474609375,"volume":58254.0,"vwap":1547.0518232487132},{"time":"2026-09-15T13:55:00-04:00","bar_open":"2026-09-15T13:50:00-04:00","open":1526.92431640625,"high":1528.2750244140625,"low":1524.0,"close":1525.4649658203125,"volume":48438.0,"vwap":1546.8398495449253},{"time":"2026-09-15T14:00:00-04:00","bar_open":"2026-09-15T13:55:00-04:00","open":1525.837158203125,"high":1527.47998046875,"low":1522.25,"close":1523.1600341796875,"volume":43448.0,"vwap":1546.6388857788024},{"time":"2026-09-15T14:05:00-04:00","bar_open":"2026-09-15T14:00:00-04:00","open":1523.6300048828125,"high":1524.1500244140625,"low":1517.3399658203125,"close":1520.06005859375,"volume":82430.0,"vwap":1546.204431407939},{"time":"2026-09-15T14:10:00-04:00","bar_open":"2026-09-15T14:05:00-04:00","open":1520.06005859375,"high":1522.3223876953125,"low":1517.93994140625,"close":1518.25,"volume":47902.0,"vwap":1545.9488425577724},{"time":"2026-09-15T14:15:00-04:00","bar_open":"2026-09-15T14:10:00-04:00","open":1517.8499755859375,"high":1518.25,"low":1514.4200439453125,"close":1516.43994140625,"volume":81238.0,"vwap":1545.476324482689},{"time":"2026-09-15T14:20:00-04:00","bar_open":"2026-09-15T14:15:00-04:00","open":1516.5050048828125,"high":1518.68994140625,"low":1513.2099609375,"close":1515.3050537109375,"volume":44831.0,"vwap":1545.2164252050616},{"time":"2026-09-15T14:25:00-04:00","bar_open":"2026-09-15T14:20:00-04:00","open":1514.8199462890625,"high":1515.5699462890625,"low":1512.8900146484375,"close":1513.8349609375,"volume":42694.0,"vwap":1544.9595944618939},{"time":"2026-09-15T14:30:00-04:00","bar_open":"2026-09-15T14:25:00-04:00","open":1513.75,"high":1518.68994140625,"low":1513.300048828125,"close":1517.8299560546875,"volume":55569.0,"vwap":1544.6582542121414},{"time":"2026-09-15T14:35:00-04:00","bar_open":"2026-09-15T14:30:00-04:00","open":1517.719970703125,"high":1518.199951171875,"low":1513.0,"close":1513.3349609375,"volume":46782.0,"vwap":1544.393863392175},{"time":"2026-09-15T14:40:00-04:00","bar_open":"2026-09-15T14:35:00-04:00","open":1513.489990234375,"high":1516.739990234375,"low":1509.14013671875,"close":1515.68994140625,"volume":54777.0,"vwap":1544.0800304762838},{"time":"2026-09-15T14:45:00-04:00","bar_open":"2026-09-15T14:40:00-04:00","open":1515.81494140625,"high":1515.81494140625,"low":1511.3499755859375,"close":1514.60498046875,"volume":57255.0,"vwap":1543.7595299238935},{"time":"2026-09-15T14:50:00-04:00","bar_open":"2026-09-15T14:45:00-04:00","open":1514.97802734375,"high":1516.6500244140625,"low":1513.56005859375,"close":1515.4100341796875,"volume":35790.0,"vwap":1543.5710929158104},{"time":"2026-09-15T14:55:00-04:00","bar_open":"2026-09-15T14:50:00-04:00","open":1516.0,"high":1518.9000244140625,"low":1515.949951171875,"close":1516.989990234375,"volume":55000.0,"vwap":1543.3071289926204},{"time":"2026-09-15T15:00:00-04:00","bar_open":"2026-09-15T14:55:00-04:00","open":1516.100830078125,"high":1517.2470703125,"low":1514.0699462890625,"close":1516.1199951171875,"volume":33855.0,"vwap":1543.1382519622155},{"time":"2026-09-15T15:05:00-04:00","bar_open":"2026-09-15T15:00:00-04:00","open":1516.046142578125,"high":1521.6099853515625,"low":1515.52001953125,"close":1520.4100341796875,"volume":53151.0,"vwap":1542.9094309742286},{"time":"2026-09-15T15:10:00-04:00","bar_open":"2026-09-15T15:05:00-04:00","open":1520.405029296875,"high":1521.47705078125,"low":1517.5999755859375,"close":1519.405029296875,"volume":51466.0,"vwap":1542.6948684672477},{"time":"2026-09-15T15:15:00-04:00","bar_open":"2026-09-15T15:10:00-04:00","open":1519.6400146484375,"high":1520.616455078125,"low":1517.0,"close":1517.8599853515625,"volume":31233.0,"vwap":1542.5610237803965},{"time":"2026-09-15T15:20:00-04:00","bar_open":"2026-09-15T15:15:00-04:00","open":1517.860107421875,"high":1519.6400146484375,"low":1516.4000244140625,"close":1519.12255859375,"volume":42654.0,"vwap":1542.3798252197182},{"time":"2026-09-15T15:25:00-04:00","bar_open":"2026-09-15T15:20:00-04:00","open":1518.5450439453125,"high":1520.0350341796875,"low":1516.9818115234375,"close":1519.079345703125,"volume":29608.0,"vwap":1542.2572471954834},{"time":"2026-09-15T15:30:00-04:00","bar_open":"2026-09-15T15:25:00-04:00","open":1518.8299560546875,"high":1522.2158203125,"low":1518.590087890625,"close":1520.1800537109375,"volume":50619.0,"vwap":1542.0648938479196},{"time":"2026-09-15T15:35:00-04:00","bar_open":"2026-09-15T15:30:00-04:00","open":1520.0699462890625,"high":1530.8599853515625,"low":1520.0699462890625,"close":1530.300048828125,"volume":125249.0,"vwap":1541.7464925458535},{"time":"2026-09-15T15:40:00-04:00","bar_open":"2026-09-15T15:35:00-04:00","open":1530.0,"high":1531.8800048828125,"low":1528.0,"close":1529.219970703125,"volume":113396.0,"vwap":1541.5191737927908},{"time":"2026-09-15T15:45:00-04:00","bar_open":"2026-09-15T15:40:00-04:00","open":1529.594970703125,"high":1532.5,"low":1529.219970703125,"close":1531.8399658203125,"volume":72354.0,"vwap":1541.3962466068604},{"time":"2026-09-15T15:50:00-04:00","bar_open":"2026-09-15T15:45:00-04:00","open":1532.0,"high":1535.885009765625,"low":1527.6800537109375,"close":1528.5,"volume":143003.0,"vwap":1541.1502471215763}],"fills":[{"time":"2026-09-15T09:45:00-04:00","action":"X","shares":5,"quantity":-5,"price":1549.3849541625978,"reference_price":1550.1600341796875,"shares_before":0,"shares_after":-5,"assumed_cost":3.8754000854492183,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:45:00-04:00","pnl":null},{"time":"2026-09-15T09:55:00-04:00","action":"X","shares":2,"quantity":-2,"price":1555.651838684082,"reference_price":1556.4300537109375,"shares_before":-5,"shares_after":-7,"assumed_cost":1.5564300537109377,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:55:00-04:00","pnl":null},{"time":"2026-09-15T10:00:00-04:00","action":"C","shares":1,"quantity":1,"price":1557.7785,"reference_price":1557.0,"shares_before":-7,"shares_after":-6,"assumed_cost":0.7785,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:00:00-04:00","pnl":null},{"time":"2026-09-15T10:10:00-04:00","action":"C","shares":1,"quantity":1,"price":1565.8075369262694,"reference_price":1565.0250244140625,"shares_before":-6,"shares_after":-5,"assumed_cost":0.7825125122070312,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:10:00-04:00","pnl":null},{"time":"2026-09-15T10:15:00-04:00","action":"C","shares":5,"quantity":5,"price":1560.0546619262695,"reference_price":1559.2750244140625,"shares_before":-5,"shares_after":0,"assumed_cost":3.898187561035156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:15:00-04:00","pnl":null},{"time":"2026-09-15T10:20:00-04:00","action":"B","shares":4,"quantity":4,"price":1565.000859375,"reference_price":1564.21875,"shares_before":0,"shares_after":4,"assumed_cost":3.1284375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:20:00-04:00","pnl":null},{"time":"2026-09-15T10:35:00-04:00","action":"S","shares":1,"quantity":-1,"price":1560.269523803711,"reference_price":1561.050048828125,"shares_before":4,"shares_after":3,"assumed_cost":0.7805250244140625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:35:00-04:00","pnl":null},{"time":"2026-09-15T10:40:00-04:00","action":"S","shares":1,"quantity":-1,"price":1554.3724494018556,"reference_price":1555.1500244140625,"shares_before":3,"shares_after":2,"assumed_cost":0.7775750122070313,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:40:00-04:00","pnl":null},{"time":"2026-09-15T10:45:00-04:00","action":"S","shares":2,"quantity":-2,"price":1552.0485386962891,"reference_price":1552.824951171875,"shares_before":2,"shares_after":0,"assumed_cost":1.552824951171875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:45:00-04:00","pnl":null},{"time":"2026-09-15T11:15:00-04:00","action":"B","shares":2,"quantity":2,"price":1537.898569885254,"reference_price":1537.1300048828125,"shares_before":0,"shares_after":2,"assumed_cost":1.5371300048828125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:15:00-04:00","pnl":null},{"time":"2026-09-15T11:20:00-04:00","action":"S","shares":2,"quantity":-2,"price":1532.803161315918,"reference_price":1533.5699462890625,"shares_before":2,"shares_after":0,"assumed_cost":1.5335699462890624,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:20:00-04:00","pnl":null},{"time":"2026-09-15T11:45:00-04:00","action":"B","shares":2,"quantity":2,"price":1540.9000698852535,"reference_price":1540.1300048828125,"shares_before":0,"shares_after":2,"assumed_cost":1.5401300048828126,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:45:00-04:00","pnl":null},{"time":"2026-09-15T11:50:00-04:00","action":"S","shares":2,"quantity":-2,"price":1537.220995239258,"reference_price":1537.989990234375,"shares_before":2,"shares_after":0,"assumed_cost":1.537989990234375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:50:00-04:00","pnl":null},{"time":"2026-09-15T12:35:00-04:00","action":"B","shares":2,"quantity":2,"price":1525.462301147461,"reference_price":1524.699951171875,"shares_before":0,"shares_after":2,"assumed_cost":1.524699951171875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:35:00-04:00","pnl":null},{"time":"2026-09-15T12:40:00-04:00","action":"S","shares":1,"quantity":-1,"price":1526.8261708374023,"reference_price":1527.5899658203125,"shares_before":2,"shares_after":1,"assumed_cost":0.7637949829101562,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:40:00-04:00","pnl":null},{"time":"2026-09-15T12:55:00-04:00","action":"B","shares":1,"quantity":1,"price":1530.6149005737304,"reference_price":1529.8499755859375,"shares_before":1,"shares_after":2,"assumed_cost":0.7649249877929688,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:55:00-04:00","pnl":null},{"time":"2026-09-15T13:05:00-04:00","action":"S","shares":2,"quantity":-2,"price":1526.7962785644531,"reference_price":1527.56005859375,"shares_before":2,"shares_after":0,"assumed_cost":1.52756005859375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:05:00-04:00","pnl":null},{"time":"2026-09-15T13:10:00-04:00","action":"B","shares":1,"quantity":1,"price":1532.6459448852538,"reference_price":1531.8800048828125,"shares_before":0,"shares_after":1,"assumed_cost":0.7659400024414063,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:10:00-04:00","pnl":null},{"time":"2026-09-15T13:15:00-04:00","action":"S","shares":1,"quantity":-1,"price":1530.8141660766605,"reference_price":1531.5799560546875,"shares_before":1,"shares_after":0,"assumed_cost":0.7657899780273437,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:15:00-04:00","pnl":null},{"time":"2026-09-15T13:25:00-04:00","action":"X","shares":1,"quantity":-1,"price":1530.5243940429689,"reference_price":1531.2900390625,"shares_before":0,"shares_after":-1,"assumed_cost":0.76564501953125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:25:00-04:00","pnl":null},{"time":"2026-09-15T13:30:00-04:00","action":"C","shares":1,"quantity":1,"price":1532.1757391967772,"reference_price":1531.4100341796875,"shares_before":-1,"shares_after":0,"assumed_cost":0.7657050170898437,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:30:00-04:00","pnl":null},{"time":"2026-09-15T13:50:00-04:00","action":"X","shares":3,"quantity":-3,"price":1526.160854248047,"reference_price":1526.92431640625,"shares_before":0,"shares_after":-3,"assumed_cost":2.290386474609375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:50:00-04:00","pnl":null},{"time":"2026-09-15T13:55:00-04:00","action":"C","shares":1,"quantity":1,"price":1526.6000767822266,"reference_price":1525.837158203125,"shares_before":-3,"shares_after":-2,"assumed_cost":0.7629185791015625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:55:00-04:00","pnl":null},{"time":"2026-09-15T14:00:00-04:00","action":"X","shares":1,"quantity":-1,"price":1522.8681898803711,"reference_price":1523.6300048828125,"shares_before":-2,"shares_after":-3,"assumed_cost":0.7618150024414062,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:00:00-04:00","pnl":null},{"time":"2026-09-15T14:05:00-04:00","action":"C","shares":2,"quantity":2,"price":1520.8200886230468,"reference_price":1520.06005859375,"shares_before":-3,"shares_after":-1,"assumed_cost":1.52006005859375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:05:00-04:00","pnl":null},{"time":"2026-09-15T14:30:00-04:00","action":"C","shares":1,"quantity":1,"price":1518.4788306884766,"reference_price":1517.719970703125,"shares_before":-1,"shares_after":0,"assumed_cost":0.7588599853515625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:30:00-04:00","pnl":null},{"time":"2026-09-15T14:35:00-04:00","action":"X","shares":2,"quantity":-2,"price":1512.733245239258,"reference_price":1513.489990234375,"shares_before":0,"shares_after":-2,"assumed_cost":1.513489990234375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:35:00-04:00","pnl":null},{"time":"2026-09-15T14:40:00-04:00","action":"C","shares":2,"quantity":2,"price":1516.572848876953,"reference_price":1515.81494140625,"shares_before":-2,"shares_after":0,"assumed_cost":1.51581494140625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:40:00-04:00","pnl":null},{"time":"2026-09-15T14:40:00-04:00","action":"B","shares":1,"quantity":1,"price":1516.572848876953,"reference_price":1515.81494140625,"shares_before":0,"shares_after":1,"assumed_cost":0.757907470703125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:40:00-04:00","pnl":null},{"time":"2026-09-15T14:45:00-04:00","action":"S","shares":1,"quantity":-1,"price":1514.2205383300782,"reference_price":1514.97802734375,"shares_before":1,"shares_after":0,"assumed_cost":0.757489013671875,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:45:00-04:00","pnl":null},{"time":"2026-09-15T14:50:00-04:00","action":"X","shares":1,"quantity":-1,"price":1515.2420000000002,"reference_price":1516.0,"shares_before":0,"shares_after":-1,"assumed_cost":0.758,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:50:00-04:00","pnl":null},{"time":"2026-09-15T15:00:00-04:00","action":"C","shares":1,"quantity":1,"price":1516.804165649414,"reference_price":1516.046142578125,"shares_before":-1,"shares_after":0,"assumed_cost":0.7580230712890625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:00:00-04:00","pnl":null},{"time":"2026-09-15T15:30:00-04:00","action":"X","shares":2,"quantity":-2,"price":1519.309911315918,"reference_price":1520.0699462890625,"shares_before":0,"shares_after":-2,"assumed_cost":1.5200699462890626,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:30:00-04:00","pnl":null},{"time":"2026-09-15T15:35:00-04:00","action":"X","shares":2,"quantity":-2,"price":1529.235,"reference_price":1530.0,"shares_before":-2,"shares_after":-4,"assumed_cost":1.53,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:35:00-04:00","pnl":null},{"time":"2026-09-15T15:45:00-04:00","action":"C","shares":1,"quantity":1,"price":1532.7659999999998,"reference_price":1532.0,"shares_before":-4,"shares_after":-3,"assumed_cost":0.766,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:45:00-04:00","pnl":null}],"marks":[{"time":"2026-09-15T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:40:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:45:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:50:00-04:00","shares":-5,"pnl":-75.60025360107375},{"time":"2026-09-15T09:55:00-04:00","shares":-5,"pnl":-30.776034851073742},{"time":"2026-09-15T10:00:00-04:00","shares":-7,"pnl":-43.536688537597},{"time":"2026-09-15T10:05:00-04:00","shares":-6,"pnl":-54.95996392822235},{"time":"2026-09-15T10:10:00-04:00","shares":-6,"pnl":-89.55005181884735},{"time":"2026-09-15T10:15:00-04:00","shares":-5,"pnl":-61.80778405761703},{"time":"2026-09-15T10:20:00-04:00","shares":0,"pnl":-65.63089837646476},{"time":"2026-09-15T10:25:00-04:00","shares":4,"pnl":-76.19439447021432},{"time":"2026-09-15T10:30:00-04:00","shares":4,"pnl":-70.81451165771432},{"time":"2026-09-15T10:35:00-04:00","shares":4,"pnl":-79.95416009521432},{"time":"2026-09-15T10:40:00-04:00","shares":3,"pnl":-100.96283453369053},{"time":"2026-09-15T10:45:00-04:00","shares":2,"pnl":-104.91228454589736},{"time":"2026-09-15T10:50:00-04:00","shares":0,"pnl":-106.89528527831908},{"time":"2026-09-15T10:55:00-04:00","shares":0,"pnl":-106.89528527831908},{"time":"2026-09-15T11:00:00-04:00","shares":0,"pnl":-106.89528527831908},{"time":"2026-09-15T11:05:00-04:00","shares":0,"pnl":-106.89528527831908},{"time":"2026-09-15T11:10:00-04:00","shares":0,"pnl":-106.89528527831908},{"time":"2026-09-15T11:15:00-04:00","shares":0,"pnl":-106.89528527831908},{"time":"2026-09-15T11:20:00-04:00","shares":2,"pnl":-114.69242504882686},{"time":"2026-09-15T11:25:00-04:00","shares":0,"pnl":-117.0861024169908},{"time":"2026-09-15T11:30:00-04:00","shares":0,"pnl":-117.0861024169908},{"time":"2026-09-15T11:35:00-04:00","shares":0,"pnl":-117.0861024169908},{"time":"2026-09-15T11:40:00-04:00","shares":0,"pnl":-117.0861024169908},{"time":"2026-09-15T11:45:00-04:00","shares":0,"pnl":-117.0861024169908},{"time":"2026-09-15T11:50:00-04:00","shares":2,"pnl":-125.17359570312328},{"time":"2026-09-15T11:55:00-04:00","shares":0,"pnl":-124.4442517089824},{"time":"2026-09-15T12:00:00-04:00","shares":0,"pnl":-124.4442517089824},{"time":"2026-09-15T12:05:00-04:00","shares":0,"pnl":-124.4442517089824},{"time":"2026-09-15T12:10:00-04:00","shares":0,"pnl":-124.4442517089824},{"time":"2026-09-15T12:15:00-04:00","shares":0,"pnl":-124.4442517089824},{"time":"2026-09-15T12:20:00-04:00","shares":0,"pnl":-124.4442517089824},{"time":"2026-09-15T12:25:00-04:00","shares":0,"pnl":-124.4442517089824},{"time":"2026-09-15T12:30:00-04:00","shares":0,"pnl":-124.4442517089824},{"time":"2026-09-15T12:35:00-04:00","shares":0,"pnl":-124.4442517089824},{"time":"2026-09-15T12:40:00-04:00","shares":2,"pnl":-119.58882470702927},{"time":"2026-09-15T12:45:00-04:00","shares":1,"pnl":-122.52266363525176},{"time":"2026-09-15T12:50:00-04:00","shares":1,"pnl":-121.94270758056427},{"time":"2026-09-15T12:55:00-04:00","shares":1,"pnl":-119.02266363525176},{"time":"2026-09-15T13:00:00-04:00","shares":2,"pnl":-117.21764233398244},{"time":"2026-09-15T13:05:00-04:00","shares":2,"pnl":-124.29357006835744},{"time":"2026-09-15T13:10:00-04:00","shares":0,"pnl":-125.56502661132618},{"time":"2026-09-15T13:15:00-04:00","shares":1,"pnl":-126.470981262205},{"time":"2026-09-15T13:20:00-04:00","shares":0,"pnl":-127.3968054199197},{"time":"2026-09-15T13:25:00-04:00","shares":0,"pnl":-127.3968054199197},{"time":"2026-09-15T13:30:00-04:00","shares":-1,"pnl":-128.61240161132582},{"time":"2026-09-15T13:35:00-04:00","shares":0,"pnl":-129.04815057372798},{"time":"2026-09-15T13:40:00-04:00","shares":0,"pnl":-129.04815057372798},{"time":"2026-09-15T13:45:00-04:00","shares":0,"pnl":-129.04815057372798},{"time":"2026-09-15T13:50:00-04:00","shares":0,"pnl":-129.04815057372798},{"time":"2026-09-15T13:55:00-04:00","shares":-3,"pnl":-126.96048529052496},{"time":"2026-09-15T14:00:00-04:00","shares":-2,"pnl":-123.485732971189},{"time":"2026-09-15T14:05:00-04:00","shares":-3,"pnl":-114.47765051269288},{"time":"2026-09-15T14:10:00-04:00","shares":-1,"pnl":-114.18765197753646},{"time":"2026-09-15T14:15:00-04:00","shares":-1,"pnl":-112.37759338378646},{"time":"2026-09-15T14:20:00-04:00","shares":-1,"pnl":-111.24270568847396},{"time":"2026-09-15T14:25:00-04:00","shares":-1,"pnl":-109.77261291503646},{"time":"2026-09-15T14:30:00-04:00","shares":-1,"pnl":-113.76760803222396},{"time":"2026-09-15T14:35:00-04:00","shares":0,"pnl":-114.41648266601304},{"time":"2026-09-15T14:40:00-04:00","shares":-2,"pnl":-120.32987499999716},{"time":"2026-09-15T14:45:00-04:00","shares":1,"pnl":-124.06355834960618},{"time":"2026-09-15T14:50:00-04:00","shares":0,"pnl":-124.448000488278},{"time":"2026-09-15T14:55:00-04:00","shares":-1,"pnl":-126.19599072265282},{"time":"2026-09-15T15:00:00-04:00","shares":-1,"pnl":-125.32599560546532},{"time":"2026-09-15T15:05:00-04:00","shares":0,"pnl":-126.01016613769184},{"time":"2026-09-15T15:10:00-04:00","shares":0,"pnl":-126.01016613769184},{"time":"2026-09-15T15:15:00-04:00","shares":0,"pnl":-126.01016613769184},{"time":"2026-09-15T15:20:00-04:00","shares":0,"pnl":-126.01016613769184},{"time":"2026-09-15T15:25:00-04:00","shares":0,"pnl":-126.01016613769184},{"time":"2026-09-15T15:30:00-04:00","shares":0,"pnl":-126.01016613769184},{"time":"2026-09-15T15:35:00-04:00","shares":-2,"pnl":-147.99044116210553},{"time":"2026-09-15T15:40:00-04:00","shares":-4,"pnl":-145.80022631835527},{"time":"2026-09-15T15:45:00-04:00","shares":-4,"pnl":-156.28020678710527},{"time":"2026-09-15T15:50:00-04:00","shares":-3,"pnl":-147.1863435058549}],"summary":{"net_pnl":-147.1863435058549,"gross_pnl":-100.29223632812052,"cost":46.89410717773437,"fill_count":35,"ending_shares":-3},"source_hashes":{"fills_sha256":"fc041ca2110e65c2aa1b2451af35dddf6e1d4c0529f7129eb32197d05bb3919e","marks_sha256":"6e44c2f3ee324a26fae71ec87c708a785c03a085196cb5a32334c2487b84477e","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/2026-09-15/levels_error_risk/TSLA.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"schema_version":1,"ticker":"TSLA","date":"2026-09-15","variant":"levels_error_risk","source_label":"已保存历史行情与模型模拟成交","price_source":"Saved Yahoo OHLCV","is_simulated":true,"as_of":"2026-09-15T15:50:00-04:00","partial":true,"starting_equity":47958.07,"capital_scope":"four_stock_portfolio","cost_bps":5,"cost_label":"单边模拟摩擦假设;非实际券商收费","actual_fees_verified":false,"opening_shares":0,"session_open":"2026-09-15T09:30:00-04:00","session_close":"2026-09-15T16:00:00-04:00","bar_interval_minutes":5,"bar_timing":"completed_bar_availability","vwap_label":"OHLCV VWAP proxy","mark_timing":"bar_close_before_next_open_fills_at_same_timestamp","bars":[{"time":"2026-09-15T09:35:00-04:00","bar_open":"2026-09-15T09:30:00-04:00","open":358.7250061035156,"high":360.69000244140625,"low":354.63128662109375,"close":355.4849853515625,"volume":2022902.0,"vwap":356.9354248046875},{"time":"2026-09-15T09:40:00-04:00","bar_open":"2026-09-15T09:35:00-04:00","open":355.54998779296875,"high":361.7200012207031,"low":355.54998779296875,"close":361.6000061035156,"volume":1135113.0,"vwap":357.9015627318861},{"time":"2026-09-15T09:45:00-04:00","bar_open":"2026-09-15T09:40:00-04:00","open":361.6400146484375,"high":362.1099853515625,"low":360.1499938964844,"close":361.04998779296875,"volume":941432.0,"vwap":358.6368421385916},{"time":"2026-09-15T09:50:00-04:00","bar_open":"2026-09-15T09:45:00-04:00","open":361.0799865722656,"high":361.75,"low":360.3299865722656,"close":361.4778137207031,"volume":530020.0,"vwap":358.9286833736186},{"time":"2026-09-15T09:55:00-04:00","bar_open":"2026-09-15T09:50:00-04:00","open":361.4056091308594,"high":362.0,"low":360.0801086425781,"close":360.5899963378906,"volume":694269.0,"vwap":359.18446345508323},{"time":"2026-09-15T10:00:00-04:00","bar_open":"2026-09-15T09:55:00-04:00","open":360.6567077636719,"high":361.29998779296875,"low":358.6300048828125,"close":359.1499938964844,"volume":537794.0,"vwap":359.23115173616094},{"time":"2026-09-15T10:05:00-04:00","bar_open":"2026-09-15T10:00:00-04:00","open":359.1000061035156,"high":360.19000244140625,"low":359.010009765625,"close":359.70361328125,"volume":413305.0,"vwap":359.2577218599167},{"time":"2026-09-15T10:10:00-04:00","bar_open":"2026-09-15T10:05:00-04:00","open":359.7099914550781,"high":359.8800048828125,"low":358.1600036621094,"close":358.3450012207031,"volume":367792.0,"vwap":359.2321018452655},{"time":"2026-09-15T10:15:00-04:00","bar_open":"2026-09-15T10:10:00-04:00","open":358.3450012207031,"high":359.659912109375,"low":358.32000732421875,"close":359.07000732421875,"volume":295905.0,"vwap":359.22291321995306},{"time":"2026-09-15T10:20:00-04:00","bar_open":"2026-09-15T10:15:00-04:00","open":359.04998779296875,"high":359.9649963378906,"low":358.95001220703125,"close":359.44500732421875,"volume":260093.0,"vwap":359.2312387035512},{"time":"2026-09-15T10:25:00-04:00","bar_open":"2026-09-15T10:20:00-04:00","open":359.3800964355469,"high":359.54998779296875,"low":358.6700134277344,"close":358.92999267578125,"volume":227066.0,"vwap":359.2256966456569},{"time":"2026-09-15T10:30:00-04:00","bar_open":"2026-09-15T10:25:00-04:00","open":358.92999267578125,"high":359.54998779296875,"low":358.79998779296875,"close":359.2900085449219,"volume":261245.0,"vwap":359.2252762915081},{"time":"2026-09-15T10:35:00-04:00","bar_open":"2026-09-15T10:30:00-04:00","open":359.25,"high":359.2900085449219,"low":358.1099853515625,"close":358.875,"volume":271401.0,"vwap":359.20935219355164},{"time":"2026-09-15T10:40:00-04:00","bar_open":"2026-09-15T10:35:00-04:00","open":358.875,"high":358.94000244140625,"low":358.1000061035156,"close":358.4200134277344,"volume":195090.0,"vwap":359.1920604105311},{"time":"2026-09-15T10:45:00-04:00","bar_open":"2026-09-15T10:40:00-04:00","open":358.3699951171875,"high":358.3999938964844,"low":357.6300048828125,"close":357.77801513671875,"volume":343932.0,"vwap":359.1412213470377},{"time":"2026-09-15T10:50:00-04:00","bar_open":"2026-09-15T10:45:00-04:00","open":357.8258056640625,"high":358.4200134277344,"low":357.1449890136719,"close":357.1499938964844,"volume":266475.0,"vwap":359.09349709658534},{"time":"2026-09-15T10:55:00-04:00","bar_open":"2026-09-15T10:50:00-04:00","open":357.19500732421875,"high":357.19500732421875,"low":355.8900146484375,"close":356.04998779296875,"volume":440753.0,"vwap":358.9634841867827},{"time":"2026-09-15T11:00:00-04:00","bar_open":"2026-09-15T10:55:00-04:00","open":356.11199951171875,"high":357.8096923828125,"low":355.8800048828125,"close":357.6099853515625,"volume":414168.0,"vwap":358.88324102274817},{"time":"2026-09-15T11:05:00-04:00","bar_open":"2026-09-15T11:00:00-04:00","open":357.5609130859375,"high":358.3299865722656,"low":357.55010986328125,"close":358.0828857421875,"volume":254788.0,"vwap":358.86013046226645},{"time":"2026-09-15T11:10:00-04:00","bar_open":"2026-09-15T11:05:00-04:00","open":358.07000732421875,"high":359.9150085449219,"low":358.0,"close":359.635009765625,"volume":456444.0,"vwap":358.87441187396564},{"time":"2026-09-15T11:15:00-04:00","bar_open":"2026-09-15T11:10:00-04:00","open":359.635009765625,"high":359.9800109863281,"low":358.8699951171875,"close":359.17498779296875,"volume":374531.0,"vwap":358.8907601712715},{"time":"2026-09-15T11:20:00-04:00","bar_open":"2026-09-15T11:15:00-04:00","open":359.1199951171875,"high":360.32000732421875,"low":358.85009765625,"close":360.19000244140625,"volume":287675.0,"vwap":358.91420774009833},{"time":"2026-09-15T11:25:00-04:00","bar_open":"2026-09-15T11:20:00-04:00","open":360.2349853515625,"high":361.8800048828125,"low":359.9599914550781,"close":361.5899963378906,"volume":608035.0,"vwap":359.0310489690485},{"time":"2026-09-15T11:30:00-04:00","bar_open":"2026-09-15T11:25:00-04:00","open":361.57000732421875,"high":361.94000244140625,"low":360.19000244140625,"close":360.8399963378906,"volume":696172.0,"vwap":359.14195680714687},{"time":"2026-09-15T11:35:00-04:00","bar_open":"2026-09-15T11:30:00-04:00","open":360.92999267578125,"high":361.1400146484375,"low":359.6238098144531,"close":360.8399963378906,"volume":327235.0,"vwap":359.17805765006005},{"time":"2026-09-15T11:40:00-04:00","bar_open":"2026-09-15T11:35:00-04:00","open":360.8900146484375,"high":360.95001220703125,"low":359.7099914550781,"close":359.9400939941406,"volume":229807.0,"vwap":359.19632956401966},{"time":"2026-09-15T11:45:00-04:00","bar_open":"2026-09-15T11:40:00-04:00","open":359.9700012207031,"high":361.0,"low":359.9100036621094,"close":360.739990234375,"volume":215228.0,"vwap":359.2186231365647},{"time":"2026-09-15T11:50:00-04:00","bar_open":"2026-09-15T11:45:00-04:00","open":360.6000061035156,"high":361.0,"low":360.2596130371094,"close":360.84869384765625,"volume":195132.0,"vwap":359.24045732431335},{"time":"2026-09-15T11:55:00-04:00","bar_open":"2026-09-15T11:50:00-04:00","open":360.9150085449219,"high":362.3900146484375,"low":360.7900085449219,"close":362.1000061035156,"volume":586665.0,"vwap":359.34717814701065},{"time":"2026-09-15T12:00:00-04:00","bar_open":"2026-09-15T11:55:00-04:00","open":362.1000061035156,"high":362.1499938964844,"low":360.2300109863281,"close":361.114990234375,"volume":383834.0,"vwap":359.39619644502125},{"time":"2026-09-15T12:05:00-04:00","bar_open":"2026-09-15T12:00:00-04:00","open":361.1650085449219,"high":361.8500061035156,"low":360.6200866699219,"close":361.5350036621094,"volume":336414.0,"vwap":359.4409609931738},{"time":"2026-09-15T12:10:00-04:00","bar_open":"2026-09-15T12:05:00-04:00","open":361.5539855957031,"high":361.8299865722656,"low":361.1400146484375,"close":361.70599365234375,"volume":176534.0,"vwap":359.46631126370016},{"time":"2026-09-15T12:15:00-04:00","bar_open":"2026-09-15T12:10:00-04:00","open":361.760009765625,"high":361.9800109863281,"low":360.75,"close":360.8160095214844,"volume":204005.0,"vwap":359.48972137199036},{"time":"2026-09-15T12:20:00-04:00","bar_open":"2026-09-15T12:15:00-04:00","open":360.82000732421875,"high":361.1000061035156,"low":360.5299987792969,"close":360.8599853515625,"volume":199571.0,"vwap":359.5073758625165},{"time":"2026-09-15T12:25:00-04:00","bar_open":"2026-09-15T12:20:00-04:00","open":360.8299865722656,"high":361.0,"low":359.8900146484375,"close":360.76971435546875,"volume":255490.0,"vwap":359.5247199577974},{"time":"2026-09-15T12:30:00-04:00","bar_open":"2026-09-15T12:25:00-04:00","open":360.760009765625,"high":361.25,"low":360.7101135253906,"close":361.1794128417969,"volume":171234.0,"vwap":359.54144800588335},{"time":"2026-09-15T12:35:00-04:00","bar_open":"2026-09-15T12:30:00-04:00","open":361.17999267578125,"high":361.6549987792969,"low":360.66009521484375,"close":361.4700012207031,"volume":907830.0,"vwap":359.63618012698186},{"time":"2026-09-15T12:40:00-04:00","bar_open":"2026-09-15T12:35:00-04:00","open":361.5,"high":361.7200012207031,"low":360.9779052734375,"close":361.2099914550781,"volume":199814.0,"vwap":359.65613677623264},{"time":"2026-09-15T12:45:00-04:00","bar_open":"2026-09-15T12:40:00-04:00","open":361.2850036621094,"high":361.2850036621094,"low":359.80010986328125,"close":360.1199951171875,"volume":170487.0,"vwap":359.6636778145342},{"time":"2026-09-15T12:50:00-04:00","bar_open":"2026-09-15T12:45:00-04:00","open":360.05999755859375,"high":360.1698913574219,"low":358.8800048828125,"close":359.44500732421875,"volume":350221.0,"vwap":359.6603116224663},{"time":"2026-09-15T12:55:00-04:00","bar_open":"2026-09-15T12:50:00-04:00","open":359.4100036621094,"high":361.4798889160156,"low":359.25,"close":361.010009765625,"volume":370313.0,"vwap":359.679687812108},{"time":"2026-09-15T13:00:00-04:00","bar_open":"2026-09-15T12:55:00-04:00","open":361.05999755859375,"high":361.5400085449219,"low":359.9599914550781,"close":360.4949951171875,"volume":327137.0,"vwap":359.69769179028845},{"time":"2026-09-15T13:05:00-04:00","bar_open":"2026-09-15T13:00:00-04:00","open":360.54998779296875,"high":360.54998779296875,"low":358.7900085449219,"close":358.8399963378906,"volume":348913.0,"vwap":359.69187358197576},{"time":"2026-09-15T13:10:00-04:00","bar_open":"2026-09-15T13:05:00-04:00","open":358.8212890625,"high":359.83160400390625,"low":358.6499938964844,"close":359.2950134277344,"volume":306911.0,"vwap":359.6847130575195},{"time":"2026-09-15T13:15:00-04:00","bar_open":"2026-09-15T13:10:00-04:00","open":359.20001220703125,"high":359.6337890625,"low":359.1000061035156,"close":359.45001220703125,"volume":116793.0,"vwap":359.6828988068586},{"time":"2026-09-15T13:20:00-04:00","bar_open":"2026-09-15T13:15:00-04:00","open":359.45001220703125,"high":360.239990234375,"low":359.2200012207031,"close":360.239990234375,"volume":196317.0,"vwap":359.68515711615765},{"time":"2026-09-15T13:25:00-04:00","bar_open":"2026-09-15T13:20:00-04:00","open":360.2149963378906,"high":360.29998779296875,"low":359.2500915527344,"close":359.3500061035156,"volume":166819.0,"vwap":359.68470329017356},{"time":"2026-09-15T13:30:00-04:00","bar_open":"2026-09-15T13:25:00-04:00","open":359.3500061035156,"high":359.47491455078125,"low":358.8500061035156,"close":359.125,"volume":160798.0,"vwap":359.6802249614545},{"time":"2026-09-15T13:35:00-04:00","bar_open":"2026-09-15T13:30:00-04:00","open":359.05010986328125,"high":359.3800048828125,"low":356.1199951171875,"close":356.9400939941406,"volume":660779.0,"vwap":359.60702295258653},{"time":"2026-09-15T13:40:00-04:00","bar_open":"2026-09-15T13:35:00-04:00","open":357.2066955566406,"high":357.2066955566406,"low":355.1600036621094,"close":356.8299865722656,"volume":805199.0,"vwap":359.48202555557333},{"time":"2026-09-15T13:45:00-04:00","bar_open":"2026-09-15T13:40:00-04:00","open":356.8299865722656,"high":357.75,"low":356.760009765625,"close":357.3599853515625,"volume":364464.0,"vwap":359.4440368762018},{"time":"2026-09-15T13:50:00-04:00","bar_open":"2026-09-15T13:45:00-04:00","open":357.3399963378906,"high":357.70001220703125,"low":356.6199951171875,"close":357.0799865722656,"volume":191063.0,"vwap":359.42323286731914},{"time":"2026-09-15T13:55:00-04:00","bar_open":"2026-09-15T13:50:00-04:00","open":357.0799865722656,"high":357.1499938964844,"low":356.5299987792969,"close":356.9375,"volume":210286.0,"vwap":359.3982052633342},{"time":"2026-09-15T14:00:00-04:00","bar_open":"2026-09-15T13:55:00-04:00","open":356.92999267578125,"high":357.6300048828125,"low":356.27911376953125,"close":357.375,"volume":246921.0,"vwap":359.371968240621},{"time":"2026-09-15T14:05:00-04:00","bar_open":"2026-09-15T14:00:00-04:00","open":357.3800048828125,"high":358.1099853515625,"low":356.79998779296875,"close":357.4200134277344,"volume":297207.0,"vwap":359.34588479531254},{"time":"2026-09-15T14:10:00-04:00","bar_open":"2026-09-15T14:05:00-04:00","open":357.45001220703125,"high":357.7200012207031,"low":357.1400146484375,"close":357.4700012207031,"volume":131074.0,"vwap":359.334604410453},{"time":"2026-09-15T14:15:00-04:00","bar_open":"2026-09-15T14:10:00-04:00","open":357.4849853515625,"high":358.0899963378906,"low":357.4100036621094,"close":357.4100036621094,"volume":206569.0,"vwap":359.3188856027575},{"time":"2026-09-15T14:20:00-04:00","bar_open":"2026-09-15T14:15:00-04:00","open":357.4200134277344,"high":358.17999267578125,"low":357.1700134277344,"close":357.5199890136719,"volume":244268.0,"vwap":359.3005251771917},{"time":"2026-09-15T14:25:00-04:00","bar_open":"2026-09-15T14:20:00-04:00","open":357.44000244140625,"high":357.65631103515625,"low":357.20001220703125,"close":357.6300048828125,"volume":96124.0,"vwap":359.29286591833363},{"time":"2026-09-15T14:30:00-04:00","bar_open":"2026-09-15T14:25:00-04:00","open":357.6199951171875,"high":358.0799865722656,"low":357.3999938964844,"close":358.0000915527344,"volume":127166.0,"vwap":359.28468157782675},{"time":"2026-09-15T14:35:00-04:00","bar_open":"2026-09-15T14:30:00-04:00","open":358.0400085449219,"high":358.0799865722656,"low":357.30999755859375,"close":357.5199890136719,"volume":149384.0,"vwap":359.2739452482237},{"time":"2026-09-15T14:40:00-04:00","bar_open":"2026-09-15T14:35:00-04:00","open":357.5400085449219,"high":357.70001220703125,"low":356.91668701171875,"close":357.2149963378906,"volume":132295.0,"vwap":359.262491464093},{"time":"2026-09-15T14:45:00-04:00","bar_open":"2026-09-15T14:40:00-04:00","open":357.2076110839844,"high":357.3999938964844,"low":356.8800048828125,"close":357.1600036621094,"volume":133452.0,"vwap":359.25031871535043},{"time":"2026-09-15T14:50:00-04:00","bar_open":"2026-09-15T14:45:00-04:00","open":357.0849914550781,"high":357.239990234375,"low":356.5444030761719,"close":356.5849914550781,"volume":120849.0,"vwap":359.23756613935814},{"time":"2026-09-15T14:55:00-04:00","bar_open":"2026-09-15T14:50:00-04:00","open":356.5899963378906,"high":356.989990234375,"low":356.3800048828125,"close":356.8500061035156,"volume":159534.0,"vwap":359.220594016573},{"time":"2026-09-15T15:00:00-04:00","bar_open":"2026-09-15T14:55:00-04:00","open":356.8500061035156,"high":357.5899963378906,"low":356.7300109863281,"close":357.2655029296875,"volume":168939.0,"vwap":359.2061230408943},{"time":"2026-09-15T15:05:00-04:00","bar_open":"2026-09-15T15:00:00-04:00","open":357.25,"high":357.3800048828125,"low":356.3680114746094,"close":356.989990234375,"volume":151096.0,"vwap":359.1915607851675},{"time":"2026-09-15T15:10:00-04:00","bar_open":"2026-09-15T15:05:00-04:00","open":356.9849853515625,"high":357.1499938964844,"low":356.79998779296875,"close":357.0450134277344,"volume":151326.0,"vwap":359.1777018403226},{"time":"2026-09-15T15:15:00-04:00","bar_open":"2026-09-15T15:10:00-04:00","open":357.07000732421875,"high":357.1600036621094,"low":355.8999938964844,"close":356.2850036621094,"volume":195976.0,"vwap":359.1555475387827},{"time":"2026-09-15T15:20:00-04:00","bar_open":"2026-09-15T15:15:00-04:00","open":356.2535095214844,"high":356.6549987792969,"low":356.05999755859375,"close":356.4750061035156,"volume":187340.0,"vwap":359.1343053347822},{"time":"2026-09-15T15:25:00-04:00","bar_open":"2026-09-15T15:20:00-04:00","open":356.42999267578125,"high":356.5899963378906,"low":355.60009765625,"close":355.875,"volume":206434.0,"vwap":359.1081191245498},{"time":"2026-09-15T15:30:00-04:00","bar_open":"2026-09-15T15:25:00-04:00","open":355.875,"high":356.2970886230469,"low":355.8699951171875,"close":355.9599914550781,"volume":173998.0,"vwap":359.0865326929374},{"time":"2026-09-15T15:35:00-04:00","bar_open":"2026-09-15T15:30:00-04:00","open":355.92999267578125,"high":356.0173034667969,"low":355.39599609375,"close":355.5299987792969,"volume":246289.0,"vwap":359.0525983784169},{"time":"2026-09-15T15:40:00-04:00","bar_open":"2026-09-15T15:35:00-04:00","open":355.5050048828125,"high":355.6099853515625,"low":354.1600036621094,"close":354.4700012207031,"volume":500356.0,"vwap":358.96796974089546},{"time":"2026-09-15T15:45:00-04:00","bar_open":"2026-09-15T15:40:00-04:00","open":354.4599914550781,"high":355.29998779296875,"low":354.04998779296875,"close":355.1465148925781,"volume":487383.0,"vwap":358.89027965143055},{"time":"2026-09-15T15:50:00-04:00","bar_open":"2026-09-15T15:45:00-04:00","open":355.1300048828125,"high":355.3800048828125,"low":354.7300109863281,"close":355.32000732421875,"volume":288175.0,"vwap":358.8491200766971}],"fills":[{"time":"2026-09-15T09:35:00-04:00","action":"X","shares":63,"quantity":-63,"price":355.37221279907226,"reference_price":355.54998779296875,"shares_before":0,"shares_after":-63,"assumed_cost":11.199824615478516,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:35:00-04:00","pnl":null},{"time":"2026-09-15T09:40:00-04:00","action":"X","shares":28,"quantity":-28,"price":361.4591946411133,"reference_price":361.6400146484375,"shares_before":-63,"shares_after":-91,"assumed_cost":5.062960205078125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:40:00-04:00","pnl":null},{"time":"2026-09-15T09:45:00-04:00","action":"C","shares":91,"quantity":91,"price":361.2605265655517,"reference_price":361.0799865722656,"shares_before":-91,"shares_after":0,"assumed_cost":16.429139389038085,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:45:00-04:00","pnl":null},{"time":"2026-09-15T09:45:00-04:00","action":"B","shares":18,"quantity":18,"price":361.2605265655517,"reference_price":361.0799865722656,"shares_before":0,"shares_after":18,"assumed_cost":3.2497198791503905,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:45:00-04:00","pnl":null},{"time":"2026-09-15T09:50:00-04:00","action":"S","shares":18,"quantity":-18,"price":361.224906326294,"reference_price":361.4056091308594,"shares_before":18,"shares_after":0,"assumed_cost":3.2526504821777342,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:50:00-04:00","pnl":null},{"time":"2026-09-15T09:50:00-04:00","action":"X","shares":4,"quantity":-4,"price":361.224906326294,"reference_price":361.4056091308594,"shares_before":0,"shares_after":-4,"assumed_cost":0.7228112182617188,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:50:00-04:00","pnl":null},{"time":"2026-09-15T09:55:00-04:00","action":"C","shares":4,"quantity":4,"price":360.8370361175537,"reference_price":360.6567077636719,"shares_before":-4,"shares_after":0,"assumed_cost":0.7213134155273437,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:55:00-04:00","pnl":null},{"time":"2026-09-15T09:55:00-04:00","action":"B","shares":20,"quantity":20,"price":360.8370361175537,"reference_price":360.6567077636719,"shares_before":0,"shares_after":20,"assumed_cost":3.606567077636719,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T09:55:00-04:00","pnl":null},{"time":"2026-09-15T10:00:00-04:00","action":"S","shares":9,"quantity":-9,"price":358.92045610046387,"reference_price":359.1000061035156,"shares_before":20,"shares_after":11,"assumed_cost":1.6159500274658205,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:00:00-04:00","pnl":null},{"time":"2026-09-15T10:05:00-04:00","action":"B","shares":4,"quantity":4,"price":359.88984645080563,"reference_price":359.7099914550781,"shares_before":11,"shares_after":15,"assumed_cost":0.7194199829101563,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:05:00-04:00","pnl":null},{"time":"2026-09-15T10:10:00-04:00","action":"S","shares":15,"quantity":-15,"price":358.1658287200928,"reference_price":358.3450012207031,"shares_before":15,"shares_after":0,"assumed_cost":2.687587509155273,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:10:00-04:00","pnl":null},{"time":"2026-09-15T10:10:00-04:00","action":"X","shares":7,"quantity":-7,"price":358.1658287200928,"reference_price":358.3450012207031,"shares_before":0,"shares_after":-7,"assumed_cost":1.254207504272461,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:10:00-04:00","pnl":null},{"time":"2026-09-15T10:15:00-04:00","action":"X","shares":54,"quantity":-54,"price":358.8704627990723,"reference_price":359.04998779296875,"shares_before":-7,"shares_after":-61,"assumed_cost":9.694349670410157,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:15:00-04:00","pnl":null},{"time":"2026-09-15T10:20:00-04:00","action":"C","shares":1,"quantity":1,"price":359.55978648376464,"reference_price":359.3800964355469,"shares_before":-61,"shares_after":-60,"assumed_cost":0.1796900482177734,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:20:00-04:00","pnl":null},{"time":"2026-09-15T10:25:00-04:00","action":"C","shares":37,"quantity":37,"price":359.1094576721191,"reference_price":358.92999267578125,"shares_before":-60,"shares_after":-23,"assumed_cost":6.640204864501953,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:25:00-04:00","pnl":null},{"time":"2026-09-15T10:30:00-04:00","action":"C","shares":23,"quantity":23,"price":359.429625,"reference_price":359.25,"shares_before":-23,"shares_after":0,"assumed_cost":4.131375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:30:00-04:00","pnl":null},{"time":"2026-09-15T10:30:00-04:00","action":"B","shares":10,"quantity":10,"price":359.429625,"reference_price":359.25,"shares_before":0,"shares_after":10,"assumed_cost":1.79625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:30:00-04:00","pnl":null},{"time":"2026-09-15T10:35:00-04:00","action":"B","shares":23,"quantity":23,"price":359.0544375,"reference_price":358.875,"shares_before":10,"shares_after":33,"assumed_cost":4.1270625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:35:00-04:00","pnl":null},{"time":"2026-09-15T10:40:00-04:00","action":"S","shares":22,"quantity":-22,"price":358.1908101196289,"reference_price":358.3699951171875,"shares_before":33,"shares_after":11,"assumed_cost":3.942069946289063,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:40:00-04:00","pnl":null},{"time":"2026-09-15T10:55:00-04:00","action":"S","shares":11,"quantity":-11,"price":355.9339435119629,"reference_price":356.11199951171875,"shares_before":11,"shares_after":0,"assumed_cost":1.958615997314453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T10:55:00-04:00","pnl":null},{"time":"2026-09-15T11:00:00-04:00","action":"X","shares":14,"quantity":-14,"price":357.38213262939456,"reference_price":357.5609130859375,"shares_before":0,"shares_after":-14,"assumed_cost":2.5029263916015627,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:00:00-04:00","pnl":null},{"time":"2026-09-15T11:10:00-04:00","action":"X","shares":63,"quantity":-63,"price":359.4551922607422,"reference_price":359.635009765625,"shares_before":-14,"shares_after":-77,"assumed_cost":11.328502807617188,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:10:00-04:00","pnl":null},{"time":"2026-09-15T11:15:00-04:00","action":"C","shares":74,"quantity":74,"price":359.29955511474606,"reference_price":359.1199951171875,"shares_before":-77,"shares_after":-3,"assumed_cost":13.287439819335937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:15:00-04:00","pnl":null},{"time":"2026-09-15T11:20:00-04:00","action":"C","shares":1,"quantity":1,"price":360.4151028442383,"reference_price":360.2349853515625,"shares_before":-3,"shares_after":-2,"assumed_cost":0.1801174926757812,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:20:00-04:00","pnl":null},{"time":"2026-09-15T11:25:00-04:00","action":"C","shares":1,"quantity":1,"price":361.7507923278808,"reference_price":361.5700073242188,"shares_before":-2,"shares_after":-1,"assumed_cost":0.1807850036621093,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:25:00-04:00","pnl":null},{"time":"2026-09-15T11:30:00-04:00","action":"C","shares":1,"quantity":1,"price":361.1104576721192,"reference_price":360.9299926757813,"shares_before":-1,"shares_after":0,"assumed_cost":0.1804649963378906,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:30:00-04:00","pnl":null},{"time":"2026-09-15T11:40:00-04:00","action":"B","shares":7,"quantity":7,"price":360.14998622131344,"reference_price":359.9700012207031,"shares_before":0,"shares_after":7,"assumed_cost":1.259895004272461,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:40:00-04:00","pnl":null},{"time":"2026-09-15T11:45:00-04:00","action":"S","shares":7,"quantity":-7,"price":360.4197061004639,"reference_price":360.6000061035156,"shares_before":7,"shares_after":0,"assumed_cost":1.2621000213623046,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:45:00-04:00","pnl":null},{"time":"2026-09-15T11:50:00-04:00","action":"B","shares":15,"quantity":15,"price":361.09546604919433,"reference_price":360.9150085449219,"shares_before":0,"shares_after":15,"assumed_cost":2.706862564086914,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:50:00-04:00","pnl":null},{"time":"2026-09-15T11:55:00-04:00","action":"S","shares":1,"quantity":-1,"price":361.9189561004639,"reference_price":362.1000061035156,"shares_before":15,"shares_after":14,"assumed_cost":0.1810500030517578,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T11:55:00-04:00","pnl":null},{"time":"2026-09-15T12:00:00-04:00","action":"S","shares":8,"quantity":-8,"price":360.9844260406495,"reference_price":361.1650085449219,"shares_before":14,"shares_after":6,"assumed_cost":1.4446600341796876,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:00:00-04:00","pnl":null},{"time":"2026-09-15T12:05:00-04:00","action":"S","shares":1,"quantity":-1,"price":361.37320860290527,"reference_price":361.5539855957031,"shares_before":6,"shares_after":5,"assumed_cost":0.1807769927978515,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:05:00-04:00","pnl":null},{"time":"2026-09-15T12:10:00-04:00","action":"B","shares":17,"quantity":17,"price":361.9408897705078,"reference_price":361.760009765625,"shares_before":5,"shares_after":22,"assumed_cost":3.0749600830078125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:10:00-04:00","pnl":null},{"time":"2026-09-15T12:15:00-04:00","action":"S","shares":10,"quantity":-10,"price":360.6395973205567,"reference_price":360.8200073242188,"shares_before":22,"shares_after":12,"assumed_cost":1.8041000366210935,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:15:00-04:00","pnl":null},{"time":"2026-09-15T12:20:00-04:00","action":"S","shares":9,"quantity":-9,"price":360.64957157897953,"reference_price":360.8299865722656,"shares_before":12,"shares_after":3,"assumed_cost":1.6237349395751952,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:20:00-04:00","pnl":null},{"time":"2026-09-15T12:25:00-04:00","action":"S","shares":1,"quantity":-1,"price":360.5796297607422,"reference_price":360.760009765625,"shares_before":3,"shares_after":2,"assumed_cost":0.1803800048828125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:25:00-04:00","pnl":null},{"time":"2026-09-15T12:30:00-04:00","action":"B","shares":3,"quantity":3,"price":361.3605826721191,"reference_price":361.1799926757813,"shares_before":2,"shares_after":5,"assumed_cost":0.5417699890136719,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:30:00-04:00","pnl":null},{"time":"2026-09-15T12:35:00-04:00","action":"S","shares":1,"quantity":-1,"price":361.31925,"reference_price":361.5,"shares_before":5,"shares_after":4,"assumed_cost":0.18075,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:35:00-04:00","pnl":null},{"time":"2026-09-15T12:50:00-04:00","action":"S","shares":4,"quantity":-4,"price":359.2302986602783,"reference_price":359.4100036621094,"shares_before":4,"shares_after":0,"assumed_cost":0.7188200073242188,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:50:00-04:00","pnl":null},{"time":"2026-09-15T12:55:00-04:00","action":"X","shares":83,"quantity":-83,"price":360.8794675598145,"reference_price":361.05999755859375,"shares_before":0,"shares_after":-83,"assumed_cost":14.98398989868164,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T12:55:00-04:00","pnl":null},{"time":"2026-09-15T13:00:00-04:00","action":"C","shares":26,"quantity":26,"price":360.7302627868653,"reference_price":360.5499877929688,"shares_before":-83,"shares_after":-57,"assumed_cost":4.687149841308594,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:00:00-04:00","pnl":null},{"time":"2026-09-15T13:05:00-04:00","action":"C","shares":1,"quantity":1,"price":359.00069970703123,"reference_price":358.8212890625,"shares_before":-57,"shares_after":-56,"assumed_cost":0.17941064453125,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:05:00-04:00","pnl":null},{"time":"2026-09-15T13:10:00-04:00","action":"C","shares":1,"quantity":1,"price":359.37961221313475,"reference_price":359.20001220703125,"shares_before":-56,"shares_after":-55,"assumed_cost":0.1796000061035156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:10:00-04:00","pnl":null},{"time":"2026-09-15T13:15:00-04:00","action":"C","shares":55,"quantity":55,"price":359.6297372131347,"reference_price":359.45001220703125,"shares_before":-55,"shares_after":0,"assumed_cost":9.88487533569336,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:15:00-04:00","pnl":null},{"time":"2026-09-15T13:15:00-04:00","action":"B","shares":1,"quantity":1,"price":359.6297372131347,"reference_price":359.45001220703125,"shares_before":0,"shares_after":1,"assumed_cost":0.1797250061035156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:15:00-04:00","pnl":null},{"time":"2026-09-15T13:20:00-04:00","action":"S","shares":1,"quantity":-1,"price":360.0348888397217,"reference_price":360.2149963378906,"shares_before":1,"shares_after":0,"assumed_cost":0.1801074981689453,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:20:00-04:00","pnl":null},{"time":"2026-09-15T13:20:00-04:00","action":"X","shares":19,"quantity":-19,"price":360.0348888397217,"reference_price":360.2149963378906,"shares_before":0,"shares_after":-19,"assumed_cost":3.422042465209961,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:20:00-04:00","pnl":null},{"time":"2026-09-15T13:25:00-04:00","action":"C","shares":19,"quantity":19,"price":359.5296811065673,"reference_price":359.3500061035156,"shares_before":-19,"shares_after":0,"assumed_cost":3.413825057983398,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:25:00-04:00","pnl":null},{"time":"2026-09-15T13:25:00-04:00","action":"B","shares":7,"quantity":7,"price":359.5296811065673,"reference_price":359.3500061035156,"shares_before":0,"shares_after":7,"assumed_cost":1.2577250213623048,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:25:00-04:00","pnl":null},{"time":"2026-09-15T13:30:00-04:00","action":"B","shares":6,"quantity":6,"price":359.22963491821287,"reference_price":359.05010986328125,"shares_before":7,"shares_after":13,"assumed_cost":1.0771503295898437,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:30:00-04:00","pnl":null},{"time":"2026-09-15T13:35:00-04:00","action":"S","shares":13,"quantity":-13,"price":357.02809220886235,"reference_price":357.2066955566406,"shares_before":13,"shares_after":0,"assumed_cost":2.321843521118164,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:35:00-04:00","pnl":null},{"time":"2026-09-15T13:35:00-04:00","action":"X","shares":86,"quantity":-86,"price":357.02809220886235,"reference_price":357.2066955566406,"shares_before":0,"shares_after":-86,"assumed_cost":15.359887908935546,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:35:00-04:00","pnl":null},{"time":"2026-09-15T13:40:00-04:00","action":"C","shares":86,"quantity":86,"price":357.00840156555176,"reference_price":356.8299865722656,"shares_before":-86,"shares_after":0,"assumed_cost":15.343689422607422,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:40:00-04:00","pnl":null},{"time":"2026-09-15T13:40:00-04:00","action":"B","shares":27,"quantity":27,"price":357.00840156555176,"reference_price":356.8299865722656,"shares_before":0,"shares_after":27,"assumed_cost":4.817204818725586,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:40:00-04:00","pnl":null},{"time":"2026-09-15T13:50:00-04:00","action":"S","shares":1,"quantity":-1,"price":356.9014465789795,"reference_price":357.0799865722656,"shares_before":27,"shares_after":26,"assumed_cost":0.1785399932861328,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:50:00-04:00","pnl":null},{"time":"2026-09-15T13:55:00-04:00","action":"S","shares":26,"quantity":-26,"price":356.75152767944337,"reference_price":356.92999267578125,"shares_before":26,"shares_after":0,"assumed_cost":4.640089904785156,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:55:00-04:00","pnl":null},{"time":"2026-09-15T13:55:00-04:00","action":"X","shares":4,"quantity":-4,"price":356.75152767944337,"reference_price":356.92999267578125,"shares_before":0,"shares_after":-4,"assumed_cost":0.7138599853515625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T13:55:00-04:00","pnl":null},{"time":"2026-09-15T14:00:00-04:00","action":"C","shares":4,"quantity":4,"price":357.5586948852539,"reference_price":357.3800048828125,"shares_before":-4,"shares_after":0,"assumed_cost":0.714760009765625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:00:00-04:00","pnl":null},{"time":"2026-09-15T14:20:00-04:00","action":"B","shares":11,"quantity":11,"price":357.61872244262696,"reference_price":357.44000244140625,"shares_before":0,"shares_after":11,"assumed_cost":1.9659200134277344,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:20:00-04:00","pnl":null},{"time":"2026-09-15T14:25:00-04:00","action":"S","shares":1,"quantity":-1,"price":357.4411851196289,"reference_price":357.6199951171875,"shares_before":11,"shares_after":10,"assumed_cost":0.1788099975585937,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:25:00-04:00","pnl":null},{"time":"2026-09-15T14:30:00-04:00","action":"S","shares":10,"quantity":-10,"price":357.86098854064943,"reference_price":358.0400085449219,"shares_before":10,"shares_after":0,"assumed_cost":1.7902000427246094,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:30:00-04:00","pnl":null},{"time":"2026-09-15T14:50:00-04:00","action":"X","shares":7,"quantity":-7,"price":356.4117013397217,"reference_price":356.5899963378906,"shares_before":0,"shares_after":-7,"assumed_cost":1.2480649871826173,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T14:50:00-04:00","pnl":null},{"time":"2026-09-15T15:00:00-04:00","action":"C","shares":1,"quantity":1,"price":357.42862499999995,"reference_price":357.25,"shares_before":-7,"shares_after":-6,"assumed_cost":0.178625,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:00:00-04:00","pnl":null},{"time":"2026-09-15T15:05:00-04:00","action":"X","shares":43,"quantity":-43,"price":356.8064928588867,"reference_price":356.9849853515625,"shares_before":-6,"shares_after":-49,"assumed_cost":7.675177185058594,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:05:00-04:00","pnl":null},{"time":"2026-09-15T15:15:00-04:00","action":"C","shares":1,"quantity":1,"price":356.4316362762451,"reference_price":356.2535095214844,"shares_before":-49,"shares_after":-48,"assumed_cost":0.1781267547607422,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:15:00-04:00","pnl":null},{"time":"2026-09-15T15:20:00-04:00","action":"C","shares":47,"quantity":47,"price":356.60820767211914,"reference_price":356.42999267578125,"shares_before":-48,"shares_after":-1,"assumed_cost":8.376104827880859,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:20:00-04:00","pnl":null},{"time":"2026-09-15T15:25:00-04:00","action":"C","shares":1,"quantity":1,"price":356.0529375,"reference_price":355.875,"shares_before":-1,"shares_after":0,"assumed_cost":0.1779375,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:25:00-04:00","pnl":null},{"time":"2026-09-15T15:40:00-04:00","action":"X","shares":4,"quantity":-4,"price":354.2827614593506,"reference_price":354.4599914550781,"shares_before":0,"shares_after":-4,"assumed_cost":0.7089199829101562,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:40:00-04:00","pnl":null},{"time":"2026-09-15T15:45:00-04:00","action":"C","shares":1,"quantity":1,"price":355.3075698852539,"reference_price":355.1300048828125,"shares_before":-4,"shares_after":-3,"assumed_cost":0.1775650024414062,"commission_cost":0.0,"signal_data_cutoff":"2026-09-15T15:45:00-04:00","pnl":null}],"marks":[{"time":"2026-09-15T09:35:00-04:00","shares":0,"pnl":0.0},{"time":"2026-09-15T09:40:00-04:00","shares":-63,"pnl":-392.350978179933},{"time":"2026-09-15T09:45:00-04:00","shares":-91,"pnl":-346.2420328674343},{"time":"2026-09-15T09:50:00-04:00","shares":18,"pnl":-361.4898923797628},{"time":"2026-09-15T09:55:00-04:00","shares":-4,"pnl":-363.502585525514},{"time":"2026-09-15T10:00:00-04:00","shares":20,"pnl":-398.2315890655518},{"time":"2026-09-15T10:05:00-04:00","shares":11,"pnl":-394.20761599731486},{"time":"2026-09-15T10:10:00-04:00","shares":15,"pnl":-415.3317295837405},{"time":"2026-09-15T10:15:00-04:00","shares":-7,"pnl":-424.3485673217765},{"time":"2026-09-15T10:20:00-04:00","shares":-61,"pnl":-457.9989716796845},{"time":"2026-09-15T10:25:00-04:00","shares":-60,"pnl":-427.2128719329812},{"time":"2026-09-15T10:30:00-04:00","shares":-23,"pnl":-442.13344178771695},{"time":"2026-09-15T10:35:00-04:00","shares":10,"pnl":-450.8908702545127},{"time":"2026-09-15T10:40:00-04:00","shares":33,"pnl":-470.0324896392776},{"time":"2026-09-15T10:45:00-04:00","shares":11,"pnl":-482.1369436187697},{"time":"2026-09-15T10:50:00-04:00","shares":11,"pnl":-489.0451772613478},{"time":"2026-09-15T10:55:00-04:00","shares":11,"pnl":-501.1452444000197},{"time":"2026-09-15T11:00:00-04:00","shares":0,"pnl":-502.4217314910839},{"time":"2026-09-15T11:05:00-04:00","shares":-14,"pnl":-512.2322750701851},{"time":"2026-09-15T11:10:00-04:00","shares":-14,"pnl":-533.9620113983101},{"time":"2026-09-15T11:15:00-04:00","shares":-77,"pnl":-509.8688223113968},{"time":"2026-09-15T11:20:00-04:00","shares":-3,"pnl":-522.1318480682312},{"time":"2026-09-15T11:25:00-04:00","shares":-2,"pnl":-525.156936264032},{"time":"2026-09-15T11:30:00-04:00","shares":-1,"pnl":-524.5677322540222},{"time":"2026-09-15T11:35:00-04:00","shares":0,"pnl":-524.8381935882508},{"time":"2026-09-15T11:40:00-04:00","shares":0,"pnl":-524.8381935882508},{"time":"2026-09-15T11:45:00-04:00","shares":7,"pnl":-520.7081654968197},{"time":"2026-09-15T11:50:00-04:00","shares":0,"pnl":-522.9501544341974},{"time":"2026-09-15T11:55:00-04:00","shares":15,"pnl":-507.882053619378},{"time":"2026-09-15T12:00:00-04:00","shares":14,"pnl":-521.8533257903982},{"time":"2026-09-15T12:05:00-04:00","shares":6,"pnl":-520.3777587737964},{"time":"2026-09-15T12:10:00-04:00","shares":5,"pnl":-519.6846038818285},{"time":"2026-09-15T12:15:00-04:00","shares":22,"pnl":-543.2574887695228},{"time":"2026-09-15T12:20:00-04:00","shares":12,"pnl":-544.4939008178626},{"time":"2026-09-15T12:25:00-04:00","shares":3,"pnl":-546.6584377593904},{"time":"2026-09-15T12:30:00-04:00","shares":2,"pnl":-546.0291253814607},{"time":"2026-09-15T12:35:00-04:00","shares":5,"pnl":-545.1196929778962},{"time":"2026-09-15T12:40:00-04:00","shares":4,"pnl":-546.3104832610993},{"time":"2026-09-15T12:45:00-04:00","shares":4,"pnl":-550.6704686126618},{"time":"2026-09-15T12:50:00-04:00","shares":4,"pnl":-553.3704197845368},{"time":"2026-09-15T12:55:00-04:00","shares":0,"pnl":-554.2292544402985},{"time":"2026-09-15T13:00:00-04:00","shares":-83,"pnl":-522.3180417022595},{"time":"2026-09-15T13:05:00-04:00","shares":-57,"pnl":-434.1000706939594},{"time":"2026-09-15T13:10:00-04:00","shares":-56,"pnl":-459.7417310943492},{"time":"2026-09-15T13:15:00-04:00","shares":-55,"pnl":-468.35126274107824},{"time":"2026-09-15T13:20:00-04:00","shares":1,"pnl":-477.62588505552856},{"time":"2026-09-15T13:25:00-04:00","shares":-19,"pnl":-464.8182144622661},{"time":"2026-09-15T13:30:00-04:00","shares":7,"pnl":-471.0648072662202},{"time":"2026-09-15T13:35:00-04:00","shares":13,"pnl":-500.0963948516692},{"time":"2026-09-15T13:40:00-04:00","shares":-86,"pnl":-481.91533331296887},{"time":"2026-09-15T13:45:00-04:00","shares":27,"pnl":-487.7662605132864},{"time":"2026-09-15T13:50:00-04:00","shares":27,"pnl":-495.326227554302},{"time":"2026-09-15T13:55:00-04:00","shares":26,"pnl":-499.2094184264952},{"time":"2026-09-15T14:00:00-04:00","shares":-4,"pnl":-506.5385880431932},{"time":"2026-09-15T14:05:00-04:00","shares":0,"pnl":-507.2733675842087},{"time":"2026-09-15T14:10:00-04:00","shares":0,"pnl":-507.2733675842087},{"time":"2026-09-15T14:15:00-04:00","shares":0,"pnl":-507.2733675842087},{"time":"2026-09-15T14:20:00-04:00","shares":0,"pnl":-507.2733675842087},{"time":"2026-09-15T14:25:00-04:00","shares":11,"pnl":-507.1492607421678},{"time":"2026-09-15T14:30:00-04:00","shares":10,"pnl":-503.6372138061324},{"time":"2026-09-15T14:35:00-04:00","shares":0,"pnl":-505.02824392698176},{"time":"2026-09-15T14:40:00-04:00","shares":0,"pnl":-505.02824392698176},{"time":"2026-09-15T14:45:00-04:00","shares":0,"pnl":-505.02824392698176},{"time":"2026-09-15T14:50:00-04:00","shares":0,"pnl":-505.02824392698176},{"time":"2026-09-15T14:55:00-04:00","shares":-7,"pnl":-508.0963772735395},{"time":"2026-09-15T15:00:00-04:00","shares":-7,"pnl":-511.0048550567426},{"time":"2026-09-15T15:05:00-04:00","shares":-6,"pnl":-509.5149009551801},{"time":"2026-09-15T15:10:00-04:00","shares":-49,"pnl":-520.101424575787},{"time":"2026-09-15T15:15:00-04:00","shares":-49,"pnl":-482.860946060162},{"time":"2026-09-15T15:20:00-04:00","shares":-48,"pnl":-492.1276958617964},{"time":"2026-09-15T15:25:00-04:00","shares":-1,"pnl":-497.7881634826445},{"time":"2026-09-15T15:30:00-04:00","shares":0,"pnl":-497.9661009826444},{"time":"2026-09-15T15:35:00-04:00","shares":0,"pnl":-497.9661009826444},{"time":"2026-09-15T15:40:00-04:00","shares":0,"pnl":-497.9661009826444},{"time":"2026-09-15T15:45:00-04:00","shares":-4,"pnl":-501.4211147155546},{"time":"2026-09-15T15:50:00-04:00","shares":-3,"pnl":-502.1026470031522}],"summary":{"net_pnl":-502.1026470031522,"gross_pnl":-270.0998535156034,"cost":232.00279348754881,"fill_count":69,"ending_shares":-3},"source_hashes":{"fills_sha256":"fc041ca2110e65c2aa1b2451af35dddf6e1d4c0529f7129eb32197d05bb3919e","marks_sha256":"6e44c2f3ee324a26fae71ec87c708a785c03a085196cb5a32334c2487b84477e","registry_sha256":"440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db"}}
backend/data/price_replay/manifest.json ADDED
@@ -0,0 +1,48 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "schema_version": 1,
3
+ "available_dates": [
4
+ "2026-09-14",
5
+ "2026-09-15"
6
+ ],
7
+ "variants": [
8
+ "context",
9
+ "levels",
10
+ "levels_error_risk"
11
+ ],
12
+ "tickers": [
13
+ "SNDK",
14
+ "TSLA",
15
+ "PLTR",
16
+ "NVDA"
17
+ ],
18
+ "study": "manual_style_research_20260915",
19
+ "source_registry_sha256": "440c6827502028fb50e50437057c721cd8797733b9c770c72cfbea08bd5d65db",
20
+ "source_evidence_sha256": "cf5dffeadd99db2940e0135e76cb27a3839a464a34a6ea8ceb396cb0aa0cbb08",
21
+ "export_script_sha256": "1b2764d22706db56bbbef875a539bcbf7eca2e6e906c07d46b6a22c0d1b45ba8",
22
+ "files": {
23
+ "2026-09-14/context/SNDK.json": "880f0973549d0dcfb6adb16b9e5458a10472024751a751bff332ee451638527a",
24
+ "2026-09-14/context/TSLA.json": "0d2d388a8d4f201ca6815299db47becc996e7f306aed0c993b50f2e1f50c7171",
25
+ "2026-09-14/context/PLTR.json": "01fd690140fe735115e3407954c62c9260ff5d02eca5e659000bd9711f272a21",
26
+ "2026-09-14/context/NVDA.json": "7251e71358afbc87aa45325e0303538852a23a7eb32f67be0df07e833fce1b02",
27
+ "2026-09-14/levels/SNDK.json": "ef9359230f72f9be54ed6c3c3782d7cfa1e8afdcd6463cd6504a93700d76b480",
28
+ "2026-09-14/levels/TSLA.json": "c5337b6fac8932ef825673dd0908dd75ae2e6be1158632ea815b5ff0bfb312af",
29
+ "2026-09-14/levels/PLTR.json": "afa0f1cf6d7046f57b4d0adc8a1a4b293ea7092bad6a738a27e47f18d88dae36",
30
+ "2026-09-14/levels/NVDA.json": "581b783589eaf182dbe74f6442be70684b52007f65e3490565557557fb3386d4",
31
+ "2026-09-14/levels_error_risk/SNDK.json": "2c21de72c583a9164c408cf8491015b52f610e81b5376c311ef93ed99a25fd08",
32
+ "2026-09-14/levels_error_risk/TSLA.json": "1c4daae67f47c80e12686db60bee45815fe77dcbc27c4bf2c48dfed13a8815b6",
33
+ "2026-09-14/levels_error_risk/PLTR.json": "a3d52d4d47a461228b35bdd205ba4320195c43ecf783b89ce9a1033ded25c566",
34
+ "2026-09-14/levels_error_risk/NVDA.json": "ff0ed8402b2bff74cee2d4f7d0fcc99e35fc4573113aad408257f8bb8add19b5",
35
+ "2026-09-15/context/SNDK.json": "bae01ef17e0a30226f8cd973fcb2f3f9c597a8d5caee836995477753c3054d7a",
36
+ "2026-09-15/context/TSLA.json": "210b5ce6998ba8a8889d216d083dec4151d7e35aa362744698791e79ae77e6db",
37
+ "2026-09-15/context/PLTR.json": "86e824c71c713b333dd81afc8611467ee3624f74f4435880466e5003ed5a40ed",
38
+ "2026-09-15/context/NVDA.json": "82752b749197cb2aa2a1c1448921131ce0e54d9f928ece5bde15210d80de0321",
39
+ "2026-09-15/levels/SNDK.json": "33b64b685c80f62bea383fa9b0a9753a64f95d4bfed05a21835f85457ebf392c",
40
+ "2026-09-15/levels/TSLA.json": "665b53354488e50da9148a8b96be76667cf135bc08cc6a18a0074c4c802e540b",
41
+ "2026-09-15/levels/PLTR.json": "8f3208ba961de099aa89f30006b0dce2f4069e9a20e251768968e3bf67356edd",
42
+ "2026-09-15/levels/NVDA.json": "81e42e48bf669c7547a57bd66c9509e4c780a874646d76e9318dba136e869ee5",
43
+ "2026-09-15/levels_error_risk/SNDK.json": "e64694f35b4d0edc2883802854637dd6a399d72dbb2f586d9b99b1b48bd32a59",
44
+ "2026-09-15/levels_error_risk/TSLA.json": "5ccd4051e3bde559105a3426872cb2bde2dbbbef1b40b014eb4239aad7c75580",
45
+ "2026-09-15/levels_error_risk/PLTR.json": "64b18cc639f2073594d07565ec7cb3d08d69d43200024d7e43f0f09a80ed634f",
46
+ "2026-09-15/levels_error_risk/NVDA.json": "d14f8d4b56f31ccd9d3db54527800f1c0eeeb8137b028244c86c4e4f18972709"
47
+ }
48
+ }
backend/main_api.py CHANGED
@@ -1852,6 +1852,13 @@ def get_dashboard_market_data(ticker: str = "TSLA", date: str = "", interval: st
1852
  return {"success": False, "error": str(exc)}
1853
 
1854
 
 
 
 
 
 
 
 
1855
  @app.get("/api/dashboard/trades")
1856
  def get_dashboard_trades(ticker: str = "TSLA", date: str = ""):
1857
  from app.ml.dashboard_market import archived_fills
 
1852
  return {"success": False, "error": str(exc)}
1853
 
1854
 
1855
+ @app.get("/api/dashboard/price_replay")
1856
+ def get_dashboard_price_replay(ticker: str = "SNDK", date: str = "", variant: str = "levels_error_risk"):
1857
+ """Read saved price, simulated fills and ledger; never run research or trade."""
1858
+ from app.dashboard.price_replay import price_replay
1859
+ return price_replay(ticker, date, variant)
1860
+
1861
+
1862
  @app.get("/api/dashboard/trades")
1863
  def get_dashboard_trades(ticker: str = "TSLA", date: str = ""):
1864
  from app.ml.dashboard_market import archived_fills
backend/tests/test_direction_forecast_risk.py ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Forecast uncertainty changes sizing without hard direction or time rules."""
2
+ import sys
3
+ from pathlib import Path
4
+
5
+ import numpy as np
6
+ import pytest
7
+
8
+ sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
9
+
10
+ from app.quant_policy import PolicySpec, target_weights
11
+ from app.research.direction_policy import planned_target
12
+
13
+
14
+ def plan(mu, covariance, current=0., **kwargs):
15
+ return planned_target(np.asarray(mu, dtype=float).reshape(-1, 1), covariance,
16
+ {'stock': current}, ('stock',), {'stock': True},
17
+ PolicySpec('uncertainty_test', risk_aversion=50., cost_bps=2.), **kwargs)
18
+
19
+
20
+ def test_none_matches_one_step_objective_including_terminal_cost():
21
+ mu = .0015
22
+ covariance = np.array([[.00008]])
23
+ weights, info = plan([mu], covariance, current=.2)
24
+ explicit_none, _ = plan([mu], covariance, current=.2, forecast_error_covariance=None)
25
+ # The existing one-period solver can express terminal liquidation cost as
26
+ # its absolute-position penalty, independently reproducing the old planner.
27
+ reference = target_weights({'stock': mu}, covariance, {'stock': .2},
28
+ PolicySpec('reference', risk_aversion=50., cost_bps=2.),
29
+ symbols=('stock',), uncertainty=[.0002],
30
+ uncertainty_aversion=1., solver='osqp')
31
+ assert weights == pytest.approx(reference, abs=1e-7)
32
+ assert explicit_none == pytest.approx(weights, abs=1e-9)
33
+ assert info['forecast_error_risk_enabled'] is False
34
+ assert info['forecast_error_variance'] == 0
35
+ assert info['total_risk_variance'] == pytest.approx(info['forecast_variance'])
36
+
37
+
38
+ def test_forecast_uncertainty_reduces_extreme_exposure_and_accounts_for_risk():
39
+ covariance = np.array([[.000001]])
40
+ without, _ = plan([.0015], covariance)
41
+ weights, info = plan([.0015], covariance, forecast_error_covariance=np.array([[.0001]]))
42
+ assert without['stock'] == pytest.approx(.7, abs=1e-7)
43
+ assert 0 < weights['stock'] < without['stock']
44
+ assert info['forecast_error_risk_enabled'] is True
45
+ assert info['forecast_error_variance'] > 0
46
+ assert info['total_risk_variance'] == pytest.approx(
47
+ info['forecast_variance'] + info['forecast_error_variance'])
48
+
49
+
50
+ def test_strong_negative_forecast_still_reverses_a_long_position():
51
+ weights, info = plan([-.01], np.array([[.000001]]), current=.5,
52
+ forecast_error_covariance=np.array([[.0001]]))
53
+ assert weights['stock'] < 0
54
+ assert info['estimated_plan_turnover_cost'] > .5 * .0002
55
+
56
+
57
+ @pytest.mark.parametrize('invalid', [
58
+ np.zeros((1, 1)), # The plan below has two intervals.
59
+ np.array([[1., np.nan], [np.nan, 1.]]),
60
+ np.array([[1., 1.], [0., 1.]]),
61
+ np.array([[1., 2.], [2., 1.]]),
62
+ ])
63
+ def test_invalid_forecast_error_covariance_is_rejected(invalid):
64
+ with pytest.raises(ValueError, match='Covariance'):
65
+ plan([.001, .002], np.eye(2) * .00001, forecast_error_covariance=invalid)
backend/tests/test_price_replay.py ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Saved chart data must preserve fills, partial exposure and portfolio accounting."""
2
+ import hashlib
3
+ import json
4
+ from datetime import datetime, timedelta
5
+
6
+ import pytest
7
+
8
+ from app.dashboard.price_replay import BUNDLE_ROOT, price_replay
9
+
10
+
11
+ def test_all_portable_replays_reconcile_without_double_charging_friction():
12
+ manifest = json.loads((BUNDLE_ROOT / "manifest.json").read_text())
13
+ assert len(manifest["files"]) == 24
14
+ for day in manifest["available_dates"]:
15
+ for variant in manifest["variants"]:
16
+ for ticker in manifest["tickers"]:
17
+ payload = price_replay(ticker, day, variant)
18
+ assert payload["success"]
19
+ assert payload["is_simulated"] and not payload["actual_fees_verified"]
20
+ assert payload["capital_scope"] == "four_stock_portfolio"
21
+ position = 0
22
+ for fill in payload["fills"]:
23
+ assert fill["shares_before"] == position
24
+ assert abs(fill["quantity"]) == fill["shares"]
25
+ assert fill["action"] == (
26
+ "B" if fill["quantity"] > 0 and position >= 0 else
27
+ "C" if fill["quantity"] > 0 else "S" if position > 0 else "X")
28
+ position += fill["quantity"]
29
+ assert position == fill["shares_after"]
30
+ for bar, mark in zip(payload["bars"], payload["marks"]):
31
+ assert datetime.fromisoformat(bar["time"]) - datetime.fromisoformat(bar["bar_open"]) == timedelta(minutes=5)
32
+ assert bar["time"] == mark["time"]
33
+ seen = [fill for fill in payload["fills"] if fill["time"] < mark["time"]]
34
+ shares = sum(fill["quantity"] for fill in seen)
35
+ cash = -sum(fill["quantity"] * fill["price"] + fill["commission_cost"] for fill in seen)
36
+ assert mark["shares"] == shares
37
+ # Fill prices already include assumed slippage. Subtracting
38
+ # assumed_cost here a second time would fail this equality.
39
+ assert mark["pnl"] == pytest.approx(cash + shares * bar["close"], abs=1e-7)
40
+ summary = payload["summary"]
41
+ assert summary["net_pnl"] == payload["marks"][-1]["pnl"]
42
+ assert summary["cost"] == pytest.approx(sum(f["assumed_cost"] for f in payload["fills"]))
43
+ assert summary["gross_pnl"] - summary["cost"] == pytest.approx(summary["net_pnl"])
44
+ assert summary["ending_shares"] == position
45
+ assert summary["fill_count"] == len(payload["fills"])
46
+
47
+
48
+ def test_partial_session_keeps_open_short_and_original_cutoff():
49
+ data = price_replay(" sndk ", "2026-09-15", "levels_error_risk")
50
+ assert data["success"] and data["partial"]
51
+ assert data["as_of"] == "2026-09-15T15:50:00-04:00"
52
+ assert data["bars"][-1]["time"] == data["as_of"]
53
+ assert len(data["bars"]) == 76
54
+ assert data["summary"]["ending_shares"] == -3
55
+ assert data["summary"]["net_pnl"] == pytest.approx(-147.1863435058549)
56
+ complete = price_replay("SNDK", "2026-09-14")
57
+ assert not complete["partial"]
58
+ assert complete["summary"]["ending_shares"] == 0
59
+
60
+
61
+ @pytest.mark.parametrize("kwargs", [{"ticker": "MSTR"}, {"date": "2026-09-11"},
62
+ {"variant": "does_not_exist"}, {"ticker": "../SNDK"}])
63
+ def test_unknown_request_does_not_fall_back_to_wrong_prices_or_zero_pnl(kwargs):
64
+ data = price_replay(**kwargs)
65
+ assert not data["success"]
66
+ assert data["status"] == "unavailable"
67
+ assert data["summary"] is None
68
+ assert data["bars"] == []
69
+ assert data["available_dates"]
70
+
71
+
72
+ def test_missing_or_tampered_bundle_is_unavailable(tmp_path):
73
+ assert not price_replay(root=tmp_path)["success"]
74
+ manifest = json.loads((BUNDLE_ROOT / "manifest.json").read_text())
75
+ name = "2026-09-15/levels_error_risk/SNDK.json"
76
+ destination = tmp_path / name
77
+ destination.parent.mkdir(parents=True)
78
+ raw = (BUNDLE_ROOT / name).read_bytes()
79
+ destination.write_bytes(raw + b" ")
80
+ (tmp_path / "manifest.json").write_text(json.dumps(manifest))
81
+ assert not price_replay(root=tmp_path)["success"]
82
+ destination.write_bytes(raw)
83
+ assert price_replay(root=tmp_path)["success"]
84
+ # Even a hash-updated wrong-symbol payload must not masquerade as SNDK.
85
+ changed = json.loads(raw)
86
+ changed["ticker"] = "TSLA"
87
+ destination.write_text(json.dumps(changed))
88
+ manifest["files"][name] = hashlib.sha256(destination.read_bytes()).hexdigest()
89
+ (tmp_path / "manifest.json").write_text(json.dumps(manifest))
90
+ assert not price_replay(root=tmp_path)["success"]
backend/tests/test_session_context_risk.py ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Opening observations and prediction-error evidence are causal model inputs."""
2
+ import json
3
+ import sys
4
+ from pathlib import Path
5
+
6
+ import numpy as np
7
+ import pandas as pd
8
+ import pytest
9
+
10
+ sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
11
+
12
+ from app.research.calibrated_holding import CalibratedHoldingModel
13
+ from app.research.holding_policy import DEFAULT_SYMBOLS, REFERENCES, HoldingSpec, holding_features
14
+ from test_holding_policy import frames
15
+
16
+
17
+ def test_opening_context_is_observed_without_fabricating_long_lookbacks(frames):
18
+ features = holding_features(frames, spec=HoldingSpec(family='session_context'))
19
+ opening = pd.Timestamp('2026-08-10 09:30', tz='America/New_York')
20
+ for symbol in DEFAULT_SYMBOLS:
21
+ row = features[symbol].loc[opening]
22
+ expected = frames[symbol].loc[opening, 'close'] / frames[symbol].loc[opening, 'open'] - 1
23
+ assert row.state_open_return == pytest.approx(expected)
24
+ assert np.isnan(row.momentum_12)
25
+ assert row.state_momentum_12_available == 0
26
+ assert row.state_beta_available == 0
27
+ for ref in REFERENCES:
28
+ ref_expected = frames[ref].loc[opening, 'close'] / frames[ref].loc[opening, 'open'] - 1
29
+ assert row[f'state_{ref}_open_return'] == pytest.approx(ref_expected)
30
+ assert row[f'state_{ref}_open_residual'] == pytest.approx(expected - ref_expected)
31
+ assert np.isnan(row[f'{ref}_return_12'])
32
+
33
+
34
+ def test_session_context_matches_prefix_and_ignores_future_extrema(frames):
35
+ spec = HoldingSpec(family='session_context')
36
+ last_closed = pd.Timestamp('2026-08-10 10:05', tz='America/New_York')
37
+ original = holding_features(frames, spec=spec)
38
+ prefix = holding_features({s: b.loc[:last_closed] for s, b in frames.items()}, spec=spec)
39
+ changed = {s: b.copy() for s, b in frames.items()}
40
+ for bars in changed.values():
41
+ bars.loc[bars.index > last_closed, ['open', 'high', 'low', 'close', 'volume']] *= 3
42
+ mutated = holding_features(changed, spec=spec)
43
+ for symbol in DEFAULT_SYMBOLS:
44
+ pd.testing.assert_frame_equal(original[symbol].loc[:last_closed], prefix[symbol])
45
+ pd.testing.assert_frame_equal(original[symbol].loc[:last_closed], mutated[symbol].loc[:last_closed])
46
+
47
+
48
+ def test_error_covariance_uses_prior_forward_folds_and_survives_roundtrip(frames, tmp_path):
49
+ cutoff = pd.Timestamp('2026-08-10', tz='America/New_York')
50
+ spec = HoldingSpec(family='session_context', horizons=(1, 3), seasonal_sessions=2,
51
+ forecast_error_risk=True)
52
+ model = CalibratedHoldingModel.fit(frames, cutoff, spec, validation_sessions=3)
53
+ changed = {s: b.copy() for s, b in frames.items()}
54
+ for bars in changed.values():
55
+ # Mutate all not-yet-observed prices and volume while preserving OHLC.
56
+ bars.loc[bars.index >= cutoff, ['open', 'high', 'low', 'close', 'volume']] *= 2
57
+ other = CalibratedHoldingModel.fit(changed, cutoff, spec, validation_sessions=3)
58
+ np.testing.assert_allclose(model.forecast_error_covariance, other.forecast_error_covariance,
59
+ rtol=0, atol=1e-14)
60
+ assert model.error_training == other.error_training
61
+ assert len(model.error_training['folds']) == 1
62
+ for fold in model.error_training['folds']:
63
+ assert pd.Timestamp(fold['calibrator_last_label_end']) < pd.Timestamp(fold['day'], tz='America/New_York')
64
+ assert pd.Timestamp(fold['day'], tz='America/New_York') < cutoff
65
+ assert pd.Timestamp(model.error_training['last_label_end']) < cutoff
66
+ assert np.linalg.eigvalsh(model.forecast_error_covariance).min() >= -1e-14
67
+ assert model.forecast_error_covariance.shape == (12, 12)
68
+
69
+ path = tmp_path / 'candidate.json'
70
+ model.save(path)
71
+ restored = CalibratedHoldingModel.load(path)
72
+ np.testing.assert_allclose(restored.forecast_error_covariance, model.forecast_error_covariance)
73
+ kwargs = dict(allowed=DEFAULT_SYMBOLS, shortable=dict.fromkeys(DEFAULT_SYMBOLS, True),
74
+ as_of=cutoff + pd.Timedelta(hours=10, minutes=35))
75
+ before, info = model.live_target(frames, dict.fromkeys(DEFAULT_SYMBOLS, 0.), **kwargs)
76
+ after, _ = restored.live_target(frames, dict.fromkeys(DEFAULT_SYMBOLS, 0.), **kwargs)
77
+ assert after == pytest.approx(before, abs=1e-7)
78
+ assert info['forecast_error_risk_enabled'] is True
79
+
80
+ artifact = json.loads(path.read_text())
81
+ artifact['error_training']['last_label_end'] = cutoff.isoformat()
82
+ path.write_text(json.dumps(artifact))
83
+ with pytest.raises(ValueError, match='Immature forecast error'):
84
+ CalibratedHoldingModel.load(path)
backend/tests/test_support_resistance.py ADDED
@@ -0,0 +1,135 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+ import pandas as pd
3
+ import pytest
4
+
5
+ from app.alpha.support_resistance import FEATURE_COLUMNS, support_resistance_features
6
+
7
+
8
+ def _day(day="2026-09-14", periods=78):
9
+ index = pd.date_range(day+" 09:30", periods=periods, freq="5min", tz="America/New_York")
10
+ rng = np.random.default_rng(17)
11
+ c = 100 + np.cumsum(rng.normal(0, 0.4, periods))
12
+ return pd.DataFrame(dict(open=c-.1, high=c+.5, low=c-.5, close=c, volume=1000.), index=index)
13
+
14
+
15
+ def test_prefix_equivalence_and_future_mutation():
16
+ bars = pd.concat([_day(), _day("2026-09-15", 20)])
17
+ full = support_resistance_features(bars)
18
+ for n in (1, 2, 3, 5, 12, 79, 86, 98):
19
+ pd.testing.assert_frame_equal(full.iloc[:n], support_resistance_features(bars.iloc[:n]))
20
+ changed = bars.copy()
21
+ changed.iloc[86:] *= 10
22
+ pd.testing.assert_frame_equal(full.iloc[:86], support_resistance_features(changed).iloc[:86])
23
+
24
+
25
+ def test_opening_range_available_only_after_third_bar_completes():
26
+ bars = _day(periods=8)
27
+ f = support_resistance_features(bars)
28
+ assert f.sr_opening_high_distance_bps.iloc[:2].isna().all()
29
+ assert f.sr_opening_high_distance_bps.iloc[2] == pytest.approx((bars.close.iloc[2]/bars.high.iloc[:3].max()-1)*1e4)
30
+ assert bars.index[2]+pd.Timedelta(minutes=5) == pd.Timestamp("2026-09-14 09:45", tz="America/New_York")
31
+ missing = support_resistance_features(bars.drop(bars.index[1]))
32
+ assert missing.sr_opening_high_distance_bps.isna().all()
33
+
34
+
35
+ def test_pivot_requires_two_right_bars_and_same_prior_level_for_crossing():
36
+ bars = _day(periods=8)
37
+ bars.loc[:, "high"] = [101, 102, 110, 104, 103, 112, 113, 114]
38
+ bars.loc[:, "low"] = [98, 97, 90, 96, 97, 98, 99, 100]
39
+ bars.loc[:, "close"] = [100, 101, 105, 102, 101, 111, 112, 113]
40
+ bars.loc[:, "open"] = bars.close
41
+ f = support_resistance_features(bars)
42
+ assert f.sr_pivot_high_distance_bps.iloc[:4].isna().all()
43
+ assert f.sr_pivot_low_distance_bps.iloc[:4].isna().all()
44
+ assert f.sr_pivot_high_distance_bps.iloc[4] == pytest.approx((101/110-1)*1e4)
45
+ assert f.sr_pivot_low_distance_bps.iloc[4] == pytest.approx((101/90-1)*1e4)
46
+ assert f.sr_resistance_cross_up.iloc[5] == 1
47
+ assert f.sr_last_upbreak_low_distance_bps.iloc[6] == pytest.approx((99/110-1)*1e4)
48
+ assert f.sr_upbreak_age_bars.iloc[6] == 1
49
+
50
+
51
+ def test_newly_confirmed_level_cannot_create_same_bar_cross():
52
+ bars = _day(periods=8)
53
+ # Opening high 120 is not crossed; the lower pivot 108 is confirmed on bar 6.
54
+ bars.loc[:, "high"] = [120, 102, 103, 104, 108, 106, 107, 110]
55
+ bars.loc[:, "low"] = 90
56
+ bars.loc[:, "open"] = bars.loc[:, "close"] = [100, 100, 100, 100, 103, 102, 106, 109]
57
+ f = support_resistance_features(bars)
58
+ assert f.sr_resistance_cross_up.iloc[6] == 0
59
+ assert f.sr_resistance_cross_up.iloc[7] == 1
60
+ assert f.sr_last_upbreak_close_distance_bps.iloc[7] == pytest.approx((109/108-1)*1e4)
61
+
62
+
63
+ def test_previous_trading_day_respects_session_and_missing_dates():
64
+ friday, monday = _day("2026-09-11"), _day("2026-09-14", 8)
65
+ f = support_resistance_features(pd.concat([friday, monday]))
66
+ assert f.loc[monday.index[0], "sr_previous_high_distance_bps"] == pytest.approx((monday.close.iloc[0]/friday.high.max()-1)*1e4)
67
+ assert f.loc[monday.index[0], "sr_pivot_high_distance_bps"] != f.loc[monday.index[0], "sr_pivot_high_distance_bps"]
68
+ missing_friday = support_resistance_features(pd.concat([_day("2026-09-10"), monday]))
69
+ assert missing_friday.loc[monday.index, "sr_previous_high_distance_bps"].isna().all()
70
+ incomplete_friday = support_resistance_features(pd.concat([friday.iloc[:-1], monday]))
71
+ assert incomplete_friday.loc[monday.index, "sr_previous_high_distance_bps"].isna().all()
72
+ assert incomplete_friday.loc[monday.index, "sr_previous_close_distance_bps"].isna().all()
73
+
74
+
75
+ def test_missing_rows_are_not_zero_filled_and_break_cumulative_measurements():
76
+ bars = _day(periods=12)
77
+ bars.loc[bars.index[5], :] = np.nan
78
+ f = support_resistance_features(bars)
79
+ assert f.iloc[5].isna().all()
80
+ assert f.sr_vwap_distance_bps.iloc[5:].isna().all()
81
+ assert f.sr_running_range_position.iloc[5:].isna().all()
82
+ assert f.sr_opening_high_distance_bps.iloc[6:].notna().all()
83
+ assert len(f.columns) == 19 and tuple(f.columns) == FEATURE_COLUMNS
84
+
85
+
86
+ def test_early_close_previous_session_and_timezone_preservation():
87
+ # Friday after US Thanksgiving closes at 13:00 ET (42 five-minute bars).
88
+ prior, following = _day("2025-11-28", 42), _day("2025-12-01", 5)
89
+ b = pd.concat([prior, following]).tz_convert("UTC")
90
+ f = support_resistance_features(b)
91
+ assert f.index.equals(b.index)
92
+ assert f.iloc[42].sr_previous_high_distance_bps == pytest.approx((following.close.iloc[0]/prior.high.max()-1)*1e4)
93
+
94
+
95
+ def test_invalid_timestamp_contract_fails_explicitly():
96
+ with pytest.raises(ValueError, match="Timezone-aware"):
97
+ support_resistance_features(_day().tz_localize(None))
98
+ with pytest.raises(ValueError, match="sorted and unique"):
99
+ support_resistance_features(_day().iloc[::-1])
100
+
101
+
102
+ def test_holding_support_context_preserves_context_and_live_prefix_contract():
103
+ from app.research.holding_policy import (
104
+ DEFAULT_SYMBOLS, REFERENCES, HoldingSpec, holding_features,
105
+ )
106
+
107
+ # Three complete historical sessions provide prior-day and seasonal history;
108
+ # the fourth is a live prefix whose later bars must never affect its features.
109
+ history = pd.concat([_day("2026-09-10"), _day("2026-09-11"),
110
+ _day("2026-09-14"), _day("2026-09-15", 20)])
111
+ frames = {symbol: history * (1 + i / 10)
112
+ for i, symbol in enumerate((*DEFAULT_SYMBOLS, *REFERENCES))}
113
+ support_spec = HoldingSpec(family="support_context", seasonal_sessions=2)
114
+ context = holding_features(frames, spec=HoldingSpec(family="context", seasonal_sessions=2))
115
+ full = holding_features(frames, spec=support_spec)
116
+ for symbol in DEFAULT_SYMBOLS:
117
+ assert list(full[symbol].columns) == [*context[symbol].columns, *FEATURE_COLUMNS]
118
+ pd.testing.assert_frame_equal(full[symbol][context[symbol].columns], context[symbol])
119
+
120
+ # At 09:40 only 09:30/09:35 bars have closed. The opening range is unavailable.
121
+ for n in (3 * 78 + 2, 3 * 78 + 12):
122
+ prefix = {symbol: frame.iloc[:n] for symbol, frame in frames.items()}
123
+ live_features = holding_features(prefix, spec=support_spec)
124
+ for symbol in DEFAULT_SYMBOLS:
125
+ pd.testing.assert_frame_equal(live_features[symbol], full[symbol].iloc[:n])
126
+ if n == 3 * 78 + 2:
127
+ assert np.isnan(live_features[symbol].iloc[-1].sr_opening_high_distance_bps)
128
+
129
+ cutoff = 3 * 78 + 12
130
+ mutated = {symbol: frame.copy() for symbol, frame in frames.items()}
131
+ for frame in mutated.values():
132
+ frame.iloc[cutoff:] *= 20
133
+ recomputed = holding_features(mutated, spec=support_spec)
134
+ for symbol in DEFAULT_SYMBOLS:
135
+ pd.testing.assert_frame_equal(full[symbol].iloc[:cutoff], recomputed[symbol].iloc[:cutoff])
docs/MANUAL_TRADING_TRANSLATION_20260915.md ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 把人工日内交易判断转成可核对的 SNDK 策略
2
+
3
+ 用户截图里的 SNXX 买卖是用户本人手动操作。它用于说明希望达到的节奏:分批买入、确认后加仓、持有上涨段、走弱后退出。本次研究交易对象是 SNDK 股票。没有用户的精确成交时间和股数,不能把截图直接当训练标签,也不能计算用户那组交易的收益。
4
+
5
+ ## 已完成的实现
6
+
7
+ - `backend/app/alpha/support_resistance.py` 提供19列支撑压力、开盘区间、确认高低点、突破及回踩描述。
8
+ - `holding_policy.py` 的 `support_context` 在原量价、同时间段相对成交量、市场和行业参考特征上追加这些列。训练和候选推断使用同一函数。
9
+ - 继续预测5/15/30/60分钟累计收益,由既有多周期组合规划决定目标仓位;另一组对照加入以前向校准误差估计的风险。没有把支撑位写成必买规则,也没有把历史高点写成必卖时点。
10
+ - 生成两天、三组候选的实际模拟买卖点、每笔股数、持仓、预测及盈亏。当前运行中的模型没有被替换,UI和README未改。
11
+
12
+ 这只是把人工判断中的可观察信息转成机器输入,不代表机器已经学会用户的交易能力。尤其是“多加几个特征”未必解决目标函数、校准或退出方式的问题。
13
+
14
+ ## 人的观察如何对应数据
15
+
16
+ | 人工观察 | 可以计算的输入 | 用途与限制 |
17
+ |---|---|---|
18
+ | 回踩某价位后稳住 | 当时已知的前日高低、开盘区间、确认低点、跌破后收回距离 | 判断候选入场;低点需等待确认,不能提前知道全天底部 |
19
+ | 突破后有没有人继续买 | 突破与回踩距离、同时间段相对成交量、价格推进幅度、市场相对强弱 | 区分有延续的突破和迅速回落;总成交量不能确定机构身份 |
20
+ | 先买一点,走对再加 | 多周期预期收益、校准误差、现有仓位、波动及股票间相关性 | 联合配仓;本次股数由模型和资金决定,不按截图写死 |
21
+ | 持有一段,而非每根K线翻向 | 15/30/60分钟预测曲线、维持仓位与改变仓位的成本 | 原规划器已经使用;两天结果显示短时反复交易仍未解决 |
22
+ | 接近压力位后分批出 | 受阻幅度、较低高点、回落、剩余预测收益 | 测试退出质量;碰到某价位本身不证明应该卖出 |
23
+ | 期权是否活跃 | 延迟Call/Put成交量、到期日与行权价分布、带日期的OI | 待建立完整留存;OI不带看涨方向,也不能识别机构买入 |
24
+
25
+ ## 两天对照结果
26
+
27
+ 9月14日为完整交易日;9月15日仅到**15:50美东**,仍有估值中的未平仓股数,不是当日最终盈亏。
28
+
29
+ | SNDK模拟净盈亏 | 原Context | 加支撑压力 | 加支撑压力与误差风险 |
30
+ |---|---:|---:|---:|
31
+ | 9月14日 | +$107.66 | −$126.72 | −$95.05 |
32
+ | 9月15日截至15:50 | −$262.61 | −$182.33 | −$147.19 |
33
+ | 两次独立实验结果之和 | −$154.95 | −$309.05 | −$242.24 |
34
+
35
+ 9月14日四股组合起始资金$47,006.42;9月15日$47,958.07。每天独立零持仓开始,**不是连续账户复利**。SNDK资金按四股组合动态分配,不是将以上本金全部用于SNDK。规划成本2bps、实际模拟成交单边摩擦5bps,两者均为假设,非确认的Alpaca扣费。滑点已包含在模拟成交价,净盈亏不重复扣减。未验证借券可得性、真实成交概率和额外借券/规费。
36
+
37
+ 加风险的候选今天比原Context少亏$115.42,但昨天少赚/多亏$202.71,两次结果之和反而差$87.28。不能用今天改善宣称新Alpha成功。完整四股组合结果见[原始实验报告](../reports/manual_style_research_20260915/REPORT.md),三组候选两天的组合结果也均亏损。
38
+
39
+ ## 仍失败的具体交易
40
+
41
+ 以下均为模型模拟,价位为未加滑点的参考价。含滑点成交价与每笔股数见CSV。
42
+
43
+ - **9月14日09:50**:新风险候选仍追买9股,参考$1,546.70;09:55又卖11股,参考$1,524.79。它缩小了部分风险,却没有识别这次假突破。
44
+ - **9月14日13:30之后**:新候选先卖完剩余2股,随后13:45、13:50、14:00又在更高价加回。持有上涨段的质量仍差。
45
+ - **9月15日上午**:先做空并在10:15平空,净亏约$65.63;10:20参考$1,564.22转多4股,至10:45卖完,再亏约$41.26。减亏主要来自仓位变化,方向错误依然存在。
46
+ - **9月15日11:15与11:45**:两次买入都在五分钟后退出,分别净亏约$10.19和$7.36。仅增加支撑压力输入还不足以形成用户希望的持仓节奏。
47
+
48
+ ## 可直接查看的产物
49
+
50
+ - [9月14日新候选:价格、成交量、每笔股数、持仓和盈亏](../reports/manual_style_review_20260915/2026-09-14/levels_error_risk/SNDK_volume_orders.png)
51
+ - [9月15日新候选:同样口径截至15:50](../reports/manual_style_review_20260915/2026-09-15/levels_error_risk/SNDK_volume_orders.png)
52
+ - [9月14日全部特征、原始/校准预测和目标仓位](../reports/manual_style_review_20260915/2026-09-14/levels_error_risk/SNDK_review.csv)
53
+ - [9月15日全部特征、原始/校准预测和目标仓位](../reports/manual_style_review_20260915/2026-09-15/levels_error_risk/SNDK_review.csv)
54
+ - [9月14日逐笔成交](../reports/manual_style_research_20260915/2026-09-14/levels_error_risk/SNDK_orders.csv)
55
+ - [9月15日逐笔成交](../reports/manual_style_research_20260915/2026-09-15/levels_error_risk/SNDK_orders.csv)
56
+
57
+ 图中的 B=买入开多、S=卖出多仓、C=平空、X=开空;后面的数字为股数。持仓阶梯按实际模拟成交时刻变化。CSV每行同时提供 `bar_open` 和 `available_at`;最后一根K线产生的预测不一定已经执行。原实验文件保留,复盘导出在独立目录并校验输入哈希。
58
+
59
+ ## 期权实际进度
60
+
61
+ 完成[免费期权数据审计](OPTIONS_DATA_AUDIT_20260915.md)。本账户SNDK/TSLA样本的合约资料、免费indicative快照及较早历史K线返回成功。不过样本OI日期均为9月11日;9月15日下午取得的快照不能倒填昨天或今天早盘。免费indicative报价是修改过的衍生报价,成交有15分钟延迟。[Alpaca官方说明](https://docs.alpaca.markets/us/docs/historical-option-data)
62
+
63
+ 这次两天实验**没有加入期权或L1输入**。可建设完整合约池的延迟成交量、Call/Put活动比例和每天OI留存,再按真实可用时间做对照。两份单Call样本不能计算全链Put/Call比例,更不能推导可信的Dealer Gamma或机构资金方向。
64
+
65
+ ## 验证与下一轮研究依据
66
+
67
+ 支撑特征和统一训练/推断契约的9项测试通过。包括追加未来行情不改变过去、确认点可用时间、缺失数据、提前收盘以及原Context列保持一致。六条模拟路径以成交现金流加期末库存独立重算,盈亏一致;训练与校准标签均早于目标交易日。这两天已经看过,属于回顾开发,不是未触碰的样本外证明。
68
+
69
+ 下一轮应围绕具体失败检查:原始预测经过校准后是否错误翻向;退出后很快高价回补是否来自过短的收益目标;同一预测下持仓调整是否比继续持有更有价值。记录全部尝试,以后续未用于修改的日期验证,不能把这两天调到漂亮后当作泛化成绩。期权数据先积累可用时间记录,再评价是否增加信息。
70
+
71
+ 重现本次原实验(必须指定新的输出目录,避免覆盖):
72
+
73
+ ```bash
74
+ python3 scripts/research_manual_style.py \
75
+ --today /Users/yuliangpeng/.local/share/quant-l1/reports/manual_style_20260915/bars_today \
76
+ --output reports/manual_style_reproduction
77
+ python3 scripts/export_manual_style_review.py \
78
+ --study reports/manual_style_reproduction \
79
+ --output reports/manual_style_reproduction_review
80
+ ```
docs/OPTIONS_DATA_AUDIT_20260915.md ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 免费期权信息可用性审计 — 2026-09-15
2
+
3
+ **结论:本账户可读取 SNDK/TSLA 期权合约资料、indicative 最新快照以及较早的历史期权 K 线。可以据此建设延迟成交量与每日持仓量研究;尚不能把这些数据当作真实实时期权订单流,更没有证明它们提升股票策略收益。**
4
+
5
+ 审计范围是给股票交易补充上下文,不涉及购买期权、订阅付费行情或改变账户设置。本次只发送 GET 请求,每只股票查询一个合约、一份快照、五根历史 K 线,未下载全链。
6
+
7
+ ## 1. 本地实现核查
8
+
9
+ 检查了 `backend`、`scripts`、`frontend/src` 中的 Python/TypeScript 源码。
10
+
11
+ - `backend/app/config.py:228` 有 `OPTIONS_QUANT_TRADER` 角色配置,包含 IV Rank、Skew、Delta/Gamma 等名称及固定权重。
12
+ - 当前未发现对应的 Alpaca 期权链/OI/OPRA 采集器,也未发现这些期权字段进入股票预测特征管道的实现。
13
+ - 因此“有期权策略角色配置”不等于“已经使用真实期权 Alpha”。这些配置数值是策略模板参数,不是来自市场的观察值。
14
+ - 本次保留所有现有界面及配置,仅增加审计文件与只读数据样本。
15
+
16
+ ## 2. 官方数据口径
17
+
18
+ | 数据 | 已核实的官方含义 | 项目中的正确用法 |
19
+ |---|---|---|
20
+ | Indicative options feed | 免费衍生行情;报价经过修改,成交也是衍生数据并延迟15分钟 | 可用于接口联调;不能命名为真实实时期权盘口、扫单或机构买入 |
21
+ | OPRA feed | 期权市场合并最优买卖报价源;实时权限取决于订阅 | 仅在账户权限和数据来源核实后使用;本次未验证实时 OPRA 权限 |
22
+ | Historical option bars | 支持按合约、区间与周期查询;无实时权限时文档的默认截止时间为当前时间减15分钟 | 研究延迟可用的成交量、价格与合约活跃度;K线须完整闭合,并计入可获取延迟 |
23
+ | Option chain snapshot | 返回各合约最新成交、最新报价、Greeks等 | 是查询时快照,不是任意历史时点期权链;不能倒填昨天或今天早盘 |
24
+ | Open interest | 合约未平仓数量,并带有 `open_interest_date` | 是带日期的存量资料;不能视为当下新增买盘或盘中实时流量 |
25
+
26
+ 来源:[Alpaca历史期权数据](https://docs.alpaca.markets/us/docs/historical-option-data)、[期权历史K线参数](https://docs.alpaca.markets/us/reference/optionbars)、[期权链快照](https://docs.alpaca.markets/us/reference/optionchain)、[OptionContract字段](https://alpaca.markets/sdks/python/api_reference/trading/models.html#optioncontract)。
27
+
28
+ Alpaca WebSocket 支持 `indicative` 与 `opra`,期权流采用 MsgPack;连接可用不改变 feed 本身的数据性质。[实时期权数据接口](https://docs.alpaca.markets/us/docs/real-time-option-data)
29
+
30
+ OCC需在日终清算配对后计算新的未平仓量。OI上升本身不能证明看涨,因为一份新增合约同时有买方和卖方。[OIC/OCC关于OI的解释](https://www.optionseducation.org/referencelibrary/faq/general-information)
31
+
32
+ ## 3. 当前账户只读验证结果
33
+
34
+ 查询时间:**2026-09-15 15:54:25 美东 / 19:54:25 UTC**。使用机器上已有的 Alpaca 配置;证据文件不保存密钥、请求认证头或账户标识。
35
+
36
+ | 项目 | SNDK样本 | TSLA样本 |
37
+ |---|---|---|
38
+ | 合约 | `SNDK260918C01500000` | `TSLA260918C00350000` |
39
+ | 到期日/类型 | 2026-09-18 / Call | 2026-09-18 / Call |
40
+ | 行权价 | $1,500 | $350 |
41
+ | 合约资料HTTP状态 | 200 | 200 |
42
+ | OI | 1,631 | 5,812 |
43
+ | **OI数据日期** | **2026-09-11** | **2026-09-11** |
44
+ | 最新 indicative 快照HTTP状态 | 200 | 200 |
45
+ | 历史5分钟K线HTTP状态 | 200 | 200 |
46
+ | 历史样本数 | 5,存在下一页 | 5,存在下一页 |
47
+ | 样本最新K线起点 | 2026-09-15 15:30 ET | 2026-09-15 15:30 ET |
48
+
49
+ 两个合约按明确的到期、类型及行权区间取第一条,仅用于验证接口,不代表全链、最活跃合约或策略选择结果。
50
+
51
+ **实际核实到的OI甚至不是9月14日,而是9月11日。** 在9月15日查询时可见这个值,不足以证明该值在9月14日09:35已由项目接收到。`open_interest_date`是资料对应日期,不能代替发布时间和接收时间。
52
+
53
+ 快照里的 `latestQuote` 接近查询时刻,`latestTrade` 分别约在15:37:53与15:39:19,符合延迟来源的特征。报价“时间新”不能消除 indicative 报价经过修改的性质。快照内 `dailyBar`、`minuteBar`、`prevDailyBar`、IV、Greeks保留原始返回值,但各字段的来源和更新周期未逐一独立验证。
54
+
55
+ 历史K线请求使用官方 `/v1beta1/options/bars` 参数,未加入该端点文档未列出的 `feed` 参数。HTTP 200验证了本账户当前可取得这些较早的价格与成交量记录;响应没有显式 feed 字段,不据此宣称取得实时 OPRA 或完成全交易所逐笔核验。
56
+
57
+ 原始市场数据及请求参数证据:[options_data_probe_20260915.json](../reports/options_data_probe_20260915.json)。这个文件只有两份合约样本,**不足以计算标的全链Put/Call比或Gamma敞口**。
58
+
59
+ ## 4. 可以补充哪些股票交易特征
60
+
61
+ 这些是待检验候选,先做数据采集和研究,再与原股票模型做同资金、同成本的对照。
62
+
63
+ | 候选 | 所需输入 | 时间与含义限制 |
64
+ |---|---|---|
65
+ | 延迟期权相对成交量 | 预先确定的合约池、已闭合历史bars、过去同时间段成交量 | 只使用真实可获取时刻之前的记录;不能将全日成交量用于上午预测 |
66
+ | 延迟Call/Put成交量比例 | 两边合约的完整采样口径、按到期和价内外程度分组 | 反映交易活动,不直接区分买入/卖出、开仓/平仓;单一Call合约无法计算 |
67
+ | 到期与行权价OI分布 | 每日保存的完整合约元数据和OI日期 | 是背景持仓集中度;不能把最大OI行权价当成必然支撑/压力 |
68
+ | 当日量/OI | 延迟累计成交量、最近实际可用OI及其日期 | OI较旧时显示资料年龄;分母缺失或零时该比值不可用 |
69
+ | IV期限结构/偏斜 | 同时点可靠报价、完整合约、明确估值方法 | 当前indicative IV仅记录为衍生快照;未获得可信历史快照前不用于回放早盘 |
70
+
71
+ 免费情况下,近期最可执行的是**有延迟标注的期权成交量上下文**与**每日OI存档**。它们可与股价相对VWAP、当时已知支撑压力、成交量变化一起研究30/60分钟走势,不能用15分钟后才到的数据解释5分钟前已经发出的订单。
72
+
73
+ 不从公开OI、总量或单笔大成交直接推断机构身份。Dealer Gamma的正负需要持仓方与买卖方向等假设,当前数据无法验证,不将“Gamma wall”或“主力扫单”作为实测事实。
74
+
75
+ ## 5. 必须保存的数据时间及缺失信息
76
+
77
+ 建议每条新记录保留 `provider`、`endpoint`、`requested_feed`、`response_feed_if_present`、`event_time`、`received_at`、`available_at`、`contract_symbol`、`expiration`、`strike`、`option_type`、`open_interest_date`、`coverage`、`quality_status`。
78
+
79
+ - 实时接收记录只能在 `received_at` 之后用于决策。
80
+ - 历史5分钟bar用开始时间标记时,最早可用时间先经过bar闭合,再加文档规定的延迟;真实采集还要考虑轮询/网络延迟。历史回填的到达时间属于假设,应单独标记。
81
+ - 最新快照不能回填旧时点的IV/Greeks/OI可见性。
82
+ - 未下载、未授权、过期、缺失、未定义分别保留状态;缺失不写成0,也不伪造正常的默认比率。
83
+ - 真实0成交量与缺失bar需要按数据源含义区分;不能仅因没有返回记录就声称没有成交。
84
+
85
+ ## 6. 已完成与仍未知
86
+
87
+ 已完成:官方文档核对、本地源码查找、两只股票小样本API验证及证据存档。
88
+
89
+ 仍未知:实时OPRA是否授权、全链覆盖、各合约真实发布时间、历史OI快照、Greeks更新口径、延迟期权信息是否增加净收益。未启用任何期权驱动股票交易规则。
90
+
91
+ 本报告为研究与工程可用性审计,不把9月14/15日走势或人工B/S截图作为已验证Alpha;账户费用也不从模拟滑点假设推定。
docs/PRICE_REPLAY_DISPLAY.md ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 价格线与买卖点回放展示
2
+
3
+ 用户授权用价格折线、买卖标记和股数替换复盘大屏主图,保留 Dynamic Replay 与既有交互。该变更仅涉及数据展示,不改变交易模型或下单逻辑。
4
+
5
+ ## 页面
6
+
7
+ - `TradeComparisonPanel` 默认显示新的价格回放;经典规则轨迹与K线保留在旁边的切换按钮。
8
+ - `PriceActionReplayChart` 显示蓝色价格折线、橙色OHLCV均价代理、B/S/C/X及股数、成交量、持仓和净盈亏。支持股票、日期、研究模型、播放/暂停、倍速、进度拖动、时段与缩放。
9
+ - 原Dynamic Replay保留沙盒、播放按钮、倍速和其他页面结构,图表默认改为价格线与均价代理。K线及EMA可通过图例开启。
10
+ - 股票在两个展示区域联动。研究回放和券商归档的日期独立选择,因为保存的日期范围可能不同;不能把券商归档日期强塞给研究回放。
11
+ - 修复原 `trade_comparison` 页面重复渲染两套复盘面板的问题。
12
+
13
+ ## 数据
14
+
15
+ 新增只读接口:
16
+
17
+ ```text
18
+ GET /api/dashboard/price_replay?ticker=SNDK&date=2026-09-15&variant=levels_error_risk
19
+ ```
20
+
21
+ 当前可移植数据包位于 `backend/data/price_replay/`,覆盖SNDK、TSLA、NVDA、PLTR,9月14日与9月15日,Context/支撑压力/支撑压力与误差风险三种研究模型,共24份。该接口读取已保存数据,不训练模型、不查询券商、不自动生成交易。缺失组合显示不可用。
22
+
23
+ 9月15日仅截至15:50美东,仍保留未平仓库存;不能标成完整日或实际账户盈亏。单边5bps为模拟摩擦,已体现在模拟成交价,不能再次从净盈亏扣除。组合期初资金不等于某只股票独占的资金。
24
+
25
+ 价格时间使用已完成5分钟K线的可用时刻,成交使用实际模拟执行时间。持仓阶梯直接来自成交事件。保存的K线收盘估值发生在同刻下一根开盘成交之前,因此前端追加同刻成交后的现金与库存估值,使回放不会出现新仓位却仍显示成交前盈亏的情况。重置/播放不显示尚未发生的成交标记。
26
+
27
+ 原Dynamic Replay保留券商归档来源。其真实成交标记现在按完整时间戳定位,不再要求成交分钟恰好等于5分钟K线时间点。
28
+
29
+ ## 更新研究数据包
30
+
31
+ 使用导出脚本读取经过校验的研究产物,命令行参数见:
32
+
33
+ ```bash
34
+ python3 scripts/export_price_replay_bundle.py --help
35
+ ```
36
+
37
+ 不要手动修改保存的盈亏或股数;清单哈希不匹配的产物会被拒绝展示。新报告加入页面需要更新数据包,而不是将当前两天样本假装成实时推断。
38
+
39
+ ## 验证
40
+
41
+ - `PYTHONPATH=backend python3 -m pytest -q backend/tests/test_price_replay.py`:7项通过,包含24份数据的逐次现金/库存重算、未平仓、时间可用性、错误请求及哈希异常。
42
+ - `npm run build`:TypeScript和Vite构建通过。
43
+ - Chrome离线浏览器检查:四股、日期/模型切换、原报告盈亏与成交数、重置、播放/暂停/倍速、缩放、窄屏、研究和券商日期独立;无浏览器运行异常。新主图使用真实保存的研究数据,测试不连接券商。
44
+ - Dynamic Replay浏览器检查:历史价格线、可选K线、09:32:26这类非整5分钟成交标记、播放中无未来标记、图例保持以及快速换股票后的请求竞争。
45
+
46
+ 截图与检查摘要:`reports/price_replay_ui_20260915/`。本次未修改 `live_runner.py` 或替换线上模型。
docs/TSLA_REVERSAL_RESEARCH_20260915.md ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # TSLA反转逻辑修改与阶段性结果
2
+
3
+ 评估区间:2026-09-15 09:30—11:00 ET。这是已查看行情后的开发诊断,非未触碰样本外验证。
4
+ 资金:$47,958.07,来自当日只读账户last_equity字段;期初空仓是假设,非账户库存复刻。
5
+ 行情:固定Yahoo OHLCV快照,与runner同提供方;原始实时到达与修订历史无法复刻。
6
+ 所有版本交易同样的SNDK、TSLA、NVDA,PLTR仅参与特征。单边5bps为模拟摩擦,非Alpaca实收手续费。
7
+ 未平仓按11:00可知的最后完整K线收盘估值,不强行提前平仓,不补全天未来数据。
8
+
9
+ ## 已修改逻辑
10
+
11
+ 1. 新增可选session_context特征族:相对开盘收益、截至当前的高低点位置、OHLCV VWAP代理偏离、SPY/QQQ/SOXX相对开盘走势及长回看是否可用。
12
+ 2. 多期限组合新增可选预测误差风险:优化目标使用市场收益协方差加预测误差矩阵,沿用同一风险权重;没有新增按ticker、时间或当日涨跌决定买卖的规则。
13
+ 3. 误差矩阵来自9月10、11、14日的前向校准预测,基底模型先冻结,每日校准只用更早日期;最后标签在9月14日15:55成熟。矩阵为误差协方差加偏差外积,非置信区间。
14
+ 4. 默认配置兼容既有工件,预测误差开关不改变特征契约;加载时核查误差fold训练/标签日期。新模型候选已生成,尚未激活。
15
+
16
+ ## 同口径结果
17
+
18
+ |版本|TSLA净模拟盈亏|三股组合净模拟盈亏|
19
+ |---|---:|---:|
20
+ |旧冻结5m|-$985.96|-$940.61|
21
+ |既有Context多期限|-$718.64|-$981.62|
22
+ |既有Context+误差风险|-$628.34|-$881.12|
23
+ |新增session_context|-$863.70|-$1,125.46|
24
+ |新增session_context+误差风险|-$732.66|-$977.93|
25
+
26
+ TSLA“既有Context+误差风险”比旧冻结少亏$357.62,但组合只少亏$59.49。
27
+ 隔离风险项的对照:比既有Context TSLA少亏$90.30,组合少亏$100.50。
28
+ 新增开盘特征未改善收益,应保留失败记录,不据今天结果部署。
29
+
30
+ ## 反转是否解决
31
+
32
+ 没有。所有模型09:35仍先看空。旧冻结09:45模拟从空91股翻到多91股;
33
+ Context多期限当时目标多29股,加入误差风险后多16股,09:50转为空仓。
34
+ 减亏主要是改变持仓规模和路径,尚未学到用户希望的“先多后空”。
35
+ Context风险版本组合成交40笔,旧冻结18笔,因此也不能声称已经减少交易次数或解决所有换手。
36
+ 新风险版本11:00产生的目标没有下一根已保存开盘价可成交,在报表中明确标记未执行。
37
+
38
+ ## 验证与产物
39
+
40
+ 22项测试通过:原持仓模型、校准、接入、误差优化及新增开盘状态;覆盖未来数据变更不影响过去、
41
+ 保存加载一致性、旧模型兼容、误差增加时缩减简单极端仓位、强反向预测仍可反转、无效协方差拒绝。
42
+ 24个最终产物哈希通过,组合权益与逐股盈亏核对通过。
43
+
44
+ - 最终对照:`reports/tsla_reversal_ablation_20260915/REPORT.md`
45
+ - 逐时决策:`reports/tsla_reversal_ablation_20260915/TSLA_decision_comparison.csv`
46
+ - 全部盈亏:`reports/tsla_reversal_ablation_20260915/summary.csv`
47
+ - 候选:`reports/tsla_reversal_ablation_20260915/context_error_curve.json`
48
+ - 第一轮结果完整保留:`reports/tsla_reversal_research_20260915/`
49
+
50
+ 复现(使用新输出目录,避免覆盖已登记实验):
51
+
52
+ ```bash
53
+ python3 scripts/research_tsla_reversal.py \
54
+ --today /Users/yuliangpeng/.local/share/quant-l1/reports/tsla_reversal_20260915/bars_today/runner_yahoo \
55
+ --output reports/tsla_reversal_rerun_20260915 \
56
+ --capital 47958.07
57
+ ```
58
+
59
+ 正式考虑接入之前,应固定候选与参数,按用户顺序继续检验此前已保存交易日及未来纸盘;
60
+ 不能因为今天减亏就宣称学会稳定识别拐点。
frontend/dist/assets/{index-DCSOhC_L.css → index-7xTfuMOi.css} RENAMED
@@ -1 +1 @@
1
- :root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#fff;--color-green:#00c805;--color-red:#ff3b30;--color-bg-dark:#000;--color-bg-card:#1e1e1e;--color-border:#333;--color-text-secondary:#8e8e93;background-color:#000;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-weight:400;line-height:1.5}body{background-color:var(--color-bg-dark);min-height:100vh;margin:0;padding:0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#000}::-webkit-scrollbar-thumb{background:#2c2c2e;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#3a3a3c}.header-bar{border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#1e1e1e33;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex}.logo{color:#fff;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:800;display:flex}.logo span{color:var(--color-green)}.app-container{background-color:#000;grid-template-columns:1fr 300px;min-height:calc(100vh - 65px);display:grid}.main-content{border-right:1px solid var(--color-border);flex-direction:column;gap:2rem;padding:2rem;display:flex;overflow-y:auto}.sidebar{background-color:#000;flex-direction:column;gap:1.5rem;padding:2rem 1.5rem;display:flex}.sidebar-title{color:#fff;border-bottom:1px solid var(--color-border);margin:0 0 .5rem;padding-bottom:.5rem;font-size:1.1rem;font-weight:700}.watchlist-item{cursor:pointer;background-color:#1c1c1e;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem 1rem;transition:all .2s;display:flex}.watchlist-item:hover{border-color:var(--color-green);background-color:#2c2c2e}.watchlist-item.active{border-color:var(--color-green);background-color:#00c8051a}.watchlist-ticker{font-size:1.1rem;font-weight:700}.watchlist-price{text-align:right;font-weight:600}.pnl-container{flex-direction:column;gap:.25rem;display:flex}.portfolio-value{letter-spacing:-1px;font-size:3rem;font-weight:800}.pnl-text{align-items:center;gap:.25rem;font-size:1.1rem;font-weight:600;display:flex}.pnl-text.up{color:var(--color-green)}.pnl-text.down{color:var(--color-red)}.time-tabs{gap:.5rem;margin-top:1rem;display:flex}.tab-btn{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.4rem .8rem;font-size:.9rem;font-weight:700;transition:all .2s}.tab-btn:hover{color:#fff;background-color:#1c1c1e}.tab-btn.active{color:var(--color-green);background-color:#00c8051a}.card{border:1px solid var(--color-border);background-color:#1c1c1e;border-radius:12px;padding:1.5rem}.card-title{color:#fff;margin:0 0 1rem;font-size:1.1rem;font-weight:700}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.5rem;display:grid}.stat-box{flex-direction:column;gap:.25rem;display:flex}.stat-label{color:var(--color-text-secondary);font-size:.85rem;font-weight:600}.stat-value{font-size:1.4rem;font-weight:800}.ledger-table{border-collapse:collapse;text-align:left;width:100%}.ledger-table th{color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);padding:.75rem 1rem;font-size:.9rem;font-weight:600}.ledger-table td{border-bottom:1px solid var(--color-border);padding:1rem;font-size:.95rem}.ledger-table tr:hover{background-color:#ffffff05}.action-badge{border-radius:4px;padding:.25rem .5rem;font-size:.8rem;font-weight:700}.action-badge.buy{color:var(--color-green);background-color:#00c80526}.action-badge.sell{color:var(--color-red);background-color:#ff3b3026}.chart-wrapper{border:1px solid var(--color-border);background-color:#000;border-radius:12px;width:100%;height:400px;position:relative;overflow:hidden}.loader-container{border:1px solid var(--color-border);height:400px;color:var(--color-text-secondary);background-color:#1c1c1e;border-radius:12px;justify-content:center;align-items:center;font-size:1.2rem;font-weight:600;display:flex}input[type=range]{-webkit-appearance:none;background:#2c2c2e;border-radius:3px;outline:none;width:100%;height:6px;margin:10px 0}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--color-green);cursor:pointer;border-radius:50%;width:16px;height:16px;transition:transform .1s}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.25)}select:focus,input[type=text]:focus{outline:none;box-shadow:0 0 0 1px #00c80533;border-color:var(--color-green)!important}.ledger-table td button{transition:all .2s}.pnl-header-container{flex-flow:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.interval-picker-container{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.strategy-patterns-grid{grid-template-columns:1.2fr .8fr;gap:2rem;display:grid}.nav-tabs{border:1px solid var(--color-border);background:#1c1c1e;border-radius:10px;gap:4px;padding:3px;display:flex}.nav-tab{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 20px;font-size:.85rem;font-weight:700;transition:all .25s}.nav-tab:hover{color:#fff;background:#ffffff0d}.nav-tab.active{color:#000;background:var(--color-green)}.stats-divider{background:var(--color-border);height:1px;margin:1.25rem 0}.chat-panel{border:1px solid var(--color-border);background:#111;border-radius:16px;flex-direction:column;max-height:700px;display:flex;overflow:hidden}.chat-header{border-bottom:1px solid var(--color-border);background:#1e1e1e99;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.chat-header-title{align-items:center;gap:8px;font-size:1rem;font-weight:700;display:flex}.chat-icon{font-size:1.2rem}.chat-status{color:var(--color-green);font-size:.8rem;font-weight:600}.chat-messages{flex-direction:column;flex:1;gap:12px;max-height:500px;padding:16px;display:flex;overflow-y:auto}.chat-msg{display:flex}.chat-msg-user{justify-content:flex-end}.chat-msg-bubble{word-break:break-word;border-radius:16px;max-width:85%;padding:12px 16px;font-size:.9rem;line-height:1.6}.chat-msg-user-bubble{background:var(--color-green);color:#000;border-bottom-right-radius:4px;font-weight:600}.chat-msg-system-bubble{color:var(--color-text-secondary);background:#8e8e931f;border-bottom-left-radius:4px;font-size:.85rem}.chat-msg-assistant-bubble{color:#e0e0e0;border:1px solid var(--color-border);background:#1c1c1e;border-bottom-left-radius:4px}.chat-config-preview{background:#0000004d;border:1px solid #ffffff0f;border-radius:10px;margin-top:12px;padding:12px}.chat-config-title{color:#fff;margin-bottom:10px;font-size:.85rem;font-weight:700}.chat-config-grid{grid-template-columns:1fr 1fr;gap:6px 16px;display:grid}.chat-config-item{justify-content:space-between;padding:3px 0;font-size:.8rem;display:flex}.chat-config-key{color:var(--color-text-secondary)}.chat-config-val{color:var(--color-green);font-family:SF Mono,Fira Code,monospace;font-weight:600}.chat-plan{background:#0000004d;border:1px solid #ffffff0f;border-radius:10px;margin-top:12px;padding:12px}.chat-plan-step{align-items:flex-start;gap:10px;padding:6px 0;display:flex}.chat-plan-step-num{background:var(--color-green);color:#000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.7rem;font-weight:800;display:flex}.chat-plan-tool{color:#af52de;font-family:SF Mono,Fira Code,monospace;font-size:.8rem;font-weight:700;display:block}.chat-plan-desc{color:var(--color-text-secondary);font-size:.8rem}.chat-risk-report{background:#0006;border:1px solid #ffffff14;border-radius:12px;margin-top:12px;padding:16px}.chat-risk-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.risk-score-badge{text-align:center;border:2px solid;border-radius:12px;min-width:70px;padding:6px 16px}.risk-score-value{font-size:1.6rem;font-weight:800;line-height:1}.risk-score-label{text-transform:uppercase;letter-spacing:.5px;font-size:.65rem;font-weight:700}.chat-risk-section{border-left:3px solid var(--color-border);background:#ffffff05;border-radius:8px;margin-bottom:14px;padding:12px}.chat-risk-section.chat-risk-positive{border-left-color:var(--color-green)}.chat-risk-section.chat-risk-negative{border-left-color:var(--color-red)}.chat-risk-section.chat-risk-warning{border-left-color:#f5a623}.chat-risk-section.chat-risk-neutral{border-left-color:#af52de}.chat-risk-section-title{color:#fff;margin-bottom:8px;font-size:.9rem;font-weight:700}.chat-risk-insights{margin:0;padding:0;list-style:none}.chat-risk-insights li{color:silver;padding:3px 0 3px 12px;font-size:.82rem;line-height:1.6;position:relative}.chat-risk-insights li:before{content:"›";color:var(--color-text-secondary);font-weight:700;position:absolute;left:0}.chat-risk-insights li strong{color:#fff}.chat-risk-insights li code{color:#af52de;background:#af52de26;border-radius:4px;padding:1px 6px;font-family:SF Mono,Fira Code,monospace;font-size:.78rem}.chat-typing{gap:4px;display:flex;padding:16px 20px!important}.chat-typing .dot{background:var(--color-green);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite typingPulse}.chat-typing .dot:nth-child(2){animation-delay:.2s}.chat-typing .dot:nth-child(3){animation-delay:.4s}@keyframes typingPulse{0%,60%,to{opacity:.3;transform:scale(.8)}30%{opacity:1;transform:scale(1)}}.chat-examples{border-top:1px solid var(--color-border);flex-wrap:wrap;gap:8px;padding:10px 16px;display:flex}.chat-example-btn{color:var(--color-green);cursor:pointer;background:#00c8050f;border:1px solid #00c80533;border-radius:20px;padding:6px 14px;font-size:.78rem;font-weight:500;transition:all .2s}.chat-example-btn:hover{border-color:var(--color-green);background:#00c8051f}.chat-input-area{border-top:1px solid var(--color-border);background:#141414cc;gap:8px;padding:12px 16px;display:flex}.chat-input{border:1px solid var(--color-border);color:#fff;resize:none;background:#1c1c1e;border-radius:12px;outline:none;flex:1;padding:10px 16px;font-family:inherit;font-size:.9rem;transition:border-color .2s}.chat-input:focus{border-color:var(--color-green)}.chat-input::placeholder{color:#555}.chat-send-btn{background:var(--color-green);cursor:pointer;border:none;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.1rem;transition:all .2s;display:flex}.chat-send-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 0 20px #00c8054d}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}.equity-curve-card{padding-bottom:1rem}.equity-curve-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.equity-curve-stats{gap:1.5rem;font-size:.8rem;display:flex}.equity-stat{color:var(--color-text-secondary);font-weight:600}.equity-stat strong{color:#fff}.equity-chart-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:.75rem;font-weight:600}.equity-chart-container,.drawdown-chart-container{border:1px solid #ffffff0a;border-radius:8px;overflow:hidden}.regime-card{overflow:hidden}.regime-distribution{margin-bottom:1.25rem}.regime-bar{border-radius:4px;height:8px;margin-bottom:8px;display:flex;overflow:hidden}.regime-bar-segment{min-width:2px;transition:width .5s}.regime-bar-labels{flex-wrap:wrap;gap:12px;font-size:.75rem;font-weight:600;display:flex}.regime-bar-label{align-items:center;gap:4px;display:flex}.regime-table-wrapper{overflow-x:auto}.regime-table{border-collapse:collapse;text-align:left;width:100%}.regime-table th{color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);text-transform:uppercase;letter-spacing:.3px;padding:8px 12px;font-size:.8rem;font-weight:600}.regime-table td{border-bottom:1px solid #ffffff0a;padding:10px 12px;font-size:.88rem}.regime-table tr:hover{background:#ffffff05}.regime-name{font-size:.85rem;font-weight:700}@media (width<=768px){.app-container{grid-template-columns:1fr}.header-bar{text-align:center;flex-direction:column;gap:.5rem;padding:1rem}.main-content{border-right:none;border-bottom:1px solid var(--color-border);gap:1.5rem;padding:1rem}.pnl-header-container{flex-direction:column;align-items:flex-start;gap:1rem}.interval-picker-container{align-items:flex-start;width:100%}.time-tabs{flex-wrap:wrap}.portfolio-value{font-size:2rem}.strategy-patterns-grid{grid-template-columns:1fr;gap:1.5rem}.chart-wrapper{height:300px}.sidebar{padding:1.5rem 1rem}.chat-config-grid{grid-template-columns:1fr}.chat-risk-header{flex-direction:column;align-items:flex-start;gap:10px}.equity-curve-stats{flex-wrap:wrap;gap:.75rem}}.research-panel{border:1px solid var(--color-border);background-color:#000;border-radius:16px;flex-direction:column;height:calc(100vh - 120px);display:flex;overflow:hidden}.research-layout{grid-template-columns:240px 1fr;height:100%;display:grid;overflow:hidden}.research-toc{border-right:1px solid var(--color-border);background-color:#0d0d0e;flex-direction:column;gap:1.5rem;padding:1.5rem 1rem;display:flex;overflow-y:auto}.toc-title{text-transform:uppercase;letter-spacing:.5px;color:#fff;border-bottom:1px solid var(--color-border);padding-bottom:.5rem;font-size:.95rem;font-weight:800}.toc-list{flex-direction:column;gap:4px;display:flex}.toc-item{color:var(--color-text-secondary);text-align:left;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:6px;padding:8px 12px;font-size:.85rem;font-weight:600;transition:all .2s;overflow:hidden}.toc-item:hover{color:#fff;background-color:#ffffff0a}.toc-item.active{color:#000;background-color:var(--color-green);font-weight:700}.toc-apply-widget{border:1px solid var(--color-border);background-color:#ffffff05;border-radius:8px;margin-top:auto;padding:12px}.toc-widget-title{color:#fff;text-transform:uppercase;margin-bottom:6px;font-size:.78rem;font-weight:750}.btn-apply-preset{cursor:pointer;text-align:left;border:none;border-radius:6px;align-items:center;width:100%;margin-bottom:6px;padding:8px 10px;font-size:.75rem;font-weight:700;transition:all .2s;display:flex}.btn-apply-preset.dynamic{color:var(--color-green);background:#00c8051a;border:1px solid #00c80533}.btn-apply-preset.dynamic:hover{background:var(--color-green);color:#000}.btn-apply-preset.trend{color:#bf5af2;background:#af52de1a;border:1px solid #af52de33}.btn-apply-preset.trend:hover{color:#000;background:#bf5af2}.btn-apply-preset.reversion{color:#ff9f0a;background:#f5a6231a;border:1px solid #f5a62333}.btn-apply-preset.reversion:hover{color:#000;background:#ff9f0a}.research-doc-body{scroll-behavior:smooth;background-color:#000;flex-direction:column;gap:3rem;padding:2.5rem;display:flex;overflow-y:auto}.doc-section-card{border:1px solid var(--color-border);background-color:#121214;border-radius:12px;padding:1.5rem;transition:border-color .4s,box-shadow .4s}.doc-section-card.highlight{border-color:#00c8054d;box-shadow:0 0 20px #00c8050d}.doc-section-title{color:#fff;border-left:4px solid var(--color-green);margin-top:0;margin-bottom:1.25rem;padding-left:10px;font-size:1.4rem;font-weight:800}.doc-heading3{color:#fff;border-bottom:1px solid #ffffff0a;margin-top:1.5rem;margin-bottom:.75rem;padding-bottom:4px;font-size:1.05rem;font-weight:700}.doc-paragraph{color:#e5e5e7;letter-spacing:-.01em;margin-bottom:1.25rem;font-size:.98rem;line-height:1.75}.doc-paragraph code,.doc-list li code,.doc-alert-box code{color:#ff9f0a;background:#ffffff14;border-radius:4px;padding:2px 5px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.85rem}.doc-list{margin:1rem 0 1.25rem;padding-left:1.5rem}.doc-list li{color:#e5e5e7;letter-spacing:-.01em;margin-bottom:.6rem;font-size:.98rem;line-height:1.75}.code-lang-label{text-transform:uppercase;color:var(--color-text-secondary);font-family:monospace;font-size:.65rem;font-weight:700;position:absolute;top:8px;right:12px}.doc-code-block{border:1px solid var(--color-border);border-radius:6px;margin:0;overflow-x:auto}.doc-alert-box.alert-info,.doc-alert-box.alert-note{color:#a4d3ff;border-left-color:#0a84ff}.doc-alert-box.alert-tip{border-left-color:var(--color-green);color:#d0ffd4}.doc-alert-box.alert-important{color:#f5d6ff;border-left-color:#bf5af2}.doc-alert-box.alert-warning{color:#ffebcc;border-left-color:#ff9f0a}.doc-alert-box.alert-caution{border-left-color:var(--color-red);color:#ffd6d4}.widget-header{color:#fff;align-items:center;gap:8px;margin-top:0;margin-bottom:.75rem;font-size:1rem;font-weight:700;display:flex}.calc-input-group label{color:#dedede;margin-bottom:4px;font-size:.82rem;display:block}.calc-stat-box{flex-direction:column;display:flex}.calc-stat-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:.72rem;font-weight:700}.feasibility-badge{border-radius:6px;width:fit-content;padding:4px 10px;font-size:.8rem;display:inline-block}.feasibility-badge.danger{color:var(--color-red);background:#ff3b3026}.feasibility-badge.warning{color:#ff9f0a;background:#f5a62326}.feasibility-badge.moderate{color:#bf5af2;background:#af52de26}.feasibility-badge.success{color:var(--color-green);background:#00c80526}.market-detail-row{color:#dedede;margin-bottom:8px;font-size:.82rem;line-height:1.5}.market-detail-row strong{color:#fff}.candlestick-card{transition:all .25s;overflow:hidden}.candlestick-card:hover{border-color:#ffffff26;transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.candlestick-card.border-bullish{border-left:3px solid var(--color-green)!important}.candlestick-card.border-bearish{border-left:3px solid var(--color-red)!important}.candlestick-card.border-neutral{border-left:3px solid var(--color-text-secondary)!important}.badge-type.bullish{color:var(--color-green);background:#00c80526}.badge-type.bearish{color:var(--color-red);background:#ff3b3026}.badge-type.neutral{color:var(--color-text-secondary);background:#8e8e9326}.checklist-item-row:hover{background-color:#ffffff05!important;border-color:#ffffff1a!important}.code-links-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.code-link-item{background:#111;border:1px solid #222;border-radius:8px;align-items:center;gap:12px;padding:12px;text-decoration:none;transition:all .2s;display:flex}.code-link-item:hover{border-color:var(--color-green);background:#ffffff08;transform:translate(2px)}.file-icon{opacity:.8;font-size:1.5rem}.code-link-item div{flex-direction:column;display:flex}.code-link-item div strong{color:#fff;font-family:monospace;font-size:.85rem}.code-link-item div span{color:var(--color-text-secondary);margin-top:2px;font-size:.72rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}to{opacity:.6;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
 
1
+ :root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#fff;--color-green:#00c805;--color-red:#ff3b30;--color-bg-dark:#000;--color-bg-card:#1e1e1e;--color-border:#333;--color-text-secondary:#8e8e93;background-color:#000;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-weight:400;line-height:1.5}body{background-color:var(--color-bg-dark);min-height:100vh;margin:0;padding:0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#000}::-webkit-scrollbar-thumb{background:#2c2c2e;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#3a3a3c}.header-bar{border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background-color:#1e1e1e33;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex}.logo{color:#fff;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:800;display:flex}.logo span{color:var(--color-green)}.app-container{background-color:#000;grid-template-columns:1fr 300px;min-height:calc(100vh - 65px);display:grid}.main-content{border-right:1px solid var(--color-border);flex-direction:column;gap:2rem;padding:2rem;display:flex;overflow-y:auto}.sidebar{background-color:#000;flex-direction:column;gap:1.5rem;padding:2rem 1.5rem;display:flex}.sidebar-title{color:#fff;border-bottom:1px solid var(--color-border);margin:0 0 .5rem;padding-bottom:.5rem;font-size:1.1rem;font-weight:700}.watchlist-item{cursor:pointer;background-color:#1c1c1e;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem 1rem;transition:all .2s;display:flex}.watchlist-item:hover{border-color:var(--color-green);background-color:#2c2c2e}.watchlist-item.active{border-color:var(--color-green);background-color:#00c8051a}.watchlist-ticker{font-size:1.1rem;font-weight:700}.watchlist-price{text-align:right;font-weight:600}.pnl-container{flex-direction:column;gap:.25rem;display:flex}.portfolio-value{letter-spacing:-1px;font-size:3rem;font-weight:800}.pnl-text{align-items:center;gap:.25rem;font-size:1.1rem;font-weight:600;display:flex}.pnl-text.up{color:var(--color-green)}.pnl-text.down{color:var(--color-red)}.time-tabs{gap:.5rem;margin-top:1rem;display:flex}.tab-btn{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.4rem .8rem;font-size:.9rem;font-weight:700;transition:all .2s}.tab-btn:hover{color:#fff;background-color:#1c1c1e}.tab-btn.active{color:var(--color-green);background-color:#00c8051a}.card{border:1px solid var(--color-border);background-color:#1c1c1e;border-radius:12px;padding:1.5rem}.card-title{color:#fff;margin:0 0 1rem;font-size:1.1rem;font-weight:700}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.5rem;display:grid}.stat-box{flex-direction:column;gap:.25rem;display:flex}.stat-label{color:var(--color-text-secondary);font-size:.85rem;font-weight:600}.stat-value{font-size:1.4rem;font-weight:800}.ledger-table{border-collapse:collapse;text-align:left;width:100%}.ledger-table th{color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);padding:.75rem 1rem;font-size:.9rem;font-weight:600}.ledger-table td{border-bottom:1px solid var(--color-border);padding:1rem;font-size:.95rem}.ledger-table tr:hover{background-color:#ffffff05}.action-badge{border-radius:4px;padding:.25rem .5rem;font-size:.8rem;font-weight:700}.action-badge.buy{color:var(--color-green);background-color:#00c80526}.action-badge.sell{color:var(--color-red);background-color:#ff3b3026}.chart-wrapper{border:1px solid var(--color-border);background-color:#000;border-radius:12px;width:100%;height:400px;position:relative;overflow:hidden}.loader-container{border:1px solid var(--color-border);height:400px;color:var(--color-text-secondary);background-color:#1c1c1e;border-radius:12px;justify-content:center;align-items:center;font-size:1.2rem;font-weight:600;display:flex}input[type=range]{-webkit-appearance:none;background:#2c2c2e;border-radius:3px;outline:none;width:100%;height:6px;margin:10px 0}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--color-green);cursor:pointer;border-radius:50%;width:16px;height:16px;transition:transform .1s}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.25)}select:focus,input[type=text]:focus{outline:none;box-shadow:0 0 0 1px #00c80533;border-color:var(--color-green)!important}.ledger-table td button{transition:all .2s}.pnl-header-container{flex-flow:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.interval-picker-container{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.strategy-patterns-grid{grid-template-columns:1.2fr .8fr;gap:2rem;display:grid}.nav-tabs{border:1px solid var(--color-border);background:#1c1c1e;border-radius:10px;gap:4px;padding:3px;display:flex}.nav-tab{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 20px;font-size:.85rem;font-weight:700;transition:all .25s}.nav-tab:hover{color:#fff;background:#ffffff0d}.nav-tab.active{color:#000;background:var(--color-green)}.stats-divider{background:var(--color-border);height:1px;margin:1.25rem 0}.chat-panel{border:1px solid var(--color-border);background:#111;border-radius:16px;flex-direction:column;max-height:700px;display:flex;overflow:hidden}.chat-header{border-bottom:1px solid var(--color-border);background:#1e1e1e99;justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.chat-header-title{align-items:center;gap:8px;font-size:1rem;font-weight:700;display:flex}.chat-icon{font-size:1.2rem}.chat-status{color:var(--color-green);font-size:.8rem;font-weight:600}.chat-messages{flex-direction:column;flex:1;gap:12px;max-height:500px;padding:16px;display:flex;overflow-y:auto}.chat-msg{display:flex}.chat-msg-user{justify-content:flex-end}.chat-msg-bubble{word-break:break-word;border-radius:16px;max-width:85%;padding:12px 16px;font-size:.9rem;line-height:1.6}.chat-msg-user-bubble{background:var(--color-green);color:#000;border-bottom-right-radius:4px;font-weight:600}.chat-msg-system-bubble{color:var(--color-text-secondary);background:#8e8e931f;border-bottom-left-radius:4px;font-size:.85rem}.chat-msg-assistant-bubble{color:#e0e0e0;border:1px solid var(--color-border);background:#1c1c1e;border-bottom-left-radius:4px}.chat-config-preview{background:#0000004d;border:1px solid #ffffff0f;border-radius:10px;margin-top:12px;padding:12px}.chat-config-title{color:#fff;margin-bottom:10px;font-size:.85rem;font-weight:700}.chat-config-grid{grid-template-columns:1fr 1fr;gap:6px 16px;display:grid}.chat-config-item{justify-content:space-between;padding:3px 0;font-size:.8rem;display:flex}.chat-config-key{color:var(--color-text-secondary)}.chat-config-val{color:var(--color-green);font-family:SF Mono,Fira Code,monospace;font-weight:600}.chat-plan{background:#0000004d;border:1px solid #ffffff0f;border-radius:10px;margin-top:12px;padding:12px}.chat-plan-step{align-items:flex-start;gap:10px;padding:6px 0;display:flex}.chat-plan-step-num{background:var(--color-green);color:#000;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.7rem;font-weight:800;display:flex}.chat-plan-tool{color:#af52de;font-family:SF Mono,Fira Code,monospace;font-size:.8rem;font-weight:700;display:block}.chat-plan-desc{color:var(--color-text-secondary);font-size:.8rem}.chat-risk-report{background:#0006;border:1px solid #ffffff14;border-radius:12px;margin-top:12px;padding:16px}.chat-risk-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.risk-score-badge{text-align:center;border:2px solid;border-radius:12px;min-width:70px;padding:6px 16px}.risk-score-value{font-size:1.6rem;font-weight:800;line-height:1}.risk-score-label{text-transform:uppercase;letter-spacing:.5px;font-size:.65rem;font-weight:700}.chat-risk-section{border-left:3px solid var(--color-border);background:#ffffff05;border-radius:8px;margin-bottom:14px;padding:12px}.chat-risk-section.chat-risk-positive{border-left-color:var(--color-green)}.chat-risk-section.chat-risk-negative{border-left-color:var(--color-red)}.chat-risk-section.chat-risk-warning{border-left-color:#f5a623}.chat-risk-section.chat-risk-neutral{border-left-color:#af52de}.chat-risk-section-title{color:#fff;margin-bottom:8px;font-size:.9rem;font-weight:700}.chat-risk-insights{margin:0;padding:0;list-style:none}.chat-risk-insights li{color:silver;padding:3px 0 3px 12px;font-size:.82rem;line-height:1.6;position:relative}.chat-risk-insights li:before{content:"›";color:var(--color-text-secondary);font-weight:700;position:absolute;left:0}.chat-risk-insights li strong{color:#fff}.chat-risk-insights li code{color:#af52de;background:#af52de26;border-radius:4px;padding:1px 6px;font-family:SF Mono,Fira Code,monospace;font-size:.78rem}.chat-typing{gap:4px;display:flex;padding:16px 20px!important}.chat-typing .dot{background:var(--color-green);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite typingPulse}.chat-typing .dot:nth-child(2){animation-delay:.2s}.chat-typing .dot:nth-child(3){animation-delay:.4s}@keyframes typingPulse{0%,60%,to{opacity:.3;transform:scale(.8)}30%{opacity:1;transform:scale(1)}}.chat-examples{border-top:1px solid var(--color-border);flex-wrap:wrap;gap:8px;padding:10px 16px;display:flex}.chat-example-btn{color:var(--color-green);cursor:pointer;background:#00c8050f;border:1px solid #00c80533;border-radius:20px;padding:6px 14px;font-size:.78rem;font-weight:500;transition:all .2s}.chat-example-btn:hover{border-color:var(--color-green);background:#00c8051f}.chat-input-area{border-top:1px solid var(--color-border);background:#141414cc;gap:8px;padding:12px 16px;display:flex}.chat-input{border:1px solid var(--color-border);color:#fff;resize:none;background:#1c1c1e;border-radius:12px;outline:none;flex:1;padding:10px 16px;font-family:inherit;font-size:.9rem;transition:border-color .2s}.chat-input:focus{border-color:var(--color-green)}.chat-input::placeholder{color:#555}.chat-send-btn{background:var(--color-green);cursor:pointer;border:none;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.1rem;transition:all .2s;display:flex}.chat-send-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 0 20px #00c8054d}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}.equity-curve-card{padding-bottom:1rem}.equity-curve-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.equity-curve-stats{gap:1.5rem;font-size:.8rem;display:flex}.equity-stat{color:var(--color-text-secondary);font-weight:600}.equity-stat strong{color:#fff}.equity-chart-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:.75rem;font-weight:600}.equity-chart-container,.drawdown-chart-container{border:1px solid #ffffff0a;border-radius:8px;overflow:hidden}.regime-card{overflow:hidden}.regime-distribution{margin-bottom:1.25rem}.regime-bar{border-radius:4px;height:8px;margin-bottom:8px;display:flex;overflow:hidden}.regime-bar-segment{min-width:2px;transition:width .5s}.regime-bar-labels{flex-wrap:wrap;gap:12px;font-size:.75rem;font-weight:600;display:flex}.regime-bar-label{align-items:center;gap:4px;display:flex}.regime-table-wrapper{overflow-x:auto}.regime-table{border-collapse:collapse;text-align:left;width:100%}.regime-table th{color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);text-transform:uppercase;letter-spacing:.3px;padding:8px 12px;font-size:.8rem;font-weight:600}.regime-table td{border-bottom:1px solid #ffffff0a;padding:10px 12px;font-size:.88rem}.regime-table tr:hover{background:#ffffff05}.regime-name{font-size:.85rem;font-weight:700}@media (width<=768px){.app-container{grid-template-columns:1fr}.header-bar{text-align:center;flex-direction:column;gap:.5rem;padding:1rem}.main-content{border-right:none;border-bottom:1px solid var(--color-border);gap:1.5rem;padding:1rem}.pnl-header-container{flex-direction:column;align-items:flex-start;gap:1rem}.interval-picker-container{align-items:flex-start;width:100%}.time-tabs{flex-wrap:wrap}.portfolio-value{font-size:2rem}.strategy-patterns-grid{grid-template-columns:1fr;gap:1.5rem}.chart-wrapper{height:300px}.sidebar{padding:1.5rem 1rem}.chat-config-grid{grid-template-columns:1fr}.chat-risk-header{flex-direction:column;align-items:flex-start;gap:10px}.equity-curve-stats{flex-wrap:wrap;gap:.75rem}}.research-panel{border:1px solid var(--color-border);background-color:#000;border-radius:16px;flex-direction:column;height:calc(100vh - 120px);display:flex;overflow:hidden}.research-layout{grid-template-columns:240px 1fr;height:100%;display:grid;overflow:hidden}.research-toc{border-right:1px solid var(--color-border);background-color:#0d0d0e;flex-direction:column;gap:1.5rem;padding:1.5rem 1rem;display:flex;overflow-y:auto}.toc-title{text-transform:uppercase;letter-spacing:.5px;color:#fff;border-bottom:1px solid var(--color-border);padding-bottom:.5rem;font-size:.95rem;font-weight:800}.toc-list{flex-direction:column;gap:4px;display:flex}.toc-item{color:var(--color-text-secondary);text-align:left;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:6px;padding:8px 12px;font-size:.85rem;font-weight:600;transition:all .2s;overflow:hidden}.toc-item:hover{color:#fff;background-color:#ffffff0a}.toc-item.active{color:#000;background-color:var(--color-green);font-weight:700}.toc-apply-widget{border:1px solid var(--color-border);background-color:#ffffff05;border-radius:8px;margin-top:auto;padding:12px}.toc-widget-title{color:#fff;text-transform:uppercase;margin-bottom:6px;font-size:.78rem;font-weight:750}.btn-apply-preset{cursor:pointer;text-align:left;border:none;border-radius:6px;align-items:center;width:100%;margin-bottom:6px;padding:8px 10px;font-size:.75rem;font-weight:700;transition:all .2s;display:flex}.btn-apply-preset.dynamic{color:var(--color-green);background:#00c8051a;border:1px solid #00c80533}.btn-apply-preset.dynamic:hover{background:var(--color-green);color:#000}.btn-apply-preset.trend{color:#bf5af2;background:#af52de1a;border:1px solid #af52de33}.btn-apply-preset.trend:hover{color:#000;background:#bf5af2}.btn-apply-preset.reversion{color:#ff9f0a;background:#f5a6231a;border:1px solid #f5a62333}.btn-apply-preset.reversion:hover{color:#000;background:#ff9f0a}.research-doc-body{scroll-behavior:smooth;background-color:#000;flex-direction:column;gap:3rem;padding:2.5rem;display:flex;overflow-y:auto}.doc-section-card{border:1px solid var(--color-border);background-color:#121214;border-radius:12px;padding:1.5rem;transition:border-color .4s,box-shadow .4s}.doc-section-card.highlight{border-color:#00c8054d;box-shadow:0 0 20px #00c8050d}.doc-section-title{color:#fff;border-left:4px solid var(--color-green);margin-top:0;margin-bottom:1.25rem;padding-left:10px;font-size:1.4rem;font-weight:800}.doc-heading3{color:#fff;border-bottom:1px solid #ffffff0a;margin-top:1.5rem;margin-bottom:.75rem;padding-bottom:4px;font-size:1.05rem;font-weight:700}.doc-paragraph{color:#e5e5e7;letter-spacing:-.01em;margin-bottom:1.25rem;font-size:.98rem;line-height:1.75}.doc-paragraph code,.doc-list li code,.doc-alert-box code{color:#ff9f0a;background:#ffffff14;border-radius:4px;padding:2px 5px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:.85rem}.doc-list{margin:1rem 0 1.25rem;padding-left:1.5rem}.doc-list li{color:#e5e5e7;letter-spacing:-.01em;margin-bottom:.6rem;font-size:.98rem;line-height:1.75}.code-lang-label{text-transform:uppercase;color:var(--color-text-secondary);font-family:monospace;font-size:.65rem;font-weight:700;position:absolute;top:8px;right:12px}.doc-code-block{border:1px solid var(--color-border);border-radius:6px;margin:0;overflow-x:auto}.doc-alert-box.alert-info,.doc-alert-box.alert-note{color:#a4d3ff;border-left-color:#0a84ff}.doc-alert-box.alert-tip{border-left-color:var(--color-green);color:#d0ffd4}.doc-alert-box.alert-important{color:#f5d6ff;border-left-color:#bf5af2}.doc-alert-box.alert-warning{color:#ffebcc;border-left-color:#ff9f0a}.doc-alert-box.alert-caution{border-left-color:var(--color-red);color:#ffd6d4}.widget-header{color:#fff;align-items:center;gap:8px;margin-top:0;margin-bottom:.75rem;font-size:1rem;font-weight:700;display:flex}.calc-input-group label{color:#dedede;margin-bottom:4px;font-size:.82rem;display:block}.calc-stat-box{flex-direction:column;display:flex}.calc-stat-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:.72rem;font-weight:700}.feasibility-badge{border-radius:6px;width:fit-content;padding:4px 10px;font-size:.8rem;display:inline-block}.feasibility-badge.danger{color:var(--color-red);background:#ff3b3026}.feasibility-badge.warning{color:#ff9f0a;background:#f5a62326}.feasibility-badge.moderate{color:#bf5af2;background:#af52de26}.feasibility-badge.success{color:var(--color-green);background:#00c80526}.market-detail-row{color:#dedede;margin-bottom:8px;font-size:.82rem;line-height:1.5}.market-detail-row strong{color:#fff}.candlestick-card{transition:all .25s;overflow:hidden}.candlestick-card:hover{border-color:#ffffff26;transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.candlestick-card.border-bullish{border-left:3px solid var(--color-green)!important}.candlestick-card.border-bearish{border-left:3px solid var(--color-red)!important}.candlestick-card.border-neutral{border-left:3px solid var(--color-text-secondary)!important}.badge-type.bullish{color:var(--color-green);background:#00c80526}.badge-type.bearish{color:var(--color-red);background:#ff3b3026}.badge-type.neutral{color:var(--color-text-secondary);background:#8e8e9326}.checklist-item-row:hover{background-color:#ffffff05!important;border-color:#ffffff1a!important}.code-links-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.code-link-item{background:#111;border:1px solid #222;border-radius:8px;align-items:center;gap:12px;padding:12px;text-decoration:none;transition:all .2s;display:flex}.code-link-item:hover{border-color:var(--color-green);background:#ffffff08;transform:translate(2px)}.file-icon{opacity:.8;font-size:1.5rem}.code-link-item div{flex-direction:column;display:flex}.code-link-item div strong{color:#fff;font-family:monospace;font-size:.85rem}.code-link-item div span{color:var(--color-text-secondary);margin-top:2px;font-size:.72rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}to{opacity:.6;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.price-replay{color:#e2e8f0;background:linear-gradient(#0c121c,#080d15);border:1px solid #243042;border-radius:14px;min-width:0;padding:22px}.price-replay-heading,.price-replay-selectors,.price-replay-toolbar,.price-replay-buttons,.price-replay-readout,.price-replay-legend,.price-replay-context,.price-replay-seek{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.price-replay-heading{justify-content:space-between;align-items:flex-start;gap:18px}.price-replay-eyebrow{color:#38bdf8;letter-spacing:.8px;font-size:12px;font-weight:800}.price-replay-price{color:#f8fafc;font-variant-numeric:tabular-nums;font-size:clamp(28px,3vw,42px);font-weight:800;line-height:1.4}.price-replay-price span{color:#a5b4c8;margin-left:8px;font-size:17px}.price-replay-subtitle,.price-replay-context,.price-replay-footnote{color:#8d9bb0;font-size:12px;line-height:1.7}.price-replay-selectors{justify-content:flex-end}.price-replay-selectors label{color:#94a3b8;align-items:center;gap:8px;font-size:12px;display:flex}.price-replay select,.price-replay button{color:#cbd5e1;font:inherit;cursor:pointer;background:#121d2b;border:1px solid #2b394d;border-radius:6px;padding:7px 10px;font-size:12px}.price-replay button{white-space:nowrap;font-weight:700}.price-replay button.active{color:#7dd3fc;background:#12364c;border-color:#288bb1}.price-replay button:hover:not(:disabled){color:#fff;border-color:#38bdf8}.price-replay button:disabled{opacity:.45;cursor:wait}.price-replay button:focus-visible,.price-replay select:focus-visible,.price-replay input:focus-visible{outline-offset:3px;outline:2px solid #38bdf8}.price-replay-symbols{flex-wrap:wrap;gap:4px;display:flex}.price-replay-context{border-bottom:1px solid #213044;gap:8px 16px;margin-top:14px;padding:9px 0}.price-replay-source{color:#c4b5fd;background:#28213d;border-radius:4px;padding:2px 8px;font-weight:700}.price-replay-toolbar{justify-content:space-between;padding:13px 0}.price-replay-buttons{gap:5px}.price-replay-readout{color:#8da1ba;font-variant-numeric:tabular-nums;background:#111b28;border-radius:6px;gap:8px 20px;padding:9px 12px;font-size:12px}.price-replay-readout b{color:#e2e8f0;margin-left:5px}.price-replay-legend{color:#94a3b8;gap:8px 20px;padding:14px 0 4px;font-size:11px}.price-replay-canvas{width:100%;overflow-x:auto}.price-replay-canvas svg{cursor:crosshair;width:100%;min-width:700px;display:block}.price-replay-seek{color:#94a3b8;white-space:nowrap;flex-wrap:nowrap;padding-top:10px;font-size:12px}.price-replay-seek input{accent-color:#38bdf8;cursor:pointer;flex:1;min-width:50px}.price-replay-footnote{padding-top:10px}.price-replay-message{color:#7dd3fc;text-align:center;place-content:center;min-height:310px;font-size:14px;display:grid}.price-replay-message.error{color:#fbbf24}@media (width<=800px){.price-replay{padding:14px 10px}.price-replay-selectors{justify-content:flex-start}.price-replay-toolbar{align-items:flex-start}.price-replay-context{font-size:11px}}
frontend/dist/assets/index-BBAp5T1V.js DELETED
The diff for this file is too large to render. See raw diff
 
frontend/dist/assets/index-BouKarZa.js ADDED
The diff for this file is too large to render. See raw diff
 
frontend/dist/index.html CHANGED
@@ -5,8 +5,8 @@
5
  <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
  <title>frontend</title>
8
- <script type="module" crossorigin src="/assets/index-BBAp5T1V.js"></script>
9
- <link rel="stylesheet" crossorigin href="/assets/index-DCSOhC_L.css">
10
  </head>
11
  <body>
12
  <div id="root"></div>
 
5
  <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
  <title>frontend</title>
8
+ <script type="module" crossorigin src="/assets/index-BouKarZa.js"></script>
9
+ <link rel="stylesheet" crossorigin href="/assets/index-7xTfuMOi.css">
10
  </head>
11
  <body>
12
  <div id="root"></div>
frontend/src/App.tsx CHANGED
@@ -840,7 +840,7 @@ function App() {
840
  )}
841
 
842
  {/* Consolidated Master Dashboard Tab */}
843
- {(activeTab === 'replay' || activeTab === 'trade_comparison') && (
844
  <TradeComparisonPanel
845
  watchlist={watchlist}
846
  activeTicker={activeTicker}
 
840
  )}
841
 
842
  {/* Consolidated Master Dashboard Tab */}
843
+ {activeTab === 'replay' && (
844
  <TradeComparisonPanel
845
  watchlist={watchlist}
846
  activeTicker={activeTicker}
frontend/src/components/PriceActionReplayChart.css ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .price-replay { color: #e2e8f0; background: linear-gradient(180deg, #0c121c, #080d15); border: 1px solid #243042; border-radius: 14px; padding: 22px; min-width: 0; }
2
+ .price-replay-heading, .price-replay-selectors, .price-replay-toolbar, .price-replay-buttons, .price-replay-readout, .price-replay-legend, .price-replay-context, .price-replay-seek { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
3
+ .price-replay-heading { justify-content: space-between; align-items: flex-start; gap: 18px; }
4
+ .price-replay-eyebrow { color: #38bdf8; font-size: 12px; font-weight: 800; letter-spacing: .8px; }
5
+ .price-replay-price { font-size: clamp(28px, 3vw, 42px); line-height: 1.4; font-weight: 800; color: #f8fafc; font-variant-numeric: tabular-nums; }
6
+ .price-replay-price span { font-size: 17px; color: #a5b4c8; margin-left: 8px; }
7
+ .price-replay-subtitle, .price-replay-context, .price-replay-footnote { color: #8d9bb0; font-size: 12px; line-height: 1.7; }
8
+ .price-replay-selectors { justify-content: flex-end; }
9
+ .price-replay-selectors label { display: flex; gap: 8px; align-items: center; font-size: 12px; color: #94a3b8; }
10
+ .price-replay select, .price-replay button { background: #121d2b; border: 1px solid #2b394d; border-radius: 6px; color: #cbd5e1; padding: 7px 10px; font: inherit; font-size: 12px; cursor: pointer; }
11
+ .price-replay button { font-weight: 700; white-space: nowrap; }
12
+ .price-replay button.active { color: #7dd3fc; background: #12364c; border-color: #288bb1; }
13
+ .price-replay button:hover:not(:disabled) { border-color: #38bdf8; color: #fff; }
14
+ .price-replay button:disabled { opacity: .45; cursor: wait; }
15
+ .price-replay button:focus-visible, .price-replay select:focus-visible, .price-replay input:focus-visible { outline: 2px solid #38bdf8; outline-offset: 3px; }
16
+ .price-replay-symbols { display: flex; flex-wrap: wrap; gap: 4px; }
17
+ .price-replay-context { margin-top: 14px; padding: 9px 0; gap: 8px 16px; border-bottom: 1px solid #213044; }
18
+ .price-replay-source { color: #c4b5fd; background: #28213d; padding: 2px 8px; border-radius: 4px; font-weight: 700; }
19
+ .price-replay-toolbar { justify-content: space-between; padding: 13px 0; }
20
+ .price-replay-buttons { gap: 5px; }
21
+ .price-replay-readout { border-radius: 6px; padding: 9px 12px; background: #111b28; color: #8da1ba; font-size: 12px; gap: 8px 20px; font-variant-numeric: tabular-nums; }
22
+ .price-replay-readout b { color: #e2e8f0; margin-left: 5px; }
23
+ .price-replay-legend { font-size: 11px; color: #94a3b8; padding: 14px 0 4px; gap: 8px 20px; }
24
+ .price-replay-canvas { width: 100%; overflow-x: auto; }
25
+ .price-replay-canvas svg { display: block; width: 100%; min-width: 700px; cursor: crosshair; }
26
+ .price-replay-seek { flex-wrap: nowrap; font-size: 12px; color: #94a3b8; padding-top: 10px; white-space: nowrap; }
27
+ .price-replay-seek input { flex: 1; min-width: 50px; accent-color: #38bdf8; cursor: pointer; }
28
+ .price-replay-footnote { padding-top: 10px; }
29
+ .price-replay-message { min-height: 310px; display: grid; place-content: center; color: #7dd3fc; font-size: 14px; text-align: center; }
30
+ .price-replay-message.error { color: #fbbf24; }
31
+ @media (max-width: 800px) { .price-replay { padding: 14px 10px; } .price-replay-selectors { justify-content: flex-start; } .price-replay-toolbar { align-items: flex-start; } .price-replay-context { font-size: 11px; } }
frontend/src/components/PriceActionReplayChart.tsx ADDED
@@ -0,0 +1,224 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { useEffect, useId, useMemo, useState } from 'react';
2
+ import type { MouseEvent } from 'react';
3
+ import { API_BASE } from '../config';
4
+ import './PriceActionReplayChart.css';
5
+
6
+ type Bar = { time: string; open: number; high: number; low: number; close: number; volume: number; vwap: number | null };
7
+ type Fill = { time: string; action: 'B' | 'S' | 'C' | 'X'; shares: number; price: number; reference_price: number; commission_cost: number; shares_after: number };
8
+ type Mark = { time: string; shares: number; pnl: number | null };
9
+ type ReplayData = {
10
+ success: boolean; error?: string; ticker: string; date: string; available_dates: string[];
11
+ variants: Array<string | { value?: string; id?: string; label?: string }>;
12
+ variant: string; source_label: string; is_simulated: boolean; as_of: string;
13
+ partial: boolean; starting_equity: number; cost_bps: number; opening_shares: number;
14
+ bars: Bar[]; fills: Fill[]; marks: Mark[];
15
+ summary: { net_pnl: number; gross_pnl: number; cost: number; fill_count: number; ending_shares: number };
16
+ };
17
+
18
+ interface Props {
19
+ ticker: string;
20
+ watchlist: string[];
21
+ onSelectTicker: (ticker: string) => void;
22
+ refreshKey?: number;
23
+ }
24
+
25
+ const marketTime = new Intl.DateTimeFormat('en-GB', { timeZone: 'America/New_York', hour: '2-digit', minute: '2-digit', second: '2-digit', hourCycle: 'h23' });
26
+ const minute = (time: string) => {
27
+ const [h, m, s] = marketTime.format(new Date(time)).split(':').map(Number);
28
+ return h * 60 + m + s / 60 - 570;
29
+ };
30
+ const timeLabel = (m: number) => `${Math.floor((m + 570) / 60).toString().padStart(2, '0')}:${Math.floor((m + 570) % 60).toString().padStart(2, '0')}`;
31
+ const money = (value: number | null | undefined) => Number.isFinite(value) ? `$${Number(value).toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}` : '—';
32
+ const variants: Record<string, string> = { context: '原 Context', levels: '支撑压力', levels_error_risk: '支撑压力+误差风险' };
33
+ const actions = { B: { label: '买入开多', color: '#fb7185' }, S: { label: '卖出多仓', color: '#34d399' }, C: { label: '平空', color: '#c4a0f4' }, X: { label: '开空', color: '#fbbf24' } };
34
+
35
+ function bounds(values: number[], includeZero = false): [number, number] {
36
+ const finite = values.filter(Number.isFinite);
37
+ if (includeZero || finite.length === 0) finite.push(0);
38
+ const low = Math.min(...finite), high = Math.max(...finite);
39
+ const padding = Math.max((high - low) * .12, high === low ? Math.max(Math.abs(high) * .002, .1) : .01);
40
+ return [low - padding, high + padding];
41
+ }
42
+
43
+ export function PriceActionReplayChart({ ticker, watchlist, onSelectTicker, refreshKey }: Props) {
44
+ const [date, setDate] = useState('');
45
+ const [variant, setVariant] = useState('levels_error_risk');
46
+ const [dates, setDates] = useState<string[]>([]);
47
+ const [data, setData] = useState<ReplayData | null>(null);
48
+ const [error, setError] = useState('');
49
+ const [loading, setLoading] = useState(true);
50
+ const [count, setCount] = useState(0);
51
+ const [playing, setPlaying] = useState(false);
52
+ const [speed, setSpeed] = useState(1);
53
+ const [range, setRange] = useState<[number, number]>([0, 390]);
54
+ const [hover, setHover] = useState<number | null>(null);
55
+ const clip = useId().replace(/:/g, '');
56
+
57
+ useEffect(() => {
58
+ const controller = new AbortController();
59
+ setLoading(true); setData(null); setError(''); setPlaying(false); setHover(null);
60
+ const query = new URLSearchParams({ ticker, variant });
61
+ if (date) query.set('date', date);
62
+ fetch(`${API_BASE}/api/dashboard/price_replay?${query}`, { signal: controller.signal })
63
+ .then(async response => {
64
+ const result: ReplayData = await response.json();
65
+ if (controller.signal.aborted) return;
66
+ if (result.available_dates?.length) setDates(result.available_dates);
67
+ if (!response.ok || !result.success || !result.bars?.length) throw new Error(result.error || '这个股票和日期暂无保存的研究回放。');
68
+ setData(result); setCount(result.bars.length);
69
+ }).catch(reason => {
70
+ if (!controller.signal.aborted) setError(reason instanceof Error ? reason.message : '读取回放失败');
71
+ }).finally(() => { if (!controller.signal.aborted) setLoading(false); });
72
+ return () => controller.abort();
73
+ }, [ticker, date, variant, refreshKey]);
74
+
75
+ useEffect(() => {
76
+ if (!playing || !data) return;
77
+ const timer = window.setInterval(() => setCount(value => Math.min(value + 1, data.bars.length)), 650 / speed);
78
+ return () => window.clearInterval(timer);
79
+ }, [playing, speed, data]);
80
+ useEffect(() => { if (data && count >= data.bars.length) setPlaying(false); }, [count, data]);
81
+
82
+ const visible = useMemo(() => {
83
+ const bars = data?.bars.slice(0, count) || [];
84
+ const until = bars.length ? Date.parse(bars[bars.length - 1].time) : -Infinity;
85
+ return { bars, fills: data?.fills.filter(fill => Date.parse(fill.time) <= until) || [], marks: data?.marks.filter(mark => Date.parse(mark.time) <= until) || [] };
86
+ }, [data, count]);
87
+ const valuation = useMemo(() => {
88
+ // Saved close marks precede next-open executions sharing that timestamp.
89
+ // Append their cash/inventory effect so replay never pairs new holdings
90
+ // with a pre-fill PnL (nor subtracts embedded slippage twice).
91
+ return visible.marks.flatMap(mark => {
92
+ const bar = visible.bars.find(item => item.time === mark.time);
93
+ const sameTimeFills = visible.fills.filter(fill => fill.time === mark.time);
94
+ if (!bar || mark.pnl === null || !sameTimeFills.length) return [mark];
95
+ let cash = mark.pnl - mark.shares * bar.close;
96
+ let shares = mark.shares;
97
+ for (const fill of sameTimeFills) {
98
+ cash -= (fill.shares_after - shares) * fill.price + fill.commission_cost;
99
+ shares = fill.shares_after;
100
+ }
101
+ return [mark, { time: mark.time, shares, pnl: cash + shares * sameTimeFills.at(-1)!.reference_price }];
102
+ });
103
+ }, [visible]);
104
+ const activeBar = visible.bars.length ? visible.bars[hover === null ? visible.bars.length - 1 : Math.min(hover, visible.bars.length - 1)] : undefined;
105
+ const latestMark = valuation.at(-1);
106
+ const lastShares = visible.fills.at(-1)?.shares_after ?? data?.opening_shares ?? 0;
107
+ const width = 1200, left = 76, right = 28, plotWidth = width - left - right;
108
+ const panels = [{ top: 28, height: 338, label: '价格 ($)' }, { top: 400, height: 82, label: '成交量' }, { top: 513, height: 82, label: '持仓 (股)' }, { top: 626, height: 82, label: '净盈亏 ($)' }];
109
+ const x = (m: number) => left + (m - range[0]) / (range[1] - range[0]) * plotWidth;
110
+ const priceBounds = bounds([...visible.bars.flatMap(bar => [bar.close, ...(bar.vwap === null ? [] : [bar.vwap])]), ...visible.fills.map(fill => fill.price)]);
111
+ const shareBounds = bounds([data?.opening_shares || 0, ...visible.fills.map(fill => fill.shares_after)], true);
112
+ const pnlBounds = bounds(valuation.flatMap(mark => mark.pnl === null ? [] : [mark.pnl]), true);
113
+ const volumeMax = Math.max(1, ...visible.bars.map(bar => bar.volume));
114
+ const domains = [priceBounds, [0, volumeMax * 1.1], shareBounds, pnlBounds];
115
+ const y = (value: number, panel: number) => panels[panel].top + panels[panel].height * (1 - (value - domains[panel][0]) / (domains[panel][1] - domains[panel][0]));
116
+ const path = (points: Array<[number, number | null]>, panel: number, step = false) => {
117
+ let started = false;
118
+ return points.map(([m, value]) => {
119
+ if (value === null || !Number.isFinite(value)) { started = false; return ''; }
120
+ const command = !started ? 'M' : step ? 'H' : 'L'; started = true;
121
+ return step && command === 'H' ? `H${x(m)}V${y(value, panel)}` : `${command}${x(m)},${y(value, panel)}`;
122
+ }).join(' ');
123
+ };
124
+ const sharePoints: Array<[number, number]> = [[0, data?.opening_shares || 0], ...visible.fills.map(fill => [minute(fill.time), fill.shares_after] as [number, number])];
125
+ if (visible.bars.length) sharePoints.push([minute(visible.bars.at(-1)!.time), lastShares]);
126
+ const step = range[1] - range[0] <= 150 ? 15 : 30;
127
+ const ticks: number[] = [];
128
+ for (let m = Math.ceil(range[0] / step) * step; m <= range[1]; m += step) ticks.push(m);
129
+ const handleHover = (event: MouseEvent<SVGSVGElement>) => {
130
+ const rect = event.currentTarget.getBoundingClientRect();
131
+ const position = (event.clientX - rect.left) / rect.width * width;
132
+ const target = range[0] + (position - left) / plotWidth * (range[1] - range[0]);
133
+ let best = 0;
134
+ visible.bars.forEach((bar, index) => { if (Math.abs(minute(bar.time) - target) < Math.abs(minute(visible.bars[best].time) - target)) best = index; });
135
+ setHover(best);
136
+ };
137
+ const zoom = (factor: number) => setRange(previous => {
138
+ const span = Math.min(390, Math.max(30, (previous[1] - previous[0]) * factor));
139
+ const start = Math.max(0, Math.min(390 - span, (previous[0] + previous[1] - span) / 2));
140
+ return [start, start + span];
141
+ });
142
+ const symbols = [...new Set([ticker, ...watchlist, 'SNDK', 'TSLA', 'NVDA', 'PLTR'])];
143
+ const variantChoices = data?.variants?.map(item => typeof item === 'string' ? item : item.id || item.value || '').filter(Boolean) || Object.keys(variants);
144
+
145
+ return <section className="price-replay" aria-label="价格与买卖点回放">
146
+ <header className="price-replay-heading">
147
+ <div>
148
+ <div className="price-replay-eyebrow">QUANT.AI · 价格与买卖点复盘</div>
149
+ <div className="price-replay-price">{money(activeBar?.close)} <span>{ticker}</span></div>
150
+ <div className="price-replay-subtitle">{data ? `${data.date} · 截至 ${marketTime.format(new Date(data.as_of)).slice(0, 5)} 美东 · ${data.partial ? '盘中保存' : '完整交易日'}` : '读取已保存的行情与成交'}</div>
151
+ </div>
152
+ <div className="price-replay-selectors">
153
+ <label>日期 <select aria-label="价格回放日期" value={date || data?.date || ''} onChange={event => setDate(event.target.value)}>
154
+ {!dates.length && <option value="">最近保存</option>}
155
+ {date && dates.length > 0 && !dates.includes(date) && <option value={date}>{date} · 暂无研究回放</option>}
156
+ {dates.map(value => <option key={value} value={value}>{value}</option>)}
157
+ </select></label>
158
+ <label>研究模型 <select aria-label="回放研究模型" value={variant} onChange={event => setVariant(event.target.value)}>
159
+ {variantChoices.map(value => <option key={value} value={value}>{variants[value] || value}</option>)}
160
+ </select></label>
161
+ <div className="price-replay-symbols">{symbols.map(symbol => <button key={symbol} className={ticker === symbol ? 'active' : ''} onClick={() => onSelectTicker(symbol)}>{symbol}</button>)}</div>
162
+ </div>
163
+ </header>
164
+ <div className="price-replay-context">
165
+ <span className="price-replay-source">研究模拟成交</span>
166
+ <span>{data?.source_label || '已保存的研究回放'}</span>
167
+ {data && <span>组合期初资金 {money(data.starting_equity)} · 单边摩擦假设 {data.cost_bps} bps</span>}
168
+ </div>
169
+ <div className="price-replay-toolbar">
170
+ <div className="price-replay-buttons">
171
+ <button disabled={!data || loading} className={playing ? 'active' : ''} onClick={() => { if (!data) return; if (count >= data.bars.length) setCount(1); setPlaying(!playing); }}>{playing ? '⏸ 暂停' : '▶ 播放仿真'}</button>
172
+ <button disabled={!data || loading} onClick={() => { setPlaying(false); setCount(1); setRange([0, 390]); setHover(null); }}>⟲ 重置</button>
173
+ {[1, 2, 5, 10].map(value => <button key={value} aria-label={`${value}倍播放速度`} className={speed === value ? 'active' : ''} onClick={() => setSpeed(value)}>{value}x</button>)}
174
+ </div>
175
+ <div className="price-replay-buttons">
176
+ {([{ label: '全天', range: [0, 390] }, { label: '早盘', range: [0, 150] }, { label: '午盘', range: [150, 270] }, { label: '尾盘', range: [270, 390] }] as Array<{ label: string; range: [number, number] }>).map(item => <button key={item.label} className={range[0] === item.range[0] && range[1] === item.range[1] ? 'active' : ''} onClick={() => setRange(item.range)}>{item.label}</button>)}
177
+ <button aria-label="放大价格图" onClick={() => zoom(.65)}>+ 放大</button>
178
+ <button aria-label="缩小价格图" onClick={() => zoom(1.5)}>- 缩小</button>
179
+ </div>
180
+ </div>
181
+ {loading ? <div className="price-replay-message" role="status">正在读取 {ticker} 的价格与买卖点…</div> : error ? <div className="price-replay-message error" role="status">{error}</div> : data && <>
182
+ <div className="price-replay-readout">
183
+ <span>美东时间 <b>{activeBar ? marketTime.format(new Date(activeBar.time)).slice(0, 5) : '—'}</b></span>
184
+ <span>价格 <b>{money(activeBar?.close)}</b></span><span>均价代理 <b>{money(activeBar?.vwap)}</b></span>
185
+ <span>该棒成交量 <b>{activeBar?.volume.toLocaleString() ?? '—'}</b></span>
186
+ <span>回放持仓 <b>{lastShares} 股</b></span>
187
+ <span>回放净盈亏 <b style={{ color: (latestMark?.pnl ?? 0) >= 0 ? '#34d399' : '#fb7185' }}>{money(latestMark?.pnl)}</b></span>
188
+ </div>
189
+ <div className="price-replay-legend"><span style={{ color: '#38bdf8' }}>━ Price 价格线</span><span style={{ color: '#e9ad54' }}>━ OHLCV 均价代理</span>{Object.entries(actions).map(([key, value]) => <span key={key} style={{ color: value.color }}>{key} · {value.label}</span>)}<span>标记数字=股数</span></div>
190
+ <div className="price-replay-canvas">
191
+ <svg viewBox={`0 0 ${width} 744`} role="img" aria-label={`${ticker}价格线、成交量、持仓和模拟盈亏`} onMouseMove={handleHover} onMouseLeave={() => setHover(null)}>
192
+ <defs>{panels.map((panel, i) => <clipPath id={`${clip}-${i}`} key={i}><rect x={left} y={panel.top - 8} width={plotWidth} height={panel.height + 16} /></clipPath>)}</defs>
193
+ {panels.map((panel, index) => <g key={panel.label}>
194
+ <rect x={left} y={panel.top} width={plotWidth} height={panel.height} fill={index % 2 ? '#0d1520' : '#0b121c'} stroke="#263244" />
195
+ <text x={left} y={panel.top - 10} fill="#94a3b8" fontSize="11">{panel.label}</text>
196
+ {[0, .5, 1].map(fraction => { const value = domains[index][0] + fraction * (domains[index][1] - domains[index][0]); const py = y(value, index); return <g key={fraction}><line x1={left} x2={width - right} y1={py} y2={py} stroke="#202b3b" /><text x={left - 9} y={py + 4} textAnchor="end" fill="#94a3b8" fontSize="11">{index === 1 ? `${(value / 1000).toFixed(0)}k` : index === 2 ? value.toFixed(0) : value.toFixed(2)}</text></g>; })}
197
+ {ticks.map(tick => <line key={tick} x1={x(tick)} x2={x(tick)} y1={panel.top} y2={panel.top + panel.height} stroke="#1b2635" />)}
198
+ </g>)}
199
+ <g clipPath={`url(#${clip}-0)`}>
200
+ <path data-testid="replay-price-line" d={path(visible.bars.map(bar => [minute(bar.time), bar.close]), 0)} fill="none" stroke="#38bdf8" strokeWidth="2" vectorEffect="non-scaling-stroke" />
201
+ <path d={path(visible.bars.map(bar => [minute(bar.time), bar.vwap]), 0)} fill="none" stroke="#e9ad54" strokeWidth="1.6" vectorEffect="non-scaling-stroke" />
202
+ {visible.fills.map((fill, index) => {
203
+ const px = x(minute(fill.time)), py = y(fill.price, 0), up = fill.action === 'B' || fill.action === 'C';
204
+ const size = Math.min(8, 4 + Math.sqrt(fill.shares) / 2), color = actions[fill.action].color;
205
+ const sameTime = visible.fills.slice(0, index).filter(other => other.time === fill.time).length;
206
+ return <g key={`${fill.time}-${index}`} data-testid="replay-fill" tabIndex={0} role="img" aria-label={`${marketTime.format(new Date(fill.time))} ${actions[fill.action].label} ${fill.shares}股 ${money(fill.price)}`}>
207
+ <title>{`${marketTime.format(new Date(fill.time))} · ${actions[fill.action].label} ${fill.shares}股 @ ${money(fill.price)} · 成交后 ${fill.shares_after}股`}</title>
208
+ <path d={up ? `M${px},${py-size}L${px-size},${py+size}L${px+size},${py+size}Z` : `M${px},${py+size}L${px-size},${py-size}L${px+size},${py-size}Z`} fill={color} />
209
+ <text x={px} y={py + (up ? -12 : 19) + (up ? -1 : 1) * sameTime * 11} textAnchor="middle" fontSize="10" fontWeight="700" fill={color}>{fill.action}{fill.shares}</text>
210
+ </g>;
211
+ })}
212
+ </g>
213
+ <g clipPath={`url(#${clip}-1)`}>{visible.bars.map(bar => { const barWidth = Math.min(30, plotWidth * 4 / (range[1] - range[0])); return <rect key={bar.time} x={x(minute(bar.time)) - barWidth / 2} y={y(bar.volume, 1)} width={barWidth} height={y(0, 1) - y(bar.volume, 1)} fill={bar.close >= bar.open ? '#29b991' : '#e25876'} />; })}</g>
214
+ <g clipPath={`url(#${clip}-2)`}><line x1={left} x2={width - right} y1={y(0, 2)} y2={y(0, 2)} stroke="#536172" /><path d={path(sharePoints, 2, true)} fill="none" stroke="#b5a0ea" strokeWidth="1.8" /></g>
215
+ <g clipPath={`url(#${clip}-3)`}><line x1={left} x2={width - right} y1={y(0, 3)} y2={y(0, 3)} stroke="#536172" /><path d={path(valuation.map(mark => [minute(mark.time), mark.pnl]), 3)} fill="none" stroke="#36bca9" strokeWidth="1.8" /></g>
216
+ {hover !== null && activeBar && minute(activeBar.time) >= range[0] && minute(activeBar.time) <= range[1] && panels.map(panel => <line key={panel.top} x1={x(minute(activeBar.time))} x2={x(minute(activeBar.time))} y1={panel.top} y2={panel.top + panel.height} stroke="#8a9bb0" strokeDasharray="4 4" pointerEvents="none" />)}
217
+ {ticks.map(tick => <text key={tick} x={x(tick)} y={733} textAnchor="middle" fill="#94a3b8" fontSize="12">{timeLabel(tick)}</text>)}
218
+ </svg>
219
+ </div>
220
+ <div className="price-replay-seek"><span>{count} / {data.bars.length} 根</span><input aria-label="回放进度" type="range" min={1} max={data.bars.length} value={Math.max(1, count)} onChange={event => { setPlaying(false); setCount(Number(event.target.value)); setHover(null); }} /><span>{visible.fills.length} 笔成交</span></div>
221
+ <div className="price-replay-footnote">价格使用已完成 K 线的收盘价;成交标在实际模拟成交时刻。净盈亏包含持仓估值和上述摩擦假设。</div>
222
+ </>}
223
+ </section>;
224
+ }
frontend/src/components/TradeComparisonPanel.tsx CHANGED
@@ -3,6 +3,7 @@
3
  import React from 'react';
4
  import { API_BASE } from '../config';
5
  import { IntradayKlineChart } from './IntradayKlineChart';
 
6
 
7
  interface TradeComparisonPanelProps {
8
  watchlist: string[];
@@ -13,6 +14,21 @@ interface TradeComparisonPanelProps {
13
  export function TradeComparisonPanel({ watchlist, activeTicker, onSelectTicker }: TradeComparisonPanelProps) {
14
  const [iframeKey, setIframeKey] = React.useState(Date.now());
15
  const [isRefreshing, setIsRefreshing] = React.useState(false);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
 
17
  const handleRefresh = async () => {
18
  setIsRefreshing(true);
@@ -46,7 +62,7 @@ export function TradeComparisonPanel({ watchlist, activeTicker, onSelectTicker }
46
  alignItems: 'center'
47
  }}>
48
  <div style={{ fontWeight: 800, color: '#38bdf8', fontSize: '15px', display: 'flex', alignItems: 'center', gap: '8px' }}>
49
- 📈 历史 SIP 走势与券商成交对照大屏 (Robinhood 风格动态曲线 & 买卖点复盘)
50
  </div>
51
  <button
52
  onClick={handleRefresh}
@@ -67,11 +83,21 @@ export function TradeComparisonPanel({ watchlist, activeTicker, onSelectTicker }
67
  </button>
68
  </div>
69
  <div style={{ padding: '16px' }}>
70
- <IntradayKlineChart ticker={activeTicker || 'TSLA'} />
 
 
 
 
 
 
 
 
 
71
  </div>
72
  <iframe
 
73
  key={iframeKey}
74
- src={`${API_BASE}/charts/trade_comparison_dashboard.html?v=${iframeKey}`}
75
  title="Trade Comparison Dashboard"
76
  style={{
77
  width: '100%',
 
3
  import React from 'react';
4
  import { API_BASE } from '../config';
5
  import { IntradayKlineChart } from './IntradayKlineChart';
6
+ import { PriceActionReplayChart } from './PriceActionReplayChart';
7
 
8
  interface TradeComparisonPanelProps {
9
  watchlist: string[];
 
14
  export function TradeComparisonPanel({ watchlist, activeTicker, onSelectTicker }: TradeComparisonPanelProps) {
15
  const [iframeKey, setIframeKey] = React.useState(Date.now());
16
  const [isRefreshing, setIsRefreshing] = React.useState(false);
17
+ const [chartView, setChartView] = React.useState<'price' | 'classic'>('price');
18
+ const iframeRef = React.useRef<HTMLIFrameElement>(null);
19
+ const iframeQuery = new URLSearchParams({ v: String(iframeKey), ticker: activeTicker || 'TSLA' });
20
+
21
+ React.useEffect(() => {
22
+ const receiveSelection = (event: MessageEvent) => {
23
+ if (event.origin !== new URL(API_BASE, window.location.href).origin || event.source !== iframeRef.current?.contentWindow) return;
24
+ if (event.data?.type !== 'quant-replay-selection-change') return;
25
+ if (typeof event.data.ticker === 'string' && /^[A-Z.]{1,10}$/.test(event.data.ticker)) onSelectTicker(event.data.ticker);
26
+ // Research and broker archives can cover different dates. Keep each
27
+ // source's date selector independent while synchronizing the stock.
28
+ };
29
+ window.addEventListener('message', receiveSelection);
30
+ return () => window.removeEventListener('message', receiveSelection);
31
+ }, [onSelectTicker]);
32
 
33
  const handleRefresh = async () => {
34
  setIsRefreshing(true);
 
62
  alignItems: 'center'
63
  }}>
64
  <div style={{ fontWeight: 800, color: '#38bdf8', fontSize: '15px', display: 'flex', alignItems: 'center', gap: '8px' }}>
65
+ 📈 价格走势与买卖点复盘 · 研究模拟 / 券商成交
66
  </div>
67
  <button
68
  onClick={handleRefresh}
 
83
  </button>
84
  </div>
85
  <div style={{ padding: '16px' }}>
86
+ <div style={{ display: 'flex', gap: 8, marginBottom: 12 }}>
87
+ {([{ value: 'price', label: '📈 价格线 · 买卖点 · 持仓与盈亏' }, { value: 'classic', label: '📊 经典规则轨迹与 K 线' }] as const).map(view => <button
88
+ key={view.value} onClick={() => setChartView(view.value)} aria-pressed={chartView === view.value}
89
+ style={{ padding: '8px 12px', borderRadius: 7, border: `1px solid ${chartView === view.value ? '#288bb1' : '#2b394d'}`, background: chartView === view.value ? '#12364c' : '#121d2b', color: chartView === view.value ? '#7dd3fc' : '#94a3b8', fontWeight: 700, cursor: 'pointer' }}
90
+ >{view.label}</button>)}
91
+ </div>
92
+ {chartView === 'price' ? <PriceActionReplayChart ticker={activeTicker || 'TSLA'} watchlist={watchlist} onSelectTicker={onSelectTicker} refreshKey={iframeKey} /> : <IntradayKlineChart ticker={activeTicker || 'TSLA'} />}
93
+ </div>
94
+ <div style={{ padding: '4px 22px 12px', color: '#94a3b8', fontSize: 12 }}>
95
+ 下方 Dynamic Replay 使用券商归档行情与成交,日期在下方独立选择。
96
  </div>
97
  <iframe
98
+ ref={iframeRef}
99
  key={iframeKey}
100
+ src={`${API_BASE}/charts/trade_comparison_dashboard.html?${iframeQuery}`}
101
  title="Trade Comparison Dashboard"
102
  style={{
103
  width: '100%',
reports/alpha_followup_audit_20260914/NVDA_quote_quality.csv ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ bar_open_et,quote_count,raw_last_qi,stored_qi,equal_size_quote_fraction,last_quote_age_seconds,max_interquote_gap_seconds,stored_spread_bps,missing_features,last_quote_age_gt_30s,quote_state,trades__at_or_above_ask,trades__at_or_below_bid,trades__inside_spread_unclassified
2
+ 2026-09-14 09:30:00-04:00,47238,0.0,0.0,0.655023498031246,0.011128824,0.713110714,10.928182833251048,,False,equal_positive_sizes,177,180,2026
3
+ 2026-09-14 09:35:00-04:00,40632,0.0,0.0,0.7380882063398306,0.058368781,0.589749331,5.248968100589967,,False,equal_positive_sizes,201,138,1230
4
+ 2026-09-14 09:40:00-04:00,31587,0.0,0.0,0.4374267895020103,0.018041832,0.719045909,2.385439278642348,,False,equal_positive_sizes,183,65,818
5
+ 2026-09-14 09:45:00-04:00,35462,0.0,0.0,0.7860526761039986,0.105675441,0.710951816,6.6514633219315265,,False,equal_positive_sizes,124,128,948
6
+ 2026-09-14 09:50:00-04:00,29692,0.0,0.0,0.5788427859356056,0.023441589,0.858456197,3.7965973018077745,,False,equal_positive_sizes,79,89,958
7
+ 2026-09-14 09:55:00-04:00,19417,0.0,0.0,0.8709378379770304,0.49161506,1.252646427,4.269753540337472,,False,equal_positive_sizes,41,37,477
8
+ 2026-09-14 10:00:00-04:00,30462,0.0,0.0,0.5974656949642178,0.06071779,0.910450571,1.8963637225616101,,False,equal_positive_sizes,54,63,463
9
+ 2026-09-14 10:05:00-04:00,26390,0.0,0.0,0.7166350890488822,0.016567135,0.820437086,1.8973081950665556,,False,equal_positive_sizes,93,82,641
10
+ 2026-09-14 10:10:00-04:00,23233,0.0,0.0,0.6124908535273103,0.003132741,1.248683774,1.891431813882733,,False,equal_positive_sizes,56,56,594
11
+ 2026-09-14 10:15:00-04:00,26567,0.0,0.0,0.6202055181239884,3.8312e-05,0.812947536,1.4243323442123543,,False,equal_positive_sizes,50,51,405
12
+ 2026-09-14 10:20:00-04:00,26472,0.3333333333333333,0.3333333333333333,0.5608189785433666,0.033637667,0.652504686,1.4267031268577408,,False,unequal_sizes,38,67,558
13
+ 2026-09-14 10:25:00-04:00,22378,-0.3333333333333333,-0.3333333333333333,0.5447761194029851,0.01770726,0.696683323,1.4275857146256699,,False,unequal_sizes,74,53,462
14
+ 2026-09-14 10:30:00-04:00,21858,0.0,0.0,0.5774087290694483,0.001018867,0.840904001,1.4250765978671893,,False,equal_positive_sizes,35,67,404
15
+ 2026-09-14 10:35:00-04:00,25341,-0.5,-0.5,0.5513989187482735,0.089092127,0.747850098,1.4256183619645562,,False,unequal_sizes,46,44,396
16
+ 2026-09-14 10:40:00-04:00,16796,0.0,0.0,0.5656703977137414,0.054313223,0.907759076,1.425753867357419,,False,equal_positive_sizes,45,29,296
17
+ 2026-09-14 10:45:00-04:00,19260,0.0,0.0,0.5537383177570093,0.058362412,0.753569034,1.424129500842664,,False,equal_positive_sizes,31,21,386
18
+ 2026-09-14 10:50:00-04:00,16950,0.0,0.0,0.5418879056047198,0.043639479,0.945240415,1.4247382043550039,,False,equal_positive_sizes,26,20,259
19
+ 2026-09-14 10:55:00-04:00,17764,0.0,0.0,0.49346993920288224,0.018474905,1.925368307,1.4256183619645562,,False,equal_positive_sizes,57,36,414
20
+ 2026-09-14 11:00:00-04:00,16624,0.0,0.0,0.5406641000962464,0.027772956,1.46052781,1.4256183619645562,,False,equal_positive_sizes,30,28,218
21
+ 2026-09-14 11:05:00-04:00,14599,-0.3333333333333333,-0.3333333333333333,0.6995684635933969,0.436958419,2.837971024,2.8423895021082135,,False,unequal_sizes,20,26,363
22
+ 2026-09-14 11:10:00-04:00,12071,0.3333333333333333,0.3333333333333333,0.6126253003065197,0.179880324,1.482236664,1.8964536317083274,,False,unequal_sizes,19,12,174
23
+ 2026-09-14 11:15:00-04:00,15902,0.0,0.0,0.5817507231794743,0.020873709,0.980295251,1.42304864454622,,False,equal_positive_sizes,23,14,233
24
+ 2026-09-14 11:20:00-04:00,15195,0.0,0.0,0.5663705166173083,0.004564744,1.317557455,1.4214304328256206,,False,equal_positive_sizes,19,18,204
25
+ 2026-09-14 11:25:00-04:00,14905,0.0,0.0,0.5639718215363971,0.002002103,0.98752346,1.419681518112824,,False,equal_positive_sizes,26,17,239
26
+ 2026-09-14 11:30:00-04:00,16848,0.3333333333333333,0.3333333333333333,0.5435066476733144,0.107928921,1.040888242,1.888663298550075,,False,unequal_sizes,51,34,518
27
+ 2026-09-14 11:35:00-04:00,12614,0.0,0.0,0.5820516885999683,0.068022526,1.702253897,1.8870594895513735,,False,equal_positive_sizes,19,14,331
28
+ 2026-09-14 11:40:00-04:00,22568,-0.3333333333333333,-0.3333333333333333,0.537708259482453,0.008168846,1.00110176,1.415728746372249,,False,unequal_sizes,42,17,249
29
+ 2026-09-14 11:45:00-04:00,16231,0.3333333333333333,0.3333333333333333,0.49152855646602184,0.029942542,1.095254358,1.4151944713069857,,False,unequal_sizes,14,22,233
30
+ 2026-09-14 11:50:00-04:00,12092,-0.3333333333333333,-0.3333333333333333,0.5877439629507112,0.002507959,1.411730804,1.4168654213994443,,False,unequal_sizes,14,27,139
31
+ 2026-09-14 11:55:00-04:00,10787,0.0,0.0,0.5393529248169092,0.028148427,1.379455643,1.4149274849664493,,False,equal_positive_sizes,15,15,156
32
+ 2026-09-14 12:00:00-04:00,11828,0.0,0.0,0.44453838349678726,0.014797138,1.033250352,1.413860546221511,,False,equal_positive_sizes,21,20,208
33
+ 2026-09-14 12:05:00-04:00,12909,0.0,0.0,0.5119683941436207,0.175346467,0.889810465,1.4155951397900737,,False,equal_positive_sizes,17,25,177
34
+ 2026-09-14 12:10:00-04:00,14336,0.0,0.0,0.49086216517857145,0.009887854,1.182170923,1.4161965680837039,,False,equal_positive_sizes,24,15,242
35
+ 2026-09-14 12:15:00-04:00,15613,0.0,0.0,0.5261640940242106,0.365231581,1.077354264,1.4141271300290432,,False,equal_positive_sizes,27,13,267
36
+ 2026-09-14 12:20:00-04:00,11930,0.0,0.0,0.5062866722548198,0.124896617,1.270335989,1.4147940295692487,,False,equal_positive_sizes,18,22,150
37
+ 2026-09-14 12:25:00-04:00,12753,0.0,0.0,0.5229357798165137,0.050062393,1.215314885,1.4161965680837039,,False,equal_positive_sizes,34,22,266
38
+ 2026-09-14 12:30:00-04:00,10996,-0.5,-0.5,0.4821753364859949,0.120541426,1.306643063,1.4165978042734573,,False,unequal_sizes,24,6,173
39
+ 2026-09-14 12:35:00-04:00,8826,0.0,0.0,0.5098572399728076,0.050256766,1.47877089,1.4166646990768608,,False,equal_positive_sizes,25,13,133
40
+ 2026-09-14 12:40:00-04:00,9042,0.0,0.0,0.5536385755363857,0.541790134,1.301112312,1.4169992678837655,,False,equal_positive_sizes,9,7,96
41
+ 2026-09-14 12:45:00-04:00,8927,-0.3333333333333333,-0.3333333333333333,0.6041223255292931,0.498595432,1.992666557,1.8867924528311542,,False,unequal_sizes,17,12,225
42
+ 2026-09-14 12:50:00-04:00,7609,0.3333333333333333,0.3333333333333333,0.5339729267972139,0.102142935,3.351352265,1.883505203182749,,False,unequal_sizes,10,4,216
43
+ 2026-09-14 12:55:00-04:00,6972,0.3333333333333333,0.3333333333333333,0.4708835341365462,0.084000009,1.497656532,1.4145271942853639,,False,unequal_sizes,12,17,105
44
+ 2026-09-14 13:00:00-04:00,8693,0.0,0.0,0.4939606580006902,0.250399188,1.557958133,1.4139271827501418,,False,equal_positive_sizes,17,8,185
45
+ 2026-09-14 13:05:00-04:00,6429,0.3333333333333333,0.3333333333333333,0.47456836210919273,0.005578455,2.956681857,0.9429069822266857,,False,unequal_sizes,17,11,154
46
+ 2026-09-14 13:10:00-04:00,8123,-0.3333333333333333,-0.3333333333333333,0.4222577865320694,0.093568767,1.387263559,0.9428180832499793,,False,unequal_sizes,18,7,154
47
+ 2026-09-14 13:15:00-04:00,8734,0.0,0.0,0.4575223265399588,0.027009461,2.851466843,0.9433517286925255,,False,equal_positive_sizes,12,12,105
48
+ 2026-09-14 13:20:00-04:00,8217,0.0,0.0,0.484118291347207,0.54248921,1.247700918,1.4128617514776716,,False,equal_positive_sizes,11,5,190
49
+ 2026-09-14 13:25:00-04:00,8157,0.0,0.0,0.4853500061297045,0.123626839,2.232944467,1.4125291334134304,,False,equal_positive_sizes,26,8,139
50
+ 2026-09-14 13:30:00-04:00,9758,0.8,0.8,0.5288993646238983,0.028672622,2.013669816,1.4119308153900993,,False,unequal_sizes,17,21,162
51
+ 2026-09-14 13:35:00-04:00,9334,0.3333333333333333,0.3333333333333333,0.46003856867366616,0.034307849,2.325245122,1.4122631517006536,,False,unequal_sizes,22,20,152
52
+ 2026-09-14 13:40:00-04:00,6902,0.3333333333333333,0.3333333333333333,0.4487105186902347,0.668280981,2.889756049,0.9421074944656004,,False,unequal_sizes,15,13,74
53
+ 2026-09-14 13:45:00-04:00,8315,0.6,0.6,0.4585688514732411,0.066188154,2.326368406,0.941353666573013,,False,unequal_sizes,31,11,86
54
+ 2026-09-14 13:50:00-04:00,10947,0.0,0.0,0.4076002557778387,0.063961306,1.341829913,0.9407780234245171,,False,equal_positive_sizes,37,19,126
55
+ 2026-09-14 13:55:00-04:00,9457,0.0,0.0,0.39219625674103836,0.032332575,1.437039305,0.941486607353492,,False,equal_positive_sizes,26,9,135
56
+ 2026-09-14 14:00:00-04:00,13747,0.0,0.0,0.4294755219320579,0.128680165,2.008486152,0.9422850412241136,,False,equal_positive_sizes,75,30,176
57
+ 2026-09-14 14:05:00-04:00,8628,0.0,0.0,0.45630505331478904,0.207106803,2.946516357,1.4117979246571042,,False,equal_positive_sizes,21,12,162
58
+ 2026-09-14 14:10:00-04:00,8594,0.5,0.5,0.4514777751919944,0.907607334,1.966044648,0.9416195856878641,,False,unequal_sizes,26,15,140
59
+ 2026-09-14 14:15:00-04:00,7808,0.0,0.0,0.4336577868852459,0.039258354,2.112621554,1.41186436689654,,False,equal_positive_sizes,9,6,87
60
+ 2026-09-14 14:20:00-04:00,7948,0.3333333333333333,0.3333333333333333,0.40135883241066933,0.408734684,1.702367649,0.9428180832499793,,False,unequal_sizes,41,11,108
61
+ 2026-09-14 14:25:00-04:00,7525,0.3333333333333333,0.3333333333333333,0.4396013289036545,0.153186653,2.301994794,0.9430848304809842,,False,unequal_sizes,22,26,105
62
+ 2026-09-14 14:30:00-04:00,8965,0.0,0.0,0.4342442833240379,0.088336661,1.947014263,1.413127958736717,,False,equal_positive_sizes,24,22,218
63
+ 2026-09-14 14:35:00-04:00,7198,-0.6666666666666666,-0.6666666666666666,0.4416504584606835,0.056359538,2.096190078,1.4123961300346572,,False,unequal_sizes,7,17,185
64
+ 2026-09-14 14:40:00-04:00,10403,0.3333333333333333,0.3333333333333333,0.3757569931750457,0.82081815,3.011726185,0.9417082587805731,,False,unequal_sizes,38,21,166
65
+ 2026-09-14 14:45:00-04:00,10750,-0.3333333333333333,-0.3333333333333333,0.4156279069767442,0.140449298,2.224936691,0.9419300146003972,,False,unequal_sizes,27,22,159
66
+ 2026-09-14 14:50:00-04:00,7756,0.3333333333333333,0.3333333333333333,0.3711964930376483,0.242232211,1.614032624,0.9421074944656004,,False,unequal_sizes,31,14,184
67
+ 2026-09-14 14:55:00-04:00,8847,0.42857142857142855,0.42857142857142855,0.3036057420594552,0.111458006,1.624144127,0.9417526015907054,,False,unequal_sizes,37,16,187
68
+ 2026-09-14 15:00:00-04:00,10998,0.2,0.2,0.3821603927986907,0.097070802,2.166005002,0.9411764705873792,,False,unequal_sizes,26,14,224
69
+ 2026-09-14 15:05:00-04:00,11047,0.7142857142857143,0.7142857142857143,0.3785643161039196,0.831212572,2.629860996,0.9421518748813741,,False,unequal_sizes,58,10,138
70
+ 2026-09-14 15:10:00-04:00,8303,0.3333333333333333,0.3333333333333333,0.49223172347344335,0.088895142,1.886106444,1.4125956444954781,,False,unequal_sizes,36,9,151
71
+ 2026-09-14 15:15:00-04:00,9234,0.0,0.0,0.3436213991769547,0.288803435,1.693597423,0.9426403355804417,,False,equal_positive_sizes,58,25,152
72
+ 2026-09-14 15:20:00-04:00,9552,0.0,0.0,0.40138190954773867,0.92600329,1.821410853,0.9428180832499793,,False,equal_positive_sizes,35,19,198
73
+ 2026-09-14 15:25:00-04:00,9135,-0.3333333333333333,-0.3333333333333333,0.40262725779967157,0.138400407,1.478938492,0.942373839702692,,False,unequal_sizes,32,16,177
74
+ 2026-09-14 15:30:00-04:00,16118,0.0,0.0,0.45055217768953965,0.00962361,1.405495903,1.4141271300290432,,False,equal_positive_sizes,102,29,620
75
+ 2026-09-14 15:35:00-04:00,11797,0.0,0.0,0.49020937526489783,0.005374419,1.520170094,1.4163971577630903,,False,equal_positive_sizes,54,16,375
76
+ 2026-09-14 15:40:00-04:00,12751,-0.3333333333333333,-0.3333333333333333,0.4527488040153713,0.127756137,1.286158946,1.4145271942853639,,False,unequal_sizes,55,45,360
77
+ 2026-09-14 15:45:00-04:00,11113,0.0,0.0,0.5175920093584091,0.031450622,1.448093439,1.4146605993445942,,False,equal_positive_sizes,77,22,473
78
+ 2026-09-14 15:50:00-04:00,23133,-0.3333333333333333,-0.3333333333333333,0.5844032334759867,0.019433219,0.8599103,1.8900911968998744,,False,unequal_sizes,114,84,863
79
+ 2026-09-14 15:55:00-04:00,36302,0.5,0.5,0.46625530273814114,0.168437922,0.670853909,1.4202864244289801,,False,unequal_sizes,514,427,2036