RayMelius Claude Opus 4.6 commited on
Commit
bf84a36
·
1 Parent(s): 667e8eb

Add real ATHEX/NYSE/Euronext prices, OHLCV data for RL agent, merge shared_data into shared/data

Browse files

- Add update_securities_prices.py script fetching real prices from Yahoo Finance
- 16 securities: 10 ATHEX + 5 US (AMZN, TSLA, NVDA, GOOGL, AAPL) + Euronext (ENX)
- USD prices auto-converted to EUR using daily exchange rates
- Export 60-day OHLCV bars for RL agent observation vector seeding
- RL agent (ch_rl_trader.py) now loads real OHLCV instead of synthetic noise
- Merge shared_data/ into shared/data/ to consolidate directories
- Update all default paths from /app/data/ to /app/shared/data/

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

Dockerfile CHANGED
@@ -46,10 +46,8 @@ RUN pip install --no-cache-dir \
46
  WORKDIR /app
47
 
48
  COPY shared/ /app/shared/
49
- COPY shared_data/securities.txt /app/data/securities.txt
50
- COPY shared_data/market_schedule.txt /app/data/market_schedule.txt
51
  # Also expose schedule path via env so dashboard finds it
52
- ENV SCHEDULE_FILE=/app/data/market_schedule.txt
53
 
54
  # Matcher service
55
  COPY matcher/matcher.py /app/matcher.py
 
46
  WORKDIR /app
47
 
48
  COPY shared/ /app/shared/
 
 
49
  # Also expose schedule path via env so dashboard finds it
50
+ ENV SCHEDULE_FILE=/app/shared/data/market_schedule.txt
51
 
52
  # Matcher service
53
  COPY matcher/matcher.py /app/matcher.py
clearing_house/app.py CHANGED
@@ -38,7 +38,7 @@ def ts_filter(ts):
38
  return datetime.datetime.fromtimestamp(float(ts)).strftime("%H:%M:%S")
39
 
40
  MATCHER_URL = os.getenv("MATCHER_URL", Config.MATCHER_URL)
41
- SECURITIES_FILE = os.getenv("SECURITIES_FILE", "/app/data/securities.txt")
42
 
43
  # SSE clients
44
  _sse_clients: list[Queue] = []
 
38
  return datetime.datetime.fromtimestamp(float(ts)).strftime("%H:%M:%S")
39
 
40
  MATCHER_URL = os.getenv("MATCHER_URL", Config.MATCHER_URL)
41
+ SECURITIES_FILE = os.getenv("SECURITIES_FILE", "/app/shared/data/securities.txt")
42
 
43
  # SSE clients
44
  _sse_clients: list[Queue] = []
clearing_house/ch_ai_trader.py CHANGED
@@ -289,7 +289,7 @@ def _decide_order(member_id, capital, holdings, daily_trades, bbos, obligation_r
289
  def _load_reference_prices() -> dict:
290
  """Load reference prices from securities.txt as fallback when books are empty."""
291
  ref = {}
292
- secs_file = os.getenv("SECURITIES_FILE", "/app/data/securities.txt")
293
  try:
294
  with open(secs_file) as f:
295
  for line in f:
@@ -309,7 +309,7 @@ def _load_reference_prices() -> dict:
309
  def _fetch_bbos() -> dict:
310
  """Get BBO for all symbols from Matcher API, falling back to reference prices."""
311
  try:
312
- secs_file = os.getenv("SECURITIES_FILE", "/app/data/securities.txt")
313
  symbols = []
314
  try:
315
  with open(secs_file) as f:
 
289
  def _load_reference_prices() -> dict:
290
  """Load reference prices from securities.txt as fallback when books are empty."""
291
  ref = {}
292
+ secs_file = os.getenv("SECURITIES_FILE", "/app/shared/data/securities.txt")
293
  try:
294
  with open(secs_file) as f:
295
  for line in f:
 
309
  def _fetch_bbos() -> dict:
310
  """Get BBO for all symbols from Matcher API, falling back to reference prices."""
311
  try:
312
+ secs_file = os.getenv("SECURITIES_FILE", "/app/shared/data/securities.txt")
313
  symbols = []
314
  try:
315
  with open(secs_file) as f:
clearing_house/ch_rl_trader.py CHANGED
@@ -101,14 +101,48 @@ def feed_trade(symbol: str, price: float, quantity: int):
101
  _finalize_bar(symbol)
102
 
103
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
104
  def seed_price(symbol: str, ref_price: float):
105
- """Seed initial bars from reference price when no trade history exists."""
106
  with _bars_lock:
107
  if symbol in _price_bars and len(_price_bars[symbol]) > 0:
108
  return
109
  if symbol not in _price_bars:
110
  _price_bars[symbol] = deque(maxlen=120)
111
- # Create flat bars with small noise for indicator computation
 
 
 
 
 
 
 
 
 
112
  for i in range(RL_LOOKBACK):
113
  noise = random.uniform(-0.02, 0.02) * ref_price
114
  p = ref_price + noise
 
101
  _finalize_bar(symbol)
102
 
103
 
104
+ def _load_real_ohlcv(symbol: str) -> list[dict]:
105
+ """Try to load real OHLCV bars from shared/data/ohlcv/{symbol}.json."""
106
+ ohlcv_dir = os.getenv("OHLCV_DIR", "/app/shared/data/ohlcv")
107
+ path = os.path.join(ohlcv_dir, f"{symbol}.json")
108
+ if not os.path.exists(path):
109
+ # Also check relative to project root
110
+ alt = os.path.join(os.path.dirname(__file__), "..", "shared", "ohlcv", f"{symbol}.json")
111
+ if os.path.exists(alt):
112
+ path = alt
113
+ else:
114
+ return []
115
+ try:
116
+ import json
117
+ with open(path, "r") as f:
118
+ bars = json.load(f)
119
+ return [
120
+ {"open": b["open"], "high": b["high"], "low": b["low"],
121
+ "close": b["close"], "volume": b["volume"]}
122
+ for b in bars
123
+ ]
124
+ except Exception as e:
125
+ print(f"[CH-RL] Failed to load OHLCV for {symbol}: {e}")
126
+ return []
127
+
128
+
129
  def seed_price(symbol: str, ref_price: float):
130
+ """Seed initial bars from real OHLCV data if available, else from reference price."""
131
  with _bars_lock:
132
  if symbol in _price_bars and len(_price_bars[symbol]) > 0:
133
  return
134
  if symbol not in _price_bars:
135
  _price_bars[symbol] = deque(maxlen=120)
136
+
137
+ # Try real OHLCV data first
138
+ real_bars = _load_real_ohlcv(symbol)
139
+ if real_bars:
140
+ for bar in real_bars[-RL_LOOKBACK:]:
141
+ _price_bars[symbol].append(bar)
142
+ print(f"[CH-RL] Seeded {symbol} with {len(_price_bars[symbol])} real OHLCV bars")
143
+ return
144
+
145
+ # Fallback: synthetic bars with small noise
146
  for i in range(RL_LOOKBACK):
147
  noise = random.uniform(-0.02, 0.02) * ref_price
148
  p = ref_price + noise
dashboard/dashboard.py CHANGED
@@ -23,7 +23,7 @@ sse_clients_lock = threading.Lock()
23
  # Session state
24
  session_state = {"active": False, "start_time": None, "suspended": False, "mode": "automatic"}
25
 
26
- SCHEDULE_FILE = os.getenv("SCHEDULE_FILE", "/app/data/market_schedule.txt")
27
  FRONTEND_URL = os.getenv("FRONTEND_URL", "")
28
 
29
  # ── AI Analyst (inline LLM for on-demand generation) ───────────────────────────
 
23
  # Session state
24
  session_state = {"active": False, "start_time": None, "suspended": False, "mode": "automatic"}
25
 
26
+ SCHEDULE_FILE = os.getenv("SCHEDULE_FILE", "/app/shared/data/market_schedule.txt")
27
  FRONTEND_URL = os.getenv("FRONTEND_URL", "")
28
 
29
  # ── AI Analyst (inline LLM for on-demand generation) ───────────────────────────
docker-compose.yml CHANGED
@@ -57,7 +57,6 @@ services:
57
  - "5000:5000"
58
  volumes:
59
  - ./shared:/app/shared
60
- - ./shared_data:/app/data
61
  environment:
62
  - MATCHER_URL=http://matcher:6000
63
 
@@ -74,7 +73,6 @@ services:
74
  context: ./md_feeder
75
  dockerfile: Dockerfile
76
  volumes:
77
- - ./shared_data:/app/data # shared volume for global order IDs
78
  - ./shared:/app/shared
79
 
80
  oeg:
@@ -122,7 +120,6 @@ services:
122
  - ./fix-ui-client/client1.cfg:/app/client.cfg
123
  - ./fix-ui-client/log:/app/log
124
  - ./fix-ui-client/store:/app/store
125
- - ./shared_data:/app/data # shared volume for global order IDs
126
  - ./shared:/app/shared
127
  environment:
128
  FIX_CFG: client.cfg
@@ -139,7 +136,6 @@ services:
139
  - ./fix-ui-client/client2.cfg:/app/client.cfg
140
  - ./fix-ui-client/log:/app/log
141
  - ./fix-ui-client/store:/app/store
142
- - ./shared_data:/app/data # shared volume for global order IDs
143
  - ./shared:/app/shared
144
  environment:
145
  FIX_CFG: client.cfg
@@ -172,7 +168,6 @@ services:
172
  volumes:
173
  - ./dashboard:/app
174
  - ./shared:/app/shared
175
- - ./shared_data:/app/data
176
  depends_on:
177
  - kafka
178
  - matcher
@@ -192,7 +187,6 @@ services:
192
  - "5004:5004"
193
  volumes:
194
  - ./shared:/app/shared
195
- - ./shared_data:/app/shared_data # securities.txt read-only
196
  - ch_data:/app/data # clearing_house.db persistence
197
  depends_on:
198
  - kafka
@@ -200,7 +194,8 @@ services:
200
  environment:
201
  - KAFKA_BOOTSTRAP=kafka:9092
202
  - MATCHER_URL=http://matcher:6000
203
- - SECURITIES_FILE=/app/shared_data/securities.txt
 
204
  - CH_DB_PATH=/app/data/clearing_house.db
205
  - CH_PORT=5004
206
  - HF_TOKEN=${HF_TOKEN:-}
 
57
  - "5000:5000"
58
  volumes:
59
  - ./shared:/app/shared
 
60
  environment:
61
  - MATCHER_URL=http://matcher:6000
62
 
 
73
  context: ./md_feeder
74
  dockerfile: Dockerfile
75
  volumes:
 
76
  - ./shared:/app/shared
77
 
78
  oeg:
 
120
  - ./fix-ui-client/client1.cfg:/app/client.cfg
121
  - ./fix-ui-client/log:/app/log
122
  - ./fix-ui-client/store:/app/store
 
123
  - ./shared:/app/shared
124
  environment:
125
  FIX_CFG: client.cfg
 
136
  - ./fix-ui-client/client2.cfg:/app/client.cfg
137
  - ./fix-ui-client/log:/app/log
138
  - ./fix-ui-client/store:/app/store
 
139
  - ./shared:/app/shared
140
  environment:
141
  FIX_CFG: client.cfg
 
168
  volumes:
169
  - ./dashboard:/app
170
  - ./shared:/app/shared
 
171
  depends_on:
172
  - kafka
173
  - matcher
 
187
  - "5004:5004"
188
  volumes:
189
  - ./shared:/app/shared
 
190
  - ch_data:/app/data # clearing_house.db persistence
191
  depends_on:
192
  - kafka
 
194
  environment:
195
  - KAFKA_BOOTSTRAP=kafka:9092
196
  - MATCHER_URL=http://matcher:6000
197
+ - SECURITIES_FILE=/app/shared/data/securities.txt
198
+ - OHLCV_DIR=/app/shared/data/ohlcv
199
  - CH_DB_PATH=/app/data/clearing_house.db
200
  - CH_PORT=5004
201
  - HF_TOKEN=${HF_TOKEN:-}
oeg/oeg_simulator.py CHANGED
@@ -2,7 +2,7 @@
2
  import time, json, random, requests, os
3
 
4
  FRONTEND = os.environ.get("FRONTEND_URL", "http://frontend:5000")
5
- SECURITIES_FILE = os.environ.get("SECURITIES_FILE", "/app/data/securities.txt")
6
  SIDES = ["buy", "sell"]
7
 
8
 
 
2
  import time, json, random, requests, os
3
 
4
  FRONTEND = os.environ.get("FRONTEND_URL", "http://frontend:5000")
5
+ SECURITIES_FILE = os.environ.get("SECURITIES_FILE", "/app/shared/data/securities.txt")
6
  SIDES = ["buy", "sell"]
7
 
8
 
scripts/update_securities_prices.py ADDED
@@ -0,0 +1,250 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ Fetch real ATHEX stock prices from Yahoo Finance and update securities.txt.
4
+ Optionally exports OHLCV bars for the RL agent observation vector.
5
+
6
+ Usage:
7
+ python scripts/update_securities_prices.py # update current prices
8
+ python scripts/update_securities_prices.py --history 10 # also print 10-day history
9
+ python scripts/update_securities_prices.py --reset-start # reset start_price to oldest close
10
+ python scripts/update_securities_prices.py --ohlcv 60 # export 60 days of OHLCV for RL agent
11
+
12
+ Requires: pip install yfinance
13
+ """
14
+ import argparse
15
+ import json
16
+ import os
17
+ import sys
18
+ from datetime import datetime
19
+
20
+ try:
21
+ import yfinance as yf
22
+ except ImportError:
23
+ print("ERROR: yfinance not installed. Run: pip install yfinance")
24
+ sys.exit(1)
25
+
26
+ # Mapping: project symbol -> Yahoo Finance ticker
27
+ TICKER_MAP = {
28
+ "ALPHA": "ALPHA.AT", # Alpha Services and Holdings
29
+ "PEIR": "TPEIR.AT", # Piraeus Financial Holdings
30
+ "EXAE": "EXAE.AT", # Hellenic Exchanges (Athens Stock Exchange)
31
+ "QUEST": "QUEST.AT", # Quest Holdings
32
+ "NBG": "ETE.AT", # National Bank of Greece
33
+ "EUROB": "EUROB.AT", # Eurobank Ergasias
34
+ "AEG": "AEGN.AT", # Aegean Airlines
35
+ "INTKA": "INTRK.AT", # Intrakat
36
+ "AAAK": "AAAK.AT", # E. Pairis S.A.
37
+ "ATTIK": "ATTICA.AT", # Attica Bank
38
+ "AMZN": "AMZN", # Amazon
39
+ "TSLA": "TSLA", # Tesla
40
+ "NVDA": "NVDA", # NVIDIA
41
+ "GOOGL": "GOOGL", # Alphabet (Google)
42
+ "AAPL": "AAPL", # Apple
43
+ "ENX": "ENX.PA", # Euronext N.V.
44
+ }
45
+
46
+ SECURITIES_FILE = os.path.join(os.path.dirname(__file__), "..", "shared", "data", "securities.txt")
47
+ OHLCV_DIR = os.path.join(os.path.dirname(__file__), "..", "shared", "data", "ohlcv")
48
+
49
+ # Tickers that trade in USD and need EUR conversion
50
+ USD_TICKERS = {"AMZN", "TSLA", "NVDA", "GOOGL", "AAPL"}
51
+
52
+
53
+ def _get_usd_eur_rate() -> float:
54
+ """Fetch current USD/EUR exchange rate from Yahoo Finance."""
55
+ try:
56
+ t = yf.Ticker("USDEUR=X")
57
+ hist = t.history(period="5d")
58
+ if not hist.empty:
59
+ rate = float(hist.iloc[-1]["Close"])
60
+ print(f" USD/EUR rate: {rate:.4f}")
61
+ return rate
62
+ except Exception as e:
63
+ print(f" WARNING: Could not fetch USD/EUR rate ({e}), using fallback", file=sys.stderr)
64
+ return 0.92 # fallback
65
+
66
+
67
+ def _get_usd_eur_series(days: int) -> dict[str, float]:
68
+ """Fetch daily USD/EUR rates. Returns {date_str: rate}."""
69
+ try:
70
+ t = yf.Ticker("USDEUR=X")
71
+ hist = t.history(period=f"{days + 10}d")
72
+ if not hist.empty:
73
+ return {d.strftime("%Y-%m-%d"): round(float(r["Close"]), 6) for d, r in hist.iterrows()}
74
+ except Exception:
75
+ pass
76
+ return {}
77
+
78
+
79
+ def fetch_prices(days=15):
80
+ """Fetch price history for all securities. USD prices are converted to EUR."""
81
+ results = {}
82
+ period = f"{days + 5}d" # extra days to account for weekends/holidays
83
+
84
+ # Pre-fetch USD/EUR rates for the period
85
+ usd_eur_daily = {}
86
+ needs_conversion = any(sym in USD_TICKERS for sym in TICKER_MAP)
87
+ if needs_conversion:
88
+ print(" Fetching USD/EUR exchange rates...")
89
+ usd_eur_daily = _get_usd_eur_series(days + 5)
90
+ fallback_rate = _get_usd_eur_rate()
91
+
92
+ for sym, ticker in TICKER_MAP.items():
93
+ try:
94
+ t = yf.Ticker(ticker)
95
+ hist = t.history(period=period)
96
+ if hist.empty:
97
+ print(f" WARNING: {sym} ({ticker}): no data returned", file=sys.stderr)
98
+ results[sym] = None
99
+ continue
100
+
101
+ hist = hist.tail(days)
102
+
103
+ # Determine if USD→EUR conversion is needed
104
+ convert = sym in USD_TICKERS
105
+
106
+ history = []
107
+ ohlcv = []
108
+ for date, row in hist.iterrows():
109
+ date_str = date.strftime("%Y-%m-%d")
110
+ rate = usd_eur_daily.get(date_str, fallback_rate) if convert else 1.0
111
+
112
+ history.append({
113
+ "date": date_str,
114
+ "close": round(row["Close"] * rate, 4),
115
+ })
116
+ ohlcv.append({
117
+ "date": date_str,
118
+ "open": round(row["Open"] * rate, 4),
119
+ "high": round(row["High"] * rate, 4),
120
+ "low": round(row["Low"] * rate, 4),
121
+ "close": round(row["Close"] * rate, 4),
122
+ "volume": int(row["Volume"]),
123
+ })
124
+
125
+ rate_last = 1.0
126
+ if convert:
127
+ last_date = hist.index[-1].strftime("%Y-%m-%d")
128
+ rate_last = usd_eur_daily.get(last_date, fallback_rate)
129
+
130
+ results[sym] = {
131
+ "current": round(hist.iloc[-1]["Close"] * rate_last, 4),
132
+ "start": round(hist.iloc[0]["Close"] * (usd_eur_daily.get(hist.index[0].strftime("%Y-%m-%d"), fallback_rate) if convert else 1.0), 4),
133
+ "history": history,
134
+ "ohlcv": ohlcv,
135
+ "converted": convert,
136
+ }
137
+ if convert:
138
+ print(f" {sym}: converted USD -> EUR (rate ~{rate_last:.4f})")
139
+ except Exception as e:
140
+ print(f" ERROR: {sym} ({ticker}): {e}", file=sys.stderr)
141
+ results[sym] = None
142
+
143
+ return results
144
+
145
+
146
+ def update_securities_file(results, reset_start=False):
147
+ """Update securities.txt with real prices."""
148
+ # Read existing to preserve symbols without data
149
+ existing = {}
150
+ if os.path.exists(SECURITIES_FILE):
151
+ with open(SECURITIES_FILE, "r") as f:
152
+ for line in f:
153
+ line = line.strip()
154
+ if not line or line.startswith("#"):
155
+ continue
156
+ parts = line.split()
157
+ if len(parts) >= 3:
158
+ existing[parts[0]] = {"start": float(parts[1]), "current": float(parts[2])}
159
+
160
+ # Merge real data
161
+ for sym, data in results.items():
162
+ if data is None:
163
+ continue # keep existing values
164
+ if reset_start or sym not in existing:
165
+ existing[sym] = {"start": data["start"], "current": data["current"]}
166
+ else:
167
+ existing[sym]["current"] = data["current"]
168
+ if reset_start:
169
+ existing[sym]["start"] = data["start"]
170
+
171
+ # Write back
172
+ with open(SECURITIES_FILE, "w") as f:
173
+ f.write("#SYMBOL\t<start_price>\t<current_price>\n")
174
+ for sym in TICKER_MAP:
175
+ if sym in existing:
176
+ f.write(f"{sym}\t{existing[sym]['start']:.2f}\t{existing[sym]['current']:.2f}\n")
177
+
178
+ print(f"Updated {SECURITIES_FILE}")
179
+
180
+
181
+ def print_history(results):
182
+ """Print price history table."""
183
+ print("\n=== ATHEX Price History ===\n")
184
+ for sym, data in results.items():
185
+ if data is None:
186
+ print(f"{sym}: no data available")
187
+ continue
188
+ print(f"{sym} (Yahoo: {TICKER_MAP[sym]}) Current: {data['current']:.2f} EUR")
189
+ for day in data["history"]:
190
+ print(f" {day['date']} {day['close']:.4f}")
191
+ print()
192
+
193
+
194
+ def export_ohlcv(results):
195
+ """Export OHLCV bars as JSON files for the RL agent to seed real price history."""
196
+ os.makedirs(OHLCV_DIR, exist_ok=True)
197
+ exported = 0
198
+ for sym, data in results.items():
199
+ if data is None or "ohlcv" not in data:
200
+ continue
201
+ ohlcv_file = os.path.join(OHLCV_DIR, f"{sym}.json")
202
+ with open(ohlcv_file, "w") as f:
203
+ json.dump(data["ohlcv"], f, indent=2)
204
+ exported += 1
205
+ print(f" {sym}: {len(data['ohlcv'])} bars -> {ohlcv_file}")
206
+ print(f"Exported OHLCV for {exported} symbols to {OHLCV_DIR}")
207
+
208
+
209
+ def main():
210
+ parser = argparse.ArgumentParser(description="Update securities.txt with real ATHEX prices")
211
+ parser.add_argument("--history", type=int, default=0,
212
+ help="Number of historical trading days to display (default: 0)")
213
+ parser.add_argument("--reset-start", action="store_true",
214
+ help="Reset start_price to oldest fetched closing price")
215
+ parser.add_argument("--dry-run", action="store_true",
216
+ help="Fetch and display prices without writing to file")
217
+ parser.add_argument("--json", action="store_true",
218
+ help="Output results as JSON")
219
+ parser.add_argument("--ohlcv", type=int, default=0,
220
+ help="Export N days of OHLCV data for RL agent (default: 0, disabled)")
221
+ args = parser.parse_args()
222
+
223
+ days = max(args.history, args.ohlcv, 10)
224
+ print(f"Fetching {days}-day history from Yahoo Finance...")
225
+ results = fetch_prices(days=days)
226
+
227
+ if args.json:
228
+ print(json.dumps(results, indent=2))
229
+ return
230
+
231
+ if args.history > 0:
232
+ print_history(results)
233
+
234
+ if not args.dry_run:
235
+ update_securities_file(results, reset_start=args.reset_start)
236
+ if args.ohlcv > 0:
237
+ print(f"\n=== Exporting OHLCV for RL Agent ({days} bars) ===")
238
+ export_ohlcv(results)
239
+ else:
240
+ print("(dry run — no files updated)")
241
+
242
+ # Summary
243
+ print("\n--- Current Prices ---")
244
+ for sym, data in results.items():
245
+ status = f"{data['current']:.2f} EUR" if data else "N/A"
246
+ print(f" {sym:6s} {status}")
247
+
248
+
249
+ if __name__ == "__main__":
250
+ main()
shared/config.py CHANGED
@@ -23,8 +23,8 @@ class Config:
23
  FRONTEND_URL: str = os.getenv("FRONTEND_URL", "http://frontend:5000")
24
 
25
  # Market data settings
26
- SECURITIES_FILE: str = os.getenv("SECURITIES_FILE", "/app/data/securities.txt")
27
- ORDER_ID_FILE: str = os.getenv("ORDER_ID_FILE", "/app/data/order_id.txt")
28
 
29
  # Control topic for start/end of day signals
30
  CONTROL_TOPIC: str = os.getenv("CONTROL_TOPIC", "control")
@@ -37,7 +37,7 @@ class Config:
37
  ORDERS_PER_MIN: int = int(os.getenv("ORDERS_PER_MIN", "8"))
38
 
39
  # Clearing House
40
- CH_DB_PATH: str = os.getenv("CH_DB_PATH", "/app/data/clearing_house.db")
41
  CH_MEMBERS: list = [f"USR{i:02d}" for i in range(1, 11)]
42
  CH_STARTING_CAPITAL: float = 100_000.0
43
  CH_DAILY_OBLIGATION: int = 20
 
23
  FRONTEND_URL: str = os.getenv("FRONTEND_URL", "http://frontend:5000")
24
 
25
  # Market data settings
26
+ SECURITIES_FILE: str = os.getenv("SECURITIES_FILE", "/app/shared/data/securities.txt")
27
+ ORDER_ID_FILE: str = os.getenv("ORDER_ID_FILE", "/app/shared/data/order_id.txt")
28
 
29
  # Control topic for start/end of day signals
30
  CONTROL_TOPIC: str = os.getenv("CONTROL_TOPIC", "control")
 
37
  ORDERS_PER_MIN: int = int(os.getenv("ORDERS_PER_MIN", "8"))
38
 
39
  # Clearing House
40
+ CH_DB_PATH: str = os.getenv("CH_DB_PATH", "/app/shared/data/clearing_house.db")
41
  CH_MEMBERS: list = [f"USR{i:02d}" for i in range(1, 11)]
42
  CH_STARTING_CAPITAL: float = 100_000.0
43
  CH_DAILY_OBLIGATION: int = 20
{shared_data → shared/data}/market_schedule.txt RENAMED
File without changes
shared/data/ohlcv/AAAK.json ADDED
@@ -0,0 +1,482 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "date": "2025-12-05",
4
+ "open": 6.35,
5
+ "high": 6.35,
6
+ "low": 6.35,
7
+ "close": 6.35,
8
+ "volume": 0
9
+ },
10
+ {
11
+ "date": "2025-12-08",
12
+ "open": 6.0,
13
+ "high": 6.4,
14
+ "low": 6.0,
15
+ "close": 6.3,
16
+ "volume": 348
17
+ },
18
+ {
19
+ "date": "2025-12-09",
20
+ "open": 6.35,
21
+ "high": 6.35,
22
+ "low": 6.35,
23
+ "close": 6.35,
24
+ "volume": 1
25
+ },
26
+ {
27
+ "date": "2025-12-10",
28
+ "open": 6.35,
29
+ "high": 6.35,
30
+ "low": 6.35,
31
+ "close": 6.35,
32
+ "volume": 0
33
+ },
34
+ {
35
+ "date": "2025-12-11",
36
+ "open": 5.7,
37
+ "high": 6.2,
38
+ "low": 5.7,
39
+ "close": 6.2,
40
+ "volume": 236
41
+ },
42
+ {
43
+ "date": "2025-12-12",
44
+ "open": 6.2,
45
+ "high": 6.2,
46
+ "low": 6.2,
47
+ "close": 6.2,
48
+ "volume": 0
49
+ },
50
+ {
51
+ "date": "2025-12-15",
52
+ "open": 6.2,
53
+ "high": 6.2,
54
+ "low": 6.2,
55
+ "close": 6.2,
56
+ "volume": 0
57
+ },
58
+ {
59
+ "date": "2025-12-16",
60
+ "open": 6.45,
61
+ "high": 6.45,
62
+ "low": 6.45,
63
+ "close": 6.45,
64
+ "volume": 1
65
+ },
66
+ {
67
+ "date": "2025-12-17",
68
+ "open": 6.35,
69
+ "high": 6.4,
70
+ "low": 6.35,
71
+ "close": 6.35,
72
+ "volume": 54
73
+ },
74
+ {
75
+ "date": "2025-12-18",
76
+ "open": 6.0,
77
+ "high": 6.25,
78
+ "low": 6.0,
79
+ "close": 6.25,
80
+ "volume": 143
81
+ },
82
+ {
83
+ "date": "2025-12-19",
84
+ "open": 6.25,
85
+ "high": 6.25,
86
+ "low": 6.25,
87
+ "close": 6.25,
88
+ "volume": 0
89
+ },
90
+ {
91
+ "date": "2025-12-22",
92
+ "open": 6.25,
93
+ "high": 6.25,
94
+ "low": 6.25,
95
+ "close": 6.25,
96
+ "volume": 0
97
+ },
98
+ {
99
+ "date": "2025-12-23",
100
+ "open": 6.25,
101
+ "high": 6.25,
102
+ "low": 6.25,
103
+ "close": 6.25,
104
+ "volume": 0
105
+ },
106
+ {
107
+ "date": "2025-12-29",
108
+ "open": 6.25,
109
+ "high": 6.25,
110
+ "low": 6.25,
111
+ "close": 6.25,
112
+ "volume": 0
113
+ },
114
+ {
115
+ "date": "2025-12-30",
116
+ "open": 6.55,
117
+ "high": 6.55,
118
+ "low": 6.55,
119
+ "close": 6.55,
120
+ "volume": 1
121
+ },
122
+ {
123
+ "date": "2025-12-31",
124
+ "open": 6.25,
125
+ "high": 6.25,
126
+ "low": 6.2,
127
+ "close": 6.2,
128
+ "volume": 230
129
+ },
130
+ {
131
+ "date": "2026-01-02",
132
+ "open": 7.5,
133
+ "high": 7.5,
134
+ "low": 7.5,
135
+ "close": 7.5,
136
+ "volume": 2
137
+ },
138
+ {
139
+ "date": "2026-01-05",
140
+ "open": 7.45,
141
+ "high": 7.45,
142
+ "low": 7.45,
143
+ "close": 7.45,
144
+ "volume": 2
145
+ },
146
+ {
147
+ "date": "2026-01-07",
148
+ "open": 7.45,
149
+ "high": 7.45,
150
+ "low": 7.45,
151
+ "close": 7.45,
152
+ "volume": 0
153
+ },
154
+ {
155
+ "date": "2026-01-08",
156
+ "open": 6.0,
157
+ "high": 7.2,
158
+ "low": 6.0,
159
+ "close": 7.2,
160
+ "volume": 301
161
+ },
162
+ {
163
+ "date": "2026-01-09",
164
+ "open": 7.2,
165
+ "high": 7.2,
166
+ "low": 7.2,
167
+ "close": 7.2,
168
+ "volume": 0
169
+ },
170
+ {
171
+ "date": "2026-01-12",
172
+ "open": 7.2,
173
+ "high": 7.2,
174
+ "low": 7.2,
175
+ "close": 7.2,
176
+ "volume": 0
177
+ },
178
+ {
179
+ "date": "2026-01-13",
180
+ "open": 6.5,
181
+ "high": 7.2,
182
+ "low": 6.5,
183
+ "close": 7.2,
184
+ "volume": 180
185
+ },
186
+ {
187
+ "date": "2026-01-14",
188
+ "open": 6.5,
189
+ "high": 6.55,
190
+ "low": 6.5,
191
+ "close": 6.5,
192
+ "volume": 305
193
+ },
194
+ {
195
+ "date": "2026-01-15",
196
+ "open": 6.95,
197
+ "high": 6.95,
198
+ "low": 6.95,
199
+ "close": 6.5,
200
+ "volume": 2
201
+ },
202
+ {
203
+ "date": "2026-01-16",
204
+ "open": 6.45,
205
+ "high": 6.45,
206
+ "low": 6.0,
207
+ "close": 6.0,
208
+ "volume": 133
209
+ },
210
+ {
211
+ "date": "2026-01-19",
212
+ "open": 6.0,
213
+ "high": 6.5,
214
+ "low": 5.7,
215
+ "close": 6.0,
216
+ "volume": 2348
217
+ },
218
+ {
219
+ "date": "2026-01-20",
220
+ "open": 5.5,
221
+ "high": 6.5,
222
+ "low": 5.5,
223
+ "close": 6.0,
224
+ "volume": 41
225
+ },
226
+ {
227
+ "date": "2026-01-21",
228
+ "open": 6.0,
229
+ "high": 6.0,
230
+ "low": 6.0,
231
+ "close": 6.0,
232
+ "volume": 100
233
+ },
234
+ {
235
+ "date": "2026-01-22",
236
+ "open": 5.4,
237
+ "high": 6.5,
238
+ "low": 5.4,
239
+ "close": 6.45,
240
+ "volume": 527
241
+ },
242
+ {
243
+ "date": "2026-01-23",
244
+ "open": 6.75,
245
+ "high": 6.75,
246
+ "low": 6.75,
247
+ "close": 6.45,
248
+ "volume": 2
249
+ },
250
+ {
251
+ "date": "2026-01-26",
252
+ "open": 6.0,
253
+ "high": 6.7,
254
+ "low": 6.0,
255
+ "close": 6.05,
256
+ "volume": 356
257
+ },
258
+ {
259
+ "date": "2026-01-27",
260
+ "open": 6.1,
261
+ "high": 6.1,
262
+ "low": 6.1,
263
+ "close": 6.1,
264
+ "volume": 155
265
+ },
266
+ {
267
+ "date": "2026-01-28",
268
+ "open": 5.8,
269
+ "high": 6.1,
270
+ "low": 5.8,
271
+ "close": 6.1,
272
+ "volume": 240
273
+ },
274
+ {
275
+ "date": "2026-01-29",
276
+ "open": 6.5,
277
+ "high": 6.5,
278
+ "low": 6.5,
279
+ "close": 6.1,
280
+ "volume": 3
281
+ },
282
+ {
283
+ "date": "2026-01-30",
284
+ "open": 6.1,
285
+ "high": 6.1,
286
+ "low": 6.1,
287
+ "close": 6.1,
288
+ "volume": 0
289
+ },
290
+ {
291
+ "date": "2026-02-02",
292
+ "open": 6.5,
293
+ "high": 6.5,
294
+ "low": 6.5,
295
+ "close": 6.1,
296
+ "volume": 21
297
+ },
298
+ {
299
+ "date": "2026-02-03",
300
+ "open": 6.1,
301
+ "high": 6.1,
302
+ "low": 6.1,
303
+ "close": 6.1,
304
+ "volume": 0
305
+ },
306
+ {
307
+ "date": "2026-02-04",
308
+ "open": 5.55,
309
+ "high": 6.0,
310
+ "low": 5.55,
311
+ "close": 6.0,
312
+ "volume": 626
313
+ },
314
+ {
315
+ "date": "2026-02-05",
316
+ "open": 6.0,
317
+ "high": 6.0,
318
+ "low": 6.0,
319
+ "close": 6.0,
320
+ "volume": 0
321
+ },
322
+ {
323
+ "date": "2026-02-06",
324
+ "open": 6.0,
325
+ "high": 6.0,
326
+ "low": 6.0,
327
+ "close": 6.0,
328
+ "volume": 0
329
+ },
330
+ {
331
+ "date": "2026-02-09",
332
+ "open": 6.0,
333
+ "high": 6.0,
334
+ "low": 6.0,
335
+ "close": 6.0,
336
+ "volume": 0
337
+ },
338
+ {
339
+ "date": "2026-02-10",
340
+ "open": 6.0,
341
+ "high": 6.0,
342
+ "low": 6.0,
343
+ "close": 6.0,
344
+ "volume": 0
345
+ },
346
+ {
347
+ "date": "2026-02-11",
348
+ "open": 6.0,
349
+ "high": 6.0,
350
+ "low": 6.0,
351
+ "close": 6.0,
352
+ "volume": 50
353
+ },
354
+ {
355
+ "date": "2026-02-12",
356
+ "open": 6.0,
357
+ "high": 6.0,
358
+ "low": 6.0,
359
+ "close": 6.0,
360
+ "volume": 30
361
+ },
362
+ {
363
+ "date": "2026-02-13",
364
+ "open": 6.0,
365
+ "high": 6.0,
366
+ "low": 6.0,
367
+ "close": 6.0,
368
+ "volume": 0
369
+ },
370
+ {
371
+ "date": "2026-02-16",
372
+ "open": 6.0,
373
+ "high": 6.0,
374
+ "low": 6.0,
375
+ "close": 6.0,
376
+ "volume": 0
377
+ },
378
+ {
379
+ "date": "2026-02-17",
380
+ "open": 6.0,
381
+ "high": 6.0,
382
+ "low": 6.0,
383
+ "close": 6.0,
384
+ "volume": 100
385
+ },
386
+ {
387
+ "date": "2026-02-18",
388
+ "open": 5.7,
389
+ "high": 6.0,
390
+ "low": 5.7,
391
+ "close": 6.0,
392
+ "volume": 41
393
+ },
394
+ {
395
+ "date": "2026-02-19",
396
+ "open": 5.7,
397
+ "high": 5.9,
398
+ "low": 5.4,
399
+ "close": 5.4,
400
+ "volume": 301
401
+ },
402
+ {
403
+ "date": "2026-02-20",
404
+ "open": 5.65,
405
+ "high": 5.65,
406
+ "low": 5.3,
407
+ "close": 5.3,
408
+ "volume": 410
409
+ },
410
+ {
411
+ "date": "2026-02-24",
412
+ "open": 5.15,
413
+ "high": 5.8,
414
+ "low": 5.1,
415
+ "close": 5.8,
416
+ "volume": 398
417
+ },
418
+ {
419
+ "date": "2026-02-25",
420
+ "open": 5.35,
421
+ "high": 6.35,
422
+ "low": 5.35,
423
+ "close": 5.9,
424
+ "volume": 150
425
+ },
426
+ {
427
+ "date": "2026-02-26",
428
+ "open": 5.65,
429
+ "high": 5.65,
430
+ "low": 5.65,
431
+ "close": 5.9,
432
+ "volume": 19
433
+ },
434
+ {
435
+ "date": "2026-02-27",
436
+ "open": 5.7,
437
+ "high": 5.8,
438
+ "low": 5.7,
439
+ "close": 5.9,
440
+ "volume": 79
441
+ },
442
+ {
443
+ "date": "2026-03-02",
444
+ "open": 5.9,
445
+ "high": 5.9,
446
+ "low": 5.9,
447
+ "close": 5.9,
448
+ "volume": 0
449
+ },
450
+ {
451
+ "date": "2026-03-03",
452
+ "open": 5.4,
453
+ "high": 5.4,
454
+ "low": 5.35,
455
+ "close": 5.35,
456
+ "volume": 217
457
+ },
458
+ {
459
+ "date": "2026-03-04",
460
+ "open": 5.4,
461
+ "high": 5.4,
462
+ "low": 5.4,
463
+ "close": 5.35,
464
+ "volume": 83
465
+ },
466
+ {
467
+ "date": "2026-03-05",
468
+ "open": 5.35,
469
+ "high": 5.35,
470
+ "low": 5.35,
471
+ "close": 5.35,
472
+ "volume": 0
473
+ },
474
+ {
475
+ "date": "2026-03-06",
476
+ "open": 5.05,
477
+ "high": 5.05,
478
+ "low": 4.9,
479
+ "close": 4.96,
480
+ "volume": 710
481
+ }
482
+ ]
shared/data/ohlcv/AAPL.json ADDED
@@ -0,0 +1,482 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "date": "2025-12-09",
4
+ "open": 238.7161,
5
+ "high": 240.3209,
6
+ "low": 237.6519,
7
+ "close": 237.875,
8
+ "volume": 32193300
9
+ },
10
+ {
11
+ "date": "2025-12-10",
12
+ "open": 238.6334,
13
+ "high": 240.3517,
14
+ "low": 237.5079,
15
+ "close": 239.5183,
16
+ "volume": 33038300
17
+ },
18
+ {
19
+ "date": "2025-12-11",
20
+ "open": 238.2987,
21
+ "high": 238.717,
22
+ "low": 233.782,
23
+ "close": 237.3851,
24
+ "volume": 33248000
25
+ },
26
+ {
27
+ "date": "2025-12-12",
28
+ "open": 236.5023,
29
+ "high": 237.6256,
30
+ "low": 235.5832,
31
+ "close": 236.8257,
32
+ "volume": 39532900
33
+ },
34
+ {
35
+ "date": "2025-12-15",
36
+ "open": 238.4535,
37
+ "high": 238.4535,
38
+ "low": 232.2315,
39
+ "close": 233.3124,
40
+ "volume": 50409100
41
+ },
42
+ {
43
+ "date": "2025-12-16",
44
+ "open": 231.8792,
45
+ "high": 234.157,
46
+ "low": 231.0038,
47
+ "close": 233.4006,
48
+ "volume": 37648600
49
+ },
50
+ {
51
+ "date": "2025-12-17",
52
+ "open": 233.8422,
53
+ "high": 234.8201,
54
+ "low": 230.9767,
55
+ "close": 231.1467,
56
+ "volume": 50138700
57
+ },
58
+ {
59
+ "date": "2025-12-18",
60
+ "open": 232.7939,
61
+ "high": 232.8109,
62
+ "low": 227.1274,
63
+ "close": 231.5858,
64
+ "volume": 51630700
65
+ },
66
+ {
67
+ "date": "2025-12-19",
68
+ "open": 231.8807,
69
+ "high": 233.9682,
70
+ "low": 229.9636,
71
+ "close": 233.1758,
72
+ "volume": 144632000
73
+ },
74
+ {
75
+ "date": "2025-12-22",
76
+ "open": 232.8346,
77
+ "high": 233.705,
78
+ "low": 230.8293,
79
+ "close": 231.2218,
80
+ "volume": 36571800
81
+ },
82
+ {
83
+ "date": "2025-12-23",
84
+ "open": 229.9744,
85
+ "high": 231.384,
86
+ "low": 228.8876,
87
+ "close": 231.2651,
88
+ "volume": 29642000
89
+ },
90
+ {
91
+ "date": "2025-12-24",
92
+ "open": 230.6686,
93
+ "high": 233.2857,
94
+ "low": 230.55,
95
+ "close": 231.9136,
96
+ "volume": 17910600
97
+ },
98
+ {
99
+ "date": "2025-12-26",
100
+ "open": 232.41,
101
+ "high": 233.4358,
102
+ "low": 231.308,
103
+ "close": 231.7658,
104
+ "volume": 21521800
105
+ },
106
+ {
107
+ "date": "2025-12-29",
108
+ "open": 231.4118,
109
+ "high": 232.829,
110
+ "low": 231.1233,
111
+ "close": 232.3198,
112
+ "volume": 23715200
113
+ },
114
+ {
115
+ "date": "2025-12-30",
116
+ "open": 231.5109,
117
+ "high": 232.5887,
118
+ "low": 231.0612,
119
+ "close": 231.74,
120
+ "volume": 22139600
121
+ },
122
+ {
123
+ "date": "2025-12-31",
124
+ "open": 232.2278,
125
+ "high": 232.755,
126
+ "low": 231.1136,
127
+ "close": 231.2072,
128
+ "volume": 27293600
129
+ },
130
+ {
131
+ "date": "2026-01-02",
132
+ "open": 231.4848,
133
+ "high": 236.2291,
134
+ "low": 228.7131,
135
+ "close": 230.422,
136
+ "volume": 37838100
137
+ },
138
+ {
139
+ "date": "2026-01-05",
140
+ "open": 231.0078,
141
+ "high": 231.7504,
142
+ "low": 227.1668,
143
+ "close": 228.1228,
144
+ "volume": 45647200
145
+ },
146
+ {
147
+ "date": "2026-01-06",
148
+ "open": 227.7008,
149
+ "high": 228.1698,
150
+ "low": 223.5391,
151
+ "close": 223.7437,
152
+ "volume": 52352100
153
+ },
154
+ {
155
+ "date": "2026-01-07",
156
+ "open": 224.9729,
157
+ "high": 225.3832,
158
+ "low": 222.0752,
159
+ "close": 222.5197,
160
+ "volume": 48309800
161
+ },
162
+ {
163
+ "date": "2026-01-08",
164
+ "open": 219.9062,
165
+ "high": 221.8484,
166
+ "low": 218.7768,
167
+ "close": 221.6345,
168
+ "volume": 50419300
169
+ },
170
+ {
171
+ "date": "2026-01-09",
172
+ "open": 222.0285,
173
+ "high": 222.9969,
174
+ "low": 219.5775,
175
+ "close": 222.277,
176
+ "volume": 39997000
177
+ },
178
+ {
179
+ "date": "2026-01-12",
180
+ "open": 222.7495,
181
+ "high": 224.5888,
182
+ "low": 220.7211,
183
+ "close": 223.6864,
184
+ "volume": 45263800
185
+ },
186
+ {
187
+ "date": "2026-01-13",
188
+ "open": 221.5468,
189
+ "high": 224.1928,
190
+ "low": 221.2642,
191
+ "close": 223.542,
192
+ "volume": 45730800
193
+ },
194
+ {
195
+ "date": "2026-01-14",
196
+ "open": 222.6728,
197
+ "high": 224.6722,
198
+ "low": 220.2872,
199
+ "close": 223.0761,
200
+ "volume": 40019400
201
+ },
202
+ {
203
+ "date": "2026-01-15",
204
+ "open": 223.5953,
205
+ "high": 223.9299,
206
+ "low": 220.5071,
207
+ "close": 221.5022,
208
+ "volume": 39388600
209
+ },
210
+ {
211
+ "date": "2026-01-16",
212
+ "open": 221.9474,
213
+ "high": 222.808,
214
+ "low": 219.3914,
215
+ "close": 219.9078,
216
+ "volume": 72142800
217
+ },
218
+ {
219
+ "date": "2026-01-20",
220
+ "open": 216.935,
221
+ "high": 218.7033,
222
+ "low": 208.9437,
223
+ "close": 211.7591,
224
+ "volume": 80267500
225
+ },
226
+ {
227
+ "date": "2026-01-21",
228
+ "open": 211.8608,
229
+ "high": 214.2971,
230
+ "low": 208.8622,
231
+ "close": 210.9663,
232
+ "volume": 54641700
233
+ },
234
+ {
235
+ "date": "2026-01-22",
236
+ "open": 213.2851,
237
+ "high": 214.8257,
238
+ "low": 212.3864,
239
+ "close": 212.5576,
240
+ "volume": 39708300
241
+ },
242
+ {
243
+ "date": "2026-01-23",
244
+ "open": 210.2059,
245
+ "high": 211.9822,
246
+ "low": 207.962,
247
+ "close": 210.8178,
248
+ "volume": 41689000
249
+ },
250
+ {
251
+ "date": "2026-01-26",
252
+ "open": 211.8698,
253
+ "high": 216.1497,
254
+ "low": 210.4544,
255
+ "close": 215.1808,
256
+ "volume": 55969200
257
+ },
258
+ {
259
+ "date": "2026-01-27",
260
+ "open": 218.0171,
261
+ "high": 220.3557,
262
+ "low": 217.2096,
263
+ "close": 217.26,
264
+ "volume": 49648300
265
+ },
266
+ {
267
+ "date": "2026-01-28",
268
+ "open": 214.1927,
269
+ "high": 215.1986,
270
+ "low": 211.5823,
271
+ "close": 213.1868,
272
+ "volume": 41288000
273
+ },
274
+ {
275
+ "date": "2026-01-29",
276
+ "open": 215.1977,
277
+ "high": 216.5739,
278
+ "low": 212.2033,
279
+ "close": 215.4312,
280
+ "volume": 67253000
281
+ },
282
+ {
283
+ "date": "2026-01-30",
284
+ "open": 213.0513,
285
+ "high": 218.6704,
286
+ "low": 210.5548,
287
+ "close": 216.6499,
288
+ "volume": 92443400
289
+ },
290
+ {
291
+ "date": "2026-02-02",
292
+ "open": 219.2446,
293
+ "high": 228.0639,
294
+ "low": 218.5532,
295
+ "close": 227.6592,
296
+ "volume": 73913400
297
+ },
298
+ {
299
+ "date": "2026-02-03",
300
+ "open": 227.9472,
301
+ "high": 230.2165,
302
+ "low": 226.6008,
303
+ "close": 228.1843,
304
+ "volume": 64394700
305
+ },
306
+ {
307
+ "date": "2026-02-04",
308
+ "open": 230.2236,
309
+ "high": 235.8547,
310
+ "low": 230.2236,
311
+ "close": 233.7747,
312
+ "volume": 90545700
313
+ },
314
+ {
315
+ "date": "2026-02-05",
316
+ "open": 235.4504,
317
+ "high": 236.6101,
318
+ "low": 231.3023,
319
+ "close": 233.571,
320
+ "volume": 52977400
321
+ },
322
+ {
323
+ "date": "2026-02-06",
324
+ "open": 235.0688,
325
+ "high": 238.2837,
326
+ "low": 234.9076,
327
+ "close": 235.917,
328
+ "volume": 50453400
329
+ },
330
+ {
331
+ "date": "2026-02-09",
332
+ "open": 235.0035,
333
+ "high": 235.2487,
334
+ "low": 229.7522,
335
+ "close": 232.2214,
336
+ "volume": 44623400
337
+ },
338
+ {
339
+ "date": "2026-02-10",
340
+ "open": 230.9214,
341
+ "high": 231.3246,
342
+ "low": 229.2832,
343
+ "close": 229.9049,
344
+ "volume": 34376900
345
+ },
346
+ {
347
+ "date": "2026-02-11",
348
+ "open": 231.0419,
349
+ "high": 235.651,
350
+ "low": 230.8317,
351
+ "close": 231.7148,
352
+ "volume": 51931300
353
+ },
354
+ {
355
+ "date": "2026-02-12",
356
+ "open": 232.055,
357
+ "high": 232.1645,
358
+ "low": 219.0794,
359
+ "close": 220.3845,
360
+ "volume": 81077200
361
+ },
362
+ {
363
+ "date": "2026-02-13",
364
+ "open": 220.7618,
365
+ "high": 220.9471,
366
+ "low": 215.2345,
367
+ "close": 215.5126,
368
+ "volume": 56290700
369
+ },
370
+ {
371
+ "date": "2026-02-17",
372
+ "open": 217.7658,
373
+ "high": 224.7195,
374
+ "low": 215.6476,
375
+ "close": 222.6857,
376
+ "volume": 58469100
377
+ },
378
+ {
379
+ "date": "2026-02-18",
380
+ "open": 222.4125,
381
+ "high": 225.1294,
382
+ "low": 221.4422,
383
+ "close": 223.0453,
384
+ "volume": 34203300
385
+ },
386
+ {
387
+ "date": "2026-02-19",
388
+ "open": 222.7531,
389
+ "high": 224.3478,
390
+ "low": 220.59,
391
+ "close": 221.0396,
392
+ "volume": 30845300
393
+ },
394
+ {
395
+ "date": "2026-02-20",
396
+ "open": 220.0416,
397
+ "high": 224.9528,
398
+ "low": 219.3534,
399
+ "close": 224.8083,
400
+ "volume": 42070500
401
+ },
402
+ {
403
+ "date": "2026-02-23",
404
+ "open": 222.6411,
405
+ "high": 227.6603,
406
+ "low": 222.5482,
407
+ "close": 224.9141,
408
+ "volume": 37308200
409
+ },
410
+ {
411
+ "date": "2026-02-24",
412
+ "open": 227.1185,
413
+ "high": 233.0792,
414
+ "low": 226.9913,
415
+ "close": 230.7475,
416
+ "volume": 47014600
417
+ },
418
+ {
419
+ "date": "2026-02-25",
420
+ "open": 230.8064,
421
+ "high": 233.49,
422
+ "low": 230.1865,
423
+ "close": 232.8871,
424
+ "volume": 33714300
425
+ },
426
+ {
427
+ "date": "2026-02-26",
428
+ "open": 232.7094,
429
+ "high": 233.6912,
430
+ "low": 229.197,
431
+ "close": 231.0167,
432
+ "volume": 32345100
433
+ },
434
+ {
435
+ "date": "2026-02-27",
436
+ "open": 231.1355,
437
+ "high": 231.1355,
438
+ "low": 222.7309,
439
+ "close": 223.8239,
440
+ "volume": 72366500
441
+ },
442
+ {
443
+ "date": "2026-03-02",
444
+ "open": 223.1482,
445
+ "high": 226.6518,
446
+ "low": 221.2689,
447
+ "close": 225.1126,
448
+ "volume": 41827900
449
+ },
450
+ {
451
+ "date": "2026-03-03",
452
+ "open": 225.2491,
453
+ "high": 227.0272,
454
+ "low": 222.3851,
455
+ "close": 225.4799,
456
+ "volume": 38568900
457
+ },
458
+ {
459
+ "date": "2026-03-04",
460
+ "open": 227.906,
461
+ "high": 229.1977,
462
+ "low": 225.1245,
463
+ "close": 226.0717,
464
+ "volume": 39803100
465
+ },
466
+ {
467
+ "date": "2026-03-05",
468
+ "open": 224.1308,
469
+ "high": 224.7925,
470
+ "low": 221.0884,
471
+ "close": 223.701,
472
+ "volume": 49658600
473
+ },
474
+ {
475
+ "date": "2026-03-06",
476
+ "open": 222.802,
477
+ "high": 222.9226,
478
+ "low": 219.1321,
479
+ "close": 221.7941,
480
+ "volume": 41094000
481
+ }
482
+ ]
shared/data/ohlcv/AEG.json ADDED
@@ -0,0 +1,482 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "date": "2025-12-05",
4
+ "open": 14.0,
5
+ "high": 14.38,
6
+ "low": 13.9,
7
+ "close": 14.36,
8
+ "volume": 95012
9
+ },
10
+ {
11
+ "date": "2025-12-08",
12
+ "open": 14.36,
13
+ "high": 14.42,
14
+ "low": 14.16,
15
+ "close": 14.16,
16
+ "volume": 97602
17
+ },
18
+ {
19
+ "date": "2025-12-09",
20
+ "open": 14.24,
21
+ "high": 14.32,
22
+ "low": 14.1,
23
+ "close": 14.1,
24
+ "volume": 67575
25
+ },
26
+ {
27
+ "date": "2025-12-10",
28
+ "open": 14.18,
29
+ "high": 14.26,
30
+ "low": 14.0,
31
+ "close": 14.1,
32
+ "volume": 64879
33
+ },
34
+ {
35
+ "date": "2025-12-11",
36
+ "open": 14.06,
37
+ "high": 14.22,
38
+ "low": 13.96,
39
+ "close": 14.0,
40
+ "volume": 122648
41
+ },
42
+ {
43
+ "date": "2025-12-12",
44
+ "open": 14.08,
45
+ "high": 14.18,
46
+ "low": 13.96,
47
+ "close": 14.04,
48
+ "volume": 60309
49
+ },
50
+ {
51
+ "date": "2025-12-15",
52
+ "open": 14.0,
53
+ "high": 14.16,
54
+ "low": 13.94,
55
+ "close": 14.1,
56
+ "volume": 51229
57
+ },
58
+ {
59
+ "date": "2025-12-16",
60
+ "open": 14.1,
61
+ "high": 14.16,
62
+ "low": 13.94,
63
+ "close": 14.14,
64
+ "volume": 105753
65
+ },
66
+ {
67
+ "date": "2025-12-17",
68
+ "open": 14.2,
69
+ "high": 14.38,
70
+ "low": 13.98,
71
+ "close": 14.02,
72
+ "volume": 100601
73
+ },
74
+ {
75
+ "date": "2025-12-18",
76
+ "open": 14.12,
77
+ "high": 14.18,
78
+ "low": 13.98,
79
+ "close": 14.18,
80
+ "volume": 90149
81
+ },
82
+ {
83
+ "date": "2025-12-19",
84
+ "open": 14.2,
85
+ "high": 14.36,
86
+ "low": 14.0,
87
+ "close": 14.34,
88
+ "volume": 163575
89
+ },
90
+ {
91
+ "date": "2025-12-22",
92
+ "open": 14.3,
93
+ "high": 14.52,
94
+ "low": 14.16,
95
+ "close": 14.44,
96
+ "volume": 114738
97
+ },
98
+ {
99
+ "date": "2025-12-23",
100
+ "open": 14.44,
101
+ "high": 14.5,
102
+ "low": 14.26,
103
+ "close": 14.5,
104
+ "volume": 176956
105
+ },
106
+ {
107
+ "date": "2025-12-29",
108
+ "open": 14.38,
109
+ "high": 14.5,
110
+ "low": 14.02,
111
+ "close": 14.22,
112
+ "volume": 145895
113
+ },
114
+ {
115
+ "date": "2025-12-30",
116
+ "open": 14.22,
117
+ "high": 14.44,
118
+ "low": 14.2,
119
+ "close": 14.44,
120
+ "volume": 65110
121
+ },
122
+ {
123
+ "date": "2025-12-31",
124
+ "open": 14.4,
125
+ "high": 14.5,
126
+ "low": 14.26,
127
+ "close": 14.26,
128
+ "volume": 40140
129
+ },
130
+ {
131
+ "date": "2026-01-02",
132
+ "open": 14.26,
133
+ "high": 14.46,
134
+ "low": 14.26,
135
+ "close": 14.46,
136
+ "volume": 71802
137
+ },
138
+ {
139
+ "date": "2026-01-05",
140
+ "open": 14.4,
141
+ "high": 14.66,
142
+ "low": 14.36,
143
+ "close": 14.66,
144
+ "volume": 93343
145
+ },
146
+ {
147
+ "date": "2026-01-07",
148
+ "open": 14.68,
149
+ "high": 14.68,
150
+ "low": 14.44,
151
+ "close": 14.58,
152
+ "volume": 81203
153
+ },
154
+ {
155
+ "date": "2026-01-08",
156
+ "open": 14.6,
157
+ "high": 14.6,
158
+ "low": 14.4,
159
+ "close": 14.44,
160
+ "volume": 87778
161
+ },
162
+ {
163
+ "date": "2026-01-09",
164
+ "open": 14.44,
165
+ "high": 14.66,
166
+ "low": 14.3,
167
+ "close": 14.62,
168
+ "volume": 74063
169
+ },
170
+ {
171
+ "date": "2026-01-12",
172
+ "open": 14.62,
173
+ "high": 14.62,
174
+ "low": 14.3,
175
+ "close": 14.3,
176
+ "volume": 115036
177
+ },
178
+ {
179
+ "date": "2026-01-13",
180
+ "open": 14.3,
181
+ "high": 14.38,
182
+ "low": 14.1,
183
+ "close": 14.18,
184
+ "volume": 76836
185
+ },
186
+ {
187
+ "date": "2026-01-14",
188
+ "open": 14.18,
189
+ "high": 14.3,
190
+ "low": 14.16,
191
+ "close": 14.26,
192
+ "volume": 62086
193
+ },
194
+ {
195
+ "date": "2026-01-15",
196
+ "open": 14.12,
197
+ "high": 14.22,
198
+ "low": 14.08,
199
+ "close": 14.14,
200
+ "volume": 106531
201
+ },
202
+ {
203
+ "date": "2026-01-16",
204
+ "open": 14.18,
205
+ "high": 14.3,
206
+ "low": 14.02,
207
+ "close": 14.08,
208
+ "volume": 113849
209
+ },
210
+ {
211
+ "date": "2026-01-19",
212
+ "open": 14.0,
213
+ "high": 14.0,
214
+ "low": 13.84,
215
+ "close": 13.98,
216
+ "volume": 131554
217
+ },
218
+ {
219
+ "date": "2026-01-20",
220
+ "open": 13.94,
221
+ "high": 13.98,
222
+ "low": 13.72,
223
+ "close": 13.86,
224
+ "volume": 113770
225
+ },
226
+ {
227
+ "date": "2026-01-21",
228
+ "open": 13.86,
229
+ "high": 13.94,
230
+ "low": 13.68,
231
+ "close": 13.94,
232
+ "volume": 100908
233
+ },
234
+ {
235
+ "date": "2026-01-22",
236
+ "open": 14.02,
237
+ "high": 14.2,
238
+ "low": 13.98,
239
+ "close": 14.16,
240
+ "volume": 92813
241
+ },
242
+ {
243
+ "date": "2026-01-23",
244
+ "open": 14.16,
245
+ "high": 14.62,
246
+ "low": 14.0,
247
+ "close": 14.62,
248
+ "volume": 297585
249
+ },
250
+ {
251
+ "date": "2026-01-26",
252
+ "open": 14.68,
253
+ "high": 14.9,
254
+ "low": 14.62,
255
+ "close": 14.78,
256
+ "volume": 256511
257
+ },
258
+ {
259
+ "date": "2026-01-27",
260
+ "open": 14.88,
261
+ "high": 15.0,
262
+ "low": 14.72,
263
+ "close": 14.88,
264
+ "volume": 317249
265
+ },
266
+ {
267
+ "date": "2026-01-28",
268
+ "open": 14.88,
269
+ "high": 15.1,
270
+ "low": 14.78,
271
+ "close": 15.1,
272
+ "volume": 253227
273
+ },
274
+ {
275
+ "date": "2026-01-29",
276
+ "open": 15.1,
277
+ "high": 15.36,
278
+ "low": 14.96,
279
+ "close": 14.96,
280
+ "volume": 218607
281
+ },
282
+ {
283
+ "date": "2026-01-30",
284
+ "open": 14.94,
285
+ "high": 14.96,
286
+ "low": 14.7,
287
+ "close": 14.96,
288
+ "volume": 118636
289
+ },
290
+ {
291
+ "date": "2026-02-02",
292
+ "open": 14.82,
293
+ "high": 15.16,
294
+ "low": 14.72,
295
+ "close": 15.16,
296
+ "volume": 101000
297
+ },
298
+ {
299
+ "date": "2026-02-03",
300
+ "open": 15.18,
301
+ "high": 15.32,
302
+ "low": 15.14,
303
+ "close": 15.24,
304
+ "volume": 67828
305
+ },
306
+ {
307
+ "date": "2026-02-04",
308
+ "open": 15.22,
309
+ "high": 15.3,
310
+ "low": 15.04,
311
+ "close": 15.26,
312
+ "volume": 54735
313
+ },
314
+ {
315
+ "date": "2026-02-05",
316
+ "open": 15.08,
317
+ "high": 15.2,
318
+ "low": 14.92,
319
+ "close": 15.02,
320
+ "volume": 122987
321
+ },
322
+ {
323
+ "date": "2026-02-06",
324
+ "open": 14.94,
325
+ "high": 15.0,
326
+ "low": 14.4,
327
+ "close": 15.0,
328
+ "volume": 163383
329
+ },
330
+ {
331
+ "date": "2026-02-09",
332
+ "open": 15.2,
333
+ "high": 15.2,
334
+ "low": 14.78,
335
+ "close": 14.88,
336
+ "volume": 92847
337
+ },
338
+ {
339
+ "date": "2026-02-10",
340
+ "open": 15.08,
341
+ "high": 15.08,
342
+ "low": 14.68,
343
+ "close": 14.76,
344
+ "volume": 56081
345
+ },
346
+ {
347
+ "date": "2026-02-11",
348
+ "open": 14.76,
349
+ "high": 14.76,
350
+ "low": 14.5,
351
+ "close": 14.54,
352
+ "volume": 72153
353
+ },
354
+ {
355
+ "date": "2026-02-12",
356
+ "open": 14.54,
357
+ "high": 14.78,
358
+ "low": 14.52,
359
+ "close": 14.74,
360
+ "volume": 42495
361
+ },
362
+ {
363
+ "date": "2026-02-13",
364
+ "open": 14.56,
365
+ "high": 14.88,
366
+ "low": 14.44,
367
+ "close": 14.66,
368
+ "volume": 196333
369
+ },
370
+ {
371
+ "date": "2026-02-16",
372
+ "open": 14.7,
373
+ "high": 14.78,
374
+ "low": 14.44,
375
+ "close": 14.68,
376
+ "volume": 55392
377
+ },
378
+ {
379
+ "date": "2026-02-17",
380
+ "open": 14.78,
381
+ "high": 14.78,
382
+ "low": 14.2,
383
+ "close": 14.2,
384
+ "volume": 102032
385
+ },
386
+ {
387
+ "date": "2026-02-18",
388
+ "open": 14.2,
389
+ "high": 14.4,
390
+ "low": 14.2,
391
+ "close": 14.36,
392
+ "volume": 128665
393
+ },
394
+ {
395
+ "date": "2026-02-19",
396
+ "open": 14.32,
397
+ "high": 14.34,
398
+ "low": 13.84,
399
+ "close": 13.84,
400
+ "volume": 127115
401
+ },
402
+ {
403
+ "date": "2026-02-20",
404
+ "open": 13.84,
405
+ "high": 14.0,
406
+ "low": 13.68,
407
+ "close": 13.98,
408
+ "volume": 82585
409
+ },
410
+ {
411
+ "date": "2026-02-24",
412
+ "open": 13.82,
413
+ "high": 13.98,
414
+ "low": 13.7,
415
+ "close": 13.88,
416
+ "volume": 63246
417
+ },
418
+ {
419
+ "date": "2026-02-25",
420
+ "open": 13.88,
421
+ "high": 14.08,
422
+ "low": 13.88,
423
+ "close": 14.06,
424
+ "volume": 54907
425
+ },
426
+ {
427
+ "date": "2026-02-26",
428
+ "open": 14.08,
429
+ "high": 14.1,
430
+ "low": 13.8,
431
+ "close": 13.86,
432
+ "volume": 118714
433
+ },
434
+ {
435
+ "date": "2026-02-27",
436
+ "open": 13.86,
437
+ "high": 13.94,
438
+ "low": 13.6,
439
+ "close": 13.72,
440
+ "volume": 105974
441
+ },
442
+ {
443
+ "date": "2026-03-02",
444
+ "open": 12.98,
445
+ "high": 13.32,
446
+ "low": 12.66,
447
+ "close": 12.76,
448
+ "volume": 447658
449
+ },
450
+ {
451
+ "date": "2026-03-03",
452
+ "open": 12.5,
453
+ "high": 12.5,
454
+ "low": 11.82,
455
+ "close": 11.82,
456
+ "volume": 388256
457
+ },
458
+ {
459
+ "date": "2026-03-04",
460
+ "open": 11.62,
461
+ "high": 12.46,
462
+ "low": 11.62,
463
+ "close": 12.28,
464
+ "volume": 229093
465
+ },
466
+ {
467
+ "date": "2026-03-05",
468
+ "open": 12.2,
469
+ "high": 12.66,
470
+ "low": 11.96,
471
+ "close": 12.02,
472
+ "volume": 131248
473
+ },
474
+ {
475
+ "date": "2026-03-06",
476
+ "open": 12.28,
477
+ "high": 12.28,
478
+ "low": 11.58,
479
+ "close": 11.58,
480
+ "volume": 168756
481
+ }
482
+ ]
shared/data/ohlcv/ALPHA.json ADDED
@@ -0,0 +1,482 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "date": "2025-12-05",
4
+ "open": 3.475,
5
+ "high": 3.496,
6
+ "low": 3.44,
7
+ "close": 3.45,
8
+ "volume": 4209028
9
+ },
10
+ {
11
+ "date": "2025-12-08",
12
+ "open": 3.467,
13
+ "high": 3.478,
14
+ "low": 3.447,
15
+ "close": 3.455,
16
+ "volume": 4471818
17
+ },
18
+ {
19
+ "date": "2025-12-09",
20
+ "open": 3.455,
21
+ "high": 3.466,
22
+ "low": 3.344,
23
+ "close": 3.347,
24
+ "volume": 9464710
25
+ },
26
+ {
27
+ "date": "2025-12-10",
28
+ "open": 3.368,
29
+ "high": 3.369,
30
+ "low": 3.334,
31
+ "close": 3.365,
32
+ "volume": 5692898
33
+ },
34
+ {
35
+ "date": "2025-12-11",
36
+ "open": 3.365,
37
+ "high": 3.411,
38
+ "low": 3.354,
39
+ "close": 3.411,
40
+ "volume": 5400192
41
+ },
42
+ {
43
+ "date": "2025-12-12",
44
+ "open": 3.445,
45
+ "high": 3.445,
46
+ "low": 3.401,
47
+ "close": 3.439,
48
+ "volume": 5325478
49
+ },
50
+ {
51
+ "date": "2025-12-15",
52
+ "open": 3.41,
53
+ "high": 3.44,
54
+ "low": 3.404,
55
+ "close": 3.44,
56
+ "volume": 8042315
57
+ },
58
+ {
59
+ "date": "2025-12-16",
60
+ "open": 3.412,
61
+ "high": 3.435,
62
+ "low": 3.392,
63
+ "close": 3.415,
64
+ "volume": 11201520
65
+ },
66
+ {
67
+ "date": "2025-12-17",
68
+ "open": 3.391,
69
+ "high": 3.442,
70
+ "low": 3.388,
71
+ "close": 3.418,
72
+ "volume": 11426212
73
+ },
74
+ {
75
+ "date": "2025-12-18",
76
+ "open": 3.428,
77
+ "high": 3.461,
78
+ "low": 3.41,
79
+ "close": 3.45,
80
+ "volume": 8613078
81
+ },
82
+ {
83
+ "date": "2025-12-19",
84
+ "open": 3.487,
85
+ "high": 3.51,
86
+ "low": 3.461,
87
+ "close": 3.494,
88
+ "volume": 11698393
89
+ },
90
+ {
91
+ "date": "2025-12-22",
92
+ "open": 3.484,
93
+ "high": 3.62,
94
+ "low": 3.471,
95
+ "close": 3.62,
96
+ "volume": 5513733
97
+ },
98
+ {
99
+ "date": "2025-12-23",
100
+ "open": 3.591,
101
+ "high": 3.655,
102
+ "low": 3.591,
103
+ "close": 3.645,
104
+ "volume": 5446024
105
+ },
106
+ {
107
+ "date": "2025-12-29",
108
+ "open": 3.614,
109
+ "high": 3.628,
110
+ "low": 3.575,
111
+ "close": 3.6,
112
+ "volume": 3233557
113
+ },
114
+ {
115
+ "date": "2025-12-30",
116
+ "open": 3.62,
117
+ "high": 3.62,
118
+ "low": 3.584,
119
+ "close": 3.586,
120
+ "volume": 2625004
121
+ },
122
+ {
123
+ "date": "2025-12-31",
124
+ "open": 3.58,
125
+ "high": 3.597,
126
+ "low": 3.58,
127
+ "close": 3.58,
128
+ "volume": 2290230
129
+ },
130
+ {
131
+ "date": "2026-01-02",
132
+ "open": 3.58,
133
+ "high": 3.709,
134
+ "low": 3.58,
135
+ "close": 3.701,
136
+ "volume": 4342866
137
+ },
138
+ {
139
+ "date": "2026-01-05",
140
+ "open": 3.701,
141
+ "high": 3.748,
142
+ "low": 3.687,
143
+ "close": 3.748,
144
+ "volume": 3639557
145
+ },
146
+ {
147
+ "date": "2026-01-07",
148
+ "open": 3.799,
149
+ "high": 3.808,
150
+ "low": 3.71,
151
+ "close": 3.79,
152
+ "volume": 117596223
153
+ },
154
+ {
155
+ "date": "2026-01-08",
156
+ "open": 3.779,
157
+ "high": 3.878,
158
+ "low": 3.778,
159
+ "close": 3.84,
160
+ "volume": 86260059
161
+ },
162
+ {
163
+ "date": "2026-01-09",
164
+ "open": 3.831,
165
+ "high": 3.95,
166
+ "low": 3.73,
167
+ "close": 3.86,
168
+ "volume": 83213750
169
+ },
170
+ {
171
+ "date": "2026-01-12",
172
+ "open": 3.879,
173
+ "high": 3.997,
174
+ "low": 3.835,
175
+ "close": 3.997,
176
+ "volume": 15050948
177
+ },
178
+ {
179
+ "date": "2026-01-13",
180
+ "open": 3.997,
181
+ "high": 4.01,
182
+ "low": 3.961,
183
+ "close": 3.99,
184
+ "volume": 9002905
185
+ },
186
+ {
187
+ "date": "2026-01-14",
188
+ "open": 3.962,
189
+ "high": 3.962,
190
+ "low": 3.876,
191
+ "close": 3.908,
192
+ "volume": 8364576
193
+ },
194
+ {
195
+ "date": "2026-01-15",
196
+ "open": 3.91,
197
+ "high": 3.971,
198
+ "low": 3.882,
199
+ "close": 3.942,
200
+ "volume": 7534149
201
+ },
202
+ {
203
+ "date": "2026-01-16",
204
+ "open": 3.93,
205
+ "high": 3.987,
206
+ "low": 3.908,
207
+ "close": 3.979,
208
+ "volume": 6943393
209
+ },
210
+ {
211
+ "date": "2026-01-19",
212
+ "open": 3.911,
213
+ "high": 4.0,
214
+ "low": 3.891,
215
+ "close": 3.97,
216
+ "volume": 6385390
217
+ },
218
+ {
219
+ "date": "2026-01-20",
220
+ "open": 3.95,
221
+ "high": 3.95,
222
+ "low": 3.808,
223
+ "close": 3.838,
224
+ "volume": 8949484
225
+ },
226
+ {
227
+ "date": "2026-01-21",
228
+ "open": 3.845,
229
+ "high": 3.86,
230
+ "low": 3.782,
231
+ "close": 3.846,
232
+ "volume": 6163724
233
+ },
234
+ {
235
+ "date": "2026-01-22",
236
+ "open": 3.908,
237
+ "high": 3.968,
238
+ "low": 3.903,
239
+ "close": 3.95,
240
+ "volume": 5934299
241
+ },
242
+ {
243
+ "date": "2026-01-23",
244
+ "open": 3.974,
245
+ "high": 3.975,
246
+ "low": 3.88,
247
+ "close": 3.887,
248
+ "volume": 3817987
249
+ },
250
+ {
251
+ "date": "2026-01-26",
252
+ "open": 3.87,
253
+ "high": 3.995,
254
+ "low": 3.841,
255
+ "close": 3.995,
256
+ "volume": 9618542
257
+ },
258
+ {
259
+ "date": "2026-01-27",
260
+ "open": 4.0,
261
+ "high": 4.143,
262
+ "low": 3.99,
263
+ "close": 4.143,
264
+ "volume": 20306796
265
+ },
266
+ {
267
+ "date": "2026-01-28",
268
+ "open": 4.172,
269
+ "high": 4.266,
270
+ "low": 4.15,
271
+ "close": 4.198,
272
+ "volume": 38130930
273
+ },
274
+ {
275
+ "date": "2026-01-29",
276
+ "open": 4.232,
277
+ "high": 4.28,
278
+ "low": 4.02,
279
+ "close": 4.02,
280
+ "volume": 23858371
281
+ },
282
+ {
283
+ "date": "2026-01-30",
284
+ "open": 4.06,
285
+ "high": 4.096,
286
+ "low": 4.002,
287
+ "close": 4.05,
288
+ "volume": 9648350
289
+ },
290
+ {
291
+ "date": "2026-02-02",
292
+ "open": 4.058,
293
+ "high": 4.3,
294
+ "low": 4.043,
295
+ "close": 4.3,
296
+ "volume": 10182126
297
+ },
298
+ {
299
+ "date": "2026-02-03",
300
+ "open": 4.34,
301
+ "high": 4.489,
302
+ "low": 4.338,
303
+ "close": 4.365,
304
+ "volume": 12554043
305
+ },
306
+ {
307
+ "date": "2026-02-04",
308
+ "open": 4.4,
309
+ "high": 4.477,
310
+ "low": 4.33,
311
+ "close": 4.46,
312
+ "volume": 12526411
313
+ },
314
+ {
315
+ "date": "2026-02-05",
316
+ "open": 4.372,
317
+ "high": 4.409,
318
+ "low": 4.29,
319
+ "close": 4.33,
320
+ "volume": 15337438
321
+ },
322
+ {
323
+ "date": "2026-02-06",
324
+ "open": 4.33,
325
+ "high": 4.43,
326
+ "low": 4.18,
327
+ "close": 4.43,
328
+ "volume": 12161106
329
+ },
330
+ {
331
+ "date": "2026-02-09",
332
+ "open": 4.467,
333
+ "high": 4.467,
334
+ "low": 4.143,
335
+ "close": 4.186,
336
+ "volume": 12313944
337
+ },
338
+ {
339
+ "date": "2026-02-10",
340
+ "open": 4.24,
341
+ "high": 4.27,
342
+ "low": 4.128,
343
+ "close": 4.177,
344
+ "volume": 7804575
345
+ },
346
+ {
347
+ "date": "2026-02-11",
348
+ "open": 4.125,
349
+ "high": 4.18,
350
+ "low": 4.01,
351
+ "close": 4.023,
352
+ "volume": 12386121
353
+ },
354
+ {
355
+ "date": "2026-02-12",
356
+ "open": 4.07,
357
+ "high": 4.125,
358
+ "low": 3.999,
359
+ "close": 3.999,
360
+ "volume": 8108102
361
+ },
362
+ {
363
+ "date": "2026-02-13",
364
+ "open": 3.96,
365
+ "high": 3.984,
366
+ "low": 3.87,
367
+ "close": 3.87,
368
+ "volume": 11190611
369
+ },
370
+ {
371
+ "date": "2026-02-16",
372
+ "open": 3.9,
373
+ "high": 3.926,
374
+ "low": 3.812,
375
+ "close": 3.812,
376
+ "volume": 10622915
377
+ },
378
+ {
379
+ "date": "2026-02-17",
380
+ "open": 3.838,
381
+ "high": 3.847,
382
+ "low": 3.709,
383
+ "close": 3.72,
384
+ "volume": 13119490
385
+ },
386
+ {
387
+ "date": "2026-02-18",
388
+ "open": 3.78,
389
+ "high": 3.892,
390
+ "low": 3.771,
391
+ "close": 3.891,
392
+ "volume": 10919945
393
+ },
394
+ {
395
+ "date": "2026-02-19",
396
+ "open": 3.89,
397
+ "high": 3.89,
398
+ "low": 3.72,
399
+ "close": 3.72,
400
+ "volume": 8779149
401
+ },
402
+ {
403
+ "date": "2026-02-20",
404
+ "open": 3.712,
405
+ "high": 3.742,
406
+ "low": 3.656,
407
+ "close": 3.742,
408
+ "volume": 11583990
409
+ },
410
+ {
411
+ "date": "2026-02-24",
412
+ "open": 3.74,
413
+ "high": 3.748,
414
+ "low": 3.607,
415
+ "close": 3.607,
416
+ "volume": 16944326
417
+ },
418
+ {
419
+ "date": "2026-02-25",
420
+ "open": 3.607,
421
+ "high": 3.758,
422
+ "low": 3.607,
423
+ "close": 3.719,
424
+ "volume": 10100098
425
+ },
426
+ {
427
+ "date": "2026-02-26",
428
+ "open": 3.73,
429
+ "high": 3.775,
430
+ "low": 3.68,
431
+ "close": 3.75,
432
+ "volume": 10122964
433
+ },
434
+ {
435
+ "date": "2026-02-27",
436
+ "open": 3.72,
437
+ "high": 3.829,
438
+ "low": 3.685,
439
+ "close": 3.72,
440
+ "volume": 71520047
441
+ },
442
+ {
443
+ "date": "2026-03-02",
444
+ "open": 3.57,
445
+ "high": 3.692,
446
+ "low": 3.5,
447
+ "close": 3.5,
448
+ "volume": 14139497
449
+ },
450
+ {
451
+ "date": "2026-03-03",
452
+ "open": 3.4,
453
+ "high": 3.418,
454
+ "low": 3.18,
455
+ "close": 3.21,
456
+ "volume": 25658443
457
+ },
458
+ {
459
+ "date": "2026-03-04",
460
+ "open": 3.21,
461
+ "high": 3.519,
462
+ "low": 3.21,
463
+ "close": 3.488,
464
+ "volume": 20109062
465
+ },
466
+ {
467
+ "date": "2026-03-05",
468
+ "open": 3.46,
469
+ "high": 3.68,
470
+ "low": 3.439,
471
+ "close": 3.58,
472
+ "volume": 17305628
473
+ },
474
+ {
475
+ "date": "2026-03-06",
476
+ "open": 3.54,
477
+ "high": 3.6,
478
+ "low": 3.411,
479
+ "close": 3.433,
480
+ "volume": 9957340
481
+ }
482
+ ]
shared/data/ohlcv/AMZN.json ADDED
@@ -0,0 +1,482 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "date": "2025-12-09",
4
+ "open": 194.8556,
5
+ "high": 196.3416,
6
+ "low": 193.3695,
7
+ "close": 195.7833,
8
+ "volume": 25841700
9
+ },
10
+ {
11
+ "date": "2025-12-10",
12
+ "open": 196.7697,
13
+ "high": 199.8742,
14
+ "low": 196.4688,
15
+ "close": 199.3238,
16
+ "volume": 38790700
17
+ },
18
+ {
19
+ "date": "2025-12-11",
20
+ "open": 197.1671,
21
+ "high": 198.3635,
22
+ "low": 195.4408,
23
+ "close": 196.7996,
24
+ "volume": 28249600
25
+ },
26
+ {
27
+ "date": "2025-12-12",
28
+ "open": 195.8102,
29
+ "high": 195.989,
30
+ "low": 191.764,
31
+ "close": 192.6754,
32
+ "volume": 35639100
33
+ },
34
+ {
35
+ "date": "2025-12-15",
36
+ "open": 194.1872,
37
+ "high": 194.1872,
38
+ "low": 188.7091,
39
+ "close": 189.5952,
40
+ "volume": 47286100
41
+ },
42
+ {
43
+ "date": "2025-12-16",
44
+ "open": 189.7468,
45
+ "high": 190.2743,
46
+ "low": 188.1219,
47
+ "close": 189.3385,
48
+ "volume": 39298900
49
+ },
50
+ {
51
+ "date": "2025-12-17",
52
+ "open": 191.2081,
53
+ "high": 191.6592,
54
+ "low": 188.0846,
55
+ "close": 188.3229,
56
+ "volume": 44034400
57
+ },
58
+ {
59
+ "date": "2025-12-18",
60
+ "open": 192.2192,
61
+ "high": 195.2168,
62
+ "low": 191.112,
63
+ "close": 193.1133,
64
+ "volume": 50272400
65
+ },
66
+ {
67
+ "date": "2025-12-19",
68
+ "open": 193.3877,
69
+ "high": 195.4089,
70
+ "low": 192.3814,
71
+ "close": 193.8909,
72
+ "volume": 85544400
73
+ },
74
+ {
75
+ "date": "2025-12-22",
76
+ "open": 195.2581,
77
+ "high": 196.0012,
78
+ "low": 193.6353,
79
+ "close": 195.1043,
80
+ "volume": 32261300
81
+ },
82
+ {
83
+ "date": "2025-12-23",
84
+ "open": 194.6804,
85
+ "high": 197.5616,
86
+ "low": 194.3999,
87
+ "close": 197.2981,
88
+ "volume": 29230200
89
+ },
90
+ {
91
+ "date": "2025-12-24",
92
+ "open": 196.7952,
93
+ "high": 197.4903,
94
+ "low": 196.1169,
95
+ "close": 197.0071,
96
+ "volume": 11420500
97
+ },
98
+ {
99
+ "date": "2025-12-26",
100
+ "open": 196.8883,
101
+ "high": 197.6943,
102
+ "low": 196.1585,
103
+ "close": 197.2955,
104
+ "volume": 15994700
105
+ },
106
+ {
107
+ "date": "2025-12-29",
108
+ "open": 197.0145,
109
+ "high": 197.5751,
110
+ "low": 196.0207,
111
+ "close": 197.1249,
112
+ "volume": 19797900
113
+ },
114
+ {
115
+ "date": "2025-12-30",
116
+ "open": 196.3921,
117
+ "high": 197.7172,
118
+ "low": 195.5342,
119
+ "close": 197.5133,
120
+ "volume": 21910500
121
+ },
122
+ {
123
+ "date": "2025-12-31",
124
+ "open": 198.267,
125
+ "high": 198.3351,
126
+ "low": 195.8919,
127
+ "close": 196.4878,
128
+ "volume": 24383700
129
+ },
130
+ {
131
+ "date": "2026-01-02",
132
+ "open": 196.8773,
133
+ "high": 200.3835,
134
+ "low": 191.2264,
135
+ "close": 192.7583,
136
+ "volume": 51456200
137
+ },
138
+ {
139
+ "date": "2026-01-05",
140
+ "open": 195.5117,
141
+ "high": 199.9202,
142
+ "low": 194.0935,
143
+ "close": 199.1171,
144
+ "volume": 49733300
145
+ },
146
+ {
147
+ "date": "2026-01-06",
148
+ "open": 198.1229,
149
+ "high": 207.5809,
150
+ "low": 198.0973,
151
+ "close": 205.6603,
152
+ "volume": 53764700
153
+ },
154
+ {
155
+ "date": "2026-01-07",
156
+ "open": 205.0007,
157
+ "high": 209.8603,
158
+ "low": 204.9237,
159
+ "close": 206.6691,
160
+ "volume": 42236500
161
+ },
162
+ {
163
+ "date": "2026-01-08",
164
+ "open": 208.1566,
165
+ "high": 211.0255,
166
+ "low": 207.146,
167
+ "close": 210.9228,
168
+ "volume": 39509800
169
+ },
170
+ {
171
+ "date": "2026-01-09",
172
+ "open": 209.7897,
173
+ "high": 212.6118,
174
+ "low": 207.7911,
175
+ "close": 212.2001,
176
+ "volume": 34560000
177
+ },
178
+ {
179
+ "date": "2026-01-12",
180
+ "open": 212.2643,
181
+ "high": 214.1656,
182
+ "low": 211.6019,
183
+ "close": 212.0406,
184
+ "volume": 35867800
185
+ },
186
+ {
187
+ "date": "2026-01-13",
188
+ "open": 211.3058,
189
+ "high": 212.2743,
190
+ "low": 205.9231,
191
+ "close": 207.9373,
192
+ "volume": 38371800
193
+ },
194
+ {
195
+ "date": "2026-01-14",
196
+ "open": 207.1286,
197
+ "high": 207.2402,
198
+ "low": 202.8941,
199
+ "close": 203.2634,
200
+ "volume": 41410600
201
+ },
202
+ {
203
+ "date": "2026-01-15",
204
+ "open": 205.4811,
205
+ "high": 206.6317,
206
+ "low": 203.18,
207
+ "close": 204.5109,
208
+ "volume": 43003600
209
+ },
210
+ {
211
+ "date": "2026-01-16",
212
+ "open": 205.9521,
213
+ "high": 206.3656,
214
+ "low": 203.6436,
215
+ "close": 205.978,
216
+ "volume": 45888300
217
+ },
218
+ {
219
+ "date": "2026-01-20",
220
+ "open": 200.8396,
221
+ "high": 201.9823,
222
+ "low": 197.042,
223
+ "close": 198.4683,
224
+ "volume": 47737900
225
+ },
226
+ {
227
+ "date": "2026-01-21",
228
+ "open": 197.0435,
229
+ "high": 198.0752,
230
+ "low": 193.4538,
231
+ "close": 197.2311,
232
+ "volume": 47276100
233
+ },
234
+ {
235
+ "date": "2026-01-22",
236
+ "open": 200.506,
237
+ "high": 201.9366,
238
+ "low": 197.8074,
239
+ "close": 200.7544,
240
+ "volume": 31913300
241
+ },
242
+ {
243
+ "date": "2026-01-23",
244
+ "open": 199.8875,
245
+ "high": 204.558,
246
+ "low": 199.5557,
247
+ "close": 203.4606,
248
+ "volume": 33778500
249
+ },
250
+ {
251
+ "date": "2026-01-26",
252
+ "open": 202.3703,
253
+ "high": 203.1883,
254
+ "low": 200.3127,
255
+ "close": 201.0548,
256
+ "volume": 32825500
257
+ },
258
+ {
259
+ "date": "2026-01-27",
260
+ "open": 201.819,
261
+ "high": 206.189,
262
+ "low": 200.4634,
263
+ "close": 206.0206,
264
+ "volume": 38029200
265
+ },
266
+ {
267
+ "date": "2026-01-28",
268
+ "open": 205.0069,
269
+ "high": 206.1802,
270
+ "low": 200.9795,
271
+ "close": 202.211,
272
+ "volume": 40882700
273
+ },
274
+ {
275
+ "date": "2026-01-29",
276
+ "open": 202.7256,
277
+ "high": 202.8758,
278
+ "low": 197.6495,
279
+ "close": 201.8155,
280
+ "volume": 47229600
281
+ },
282
+ {
283
+ "date": "2026-01-30",
284
+ "open": 200.4809,
285
+ "high": 203.3474,
286
+ "low": 198.6005,
287
+ "close": 199.9878,
288
+ "volume": 46585000
289
+ },
290
+ {
291
+ "date": "2026-02-02",
292
+ "open": 201.1193,
293
+ "high": 207.297,
294
+ "low": 201.0012,
295
+ "close": 205.0437,
296
+ "volume": 37546100
297
+ },
298
+ {
299
+ "date": "2026-02-03",
300
+ "open": 207.6328,
301
+ "high": 208.7939,
302
+ "low": 199.5556,
303
+ "close": 202.2424,
304
+ "volume": 53831300
305
+ },
306
+ {
307
+ "date": "2026-02-04",
308
+ "open": 202.1472,
309
+ "high": 202.1472,
310
+ "low": 196.1893,
311
+ "close": 197.1794,
312
+ "volume": 51299900
313
+ },
314
+ {
315
+ "date": "2026-02-05",
316
+ "open": 190.5752,
317
+ "high": 191.7615,
318
+ "low": 186.7368,
319
+ "close": 188.6941,
320
+ "volume": 103509200
321
+ },
322
+ {
323
+ "date": "2026-02-06",
324
+ "open": 172.1024,
325
+ "high": 179.5231,
326
+ "low": 170.0732,
327
+ "close": 178.5722,
328
+ "volume": 179210900
329
+ },
330
+ {
331
+ "date": "2026-02-09",
332
+ "open": 176.7071,
333
+ "high": 179.9543,
334
+ "low": 171.9548,
335
+ "close": 176.4957,
336
+ "volume": 91178400
337
+ },
338
+ {
339
+ "date": "2026-02-10",
340
+ "open": 175.4024,
341
+ "high": 178.6366,
342
+ "low": 173.3947,
343
+ "close": 173.8568,
344
+ "volume": 67175000
345
+ },
346
+ {
347
+ "date": "2026-02-11",
348
+ "open": 174.993,
349
+ "high": 175.422,
350
+ "low": 170.3083,
351
+ "close": 171.6456,
352
+ "volume": 65545500
353
+ },
354
+ {
355
+ "date": "2026-02-12",
356
+ "open": 171.7404,
357
+ "high": 171.7404,
358
+ "low": 166.3514,
359
+ "close": 168.0692,
360
+ "volume": 83975400
361
+ },
362
+ {
363
+ "date": "2026-02-13",
364
+ "open": 167.5703,
365
+ "high": 169.4914,
366
+ "low": 166.2222,
367
+ "close": 167.4945,
368
+ "volume": 66321600
369
+ },
370
+ {
371
+ "date": "2026-02-17",
372
+ "open": 167.1999,
373
+ "high": 170.2464,
374
+ "low": 165.4024,
375
+ "close": 169.7485,
376
+ "volume": 69879200
377
+ },
378
+ {
379
+ "date": "2026-02-18",
380
+ "open": 170.4966,
381
+ "high": 174.5381,
382
+ "low": 170.0241,
383
+ "close": 172.7916,
384
+ "volume": 51003300
385
+ },
386
+ {
387
+ "date": "2026-02-19",
388
+ "open": 172.8754,
389
+ "high": 174.4362,
390
+ "low": 172.0356,
391
+ "close": 173.7745,
392
+ "volume": 35669600
393
+ },
394
+ {
395
+ "date": "2026-02-20",
396
+ "open": 173.9805,
397
+ "high": 179.4269,
398
+ "low": 173.1223,
399
+ "close": 178.5263,
400
+ "volume": 65881600
401
+ },
402
+ {
403
+ "date": "2026-02-23",
404
+ "open": 175.8383,
405
+ "high": 176.1171,
406
+ "low": 171.6219,
407
+ "close": 173.447,
408
+ "volume": 53581500
409
+ },
410
+ {
411
+ "date": "2026-02-24",
412
+ "open": 174.218,
413
+ "high": 178.3642,
414
+ "low": 172.3357,
415
+ "close": 176.838,
416
+ "volume": 41137200
417
+ },
418
+ {
419
+ "date": "2026-02-25",
420
+ "open": 178.7311,
421
+ "high": 179.6907,
422
+ "low": 177.4317,
423
+ "close": 178.8839,
424
+ "volume": 41346400
425
+ },
426
+ {
427
+ "date": "2026-02-26",
428
+ "open": 178.3555,
429
+ "high": 178.6264,
430
+ "low": 173.8021,
431
+ "close": 175.9772,
432
+ "volume": 47756800
433
+ },
434
+ {
435
+ "date": "2026-02-27",
436
+ "open": 175.2347,
437
+ "high": 178.2,
438
+ "low": 173.8536,
439
+ "close": 177.9204,
440
+ "volume": 57422800
441
+ },
442
+ {
443
+ "date": "2026-03-02",
444
+ "open": 173.9452,
445
+ "high": 178.3502,
446
+ "low": 173.0183,
447
+ "close": 177.2107,
448
+ "volume": 46001000
449
+ },
450
+ {
451
+ "date": "2026-03-03",
452
+ "open": 173.6302,
453
+ "high": 178.828,
454
+ "low": 173.1001,
455
+ "close": 178.4433,
456
+ "volume": 43184900
457
+ },
458
+ {
459
+ "date": "2026-03-04",
460
+ "open": 181.2483,
461
+ "high": 187.3367,
462
+ "low": 180.9728,
463
+ "close": 186.7167,
464
+ "volume": 54731100
465
+ },
466
+ {
467
+ "date": "2026-03-05",
468
+ "open": 185.6197,
469
+ "high": 189.4785,
470
+ "low": 185.2845,
471
+ "close": 188.1636,
472
+ "volume": 60943400
473
+ },
474
+ {
475
+ "date": "2026-03-06",
476
+ "open": 185.2074,
477
+ "high": 187.2147,
478
+ "low": 183.0882,
479
+ "close": 183.674,
480
+ "volume": 51090300
481
+ }
482
+ ]
shared/data/ohlcv/ATTIK.json ADDED
@@ -0,0 +1,482 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "date": "2025-12-05",
4
+ "open": 1.83,
5
+ "high": 1.83,
6
+ "low": 1.81,
7
+ "close": 1.81,
8
+ "volume": 6442
9
+ },
10
+ {
11
+ "date": "2025-12-08",
12
+ "open": 1.81,
13
+ "high": 1.835,
14
+ "low": 1.8,
15
+ "close": 1.82,
16
+ "volume": 14551
17
+ },
18
+ {
19
+ "date": "2025-12-09",
20
+ "open": 1.81,
21
+ "high": 1.85,
22
+ "low": 1.81,
23
+ "close": 1.81,
24
+ "volume": 10495
25
+ },
26
+ {
27
+ "date": "2025-12-10",
28
+ "open": 1.81,
29
+ "high": 1.82,
30
+ "low": 1.8,
31
+ "close": 1.82,
32
+ "volume": 14232
33
+ },
34
+ {
35
+ "date": "2025-12-11",
36
+ "open": 1.785,
37
+ "high": 1.875,
38
+ "low": 1.785,
39
+ "close": 1.835,
40
+ "volume": 28624
41
+ },
42
+ {
43
+ "date": "2025-12-12",
44
+ "open": 1.87,
45
+ "high": 1.87,
46
+ "low": 1.83,
47
+ "close": 1.86,
48
+ "volume": 13029
49
+ },
50
+ {
51
+ "date": "2025-12-15",
52
+ "open": 1.825,
53
+ "high": 1.855,
54
+ "low": 1.825,
55
+ "close": 1.84,
56
+ "volume": 9583
57
+ },
58
+ {
59
+ "date": "2025-12-16",
60
+ "open": 1.83,
61
+ "high": 1.84,
62
+ "low": 1.8,
63
+ "close": 1.82,
64
+ "volume": 23734
65
+ },
66
+ {
67
+ "date": "2025-12-17",
68
+ "open": 1.84,
69
+ "high": 1.84,
70
+ "low": 1.8,
71
+ "close": 1.815,
72
+ "volume": 20227
73
+ },
74
+ {
75
+ "date": "2025-12-18",
76
+ "open": 1.8,
77
+ "high": 1.82,
78
+ "low": 1.8,
79
+ "close": 1.81,
80
+ "volume": 15571
81
+ },
82
+ {
83
+ "date": "2025-12-19",
84
+ "open": 1.835,
85
+ "high": 1.835,
86
+ "low": 1.81,
87
+ "close": 1.81,
88
+ "volume": 5614
89
+ },
90
+ {
91
+ "date": "2025-12-22",
92
+ "open": 1.81,
93
+ "high": 1.83,
94
+ "low": 1.805,
95
+ "close": 1.815,
96
+ "volume": 9904
97
+ },
98
+ {
99
+ "date": "2025-12-23",
100
+ "open": 1.835,
101
+ "high": 1.85,
102
+ "low": 1.825,
103
+ "close": 1.83,
104
+ "volume": 6704
105
+ },
106
+ {
107
+ "date": "2025-12-29",
108
+ "open": 1.845,
109
+ "high": 1.85,
110
+ "low": 1.775,
111
+ "close": 1.84,
112
+ "volume": 11352
113
+ },
114
+ {
115
+ "date": "2025-12-30",
116
+ "open": 1.83,
117
+ "high": 1.87,
118
+ "low": 1.83,
119
+ "close": 1.855,
120
+ "volume": 10472
121
+ },
122
+ {
123
+ "date": "2025-12-31",
124
+ "open": 1.86,
125
+ "high": 1.885,
126
+ "low": 1.85,
127
+ "close": 1.86,
128
+ "volume": 26939
129
+ },
130
+ {
131
+ "date": "2026-01-02",
132
+ "open": 1.88,
133
+ "high": 1.88,
134
+ "low": 1.84,
135
+ "close": 1.84,
136
+ "volume": 23395
137
+ },
138
+ {
139
+ "date": "2026-01-05",
140
+ "open": 1.83,
141
+ "high": 2.06,
142
+ "low": 1.83,
143
+ "close": 2.01,
144
+ "volume": 164885
145
+ },
146
+ {
147
+ "date": "2026-01-07",
148
+ "open": 2.02,
149
+ "high": 2.04,
150
+ "low": 1.955,
151
+ "close": 1.99,
152
+ "volume": 76673
153
+ },
154
+ {
155
+ "date": "2026-01-08",
156
+ "open": 1.99,
157
+ "high": 2.03,
158
+ "low": 1.97,
159
+ "close": 1.97,
160
+ "volume": 137167
161
+ },
162
+ {
163
+ "date": "2026-01-09",
164
+ "open": 1.945,
165
+ "high": 2.04,
166
+ "low": 1.945,
167
+ "close": 2.02,
168
+ "volume": 92778
169
+ },
170
+ {
171
+ "date": "2026-01-12",
172
+ "open": 1.97,
173
+ "high": 2.01,
174
+ "low": 1.97,
175
+ "close": 1.98,
176
+ "volume": 34980
177
+ },
178
+ {
179
+ "date": "2026-01-13",
180
+ "open": 2.0,
181
+ "high": 2.01,
182
+ "low": 1.97,
183
+ "close": 1.98,
184
+ "volume": 29160
185
+ },
186
+ {
187
+ "date": "2026-01-14",
188
+ "open": 1.96,
189
+ "high": 1.995,
190
+ "low": 1.94,
191
+ "close": 1.94,
192
+ "volume": 15433
193
+ },
194
+ {
195
+ "date": "2026-01-15",
196
+ "open": 1.95,
197
+ "high": 1.95,
198
+ "low": 1.9,
199
+ "close": 1.905,
200
+ "volume": 11876
201
+ },
202
+ {
203
+ "date": "2026-01-16",
204
+ "open": 1.92,
205
+ "high": 1.93,
206
+ "low": 1.89,
207
+ "close": 1.92,
208
+ "volume": 14199
209
+ },
210
+ {
211
+ "date": "2026-01-19",
212
+ "open": 1.91,
213
+ "high": 1.91,
214
+ "low": 1.86,
215
+ "close": 1.875,
216
+ "volume": 15916
217
+ },
218
+ {
219
+ "date": "2026-01-20",
220
+ "open": 1.875,
221
+ "high": 1.89,
222
+ "low": 1.84,
223
+ "close": 1.845,
224
+ "volume": 10038
225
+ },
226
+ {
227
+ "date": "2026-01-21",
228
+ "open": 1.805,
229
+ "high": 1.855,
230
+ "low": 1.805,
231
+ "close": 1.855,
232
+ "volume": 5892
233
+ },
234
+ {
235
+ "date": "2026-01-22",
236
+ "open": 1.87,
237
+ "high": 1.9,
238
+ "low": 1.84,
239
+ "close": 1.875,
240
+ "volume": 19588
241
+ },
242
+ {
243
+ "date": "2026-01-23",
244
+ "open": 1.875,
245
+ "high": 1.89,
246
+ "low": 1.87,
247
+ "close": 1.88,
248
+ "volume": 8437
249
+ },
250
+ {
251
+ "date": "2026-01-26",
252
+ "open": 1.88,
253
+ "high": 1.88,
254
+ "low": 1.86,
255
+ "close": 1.87,
256
+ "volume": 9553
257
+ },
258
+ {
259
+ "date": "2026-01-27",
260
+ "open": 1.9,
261
+ "high": 1.9,
262
+ "low": 1.83,
263
+ "close": 1.86,
264
+ "volume": 37113
265
+ },
266
+ {
267
+ "date": "2026-01-28",
268
+ "open": 1.81,
269
+ "high": 1.89,
270
+ "low": 1.805,
271
+ "close": 1.83,
272
+ "volume": 39020
273
+ },
274
+ {
275
+ "date": "2026-01-29",
276
+ "open": 1.825,
277
+ "high": 1.845,
278
+ "low": 1.815,
279
+ "close": 1.83,
280
+ "volume": 29461
281
+ },
282
+ {
283
+ "date": "2026-01-30",
284
+ "open": 1.845,
285
+ "high": 1.845,
286
+ "low": 1.78,
287
+ "close": 1.82,
288
+ "volume": 40052
289
+ },
290
+ {
291
+ "date": "2026-02-02",
292
+ "open": 1.82,
293
+ "high": 1.83,
294
+ "low": 1.8,
295
+ "close": 1.82,
296
+ "volume": 7521
297
+ },
298
+ {
299
+ "date": "2026-02-03",
300
+ "open": 1.83,
301
+ "high": 1.84,
302
+ "low": 1.8,
303
+ "close": 1.81,
304
+ "volume": 17524
305
+ },
306
+ {
307
+ "date": "2026-02-04",
308
+ "open": 1.78,
309
+ "high": 1.855,
310
+ "low": 1.78,
311
+ "close": 1.845,
312
+ "volume": 27700
313
+ },
314
+ {
315
+ "date": "2026-02-05",
316
+ "open": 1.845,
317
+ "high": 1.865,
318
+ "low": 1.83,
319
+ "close": 1.84,
320
+ "volume": 20061
321
+ },
322
+ {
323
+ "date": "2026-02-06",
324
+ "open": 1.85,
325
+ "high": 1.85,
326
+ "low": 1.8,
327
+ "close": 1.81,
328
+ "volume": 23395
329
+ },
330
+ {
331
+ "date": "2026-02-09",
332
+ "open": 1.81,
333
+ "high": 1.825,
334
+ "low": 1.79,
335
+ "close": 1.8,
336
+ "volume": 18841
337
+ },
338
+ {
339
+ "date": "2026-02-10",
340
+ "open": 1.795,
341
+ "high": 1.81,
342
+ "low": 1.79,
343
+ "close": 1.8,
344
+ "volume": 21163
345
+ },
346
+ {
347
+ "date": "2026-02-11",
348
+ "open": 1.795,
349
+ "high": 1.8,
350
+ "low": 1.77,
351
+ "close": 1.795,
352
+ "volume": 17959
353
+ },
354
+ {
355
+ "date": "2026-02-12",
356
+ "open": 1.8,
357
+ "high": 1.805,
358
+ "low": 1.79,
359
+ "close": 1.8,
360
+ "volume": 9358
361
+ },
362
+ {
363
+ "date": "2026-02-13",
364
+ "open": 1.79,
365
+ "high": 1.79,
366
+ "low": 1.755,
367
+ "close": 1.755,
368
+ "volume": 15504
369
+ },
370
+ {
371
+ "date": "2026-02-16",
372
+ "open": 1.77,
373
+ "high": 1.8,
374
+ "low": 1.76,
375
+ "close": 1.785,
376
+ "volume": 6395
377
+ },
378
+ {
379
+ "date": "2026-02-17",
380
+ "open": 1.8,
381
+ "high": 1.8,
382
+ "low": 1.73,
383
+ "close": 1.74,
384
+ "volume": 17824
385
+ },
386
+ {
387
+ "date": "2026-02-18",
388
+ "open": 1.77,
389
+ "high": 1.77,
390
+ "low": 1.72,
391
+ "close": 1.735,
392
+ "volume": 29670
393
+ },
394
+ {
395
+ "date": "2026-02-19",
396
+ "open": 1.715,
397
+ "high": 1.735,
398
+ "low": 1.715,
399
+ "close": 1.73,
400
+ "volume": 28130
401
+ },
402
+ {
403
+ "date": "2026-02-20",
404
+ "open": 1.74,
405
+ "high": 1.75,
406
+ "low": 1.73,
407
+ "close": 1.73,
408
+ "volume": 16977
409
+ },
410
+ {
411
+ "date": "2026-02-24",
412
+ "open": 1.75,
413
+ "high": 1.75,
414
+ "low": 1.725,
415
+ "close": 1.73,
416
+ "volume": 15144
417
+ },
418
+ {
419
+ "date": "2026-02-25",
420
+ "open": 1.735,
421
+ "high": 1.74,
422
+ "low": 1.71,
423
+ "close": 1.73,
424
+ "volume": 16746
425
+ },
426
+ {
427
+ "date": "2026-02-26",
428
+ "open": 1.71,
429
+ "high": 1.755,
430
+ "low": 1.71,
431
+ "close": 1.725,
432
+ "volume": 19743
433
+ },
434
+ {
435
+ "date": "2026-02-27",
436
+ "open": 1.72,
437
+ "high": 1.76,
438
+ "low": 1.72,
439
+ "close": 1.735,
440
+ "volume": 17756
441
+ },
442
+ {
443
+ "date": "2026-03-02",
444
+ "open": 1.69,
445
+ "high": 1.69,
446
+ "low": 1.64,
447
+ "close": 1.64,
448
+ "volume": 33708
449
+ },
450
+ {
451
+ "date": "2026-03-03",
452
+ "open": 1.62,
453
+ "high": 1.65,
454
+ "low": 1.55,
455
+ "close": 1.57,
456
+ "volume": 45063
457
+ },
458
+ {
459
+ "date": "2026-03-04",
460
+ "open": 1.56,
461
+ "high": 1.65,
462
+ "low": 1.56,
463
+ "close": 1.65,
464
+ "volume": 8473
465
+ },
466
+ {
467
+ "date": "2026-03-05",
468
+ "open": 1.625,
469
+ "high": 1.69,
470
+ "low": 1.625,
471
+ "close": 1.67,
472
+ "volume": 34079
473
+ },
474
+ {
475
+ "date": "2026-03-06",
476
+ "open": 1.74,
477
+ "high": 1.74,
478
+ "low": 1.61,
479
+ "close": 1.615,
480
+ "volume": 10758
481
+ }
482
+ ]
shared/data/ohlcv/ENX.json ADDED
@@ -0,0 +1,482 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "date": "2025-12-10",
4
+ "open": 126.2,
5
+ "high": 126.4,
6
+ "low": 123.9,
7
+ "close": 124.5,
8
+ "volume": 321758
9
+ },
10
+ {
11
+ "date": "2025-12-11",
12
+ "open": 124.2,
13
+ "high": 124.3,
14
+ "low": 122.1,
15
+ "close": 122.5,
16
+ "volume": 271521
17
+ },
18
+ {
19
+ "date": "2025-12-12",
20
+ "open": 123.2,
21
+ "high": 124.3,
22
+ "low": 122.5,
23
+ "close": 122.5,
24
+ "volume": 247771
25
+ },
26
+ {
27
+ "date": "2025-12-15",
28
+ "open": 123.0,
29
+ "high": 124.8,
30
+ "low": 122.6,
31
+ "close": 124.1,
32
+ "volume": 281475
33
+ },
34
+ {
35
+ "date": "2025-12-16",
36
+ "open": 124.2,
37
+ "high": 124.8,
38
+ "low": 123.4,
39
+ "close": 124.4,
40
+ "volume": 264267
41
+ },
42
+ {
43
+ "date": "2025-12-17",
44
+ "open": 124.3,
45
+ "high": 125.0,
46
+ "low": 123.9,
47
+ "close": 124.2,
48
+ "volume": 189155
49
+ },
50
+ {
51
+ "date": "2025-12-18",
52
+ "open": 125.2,
53
+ "high": 126.0,
54
+ "low": 124.5,
55
+ "close": 125.8,
56
+ "volume": 224454
57
+ },
58
+ {
59
+ "date": "2025-12-19",
60
+ "open": 125.8,
61
+ "high": 126.5,
62
+ "low": 125.3,
63
+ "close": 126.4,
64
+ "volume": 368606
65
+ },
66
+ {
67
+ "date": "2025-12-22",
68
+ "open": 125.8,
69
+ "high": 126.6,
70
+ "low": 124.6,
71
+ "close": 126.6,
72
+ "volume": 165802
73
+ },
74
+ {
75
+ "date": "2025-12-23",
76
+ "open": 126.9,
77
+ "high": 127.1,
78
+ "low": 125.9,
79
+ "close": 126.1,
80
+ "volume": 153868
81
+ },
82
+ {
83
+ "date": "2025-12-24",
84
+ "open": 126.1,
85
+ "high": 127.1,
86
+ "low": 126.1,
87
+ "close": 126.6,
88
+ "volume": 56748
89
+ },
90
+ {
91
+ "date": "2025-12-29",
92
+ "open": 126.1,
93
+ "high": 128.1,
94
+ "low": 126.1,
95
+ "close": 127.4,
96
+ "volume": 162573
97
+ },
98
+ {
99
+ "date": "2025-12-30",
100
+ "open": 127.1,
101
+ "high": 128.4,
102
+ "low": 127.1,
103
+ "close": 127.9,
104
+ "volume": 120586
105
+ },
106
+ {
107
+ "date": "2025-12-31",
108
+ "open": 128.2,
109
+ "high": 128.3,
110
+ "low": 127.5,
111
+ "close": 128.0,
112
+ "volume": 57783
113
+ },
114
+ {
115
+ "date": "2026-01-02",
116
+ "open": 128.2,
117
+ "high": 129.1,
118
+ "low": 125.6,
119
+ "close": 125.6,
120
+ "volume": 264093
121
+ },
122
+ {
123
+ "date": "2026-01-05",
124
+ "open": 126.3,
125
+ "high": 127.9,
126
+ "low": 124.3,
127
+ "close": 127.6,
128
+ "volume": 288440
129
+ },
130
+ {
131
+ "date": "2026-01-06",
132
+ "open": 128.1,
133
+ "high": 129.0,
134
+ "low": 126.2,
135
+ "close": 126.2,
136
+ "volume": 260469
137
+ },
138
+ {
139
+ "date": "2026-01-07",
140
+ "open": 127.0,
141
+ "high": 127.0,
142
+ "low": 124.4,
143
+ "close": 125.0,
144
+ "volume": 253618
145
+ },
146
+ {
147
+ "date": "2026-01-08",
148
+ "open": 124.3,
149
+ "high": 125.1,
150
+ "low": 122.9,
151
+ "close": 125.1,
152
+ "volume": 310830
153
+ },
154
+ {
155
+ "date": "2026-01-09",
156
+ "open": 122.7,
157
+ "high": 123.6,
158
+ "low": 119.9,
159
+ "close": 122.2,
160
+ "volume": 416505
161
+ },
162
+ {
163
+ "date": "2026-01-12",
164
+ "open": 121.8,
165
+ "high": 122.4,
166
+ "low": 120.5,
167
+ "close": 122.4,
168
+ "volume": 278529
169
+ },
170
+ {
171
+ "date": "2026-01-13",
172
+ "open": 122.1,
173
+ "high": 122.2,
174
+ "low": 119.6,
175
+ "close": 120.0,
176
+ "volume": 327550
177
+ },
178
+ {
179
+ "date": "2026-01-14",
180
+ "open": 120.6,
181
+ "high": 120.9,
182
+ "low": 119.7,
183
+ "close": 120.9,
184
+ "volume": 371987
185
+ },
186
+ {
187
+ "date": "2026-01-15",
188
+ "open": 121.6,
189
+ "high": 122.4,
190
+ "low": 120.9,
191
+ "close": 121.7,
192
+ "volume": 241842
193
+ },
194
+ {
195
+ "date": "2026-01-16",
196
+ "open": 121.7,
197
+ "high": 122.2,
198
+ "low": 120.6,
199
+ "close": 121.8,
200
+ "volume": 236656
201
+ },
202
+ {
203
+ "date": "2026-01-19",
204
+ "open": 121.1,
205
+ "high": 123.0,
206
+ "low": 121.1,
207
+ "close": 122.4,
208
+ "volume": 265121
209
+ },
210
+ {
211
+ "date": "2026-01-20",
212
+ "open": 121.7,
213
+ "high": 125.2,
214
+ "low": 121.2,
215
+ "close": 125.1,
216
+ "volume": 288433
217
+ },
218
+ {
219
+ "date": "2026-01-21",
220
+ "open": 123.6,
221
+ "high": 124.1,
222
+ "low": 121.3,
223
+ "close": 121.4,
224
+ "volume": 268615
225
+ },
226
+ {
227
+ "date": "2026-01-22",
228
+ "open": 123.3,
229
+ "high": 124.1,
230
+ "low": 121.5,
231
+ "close": 121.6,
232
+ "volume": 185657
233
+ },
234
+ {
235
+ "date": "2026-01-23",
236
+ "open": 121.3,
237
+ "high": 121.6,
238
+ "low": 120.7,
239
+ "close": 121.3,
240
+ "volume": 238725
241
+ },
242
+ {
243
+ "date": "2026-01-26",
244
+ "open": 121.6,
245
+ "high": 122.0,
246
+ "low": 119.4,
247
+ "close": 119.4,
248
+ "volume": 222800
249
+ },
250
+ {
251
+ "date": "2026-01-27",
252
+ "open": 119.5,
253
+ "high": 120.7,
254
+ "low": 117.4,
255
+ "close": 117.7,
256
+ "volume": 291814
257
+ },
258
+ {
259
+ "date": "2026-01-28",
260
+ "open": 117.7,
261
+ "high": 119.1,
262
+ "low": 117.5,
263
+ "close": 119.1,
264
+ "volume": 263403
265
+ },
266
+ {
267
+ "date": "2026-01-29",
268
+ "open": 119.3,
269
+ "high": 119.9,
270
+ "low": 117.5,
271
+ "close": 118.4,
272
+ "volume": 215254
273
+ },
274
+ {
275
+ "date": "2026-01-30",
276
+ "open": 118.4,
277
+ "high": 118.9,
278
+ "low": 117.8,
279
+ "close": 117.9,
280
+ "volume": 259174
281
+ },
282
+ {
283
+ "date": "2026-02-02",
284
+ "open": 119.0,
285
+ "high": 119.8,
286
+ "low": 118.3,
287
+ "close": 118.6,
288
+ "volume": 177807
289
+ },
290
+ {
291
+ "date": "2026-02-03",
292
+ "open": 119.0,
293
+ "high": 119.2,
294
+ "low": 112.8,
295
+ "close": 113.9,
296
+ "volume": 315648
297
+ },
298
+ {
299
+ "date": "2026-02-04",
300
+ "open": 113.2,
301
+ "high": 115.3,
302
+ "low": 110.0,
303
+ "close": 114.0,
304
+ "volume": 491786
305
+ },
306
+ {
307
+ "date": "2026-02-05",
308
+ "open": 114.5,
309
+ "high": 117.1,
310
+ "low": 114.5,
311
+ "close": 116.1,
312
+ "volume": 246610
313
+ },
314
+ {
315
+ "date": "2026-02-06",
316
+ "open": 115.0,
317
+ "high": 117.2,
318
+ "low": 114.4,
319
+ "close": 116.9,
320
+ "volume": 268545
321
+ },
322
+ {
323
+ "date": "2026-02-09",
324
+ "open": 116.7,
325
+ "high": 120.4,
326
+ "low": 116.5,
327
+ "close": 120.4,
328
+ "volume": 347689
329
+ },
330
+ {
331
+ "date": "2026-02-10",
332
+ "open": 119.8,
333
+ "high": 122.7,
334
+ "low": 119.4,
335
+ "close": 122.7,
336
+ "volume": 616751
337
+ },
338
+ {
339
+ "date": "2026-02-11",
340
+ "open": 123.6,
341
+ "high": 124.5,
342
+ "low": 120.5,
343
+ "close": 120.5,
344
+ "volume": 338712
345
+ },
346
+ {
347
+ "date": "2026-02-12",
348
+ "open": 120.6,
349
+ "high": 125.0,
350
+ "low": 120.1,
351
+ "close": 124.0,
352
+ "volume": 347614
353
+ },
354
+ {
355
+ "date": "2026-02-13",
356
+ "open": 123.7,
357
+ "high": 127.9,
358
+ "low": 123.6,
359
+ "close": 124.6,
360
+ "volume": 343614
361
+ },
362
+ {
363
+ "date": "2026-02-16",
364
+ "open": 125.4,
365
+ "high": 126.2,
366
+ "low": 124.2,
367
+ "close": 125.4,
368
+ "volume": 195321
369
+ },
370
+ {
371
+ "date": "2026-02-17",
372
+ "open": 125.9,
373
+ "high": 127.6,
374
+ "low": 125.6,
375
+ "close": 126.5,
376
+ "volume": 213853
377
+ },
378
+ {
379
+ "date": "2026-02-18",
380
+ "open": 125.9,
381
+ "high": 127.2,
382
+ "low": 124.6,
383
+ "close": 126.5,
384
+ "volume": 288773
385
+ },
386
+ {
387
+ "date": "2026-02-19",
388
+ "open": 122.4,
389
+ "high": 124.5,
390
+ "low": 120.0,
391
+ "close": 122.5,
392
+ "volume": 427368
393
+ },
394
+ {
395
+ "date": "2026-02-20",
396
+ "open": 122.7,
397
+ "high": 127.7,
398
+ "low": 122.7,
399
+ "close": 127.4,
400
+ "volume": 332627
401
+ },
402
+ {
403
+ "date": "2026-02-23",
404
+ "open": 127.0,
405
+ "high": 128.5,
406
+ "low": 125.7,
407
+ "close": 128.4,
408
+ "volume": 288846
409
+ },
410
+ {
411
+ "date": "2026-02-24",
412
+ "open": 128.1,
413
+ "high": 131.6,
414
+ "low": 127.8,
415
+ "close": 130.9,
416
+ "volume": 460430
417
+ },
418
+ {
419
+ "date": "2026-02-25",
420
+ "open": 130.6,
421
+ "high": 132.7,
422
+ "low": 130.3,
423
+ "close": 132.4,
424
+ "volume": 366276
425
+ },
426
+ {
427
+ "date": "2026-02-26",
428
+ "open": 133.4,
429
+ "high": 137.7,
430
+ "low": 133.0,
431
+ "close": 137.0,
432
+ "volume": 572103
433
+ },
434
+ {
435
+ "date": "2026-02-27",
436
+ "open": 137.9,
437
+ "high": 141.2,
438
+ "low": 137.6,
439
+ "close": 140.0,
440
+ "volume": 729055
441
+ },
442
+ {
443
+ "date": "2026-03-02",
444
+ "open": 138.0,
445
+ "high": 140.4,
446
+ "low": 137.0,
447
+ "close": 140.1,
448
+ "volume": 341064
449
+ },
450
+ {
451
+ "date": "2026-03-03",
452
+ "open": 141.0,
453
+ "high": 141.7,
454
+ "low": 136.4,
455
+ "close": 137.8,
456
+ "volume": 447779
457
+ },
458
+ {
459
+ "date": "2026-03-04",
460
+ "open": 138.5,
461
+ "high": 140.4,
462
+ "low": 137.2,
463
+ "close": 139.2,
464
+ "volume": 369680
465
+ },
466
+ {
467
+ "date": "2026-03-05",
468
+ "open": 138.9,
469
+ "high": 142.1,
470
+ "low": 138.6,
471
+ "close": 140.9,
472
+ "volume": 350838
473
+ },
474
+ {
475
+ "date": "2026-03-06",
476
+ "open": 140.5,
477
+ "high": 142.4,
478
+ "low": 140.1,
479
+ "close": 142.4,
480
+ "volume": 328046
481
+ }
482
+ ]
shared/data/ohlcv/EUROB.json ADDED
@@ -0,0 +1,386 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "date": "2025-11-28",
4
+ "open": 3.462,
5
+ "high": 3.473,
6
+ "low": 3.397,
7
+ "close": 3.407,
8
+ "volume": 2952120
9
+ },
10
+ {
11
+ "date": "2025-12-01",
12
+ "open": 3.418,
13
+ "high": 3.539,
14
+ "low": 3.404,
15
+ "close": 3.539,
16
+ "volume": 6093764
17
+ },
18
+ {
19
+ "date": "2025-12-02",
20
+ "open": 3.539,
21
+ "high": 3.585,
22
+ "low": 3.524,
23
+ "close": 3.585,
24
+ "volume": 10385060
25
+ },
26
+ {
27
+ "date": "2025-12-03",
28
+ "open": 3.585,
29
+ "high": 3.585,
30
+ "low": 3.47,
31
+ "close": 3.477,
32
+ "volume": 6163715
33
+ },
34
+ {
35
+ "date": "2025-12-04",
36
+ "open": 3.526,
37
+ "high": 3.526,
38
+ "low": 3.417,
39
+ "close": 3.482,
40
+ "volume": 6138944
41
+ },
42
+ {
43
+ "date": "2025-12-05",
44
+ "open": 3.499,
45
+ "high": 3.525,
46
+ "low": 3.476,
47
+ "close": 3.525,
48
+ "volume": 6366298
49
+ },
50
+ {
51
+ "date": "2025-12-08",
52
+ "open": 3.525,
53
+ "high": 3.588,
54
+ "low": 3.48,
55
+ "close": 3.574,
56
+ "volume": 5865030
57
+ },
58
+ {
59
+ "date": "2026-01-08",
60
+ "open": 3.61,
61
+ "high": 3.786,
62
+ "low": 3.603,
63
+ "close": 3.786,
64
+ "volume": 16167190
65
+ },
66
+ {
67
+ "date": "2026-01-09",
68
+ "open": 3.74,
69
+ "high": 3.818,
70
+ "low": 3.704,
71
+ "close": 3.76,
72
+ "volume": 9096036
73
+ },
74
+ {
75
+ "date": "2026-01-12",
76
+ "open": 3.76,
77
+ "high": 3.838,
78
+ "low": 3.73,
79
+ "close": 3.808,
80
+ "volume": 7777821
81
+ },
82
+ {
83
+ "date": "2026-01-13",
84
+ "open": 3.81,
85
+ "high": 3.828,
86
+ "low": 3.757,
87
+ "close": 3.79,
88
+ "volume": 6644326
89
+ },
90
+ {
91
+ "date": "2026-01-14",
92
+ "open": 3.772,
93
+ "high": 3.836,
94
+ "low": 3.761,
95
+ "close": 3.8,
96
+ "volume": 6782371
97
+ },
98
+ {
99
+ "date": "2026-01-15",
100
+ "open": 3.8,
101
+ "high": 3.902,
102
+ "low": 3.792,
103
+ "close": 3.885,
104
+ "volume": 11099117
105
+ },
106
+ {
107
+ "date": "2026-01-16",
108
+ "open": 3.88,
109
+ "high": 3.978,
110
+ "low": 3.864,
111
+ "close": 3.965,
112
+ "volume": 14237648
113
+ },
114
+ {
115
+ "date": "2026-01-19",
116
+ "open": 3.965,
117
+ "high": 4.06,
118
+ "low": 3.883,
119
+ "close": 4.059,
120
+ "volume": 12029123
121
+ },
122
+ {
123
+ "date": "2026-01-20",
124
+ "open": 4.016,
125
+ "high": 4.018,
126
+ "low": 3.89,
127
+ "close": 3.92,
128
+ "volume": 14974818
129
+ },
130
+ {
131
+ "date": "2026-01-21",
132
+ "open": 3.969,
133
+ "high": 3.984,
134
+ "low": 3.882,
135
+ "close": 3.968,
136
+ "volume": 16425041
137
+ },
138
+ {
139
+ "date": "2026-01-22",
140
+ "open": 4.07,
141
+ "high": 4.13,
142
+ "low": 3.985,
143
+ "close": 4.05,
144
+ "volume": 10643800
145
+ },
146
+ {
147
+ "date": "2026-01-23",
148
+ "open": 4.033,
149
+ "high": 4.083,
150
+ "low": 3.997,
151
+ "close": 4.016,
152
+ "volume": 11294734
153
+ },
154
+ {
155
+ "date": "2026-01-26",
156
+ "open": 4.0,
157
+ "high": 4.097,
158
+ "low": 4.0,
159
+ "close": 4.05,
160
+ "volume": 7001495
161
+ },
162
+ {
163
+ "date": "2026-01-27",
164
+ "open": 4.099,
165
+ "high": 4.223,
166
+ "low": 4.075,
167
+ "close": 4.223,
168
+ "volume": 18972241
169
+ },
170
+ {
171
+ "date": "2026-01-28",
172
+ "open": 4.24,
173
+ "high": 4.36,
174
+ "low": 4.232,
175
+ "close": 4.328,
176
+ "volume": 29533961
177
+ },
178
+ {
179
+ "date": "2026-01-29",
180
+ "open": 4.304,
181
+ "high": 4.392,
182
+ "low": 4.174,
183
+ "close": 4.187,
184
+ "volume": 21634696
185
+ },
186
+ {
187
+ "date": "2026-01-30",
188
+ "open": 4.2,
189
+ "high": 4.229,
190
+ "low": 4.135,
191
+ "close": 4.135,
192
+ "volume": 12105721
193
+ },
194
+ {
195
+ "date": "2026-02-02",
196
+ "open": 4.16,
197
+ "high": 4.223,
198
+ "low": 4.081,
199
+ "close": 4.198,
200
+ "volume": 23591901
201
+ },
202
+ {
203
+ "date": "2026-02-03",
204
+ "open": 4.29,
205
+ "high": 4.36,
206
+ "low": 4.16,
207
+ "close": 4.169,
208
+ "volume": 10446524
209
+ },
210
+ {
211
+ "date": "2026-02-04",
212
+ "open": 4.219,
213
+ "high": 4.3,
214
+ "low": 4.181,
215
+ "close": 4.271,
216
+ "volume": 11360202
217
+ },
218
+ {
219
+ "date": "2026-02-05",
220
+ "open": 4.25,
221
+ "high": 4.25,
222
+ "low": 4.085,
223
+ "close": 4.12,
224
+ "volume": 8713668
225
+ },
226
+ {
227
+ "date": "2026-02-06",
228
+ "open": 4.17,
229
+ "high": 4.198,
230
+ "low": 4.05,
231
+ "close": 4.185,
232
+ "volume": 9771150
233
+ },
234
+ {
235
+ "date": "2026-02-09",
236
+ "open": 4.22,
237
+ "high": 4.259,
238
+ "low": 4.068,
239
+ "close": 4.146,
240
+ "volume": 7846347
241
+ },
242
+ {
243
+ "date": "2026-02-10",
244
+ "open": 4.188,
245
+ "high": 4.222,
246
+ "low": 4.126,
247
+ "close": 4.126,
248
+ "volume": 6665920
249
+ },
250
+ {
251
+ "date": "2026-02-11",
252
+ "open": 4.102,
253
+ "high": 4.145,
254
+ "low": 4.033,
255
+ "close": 4.052,
256
+ "volume": 7150843
257
+ },
258
+ {
259
+ "date": "2026-02-12",
260
+ "open": 4.15,
261
+ "high": 4.2,
262
+ "low": 4.1,
263
+ "close": 4.19,
264
+ "volume": 8066095
265
+ },
266
+ {
267
+ "date": "2026-02-13",
268
+ "open": 4.122,
269
+ "high": 4.158,
270
+ "low": 3.959,
271
+ "close": 3.959,
272
+ "volume": 11485981
273
+ },
274
+ {
275
+ "date": "2026-02-16",
276
+ "open": 4.0,
277
+ "high": 4.045,
278
+ "low": 3.898,
279
+ "close": 3.937,
280
+ "volume": 11659104
281
+ },
282
+ {
283
+ "date": "2026-02-17",
284
+ "open": 3.94,
285
+ "high": 3.963,
286
+ "low": 3.88,
287
+ "close": 3.907,
288
+ "volume": 6836244
289
+ },
290
+ {
291
+ "date": "2026-02-18",
292
+ "open": 3.98,
293
+ "high": 4.12,
294
+ "low": 3.935,
295
+ "close": 4.082,
296
+ "volume": 11674218
297
+ },
298
+ {
299
+ "date": "2026-02-19",
300
+ "open": 4.05,
301
+ "high": 4.066,
302
+ "low": 3.961,
303
+ "close": 3.98,
304
+ "volume": 10089661
305
+ },
306
+ {
307
+ "date": "2026-02-20",
308
+ "open": 4.049,
309
+ "high": 4.049,
310
+ "low": 3.909,
311
+ "close": 3.941,
312
+ "volume": 9768402
313
+ },
314
+ {
315
+ "date": "2026-02-24",
316
+ "open": 3.95,
317
+ "high": 3.971,
318
+ "low": 3.806,
319
+ "close": 3.825,
320
+ "volume": 15343467
321
+ },
322
+ {
323
+ "date": "2026-02-25",
324
+ "open": 3.9,
325
+ "high": 3.907,
326
+ "low": 3.85,
327
+ "close": 3.88,
328
+ "volume": 12523108
329
+ },
330
+ {
331
+ "date": "2026-02-26",
332
+ "open": 3.979,
333
+ "high": 3.979,
334
+ "low": 3.809,
335
+ "close": 3.921,
336
+ "volume": 12173491
337
+ },
338
+ {
339
+ "date": "2026-02-27",
340
+ "open": 3.92,
341
+ "high": 3.992,
342
+ "low": 3.89,
343
+ "close": 3.92,
344
+ "volume": 17967862
345
+ },
346
+ {
347
+ "date": "2026-03-02",
348
+ "open": 3.67,
349
+ "high": 3.799,
350
+ "low": 3.656,
351
+ "close": 3.7,
352
+ "volume": 11166462
353
+ },
354
+ {
355
+ "date": "2026-03-03",
356
+ "open": 3.59,
357
+ "high": 3.59,
358
+ "low": 3.379,
359
+ "close": 3.411,
360
+ "volume": 23423751
361
+ },
362
+ {
363
+ "date": "2026-03-04",
364
+ "open": 3.384,
365
+ "high": 3.69,
366
+ "low": 3.384,
367
+ "close": 3.673,
368
+ "volume": 20729832
369
+ },
370
+ {
371
+ "date": "2026-03-05",
372
+ "open": 3.673,
373
+ "high": 3.829,
374
+ "low": 3.626,
375
+ "close": 3.687,
376
+ "volume": 10713428
377
+ },
378
+ {
379
+ "date": "2026-03-06",
380
+ "open": 3.7,
381
+ "high": 3.7,
382
+ "low": 3.465,
383
+ "close": 3.572,
384
+ "volume": 11485509
385
+ }
386
+ ]
shared/data/ohlcv/EXAE.json ADDED
@@ -0,0 +1,482 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "date": "2025-12-05",
4
+ "open": 6.23,
5
+ "high": 6.32,
6
+ "low": 6.23,
7
+ "close": 6.3,
8
+ "volume": 80225
9
+ },
10
+ {
11
+ "date": "2025-12-08",
12
+ "open": 6.31,
13
+ "high": 6.33,
14
+ "low": 6.26,
15
+ "close": 6.3,
16
+ "volume": 322883
17
+ },
18
+ {
19
+ "date": "2025-12-09",
20
+ "open": 6.3,
21
+ "high": 6.42,
22
+ "low": 6.3,
23
+ "close": 6.38,
24
+ "volume": 229486
25
+ },
26
+ {
27
+ "date": "2025-12-10",
28
+ "open": 6.38,
29
+ "high": 6.38,
30
+ "low": 6.24,
31
+ "close": 6.24,
32
+ "volume": 61479
33
+ },
34
+ {
35
+ "date": "2025-12-11",
36
+ "open": 6.24,
37
+ "high": 6.26,
38
+ "low": 6.21,
39
+ "close": 6.22,
40
+ "volume": 14497
41
+ },
42
+ {
43
+ "date": "2025-12-12",
44
+ "open": 6.22,
45
+ "high": 6.24,
46
+ "low": 6.17,
47
+ "close": 6.22,
48
+ "volume": 22992
49
+ },
50
+ {
51
+ "date": "2025-12-15",
52
+ "open": 6.2,
53
+ "high": 6.23,
54
+ "low": 6.15,
55
+ "close": 6.15,
56
+ "volume": 24399
57
+ },
58
+ {
59
+ "date": "2025-12-16",
60
+ "open": 6.14,
61
+ "high": 6.2,
62
+ "low": 6.1,
63
+ "close": 6.11,
64
+ "volume": 56365
65
+ },
66
+ {
67
+ "date": "2025-12-17",
68
+ "open": 6.25,
69
+ "high": 6.25,
70
+ "low": 6.14,
71
+ "close": 6.16,
72
+ "volume": 20005
73
+ },
74
+ {
75
+ "date": "2025-12-18",
76
+ "open": 6.09,
77
+ "high": 6.25,
78
+ "low": 6.09,
79
+ "close": 6.19,
80
+ "volume": 35152
81
+ },
82
+ {
83
+ "date": "2025-12-19",
84
+ "open": 6.24,
85
+ "high": 6.25,
86
+ "low": 6.11,
87
+ "close": 6.14,
88
+ "volume": 98250
89
+ },
90
+ {
91
+ "date": "2025-12-22",
92
+ "open": 6.23,
93
+ "high": 6.28,
94
+ "low": 6.2,
95
+ "close": 6.26,
96
+ "volume": 41435
97
+ },
98
+ {
99
+ "date": "2025-12-23",
100
+ "open": 6.29,
101
+ "high": 6.31,
102
+ "low": 6.21,
103
+ "close": 6.29,
104
+ "volume": 78021
105
+ },
106
+ {
107
+ "date": "2025-12-29",
108
+ "open": 6.25,
109
+ "high": 6.31,
110
+ "low": 6.23,
111
+ "close": 6.31,
112
+ "volume": 18432
113
+ },
114
+ {
115
+ "date": "2025-12-30",
116
+ "open": 6.26,
117
+ "high": 6.32,
118
+ "low": 6.26,
119
+ "close": 6.31,
120
+ "volume": 34540
121
+ },
122
+ {
123
+ "date": "2025-12-31",
124
+ "open": 6.31,
125
+ "high": 6.34,
126
+ "low": 6.3,
127
+ "close": 6.32,
128
+ "volume": 30129
129
+ },
130
+ {
131
+ "date": "2026-01-02",
132
+ "open": 6.34,
133
+ "high": 6.36,
134
+ "low": 6.28,
135
+ "close": 6.31,
136
+ "volume": 45530
137
+ },
138
+ {
139
+ "date": "2026-01-05",
140
+ "open": 6.22,
141
+ "high": 6.31,
142
+ "low": 6.16,
143
+ "close": 6.18,
144
+ "volume": 74831
145
+ },
146
+ {
147
+ "date": "2026-01-07",
148
+ "open": 6.29,
149
+ "high": 6.29,
150
+ "low": 6.19,
151
+ "close": 6.21,
152
+ "volume": 15566
153
+ },
154
+ {
155
+ "date": "2026-01-08",
156
+ "open": 6.21,
157
+ "high": 6.22,
158
+ "low": 6.06,
159
+ "close": 6.12,
160
+ "volume": 37604
161
+ },
162
+ {
163
+ "date": "2026-01-09",
164
+ "open": 6.12,
165
+ "high": 6.13,
166
+ "low": 6.01,
167
+ "close": 6.03,
168
+ "volume": 53479
169
+ },
170
+ {
171
+ "date": "2026-01-12",
172
+ "open": 6.09,
173
+ "high": 6.12,
174
+ "low": 6.06,
175
+ "close": 6.06,
176
+ "volume": 26343
177
+ },
178
+ {
179
+ "date": "2026-01-13",
180
+ "open": 6.12,
181
+ "high": 6.15,
182
+ "low": 6.06,
183
+ "close": 6.08,
184
+ "volume": 25059
185
+ },
186
+ {
187
+ "date": "2026-01-14",
188
+ "open": 6.11,
189
+ "high": 6.12,
190
+ "low": 6.08,
191
+ "close": 6.08,
192
+ "volume": 10765
193
+ },
194
+ {
195
+ "date": "2026-01-15",
196
+ "open": 6.14,
197
+ "high": 6.16,
198
+ "low": 6.02,
199
+ "close": 6.06,
200
+ "volume": 44971
201
+ },
202
+ {
203
+ "date": "2026-01-16",
204
+ "open": 6.1,
205
+ "high": 6.11,
206
+ "low": 6.01,
207
+ "close": 6.05,
208
+ "volume": 46655
209
+ },
210
+ {
211
+ "date": "2026-01-19",
212
+ "open": 6.02,
213
+ "high": 6.12,
214
+ "low": 6.0,
215
+ "close": 6.1,
216
+ "volume": 27607
217
+ },
218
+ {
219
+ "date": "2026-01-20",
220
+ "open": 6.1,
221
+ "high": 6.12,
222
+ "low": 6.02,
223
+ "close": 6.04,
224
+ "volume": 80859
225
+ },
226
+ {
227
+ "date": "2026-01-21",
228
+ "open": 6.04,
229
+ "high": 6.09,
230
+ "low": 6.0,
231
+ "close": 6.05,
232
+ "volume": 21309
233
+ },
234
+ {
235
+ "date": "2026-01-22",
236
+ "open": 6.09,
237
+ "high": 6.1,
238
+ "low": 6.03,
239
+ "close": 6.03,
240
+ "volume": 52981
241
+ },
242
+ {
243
+ "date": "2026-01-23",
244
+ "open": 6.03,
245
+ "high": 6.03,
246
+ "low": 5.92,
247
+ "close": 5.92,
248
+ "volume": 43123
249
+ },
250
+ {
251
+ "date": "2026-01-26",
252
+ "open": 5.92,
253
+ "high": 6.0,
254
+ "low": 5.86,
255
+ "close": 5.95,
256
+ "volume": 40415
257
+ },
258
+ {
259
+ "date": "2026-01-27",
260
+ "open": 5.95,
261
+ "high": 5.96,
262
+ "low": 5.88,
263
+ "close": 5.9,
264
+ "volume": 77286
265
+ },
266
+ {
267
+ "date": "2026-01-28",
268
+ "open": 5.86,
269
+ "high": 5.94,
270
+ "low": 5.86,
271
+ "close": 5.92,
272
+ "volume": 17141
273
+ },
274
+ {
275
+ "date": "2026-01-29",
276
+ "open": 5.92,
277
+ "high": 5.93,
278
+ "low": 5.86,
279
+ "close": 5.93,
280
+ "volume": 34032
281
+ },
282
+ {
283
+ "date": "2026-01-30",
284
+ "open": 5.9,
285
+ "high": 5.93,
286
+ "low": 5.84,
287
+ "close": 5.87,
288
+ "volume": 11194
289
+ },
290
+ {
291
+ "date": "2026-02-02",
292
+ "open": 5.93,
293
+ "high": 5.93,
294
+ "low": 5.84,
295
+ "close": 5.87,
296
+ "volume": 16910
297
+ },
298
+ {
299
+ "date": "2026-02-03",
300
+ "open": 5.87,
301
+ "high": 5.9,
302
+ "low": 5.82,
303
+ "close": 5.88,
304
+ "volume": 15153
305
+ },
306
+ {
307
+ "date": "2026-02-04",
308
+ "open": 5.81,
309
+ "high": 5.91,
310
+ "low": 5.81,
311
+ "close": 5.88,
312
+ "volume": 18466
313
+ },
314
+ {
315
+ "date": "2026-02-05",
316
+ "open": 5.88,
317
+ "high": 5.9,
318
+ "low": 5.84,
319
+ "close": 5.84,
320
+ "volume": 22428
321
+ },
322
+ {
323
+ "date": "2026-02-06",
324
+ "open": 5.85,
325
+ "high": 5.87,
326
+ "low": 5.72,
327
+ "close": 5.79,
328
+ "volume": 31218
329
+ },
330
+ {
331
+ "date": "2026-02-09",
332
+ "open": 5.86,
333
+ "high": 5.95,
334
+ "low": 5.76,
335
+ "close": 5.86,
336
+ "volume": 60555
337
+ },
338
+ {
339
+ "date": "2026-02-10",
340
+ "open": 5.89,
341
+ "high": 5.98,
342
+ "low": 5.88,
343
+ "close": 5.94,
344
+ "volume": 25688
345
+ },
346
+ {
347
+ "date": "2026-02-11",
348
+ "open": 5.94,
349
+ "high": 5.99,
350
+ "low": 5.83,
351
+ "close": 5.96,
352
+ "volume": 50401
353
+ },
354
+ {
355
+ "date": "2026-02-12",
356
+ "open": 5.98,
357
+ "high": 6.12,
358
+ "low": 5.94,
359
+ "close": 6.08,
360
+ "volume": 78058
361
+ },
362
+ {
363
+ "date": "2026-02-13",
364
+ "open": 6.05,
365
+ "high": 6.14,
366
+ "low": 6.02,
367
+ "close": 6.13,
368
+ "volume": 45153
369
+ },
370
+ {
371
+ "date": "2026-02-16",
372
+ "open": 6.14,
373
+ "high": 6.18,
374
+ "low": 6.02,
375
+ "close": 6.14,
376
+ "volume": 31447
377
+ },
378
+ {
379
+ "date": "2026-02-17",
380
+ "open": 6.14,
381
+ "high": 6.14,
382
+ "low": 6.08,
383
+ "close": 6.11,
384
+ "volume": 29849
385
+ },
386
+ {
387
+ "date": "2026-02-18",
388
+ "open": 6.15,
389
+ "high": 6.25,
390
+ "low": 6.15,
391
+ "close": 6.22,
392
+ "volume": 84779
393
+ },
394
+ {
395
+ "date": "2026-02-19",
396
+ "open": 6.25,
397
+ "high": 6.36,
398
+ "low": 6.19,
399
+ "close": 6.35,
400
+ "volume": 306358
401
+ },
402
+ {
403
+ "date": "2026-02-20",
404
+ "open": 6.3,
405
+ "high": 6.4,
406
+ "low": 6.23,
407
+ "close": 6.36,
408
+ "volume": 108497
409
+ },
410
+ {
411
+ "date": "2026-02-24",
412
+ "open": 6.37,
413
+ "high": 6.48,
414
+ "low": 6.35,
415
+ "close": 6.48,
416
+ "volume": 39300
417
+ },
418
+ {
419
+ "date": "2026-02-25",
420
+ "open": 6.45,
421
+ "high": 6.55,
422
+ "low": 6.44,
423
+ "close": 6.54,
424
+ "volume": 78610
425
+ },
426
+ {
427
+ "date": "2026-02-26",
428
+ "open": 6.55,
429
+ "high": 6.75,
430
+ "low": 6.54,
431
+ "close": 6.7,
432
+ "volume": 96856
433
+ },
434
+ {
435
+ "date": "2026-02-27",
436
+ "open": 6.73,
437
+ "high": 6.9,
438
+ "low": 6.7,
439
+ "close": 6.85,
440
+ "volume": 148171
441
+ },
442
+ {
443
+ "date": "2026-03-02",
444
+ "open": 6.69,
445
+ "high": 6.95,
446
+ "low": 6.65,
447
+ "close": 6.95,
448
+ "volume": 231526
449
+ },
450
+ {
451
+ "date": "2026-03-03",
452
+ "open": 6.8,
453
+ "high": 6.95,
454
+ "low": 6.77,
455
+ "close": 6.85,
456
+ "volume": 86648
457
+ },
458
+ {
459
+ "date": "2026-03-04",
460
+ "open": 6.8,
461
+ "high": 6.99,
462
+ "low": 6.8,
463
+ "close": 6.99,
464
+ "volume": 127460
465
+ },
466
+ {
467
+ "date": "2026-03-05",
468
+ "open": 7.0,
469
+ "high": 7.05,
470
+ "low": 6.83,
471
+ "close": 6.99,
472
+ "volume": 137236
473
+ },
474
+ {
475
+ "date": "2026-03-06",
476
+ "open": 6.92,
477
+ "high": 7.02,
478
+ "low": 6.91,
479
+ "close": 7.0,
480
+ "volume": 63822
481
+ }
482
+ ]
shared/data/ohlcv/GOOGL.json ADDED
@@ -0,0 +1,482 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "date": "2025-12-09",
4
+ "open": 268.3258,
5
+ "high": 273.1534,
6
+ "low": 267.9221,
7
+ "close": 272.3717,
8
+ "volume": 30194000
9
+ },
10
+ {
11
+ "date": "2025-12-10",
12
+ "open": 271.6043,
13
+ "high": 276.317,
14
+ "low": 270.6154,
15
+ "close": 275.371,
16
+ "volume": 33428900
17
+ },
18
+ {
19
+ "date": "2025-12-11",
20
+ "open": 273.5436,
21
+ "high": 274.4324,
22
+ "low": 263.7327,
23
+ "close": 267.0058,
24
+ "volume": 42353700
25
+ },
26
+ {
27
+ "date": "2025-12-12",
28
+ "open": 267.2191,
29
+ "high": 268.2157,
30
+ "low": 260.2852,
31
+ "close": 263.4625,
32
+ "volume": 35940200
33
+ },
34
+ {
35
+ "date": "2025-12-15",
36
+ "open": 265.2322,
37
+ "high": 265.3174,
38
+ "low": 259.7456,
39
+ "close": 262.5911,
40
+ "volume": 29151900
41
+ },
42
+ {
43
+ "date": "2025-12-16",
44
+ "open": 259.4301,
45
+ "high": 264.3814,
46
+ "low": 257.4224,
47
+ "close": 260.8083,
48
+ "volume": 30585000
49
+ },
50
+ {
51
+ "date": "2025-12-17",
52
+ "open": 262.1473,
53
+ "high": 262.2154,
54
+ "low": 252.0277,
55
+ "close": 252.5384,
56
+ "volume": 43930400
57
+ },
58
+ {
59
+ "date": "2025-12-18",
60
+ "open": 256.9508,
61
+ "high": 258.8584,
62
+ "low": 254.8303,
63
+ "close": 257.581,
64
+ "volume": 33518000
65
+ },
66
+ {
67
+ "date": "2025-12-19",
68
+ "open": 257.3244,
69
+ "high": 262.032,
70
+ "low": 256.6762,
71
+ "close": 261.9553,
72
+ "volume": 59943200
73
+ },
74
+ {
75
+ "date": "2025-12-22",
76
+ "open": 264.6716,
77
+ "high": 264.8851,
78
+ "low": 260.7598,
79
+ "close": 264.5862,
80
+ "volume": 26429900
81
+ },
82
+ {
83
+ "date": "2025-12-23",
84
+ "open": 263.1576,
85
+ "high": 267.6707,
86
+ "low": 262.8942,
87
+ "close": 267.1692,
88
+ "volume": 25478700
89
+ },
90
+ {
91
+ "date": "2025-12-24",
92
+ "open": 266.8557,
93
+ "high": 267.1185,
94
+ "low": 264.4395,
95
+ "close": 266.2792,
96
+ "volume": 10097400
97
+ },
98
+ {
99
+ "date": "2025-12-26",
100
+ "open": 266.8394,
101
+ "high": 267.357,
102
+ "low": 264.9727,
103
+ "close": 266.0164,
104
+ "volume": 10899000
105
+ },
106
+ {
107
+ "date": "2025-12-29",
108
+ "open": 264.4839,
109
+ "high": 266.7349,
110
+ "low": 263.8468,
111
+ "close": 266.3441,
112
+ "volume": 19621800
113
+ },
114
+ {
115
+ "date": "2025-12-30",
116
+ "open": 265.4406,
117
+ "high": 269.2205,
118
+ "low": 265.4066,
119
+ "close": 266.5873,
120
+ "volume": 17380900
121
+ },
122
+ {
123
+ "date": "2025-12-31",
124
+ "open": 266.3167,
125
+ "high": 267.7894,
126
+ "low": 265.1164,
127
+ "close": 266.4444,
128
+ "volume": 16377700
129
+ },
130
+ {
131
+ "date": "2026-01-02",
132
+ "open": 269.6914,
133
+ "high": 274.4572,
134
+ "low": 264.1001,
135
+ "close": 268.2021,
136
+ "volume": 32009400
137
+ },
138
+ {
139
+ "date": "2026-01-05",
140
+ "open": 271.396,
141
+ "high": 272.5579,
142
+ "low": 268.8073,
143
+ "close": 270.4391,
144
+ "volume": 30195600
145
+ },
146
+ {
147
+ "date": "2026-01-06",
148
+ "open": 270.0822,
149
+ "high": 273.9576,
150
+ "low": 266.1385,
151
+ "close": 268.3238,
152
+ "volume": 31212100
153
+ },
154
+ {
155
+ "date": "2026-01-07",
156
+ "open": 268.9538,
157
+ "high": 279.0409,
158
+ "low": 268.8084,
159
+ "close": 275.4732,
160
+ "volume": 35104400
161
+ },
162
+ {
163
+ "date": "2026-01-08",
164
+ "open": 281.7299,
165
+ "high": 282.8861,
166
+ "low": 275.3326,
167
+ "close": 278.7068,
168
+ "volume": 31896100
169
+ },
170
+ {
171
+ "date": "2026-01-09",
172
+ "open": 280.5745,
173
+ "high": 283.7827,
174
+ "low": 279.468,
175
+ "close": 281.8441,
176
+ "volume": 26214200
177
+ },
178
+ {
179
+ "date": "2026-01-12",
180
+ "open": 280.289,
181
+ "high": 287.378,
182
+ "low": 279.6008,
183
+ "close": 285.5025,
184
+ "volume": 33923900
185
+ },
186
+ {
187
+ "date": "2026-01-13",
188
+ "open": 287.0924,
189
+ "high": 291.8408,
190
+ "low": 285.9524,
191
+ "close": 287.9666,
192
+ "volume": 33517600
193
+ },
194
+ {
195
+ "date": "2026-01-14",
196
+ "open": 287.7897,
197
+ "high": 289.0437,
198
+ "low": 283.8559,
199
+ "close": 288.4597,
200
+ "volume": 28525600
201
+ },
202
+ {
203
+ "date": "2026-01-15",
204
+ "open": 289.9198,
205
+ "high": 289.9541,
206
+ "low": 283.9866,
207
+ "close": 285.7382,
208
+ "volume": 28442400
209
+ },
210
+ {
211
+ "date": "2026-01-16",
212
+ "open": 288.0608,
213
+ "high": 288.2675,
214
+ "low": 282.2808,
215
+ "close": 284.262,
216
+ "volume": 40341600
217
+ },
218
+ {
219
+ "date": "2026-01-20",
220
+ "open": 275.6819,
221
+ "high": 281.5758,
222
+ "low": 275.3038,
223
+ "close": 276.6527,
224
+ "volume": 35361000
225
+ },
226
+ {
227
+ "date": "2026-01-21",
228
+ "open": 273.6389,
229
+ "high": 283.4957,
230
+ "low": 272.3002,
231
+ "close": 279.9998,
232
+ "volume": 35386600
233
+ },
234
+ {
235
+ "date": "2026-01-22",
236
+ "open": 286.5166,
237
+ "high": 287.1163,
238
+ "low": 281.6336,
239
+ "close": 283.167,
240
+ "volume": 26253600
241
+ },
242
+ {
243
+ "date": "2026-01-23",
244
+ "open": 282.8592,
245
+ "high": 283.8801,
246
+ "low": 278.5715,
247
+ "close": 278.9799,
248
+ "volume": 27280000
249
+ },
250
+ {
251
+ "date": "2026-01-26",
252
+ "open": 276.4356,
253
+ "high": 283.2072,
254
+ "low": 275.7526,
255
+ "close": 281.0315,
256
+ "volume": 26042100
257
+ },
258
+ {
259
+ "date": "2026-01-27",
260
+ "open": 282.3815,
261
+ "high": 284.5202,
262
+ "low": 280.7902,
263
+ "close": 281.6911,
264
+ "volume": 21636200
265
+ },
266
+ {
267
+ "date": "2026-01-28",
268
+ "open": 279.6389,
269
+ "high": 280.8704,
270
+ "low": 276.2106,
271
+ "close": 279.5973,
272
+ "volume": 27434400
273
+ },
274
+ {
275
+ "date": "2026-01-29",
276
+ "open": 284.1097,
277
+ "high": 285.7711,
278
+ "low": 272.6217,
279
+ "close": 282.3982,
280
+ "volume": 39785600
281
+ },
282
+ {
283
+ "date": "2026-01-30",
284
+ "open": 284.1448,
285
+ "high": 284.1448,
286
+ "low": 277.7014,
287
+ "close": 282.4734,
288
+ "volume": 31024000
289
+ },
290
+ {
291
+ "date": "2026-02-02",
292
+ "open": 283.7495,
293
+ "high": 291.0158,
294
+ "low": 283.2516,
295
+ "close": 290.0537,
296
+ "volume": 32006100
297
+ },
298
+ {
299
+ "date": "2026-02-03",
300
+ "open": 294.388,
301
+ "high": 295.795,
302
+ "low": 286.0227,
303
+ "close": 287.9212,
304
+ "volume": 36506700
305
+ },
306
+ {
307
+ "date": "2026-02-04",
308
+ "open": 290.247,
309
+ "high": 290.5433,
310
+ "low": 278.0265,
311
+ "close": 281.8518,
312
+ "volume": 70618400
313
+ },
314
+ {
315
+ "date": "2026-02-05",
316
+ "open": 264.5565,
317
+ "high": 281.9015,
318
+ "low": 259.6758,
319
+ "close": 280.6814,
320
+ "volume": 88205800
321
+ },
322
+ {
323
+ "date": "2026-02-06",
324
+ "open": 277.7922,
325
+ "high": 280.5091,
326
+ "low": 271.6281,
327
+ "close": 274.1243,
328
+ "volume": 56380500
329
+ },
330
+ {
331
+ "date": "2026-02-09",
332
+ "open": 271.3816,
333
+ "high": 277.1064,
334
+ "low": 268.2782,
335
+ "close": 274.2482,
336
+ "volume": 39640100
337
+ },
338
+ {
339
+ "date": "2026-02-10",
340
+ "open": 269.6308,
341
+ "high": 270.2189,
342
+ "low": 264.2881,
343
+ "close": 267.6231,
344
+ "volume": 39170000
345
+ },
346
+ {
347
+ "date": "2026-02-11",
348
+ "open": 268.2761,
349
+ "high": 270.0339,
350
+ "low": 260.4457,
351
+ "close": 261.5391,
352
+ "volume": 45406400
353
+ },
354
+ {
355
+ "date": "2026-02-12",
356
+ "open": 262.7891,
357
+ "high": 266.2836,
358
+ "low": 258.6716,
359
+ "close": 260.1873,
360
+ "volume": 47761300
361
+ },
362
+ {
363
+ "date": "2026-02-13",
364
+ "open": 259.2841,
365
+ "high": 260.0424,
366
+ "low": 255.8969,
367
+ "close": 257.5905,
368
+ "volume": 38499700
369
+ },
370
+ {
371
+ "date": "2026-02-17",
372
+ "open": 253.2008,
373
+ "high": 256.9139,
374
+ "low": 250.0024,
375
+ "close": 254.8716,
376
+ "volume": 39247600
377
+ },
378
+ {
379
+ "date": "2026-02-18",
380
+ "open": 254.8884,
381
+ "high": 257.6644,
382
+ "low": 254.1797,
383
+ "close": 255.9347,
384
+ "volume": 28482100
385
+ },
386
+ {
387
+ "date": "2026-02-19",
388
+ "open": 256.0218,
389
+ "high": 259.118,
390
+ "low": 254.5119,
391
+ "close": 256.8955,
392
+ "volume": 25834400
393
+ },
394
+ {
395
+ "date": "2026-02-20",
396
+ "open": 258.5746,
397
+ "high": 268.9237,
398
+ "low": 258.2177,
399
+ "close": 267.6322,
400
+ "volume": 53210800
401
+ },
402
+ {
403
+ "date": "2026-02-23",
404
+ "open": 269.5877,
405
+ "high": 269.9848,
406
+ "low": 261.8308,
407
+ "close": 263.1997,
408
+ "volume": 31423000
409
+ },
410
+ {
411
+ "date": "2026-02-24",
412
+ "open": 263.2899,
413
+ "high": 264.7737,
414
+ "low": 259.398,
415
+ "close": 263.6121,
416
+ "volume": 25615600
417
+ },
418
+ {
419
+ "date": "2026-02-25",
420
+ "open": 265.0138,
421
+ "high": 266.3556,
422
+ "low": 262.7888,
423
+ "close": 265.7272,
424
+ "volume": 29963600
425
+ },
426
+ {
427
+ "date": "2026-02-26",
428
+ "open": 264.6091,
429
+ "high": 265.0323,
430
+ "low": 255.9,
431
+ "close": 260.1572,
432
+ "volume": 36431200
433
+ },
434
+ {
435
+ "date": "2026-02-27",
436
+ "open": 257.6796,
437
+ "high": 264.6524,
438
+ "low": 257.3915,
439
+ "close": 264.1356,
440
+ "volume": 44640600
441
+ },
442
+ {
443
+ "date": "2026-03-02",
444
+ "open": 257.8607,
445
+ "high": 262.3337,
446
+ "low": 256.2195,
447
+ "close": 260.6585,
448
+ "volume": 34790200
449
+ },
450
+ {
451
+ "date": "2026-03-03",
452
+ "open": 255.2646,
453
+ "high": 259.8383,
454
+ "low": 253.6574,
455
+ "close": 259.5305,
456
+ "volume": 35497000
457
+ },
458
+ {
459
+ "date": "2026-03-04",
460
+ "open": 260.8368,
461
+ "high": 263.0585,
462
+ "low": 258.9939,
463
+ "close": 261.0434,
464
+ "volume": 29536200
465
+ },
466
+ {
467
+ "date": "2026-03-05",
468
+ "open": 260.4417,
469
+ "high": 260.6651,
470
+ "low": 256.1015,
471
+ "close": 258.5853,
472
+ "volume": 35752300
473
+ },
474
+ {
475
+ "date": "2026-03-06",
476
+ "open": 255.0726,
477
+ "high": 258.8976,
478
+ "low": 254.2887,
479
+ "close": 257.166,
480
+ "volume": 25546200
481
+ }
482
+ ]
shared/data/ohlcv/INTKA.json ADDED
@@ -0,0 +1,482 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "date": "2025-12-05",
4
+ "open": 3.315,
5
+ "high": 3.355,
6
+ "low": 3.28,
7
+ "close": 3.31,
8
+ "volume": 133826
9
+ },
10
+ {
11
+ "date": "2025-12-08",
12
+ "open": 3.31,
13
+ "high": 3.35,
14
+ "low": 3.31,
15
+ "close": 3.33,
16
+ "volume": 92291
17
+ },
18
+ {
19
+ "date": "2025-12-09",
20
+ "open": 3.31,
21
+ "high": 3.355,
22
+ "low": 3.305,
23
+ "close": 3.32,
24
+ "volume": 181634
25
+ },
26
+ {
27
+ "date": "2025-12-10",
28
+ "open": 3.345,
29
+ "high": 3.445,
30
+ "low": 3.31,
31
+ "close": 3.43,
32
+ "volume": 289206
33
+ },
34
+ {
35
+ "date": "2025-12-11",
36
+ "open": 3.44,
37
+ "high": 3.54,
38
+ "low": 3.44,
39
+ "close": 3.48,
40
+ "volume": 314710
41
+ },
42
+ {
43
+ "date": "2025-12-12",
44
+ "open": 3.49,
45
+ "high": 3.515,
46
+ "low": 3.46,
47
+ "close": 3.475,
48
+ "volume": 207768
49
+ },
50
+ {
51
+ "date": "2025-12-15",
52
+ "open": 3.465,
53
+ "high": 3.54,
54
+ "low": 3.46,
55
+ "close": 3.485,
56
+ "volume": 136983
57
+ },
58
+ {
59
+ "date": "2025-12-16",
60
+ "open": 3.53,
61
+ "high": 3.535,
62
+ "low": 3.45,
63
+ "close": 3.45,
64
+ "volume": 208236
65
+ },
66
+ {
67
+ "date": "2025-12-17",
68
+ "open": 3.45,
69
+ "high": 3.53,
70
+ "low": 3.43,
71
+ "close": 3.43,
72
+ "volume": 168456
73
+ },
74
+ {
75
+ "date": "2025-12-18",
76
+ "open": 3.43,
77
+ "high": 3.485,
78
+ "low": 3.42,
79
+ "close": 3.46,
80
+ "volume": 148625
81
+ },
82
+ {
83
+ "date": "2025-12-19",
84
+ "open": 3.475,
85
+ "high": 3.515,
86
+ "low": 3.47,
87
+ "close": 3.495,
88
+ "volume": 108943
89
+ },
90
+ {
91
+ "date": "2025-12-22",
92
+ "open": 3.5,
93
+ "high": 3.52,
94
+ "low": 3.47,
95
+ "close": 3.47,
96
+ "volume": 55950
97
+ },
98
+ {
99
+ "date": "2025-12-23",
100
+ "open": 3.47,
101
+ "high": 3.49,
102
+ "low": 3.45,
103
+ "close": 3.46,
104
+ "volume": 34879
105
+ },
106
+ {
107
+ "date": "2025-12-29",
108
+ "open": 3.46,
109
+ "high": 3.475,
110
+ "low": 3.425,
111
+ "close": 3.445,
112
+ "volume": 34298
113
+ },
114
+ {
115
+ "date": "2025-12-30",
116
+ "open": 3.435,
117
+ "high": 3.49,
118
+ "low": 3.425,
119
+ "close": 3.44,
120
+ "volume": 68515
121
+ },
122
+ {
123
+ "date": "2025-12-31",
124
+ "open": 3.44,
125
+ "high": 3.485,
126
+ "low": 3.435,
127
+ "close": 3.47,
128
+ "volume": 25369
129
+ },
130
+ {
131
+ "date": "2026-01-02",
132
+ "open": 3.455,
133
+ "high": 3.57,
134
+ "low": 3.455,
135
+ "close": 3.56,
136
+ "volume": 140730
137
+ },
138
+ {
139
+ "date": "2026-01-05",
140
+ "open": 3.585,
141
+ "high": 3.77,
142
+ "low": 3.545,
143
+ "close": 3.7,
144
+ "volume": 379008
145
+ },
146
+ {
147
+ "date": "2026-01-07",
148
+ "open": 3.74,
149
+ "high": 3.85,
150
+ "low": 3.715,
151
+ "close": 3.8,
152
+ "volume": 354978
153
+ },
154
+ {
155
+ "date": "2026-01-08",
156
+ "open": 3.81,
157
+ "high": 3.85,
158
+ "low": 3.76,
159
+ "close": 3.765,
160
+ "volume": 209342
161
+ },
162
+ {
163
+ "date": "2026-01-09",
164
+ "open": 3.8,
165
+ "high": 3.825,
166
+ "low": 3.76,
167
+ "close": 3.76,
168
+ "volume": 176059
169
+ },
170
+ {
171
+ "date": "2026-01-12",
172
+ "open": 3.77,
173
+ "high": 3.78,
174
+ "low": 3.65,
175
+ "close": 3.65,
176
+ "volume": 194068
177
+ },
178
+ {
179
+ "date": "2026-01-13",
180
+ "open": 3.63,
181
+ "high": 3.685,
182
+ "low": 3.59,
183
+ "close": 3.605,
184
+ "volume": 189003
185
+ },
186
+ {
187
+ "date": "2026-01-14",
188
+ "open": 3.605,
189
+ "high": 3.72,
190
+ "low": 3.585,
191
+ "close": 3.72,
192
+ "volume": 220185
193
+ },
194
+ {
195
+ "date": "2026-01-15",
196
+ "open": 3.71,
197
+ "high": 3.715,
198
+ "low": 3.67,
199
+ "close": 3.67,
200
+ "volume": 77503
201
+ },
202
+ {
203
+ "date": "2026-01-16",
204
+ "open": 3.68,
205
+ "high": 3.68,
206
+ "low": 3.615,
207
+ "close": 3.63,
208
+ "volume": 80330
209
+ },
210
+ {
211
+ "date": "2026-01-19",
212
+ "open": 3.58,
213
+ "high": 3.62,
214
+ "low": 3.525,
215
+ "close": 3.61,
216
+ "volume": 138866
217
+ },
218
+ {
219
+ "date": "2026-01-20",
220
+ "open": 3.605,
221
+ "high": 3.605,
222
+ "low": 3.47,
223
+ "close": 3.48,
224
+ "volume": 219534
225
+ },
226
+ {
227
+ "date": "2026-01-21",
228
+ "open": 3.485,
229
+ "high": 3.56,
230
+ "low": 3.465,
231
+ "close": 3.56,
232
+ "volume": 102952
233
+ },
234
+ {
235
+ "date": "2026-01-22",
236
+ "open": 3.6,
237
+ "high": 3.63,
238
+ "low": 3.55,
239
+ "close": 3.58,
240
+ "volume": 147786
241
+ },
242
+ {
243
+ "date": "2026-01-23",
244
+ "open": 3.58,
245
+ "high": 3.63,
246
+ "low": 3.56,
247
+ "close": 3.62,
248
+ "volume": 55886
249
+ },
250
+ {
251
+ "date": "2026-01-26",
252
+ "open": 3.58,
253
+ "high": 3.62,
254
+ "low": 3.53,
255
+ "close": 3.61,
256
+ "volume": 84959
257
+ },
258
+ {
259
+ "date": "2026-01-27",
260
+ "open": 3.575,
261
+ "high": 3.67,
262
+ "low": 3.575,
263
+ "close": 3.58,
264
+ "volume": 174687
265
+ },
266
+ {
267
+ "date": "2026-01-28",
268
+ "open": 3.58,
269
+ "high": 3.61,
270
+ "low": 3.54,
271
+ "close": 3.58,
272
+ "volume": 141941
273
+ },
274
+ {
275
+ "date": "2026-01-29",
276
+ "open": 3.555,
277
+ "high": 3.6,
278
+ "low": 3.53,
279
+ "close": 3.54,
280
+ "volume": 176657
281
+ },
282
+ {
283
+ "date": "2026-01-30",
284
+ "open": 3.52,
285
+ "high": 3.54,
286
+ "low": 3.49,
287
+ "close": 3.52,
288
+ "volume": 141858
289
+ },
290
+ {
291
+ "date": "2026-02-02",
292
+ "open": 3.475,
293
+ "high": 3.525,
294
+ "low": 3.46,
295
+ "close": 3.525,
296
+ "volume": 113527
297
+ },
298
+ {
299
+ "date": "2026-02-03",
300
+ "open": 3.515,
301
+ "high": 3.56,
302
+ "low": 3.48,
303
+ "close": 3.48,
304
+ "volume": 82423
305
+ },
306
+ {
307
+ "date": "2026-02-04",
308
+ "open": 3.47,
309
+ "high": 3.6,
310
+ "low": 3.46,
311
+ "close": 3.57,
312
+ "volume": 220144
313
+ },
314
+ {
315
+ "date": "2026-02-05",
316
+ "open": 3.57,
317
+ "high": 3.605,
318
+ "low": 3.49,
319
+ "close": 3.53,
320
+ "volume": 65188
321
+ },
322
+ {
323
+ "date": "2026-02-06",
324
+ "open": 3.495,
325
+ "high": 3.52,
326
+ "low": 3.395,
327
+ "close": 3.455,
328
+ "volume": 261509
329
+ },
330
+ {
331
+ "date": "2026-02-09",
332
+ "open": 3.485,
333
+ "high": 3.505,
334
+ "low": 3.38,
335
+ "close": 3.39,
336
+ "volume": 173290
337
+ },
338
+ {
339
+ "date": "2026-02-10",
340
+ "open": 3.39,
341
+ "high": 3.47,
342
+ "low": 3.34,
343
+ "close": 3.38,
344
+ "volume": 209270
345
+ },
346
+ {
347
+ "date": "2026-02-11",
348
+ "open": 3.38,
349
+ "high": 3.385,
350
+ "low": 3.33,
351
+ "close": 3.385,
352
+ "volume": 153511
353
+ },
354
+ {
355
+ "date": "2026-02-12",
356
+ "open": 3.39,
357
+ "high": 3.42,
358
+ "low": 3.335,
359
+ "close": 3.335,
360
+ "volume": 54555
361
+ },
362
+ {
363
+ "date": "2026-02-13",
364
+ "open": 3.33,
365
+ "high": 3.33,
366
+ "low": 3.23,
367
+ "close": 3.255,
368
+ "volume": 251211
369
+ },
370
+ {
371
+ "date": "2026-02-16",
372
+ "open": 3.255,
373
+ "high": 3.345,
374
+ "low": 3.23,
375
+ "close": 3.325,
376
+ "volume": 102879
377
+ },
378
+ {
379
+ "date": "2026-02-17",
380
+ "open": 3.31,
381
+ "high": 3.37,
382
+ "low": 3.275,
383
+ "close": 3.29,
384
+ "volume": 98473
385
+ },
386
+ {
387
+ "date": "2026-02-18",
388
+ "open": 3.35,
389
+ "high": 3.425,
390
+ "low": 3.33,
391
+ "close": 3.42,
392
+ "volume": 94515
393
+ },
394
+ {
395
+ "date": "2026-02-19",
396
+ "open": 3.385,
397
+ "high": 3.42,
398
+ "low": 3.32,
399
+ "close": 3.32,
400
+ "volume": 78705
401
+ },
402
+ {
403
+ "date": "2026-02-20",
404
+ "open": 3.35,
405
+ "high": 3.35,
406
+ "low": 3.285,
407
+ "close": 3.3,
408
+ "volume": 56332
409
+ },
410
+ {
411
+ "date": "2026-02-24",
412
+ "open": 3.3,
413
+ "high": 3.33,
414
+ "low": 3.27,
415
+ "close": 3.295,
416
+ "volume": 38433
417
+ },
418
+ {
419
+ "date": "2026-02-25",
420
+ "open": 3.3,
421
+ "high": 3.345,
422
+ "low": 3.285,
423
+ "close": 3.3,
424
+ "volume": 41411
425
+ },
426
+ {
427
+ "date": "2026-02-26",
428
+ "open": 3.31,
429
+ "high": 3.4,
430
+ "low": 3.31,
431
+ "close": 3.35,
432
+ "volume": 87321
433
+ },
434
+ {
435
+ "date": "2026-02-27",
436
+ "open": 3.375,
437
+ "high": 3.375,
438
+ "low": 3.26,
439
+ "close": 3.265,
440
+ "volume": 70147
441
+ },
442
+ {
443
+ "date": "2026-03-02",
444
+ "open": 3.13,
445
+ "high": 3.175,
446
+ "low": 3.05,
447
+ "close": 3.085,
448
+ "volume": 202927
449
+ },
450
+ {
451
+ "date": "2026-03-03",
452
+ "open": 3.045,
453
+ "high": 3.045,
454
+ "low": 2.81,
455
+ "close": 2.81,
456
+ "volume": 577623
457
+ },
458
+ {
459
+ "date": "2026-03-04",
460
+ "open": 2.81,
461
+ "high": 2.96,
462
+ "low": 2.81,
463
+ "close": 2.92,
464
+ "volume": 244547
465
+ },
466
+ {
467
+ "date": "2026-03-05",
468
+ "open": 2.89,
469
+ "high": 3.01,
470
+ "low": 2.87,
471
+ "close": 2.92,
472
+ "volume": 152137
473
+ },
474
+ {
475
+ "date": "2026-03-06",
476
+ "open": 2.96,
477
+ "high": 2.96,
478
+ "low": 2.79,
479
+ "close": 2.84,
480
+ "volume": 197410
481
+ }
482
+ ]
shared/data/ohlcv/NBG.json ADDED
@@ -0,0 +1,482 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "date": "2025-12-05",
4
+ "open": 13.45,
5
+ "high": 13.66,
6
+ "low": 13.45,
7
+ "close": 13.66,
8
+ "volume": 1415782
9
+ },
10
+ {
11
+ "date": "2025-12-08",
12
+ "open": 13.735,
13
+ "high": 13.78,
14
+ "low": 13.55,
15
+ "close": 13.63,
16
+ "volume": 1635619
17
+ },
18
+ {
19
+ "date": "2025-12-09",
20
+ "open": 13.63,
21
+ "high": 13.66,
22
+ "low": 13.385,
23
+ "close": 13.42,
24
+ "volume": 1293350
25
+ },
26
+ {
27
+ "date": "2025-12-10",
28
+ "open": 13.39,
29
+ "high": 13.44,
30
+ "low": 13.22,
31
+ "close": 13.355,
32
+ "volume": 1641276
33
+ },
34
+ {
35
+ "date": "2025-12-11",
36
+ "open": 13.275,
37
+ "high": 13.655,
38
+ "low": 13.275,
39
+ "close": 13.64,
40
+ "volume": 1982755
41
+ },
42
+ {
43
+ "date": "2025-12-12",
44
+ "open": 13.6,
45
+ "high": 13.645,
46
+ "low": 13.4,
47
+ "close": 13.54,
48
+ "volume": 1872108
49
+ },
50
+ {
51
+ "date": "2025-12-15",
52
+ "open": 13.48,
53
+ "high": 13.545,
54
+ "low": 13.29,
55
+ "close": 13.29,
56
+ "volume": 1248862
57
+ },
58
+ {
59
+ "date": "2025-12-16",
60
+ "open": 13.24,
61
+ "high": 13.35,
62
+ "low": 13.125,
63
+ "close": 13.13,
64
+ "volume": 1406781
65
+ },
66
+ {
67
+ "date": "2025-12-17",
68
+ "open": 13.13,
69
+ "high": 13.345,
70
+ "low": 13.07,
71
+ "close": 13.18,
72
+ "volume": 1748071
73
+ },
74
+ {
75
+ "date": "2025-12-18",
76
+ "open": 13.185,
77
+ "high": 13.28,
78
+ "low": 13.075,
79
+ "close": 13.22,
80
+ "volume": 1640938
81
+ },
82
+ {
83
+ "date": "2025-12-19",
84
+ "open": 13.25,
85
+ "high": 13.495,
86
+ "low": 13.245,
87
+ "close": 13.42,
88
+ "volume": 4296504
89
+ },
90
+ {
91
+ "date": "2025-12-22",
92
+ "open": 13.35,
93
+ "high": 13.53,
94
+ "low": 13.32,
95
+ "close": 13.52,
96
+ "volume": 1434327
97
+ },
98
+ {
99
+ "date": "2025-12-23",
100
+ "open": 13.44,
101
+ "high": 13.515,
102
+ "low": 13.32,
103
+ "close": 13.34,
104
+ "volume": 1139835
105
+ },
106
+ {
107
+ "date": "2025-12-29",
108
+ "open": 13.43,
109
+ "high": 13.5,
110
+ "low": 13.18,
111
+ "close": 13.215,
112
+ "volume": 969735
113
+ },
114
+ {
115
+ "date": "2025-12-30",
116
+ "open": 13.36,
117
+ "high": 13.36,
118
+ "low": 13.17,
119
+ "close": 13.17,
120
+ "volume": 758464
121
+ },
122
+ {
123
+ "date": "2025-12-31",
124
+ "open": 13.15,
125
+ "high": 13.245,
126
+ "low": 13.0,
127
+ "close": 13.0,
128
+ "volume": 975547
129
+ },
130
+ {
131
+ "date": "2026-01-02",
132
+ "open": 13.16,
133
+ "high": 13.79,
134
+ "low": 13.16,
135
+ "close": 13.775,
136
+ "volume": 1665619
137
+ },
138
+ {
139
+ "date": "2026-01-05",
140
+ "open": 13.745,
141
+ "high": 13.8,
142
+ "low": 13.47,
143
+ "close": 13.71,
144
+ "volume": 1371191
145
+ },
146
+ {
147
+ "date": "2026-01-07",
148
+ "open": 13.9,
149
+ "high": 13.9,
150
+ "low": 13.55,
151
+ "close": 13.85,
152
+ "volume": 3849729
153
+ },
154
+ {
155
+ "date": "2026-01-08",
156
+ "open": 13.93,
157
+ "high": 14.58,
158
+ "low": 13.895,
159
+ "close": 14.54,
160
+ "volume": 3834181
161
+ },
162
+ {
163
+ "date": "2026-01-09",
164
+ "open": 14.41,
165
+ "high": 14.475,
166
+ "low": 14.175,
167
+ "close": 14.2,
168
+ "volume": 7071613
169
+ },
170
+ {
171
+ "date": "2026-01-12",
172
+ "open": 14.2,
173
+ "high": 14.27,
174
+ "low": 14.16,
175
+ "close": 14.2,
176
+ "volume": 3724603
177
+ },
178
+ {
179
+ "date": "2026-01-13",
180
+ "open": 14.2,
181
+ "high": 14.385,
182
+ "low": 14.16,
183
+ "close": 14.285,
184
+ "volume": 2718467
185
+ },
186
+ {
187
+ "date": "2026-01-14",
188
+ "open": 14.22,
189
+ "high": 14.64,
190
+ "low": 14.22,
191
+ "close": 14.64,
192
+ "volume": 3344483
193
+ },
194
+ {
195
+ "date": "2026-01-15",
196
+ "open": 14.74,
197
+ "high": 15.05,
198
+ "low": 14.46,
199
+ "close": 15.015,
200
+ "volume": 3105721
201
+ },
202
+ {
203
+ "date": "2026-01-16",
204
+ "open": 14.89,
205
+ "high": 15.0,
206
+ "low": 14.875,
207
+ "close": 14.895,
208
+ "volume": 3368178
209
+ },
210
+ {
211
+ "date": "2026-01-19",
212
+ "open": 14.8,
213
+ "high": 15.395,
214
+ "low": 14.62,
215
+ "close": 15.31,
216
+ "volume": 2045966
217
+ },
218
+ {
219
+ "date": "2026-01-20",
220
+ "open": 15.16,
221
+ "high": 15.205,
222
+ "low": 14.635,
223
+ "close": 14.78,
224
+ "volume": 1980075
225
+ },
226
+ {
227
+ "date": "2026-01-21",
228
+ "open": 14.77,
229
+ "high": 14.89,
230
+ "low": 14.46,
231
+ "close": 14.715,
232
+ "volume": 5400233
233
+ },
234
+ {
235
+ "date": "2026-01-22",
236
+ "open": 14.98,
237
+ "high": 15.165,
238
+ "low": 14.755,
239
+ "close": 14.825,
240
+ "volume": 4983979
241
+ },
242
+ {
243
+ "date": "2026-01-23",
244
+ "open": 14.9,
245
+ "high": 15.055,
246
+ "low": 14.77,
247
+ "close": 14.8,
248
+ "volume": 2245786
249
+ },
250
+ {
251
+ "date": "2026-01-26",
252
+ "open": 14.73,
253
+ "high": 14.875,
254
+ "low": 14.73,
255
+ "close": 14.79,
256
+ "volume": 3560635
257
+ },
258
+ {
259
+ "date": "2026-01-27",
260
+ "open": 15.2,
261
+ "high": 15.775,
262
+ "low": 14.95,
263
+ "close": 15.775,
264
+ "volume": 11333748
265
+ },
266
+ {
267
+ "date": "2026-01-28",
268
+ "open": 15.6,
269
+ "high": 16.005,
270
+ "low": 15.6,
271
+ "close": 15.65,
272
+ "volume": 5451381
273
+ },
274
+ {
275
+ "date": "2026-01-29",
276
+ "open": 15.94,
277
+ "high": 15.94,
278
+ "low": 14.895,
279
+ "close": 15.245,
280
+ "volume": 5649962
281
+ },
282
+ {
283
+ "date": "2026-01-30",
284
+ "open": 15.24,
285
+ "high": 15.38,
286
+ "low": 14.87,
287
+ "close": 14.915,
288
+ "volume": 5641791
289
+ },
290
+ {
291
+ "date": "2026-02-02",
292
+ "open": 15.095,
293
+ "high": 15.465,
294
+ "low": 14.845,
295
+ "close": 15.34,
296
+ "volume": 6104011
297
+ },
298
+ {
299
+ "date": "2026-02-03",
300
+ "open": 15.7,
301
+ "high": 15.855,
302
+ "low": 15.605,
303
+ "close": 15.605,
304
+ "volume": 2710863
305
+ },
306
+ {
307
+ "date": "2026-02-04",
308
+ "open": 15.78,
309
+ "high": 15.82,
310
+ "low": 15.415,
311
+ "close": 15.715,
312
+ "volume": 3662980
313
+ },
314
+ {
315
+ "date": "2026-02-05",
316
+ "open": 15.63,
317
+ "high": 15.785,
318
+ "low": 15.325,
319
+ "close": 15.33,
320
+ "volume": 2262587
321
+ },
322
+ {
323
+ "date": "2026-02-06",
324
+ "open": 15.3,
325
+ "high": 15.355,
326
+ "low": 14.95,
327
+ "close": 15.25,
328
+ "volume": 3812333
329
+ },
330
+ {
331
+ "date": "2026-02-09",
332
+ "open": 15.44,
333
+ "high": 15.555,
334
+ "low": 14.61,
335
+ "close": 14.905,
336
+ "volume": 5262573
337
+ },
338
+ {
339
+ "date": "2026-02-10",
340
+ "open": 15.065,
341
+ "high": 15.2,
342
+ "low": 14.88,
343
+ "close": 15.125,
344
+ "volume": 2446731
345
+ },
346
+ {
347
+ "date": "2026-02-11",
348
+ "open": 14.755,
349
+ "high": 15.105,
350
+ "low": 14.7,
351
+ "close": 15.07,
352
+ "volume": 3257952
353
+ },
354
+ {
355
+ "date": "2026-02-12",
356
+ "open": 15.08,
357
+ "high": 15.105,
358
+ "low": 14.675,
359
+ "close": 14.98,
360
+ "volume": 5301008
361
+ },
362
+ {
363
+ "date": "2026-02-13",
364
+ "open": 14.795,
365
+ "high": 14.975,
366
+ "low": 14.31,
367
+ "close": 14.56,
368
+ "volume": 5058452
369
+ },
370
+ {
371
+ "date": "2026-02-16",
372
+ "open": 14.74,
373
+ "high": 14.865,
374
+ "low": 14.05,
375
+ "close": 14.4,
376
+ "volume": 4777319
377
+ },
378
+ {
379
+ "date": "2026-02-17",
380
+ "open": 14.3,
381
+ "high": 14.4,
382
+ "low": 13.88,
383
+ "close": 14.0,
384
+ "volume": 5537414
385
+ },
386
+ {
387
+ "date": "2026-02-18",
388
+ "open": 14.23,
389
+ "high": 14.845,
390
+ "low": 14.04,
391
+ "close": 14.8,
392
+ "volume": 4643761
393
+ },
394
+ {
395
+ "date": "2026-02-19",
396
+ "open": 14.63,
397
+ "high": 14.71,
398
+ "low": 14.15,
399
+ "close": 14.395,
400
+ "volume": 2435718
401
+ },
402
+ {
403
+ "date": "2026-02-20",
404
+ "open": 14.5,
405
+ "high": 14.5,
406
+ "low": 14.035,
407
+ "close": 14.295,
408
+ "volume": 2537607
409
+ },
410
+ {
411
+ "date": "2026-02-24",
412
+ "open": 14.32,
413
+ "high": 14.32,
414
+ "low": 13.6,
415
+ "close": 13.7,
416
+ "volume": 6345086
417
+ },
418
+ {
419
+ "date": "2026-02-25",
420
+ "open": 13.8,
421
+ "high": 14.055,
422
+ "low": 13.6,
423
+ "close": 13.945,
424
+ "volume": 5489965
425
+ },
426
+ {
427
+ "date": "2026-02-26",
428
+ "open": 14.1,
429
+ "high": 14.355,
430
+ "low": 14.0,
431
+ "close": 14.355,
432
+ "volume": 3406825
433
+ },
434
+ {
435
+ "date": "2026-02-27",
436
+ "open": 14.32,
437
+ "high": 14.335,
438
+ "low": 13.785,
439
+ "close": 13.785,
440
+ "volume": 7795710
441
+ },
442
+ {
443
+ "date": "2026-03-02",
444
+ "open": 13.21,
445
+ "high": 13.425,
446
+ "low": 13.06,
447
+ "close": 13.34,
448
+ "volume": 4427489
449
+ },
450
+ {
451
+ "date": "2026-03-03",
452
+ "open": 13.1,
453
+ "high": 13.1,
454
+ "low": 12.255,
455
+ "close": 12.45,
456
+ "volume": 6124465
457
+ },
458
+ {
459
+ "date": "2026-03-04",
460
+ "open": 12.345,
461
+ "high": 13.365,
462
+ "low": 12.345,
463
+ "close": 13.27,
464
+ "volume": 6753445
465
+ },
466
+ {
467
+ "date": "2026-03-05",
468
+ "open": 13.27,
469
+ "high": 13.85,
470
+ "low": 13.2,
471
+ "close": 13.445,
472
+ "volume": 5519187
473
+ },
474
+ {
475
+ "date": "2026-03-06",
476
+ "open": 13.37,
477
+ "high": 13.375,
478
+ "low": 12.735,
479
+ "close": 12.95,
480
+ "volume": 5043729
481
+ }
482
+ ]
shared/data/ohlcv/NVDA.json ADDED
@@ -0,0 +1,482 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "date": "2025-12-09",
4
+ "open": 159.396,
5
+ "high": 159.5335,
6
+ "low": 157.4719,
7
+ "close": 158.8892,
8
+ "volume": 144719700
9
+ },
10
+ {
11
+ "date": "2025-12-10",
12
+ "open": 159.0687,
13
+ "high": 159.5072,
14
+ "low": 156.5489,
15
+ "close": 158.0453,
16
+ "volume": 162785400
17
+ },
18
+ {
19
+ "date": "2025-12-11",
20
+ "open": 154.0691,
21
+ "high": 154.9579,
22
+ "low": 150.9412,
23
+ "close": 154.6246,
24
+ "volume": 182136600
25
+ },
26
+ {
27
+ "date": "2025-12-12",
28
+ "open": 154.2749,
29
+ "high": 155.7316,
30
+ "low": 148.7466,
31
+ "close": 149.0873,
32
+ "volume": 204274900
33
+ },
34
+ {
35
+ "date": "2025-12-15",
36
+ "open": 151.5978,
37
+ "high": 152.0067,
38
+ "low": 149.1186,
39
+ "close": 150.192,
40
+ "volume": 164775600
41
+ },
42
+ {
43
+ "date": "2025-12-16",
44
+ "open": 149.9497,
45
+ "high": 151.8468,
46
+ "low": 148.7927,
47
+ "close": 151.1917,
48
+ "volume": 148588100
49
+ },
50
+ {
51
+ "date": "2025-12-17",
52
+ "open": 149.8787,
53
+ "high": 149.9042,
54
+ "low": 144.9508,
55
+ "close": 145.487,
56
+ "volume": 222775500
57
+ },
58
+ {
59
+ "date": "2025-12-18",
60
+ "open": 148.6332,
61
+ "high": 150.0129,
62
+ "low": 146.3254,
63
+ "close": 148.3011,
64
+ "volume": 176096000
65
+ },
66
+ {
67
+ "date": "2025-12-19",
68
+ "open": 150.6695,
69
+ "high": 154.746,
70
+ "low": 150.388,
71
+ "close": 154.3537,
72
+ "volume": 324925900
73
+ },
74
+ {
75
+ "date": "2025-12-22",
76
+ "open": 157.0879,
77
+ "high": 157.2929,
78
+ "low": 155.747,
79
+ "close": 156.8915,
80
+ "volume": 129064400
81
+ },
82
+ {
83
+ "date": "2025-12-23",
84
+ "open": 155.508,
85
+ "high": 160.9135,
86
+ "low": 155.4485,
87
+ "close": 160.8115,
88
+ "volume": 174873600
89
+ },
90
+ {
91
+ "date": "2025-12-24",
92
+ "open": 159.3318,
93
+ "high": 160.1541,
94
+ "low": 158.1873,
95
+ "close": 159.8998,
96
+ "volume": 65528500
97
+ },
98
+ {
99
+ "date": "2025-12-26",
100
+ "open": 161.149,
101
+ "high": 163.4994,
102
+ "low": 159.5199,
103
+ "close": 161.6666,
104
+ "volume": 139740300
105
+ },
106
+ {
107
+ "date": "2025-12-29",
108
+ "open": 159.4446,
109
+ "high": 160.3365,
110
+ "low": 157.9157,
111
+ "close": 159.8778,
112
+ "volume": 120006100
113
+ },
114
+ {
115
+ "date": "2025-12-30",
116
+ "open": 159.8929,
117
+ "high": 160.53,
118
+ "low": 158.7802,
119
+ "close": 159.2983,
120
+ "volume": 97687300
121
+ },
122
+ {
123
+ "date": "2025-12-31",
124
+ "open": 161.3734,
125
+ "high": 162.2161,
126
+ "low": 158.7515,
127
+ "close": 158.76,
128
+ "volume": 120100500
129
+ },
130
+ {
131
+ "date": "2026-01-02",
132
+ "open": 161.5595,
133
+ "high": 164.1892,
134
+ "low": 160.2149,
135
+ "close": 160.717,
136
+ "volume": 148240500
137
+ },
138
+ {
139
+ "date": "2026-01-05",
140
+ "open": 163.8321,
141
+ "high": 165.4297,
142
+ "low": 159.0391,
143
+ "close": 160.7222,
144
+ "volume": 183529700
145
+ },
146
+ {
147
+ "date": "2026-01-06",
148
+ "open": 162.6298,
149
+ "high": 164.0382,
150
+ "low": 159.4714,
151
+ "close": 159.8299,
152
+ "volume": 176862600
153
+ },
154
+ {
155
+ "date": "2026-01-07",
156
+ "open": 161.333,
157
+ "high": 163.7285,
158
+ "low": 159.6133,
159
+ "close": 161.795,
160
+ "volume": 153543200
161
+ },
162
+ {
163
+ "date": "2026-01-08",
164
+ "open": 161.9538,
165
+ "high": 162.3306,
166
+ "low": 157.3292,
167
+ "close": 158.4683,
168
+ "volume": 172457000
169
+ },
170
+ {
171
+ "date": "2026-01-09",
172
+ "open": 158.7598,
173
+ "high": 159.8406,
174
+ "low": 157.5503,
175
+ "close": 158.5711,
176
+ "volume": 131327500
177
+ },
178
+ {
179
+ "date": "2026-01-12",
180
+ "open": 157.626,
181
+ "high": 160.9812,
182
+ "low": 157.4539,
183
+ "close": 159.1057,
184
+ "volume": 137968500
185
+ },
186
+ {
187
+ "date": "2026-01-13",
188
+ "open": 158.5672,
189
+ "high": 161.2328,
190
+ "low": 157.1958,
191
+ "close": 159.2615,
192
+ "volume": 160128900
193
+ },
194
+ {
195
+ "date": "2026-01-14",
196
+ "open": 158.3161,
197
+ "high": 158.4364,
198
+ "low": 155.2927,
199
+ "close": 157.3026,
200
+ "volume": 159586100
201
+ },
202
+ {
203
+ "date": "2026-01-15",
204
+ "open": 160.1364,
205
+ "high": 162.884,
206
+ "low": 159.9904,
207
+ "close": 160.6086,
208
+ "volume": 206188600
209
+ },
210
+ {
211
+ "date": "2026-01-16",
212
+ "open": 162.8735,
213
+ "high": 164.045,
214
+ "low": 160.2893,
215
+ "close": 160.4185,
216
+ "volume": 187967200
217
+ },
218
+ {
219
+ "date": "2026-01-20",
220
+ "open": 156.283,
221
+ "high": 156.6954,
222
+ "low": 152.5972,
223
+ "close": 152.9924,
224
+ "volume": 223345300
225
+ },
226
+ {
227
+ "date": "2026-01-21",
228
+ "open": 152.6706,
229
+ "high": 158.068,
230
+ "low": 152.1163,
231
+ "close": 156.3115,
232
+ "volume": 200381000
233
+ },
234
+ {
235
+ "date": "2026-01-22",
236
+ "open": 158.2716,
237
+ "high": 159.4881,
238
+ "low": 157.5691,
239
+ "close": 158.3487,
240
+ "volume": 139636600
241
+ },
242
+ {
243
+ "date": "2026-01-23",
244
+ "open": 159.5119,
245
+ "high": 161.2984,
246
+ "low": 158.9334,
247
+ "close": 159.6565,
248
+ "volume": 142748100
249
+ },
250
+ {
251
+ "date": "2026-01-26",
252
+ "open": 157.8283,
253
+ "high": 159.4811,
254
+ "low": 156.8417,
255
+ "close": 157.2464,
256
+ "volume": 124799600
257
+ },
258
+ {
259
+ "date": "2026-01-27",
260
+ "open": 157.6561,
261
+ "high": 159.98,
262
+ "low": 156.3594,
263
+ "close": 158.7338,
264
+ "volume": 143711600
265
+ },
266
+ {
267
+ "date": "2026-01-28",
268
+ "open": 159.1577,
269
+ "high": 160.0564,
270
+ "low": 157.9678,
271
+ "close": 159.3657,
272
+ "volume": 148552700
273
+ },
274
+ {
275
+ "date": "2026-01-29",
276
+ "open": 159.7459,
277
+ "high": 161.5326,
278
+ "low": 155.3378,
279
+ "close": 160.7227,
280
+ "volume": 171764400
281
+ },
282
+ {
283
+ "date": "2026-01-30",
284
+ "open": 159.798,
285
+ "high": 162.5392,
286
+ "low": 158.3439,
287
+ "close": 159.7312,
288
+ "volume": 179489500
289
+ },
290
+ {
291
+ "date": "2026-02-02",
292
+ "open": 157.9856,
293
+ "high": 160.6018,
294
+ "low": 156.0276,
295
+ "close": 156.6437,
296
+ "volume": 165794100
297
+ },
298
+ {
299
+ "date": "2026-02-03",
300
+ "open": 157.8477,
301
+ "high": 157.8731,
302
+ "low": 149.3637,
303
+ "close": 152.8472,
304
+ "volume": 204019600
305
+ },
306
+ {
307
+ "date": "2026-02-04",
308
+ "open": 151.877,
309
+ "high": 151.9786,
310
+ "low": 145.4874,
311
+ "close": 147.417,
312
+ "volume": 207014100
313
+ },
314
+ {
315
+ "date": "2026-02-05",
316
+ "open": 148.2252,
317
+ "high": 149.8267,
318
+ "low": 144.9206,
319
+ "close": 145.6408,
320
+ "volume": 206312900
321
+ },
322
+ {
323
+ "date": "2026-02-06",
324
+ "open": 150.0186,
325
+ "high": 158.7724,
326
+ "low": 148.2441,
327
+ "close": 157.4224,
328
+ "volume": 231346200
329
+ },
330
+ {
331
+ "date": "2026-02-09",
332
+ "open": 155.8121,
333
+ "high": 163.7608,
334
+ "low": 155.55,
335
+ "close": 160.6997,
336
+ "volume": 196387400
337
+ },
338
+ {
339
+ "date": "2026-02-10",
340
+ "open": 160.7688,
341
+ "high": 161.6928,
342
+ "low": 158.0302,
343
+ "close": 158.383,
344
+ "volume": 136764800
345
+ },
346
+ {
347
+ "date": "2026-02-11",
348
+ "open": 161.8639,
349
+ "high": 162.5452,
350
+ "low": 158.7688,
351
+ "close": 159.8454,
352
+ "volume": 144192700
353
+ },
354
+ {
355
+ "date": "2026-02-12",
356
+ "open": 162.537,
357
+ "high": 163.0254,
358
+ "low": 157.047,
359
+ "close": 157.4091,
360
+ "volume": 189932500
361
+ },
362
+ {
363
+ "date": "2026-02-13",
364
+ "open": 157.965,
365
+ "high": 157.9819,
366
+ "low": 153.0023,
367
+ "close": 154.0302,
368
+ "volume": 161888000
369
+ },
370
+ {
371
+ "date": "2026-02-17",
372
+ "open": 153.377,
373
+ "high": 157.934,
374
+ "low": 151.2082,
375
+ "close": 156.0943,
376
+ "volume": 162276900
377
+ },
378
+ {
379
+ "date": "2026-02-18",
380
+ "open": 159.2578,
381
+ "high": 160.6247,
382
+ "low": 157.5787,
383
+ "close": 158.6081,
384
+ "volume": 164749100
385
+ },
386
+ {
387
+ "date": "2026-02-19",
388
+ "open": 158.6755,
389
+ "high": 159.8376,
390
+ "low": 157.488,
391
+ "close": 159.388,
392
+ "volume": 126554500
393
+ },
394
+ {
395
+ "date": "2026-02-20",
396
+ "open": 158.5248,
397
+ "high": 161.7196,
398
+ "low": 157.9895,
399
+ "close": 161.2863,
400
+ "volume": 178422300
401
+ },
402
+ {
403
+ "date": "2026-02-23",
404
+ "open": 161.7273,
405
+ "high": 163.8819,
406
+ "low": 160.1894,
407
+ "close": 161.854,
408
+ "volume": 171584800
409
+ },
410
+ {
411
+ "date": "2026-02-24",
412
+ "open": 162.3644,
413
+ "high": 164.2976,
414
+ "low": 158.8965,
415
+ "close": 163.5175,
416
+ "volume": 175123600
417
+ },
418
+ {
419
+ "date": "2026-02-25",
420
+ "open": 165.1347,
421
+ "high": 167.8353,
422
+ "low": 164.5742,
423
+ "close": 166.0774,
424
+ "volume": 250637100
425
+ },
426
+ {
427
+ "date": "2026-02-26",
428
+ "open": 164.4243,
429
+ "high": 164.4412,
430
+ "low": 156.0029,
431
+ "close": 156.4853,
432
+ "volume": 360807900
433
+ },
434
+ {
435
+ "date": "2026-02-27",
436
+ "open": 153.5622,
437
+ "high": 154.6975,
438
+ "low": 149.4362,
439
+ "close": 150.1225,
440
+ "volume": 311636500
441
+ },
442
+ {
443
+ "date": "2026-03-02",
444
+ "open": 148.825,
445
+ "high": 156.0107,
446
+ "low": 148.5104,
447
+ "close": 155.1773,
448
+ "volume": 209095300
449
+ },
450
+ {
451
+ "date": "2026-03-03",
452
+ "open": 152.5911,
453
+ "high": 154.6514,
454
+ "low": 151.2489,
455
+ "close": 153.9247,
456
+ "volume": 178099400
457
+ },
458
+ {
459
+ "date": "2026-03-04",
460
+ "open": 155.3877,
461
+ "high": 159.0562,
462
+ "low": 155.0605,
463
+ "close": 157.6267,
464
+ "volume": 177731200
465
+ },
466
+ {
467
+ "date": "2026-03-05",
468
+ "open": 155.7029,
469
+ "high": 158.1867,
470
+ "low": 152.8754,
471
+ "close": 157.5679,
472
+ "volume": 198779700
473
+ },
474
+ {
475
+ "date": "2026-03-06",
476
+ "open": 154.9268,
477
+ "high": 157.4423,
478
+ "low": 152.3251,
479
+ "close": 153.1866,
480
+ "volume": 188472400
481
+ }
482
+ ]
shared/data/ohlcv/PEIR.json ADDED
@@ -0,0 +1,482 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "date": "2025-12-04",
4
+ "open": 7.172,
5
+ "high": 7.176,
6
+ "low": 7.03,
7
+ "close": 7.11,
8
+ "volume": 1663887
9
+ },
10
+ {
11
+ "date": "2025-12-05",
12
+ "open": 7.156,
13
+ "high": 7.194,
14
+ "low": 7.15,
15
+ "close": 7.172,
16
+ "volume": 3527484
17
+ },
18
+ {
19
+ "date": "2025-12-08",
20
+ "open": 7.172,
21
+ "high": 7.3,
22
+ "low": 7.172,
23
+ "close": 7.274,
24
+ "volume": 2963853
25
+ },
26
+ {
27
+ "date": "2025-12-09",
28
+ "open": 7.262,
29
+ "high": 7.28,
30
+ "low": 7.144,
31
+ "close": 7.18,
32
+ "volume": 3088386
33
+ },
34
+ {
35
+ "date": "2025-12-10",
36
+ "open": 7.124,
37
+ "high": 7.25,
38
+ "low": 7.082,
39
+ "close": 7.198,
40
+ "volume": 3332669
41
+ },
42
+ {
43
+ "date": "2025-12-11",
44
+ "open": 7.2,
45
+ "high": 7.304,
46
+ "low": 7.154,
47
+ "close": 7.298,
48
+ "volume": 3445737
49
+ },
50
+ {
51
+ "date": "2025-12-12",
52
+ "open": 7.33,
53
+ "high": 7.334,
54
+ "low": 7.17,
55
+ "close": 7.22,
56
+ "volume": 2911074
57
+ },
58
+ {
59
+ "date": "2025-12-15",
60
+ "open": 7.154,
61
+ "high": 7.19,
62
+ "low": 7.026,
63
+ "close": 7.064,
64
+ "volume": 3236757
65
+ },
66
+ {
67
+ "date": "2025-12-16",
68
+ "open": 7.064,
69
+ "high": 7.108,
70
+ "low": 7.014,
71
+ "close": 7.022,
72
+ "volume": 3286707
73
+ },
74
+ {
75
+ "date": "2025-12-17",
76
+ "open": 7.022,
77
+ "high": 7.022,
78
+ "low": 7.022,
79
+ "close": 7.022,
80
+ "volume": 0
81
+ },
82
+ {
83
+ "date": "2025-12-18",
84
+ "open": 7.022,
85
+ "high": 7.022,
86
+ "low": 7.022,
87
+ "close": 7.022,
88
+ "volume": 0
89
+ },
90
+ {
91
+ "date": "2025-12-19",
92
+ "open": 7.022,
93
+ "high": 7.022,
94
+ "low": 7.022,
95
+ "close": 7.022,
96
+ "volume": 0
97
+ },
98
+ {
99
+ "date": "2025-12-23",
100
+ "open": 7.042,
101
+ "high": 7.042,
102
+ "low": 7.042,
103
+ "close": 7.042,
104
+ "volume": 0
105
+ },
106
+ {
107
+ "date": "2025-12-29",
108
+ "open": 7.008,
109
+ "high": 7.068,
110
+ "low": 6.8,
111
+ "close": 6.87,
112
+ "volume": 7195622
113
+ },
114
+ {
115
+ "date": "2025-12-30",
116
+ "open": 6.9,
117
+ "high": 6.96,
118
+ "low": 6.81,
119
+ "close": 6.848,
120
+ "volume": 4037397
121
+ },
122
+ {
123
+ "date": "2025-12-31",
124
+ "open": 6.872,
125
+ "high": 6.94,
126
+ "low": 6.794,
127
+ "close": 6.794,
128
+ "volume": 4186102
129
+ },
130
+ {
131
+ "date": "2026-01-02",
132
+ "open": 6.878,
133
+ "high": 7.066,
134
+ "low": 6.874,
135
+ "close": 6.99,
136
+ "volume": 5827756
137
+ },
138
+ {
139
+ "date": "2026-01-05",
140
+ "open": 7.066,
141
+ "high": 7.07,
142
+ "low": 6.94,
143
+ "close": 6.95,
144
+ "volume": 6205772
145
+ },
146
+ {
147
+ "date": "2026-01-07",
148
+ "open": 6.99,
149
+ "high": 7.14,
150
+ "low": 6.92,
151
+ "close": 7.12,
152
+ "volume": 24908887
153
+ },
154
+ {
155
+ "date": "2026-01-08",
156
+ "open": 7.178,
157
+ "high": 7.55,
158
+ "low": 7.162,
159
+ "close": 7.55,
160
+ "volume": 12638170
161
+ },
162
+ {
163
+ "date": "2026-01-09",
164
+ "open": 7.5,
165
+ "high": 7.61,
166
+ "low": 7.42,
167
+ "close": 7.56,
168
+ "volume": 8245496
169
+ },
170
+ {
171
+ "date": "2026-01-12",
172
+ "open": 7.56,
173
+ "high": 7.742,
174
+ "low": 7.546,
175
+ "close": 7.71,
176
+ "volume": 8284531
177
+ },
178
+ {
179
+ "date": "2026-01-13",
180
+ "open": 7.73,
181
+ "high": 7.848,
182
+ "low": 7.638,
183
+ "close": 7.848,
184
+ "volume": 8839417
185
+ },
186
+ {
187
+ "date": "2026-01-14",
188
+ "open": 7.82,
189
+ "high": 7.89,
190
+ "low": 7.794,
191
+ "close": 7.89,
192
+ "volume": 4625131
193
+ },
194
+ {
195
+ "date": "2026-01-15",
196
+ "open": 7.89,
197
+ "high": 7.992,
198
+ "low": 7.824,
199
+ "close": 7.992,
200
+ "volume": 5028642
201
+ },
202
+ {
203
+ "date": "2026-01-16",
204
+ "open": 7.992,
205
+ "high": 8.124,
206
+ "low": 7.926,
207
+ "close": 8.1,
208
+ "volume": 5294858
209
+ },
210
+ {
211
+ "date": "2026-01-19",
212
+ "open": 7.94,
213
+ "high": 8.26,
214
+ "low": 7.886,
215
+ "close": 8.26,
216
+ "volume": 5715488
217
+ },
218
+ {
219
+ "date": "2026-01-20",
220
+ "open": 8.222,
221
+ "high": 8.222,
222
+ "low": 7.958,
223
+ "close": 8.042,
224
+ "volume": 5005109
225
+ },
226
+ {
227
+ "date": "2026-01-21",
228
+ "open": 8.02,
229
+ "high": 8.252,
230
+ "low": 7.872,
231
+ "close": 8.204,
232
+ "volume": 6157113
233
+ },
234
+ {
235
+ "date": "2026-01-22",
236
+ "open": 8.33,
237
+ "high": 8.436,
238
+ "low": 8.33,
239
+ "close": 8.41,
240
+ "volume": 11114061
241
+ },
242
+ {
243
+ "date": "2026-01-23",
244
+ "open": 8.41,
245
+ "high": 8.444,
246
+ "low": 8.24,
247
+ "close": 8.264,
248
+ "volume": 3315020
249
+ },
250
+ {
251
+ "date": "2026-01-26",
252
+ "open": 8.24,
253
+ "high": 8.414,
254
+ "low": 8.224,
255
+ "close": 8.26,
256
+ "volume": 4768444
257
+ },
258
+ {
259
+ "date": "2026-01-27",
260
+ "open": 8.38,
261
+ "high": 8.62,
262
+ "low": 8.38,
263
+ "close": 8.57,
264
+ "volume": 9133433
265
+ },
266
+ {
267
+ "date": "2026-01-28",
268
+ "open": 8.642,
269
+ "high": 8.776,
270
+ "low": 8.614,
271
+ "close": 8.776,
272
+ "volume": 11629775
273
+ },
274
+ {
275
+ "date": "2026-01-29",
276
+ "open": 8.68,
277
+ "high": 8.99,
278
+ "low": 8.56,
279
+ "close": 8.644,
280
+ "volume": 10763538
281
+ },
282
+ {
283
+ "date": "2026-01-30",
284
+ "open": 8.64,
285
+ "high": 8.71,
286
+ "low": 8.51,
287
+ "close": 8.51,
288
+ "volume": 6211732
289
+ },
290
+ {
291
+ "date": "2026-02-02",
292
+ "open": 8.55,
293
+ "high": 8.666,
294
+ "low": 8.358,
295
+ "close": 8.614,
296
+ "volume": 5199649
297
+ },
298
+ {
299
+ "date": "2026-02-03",
300
+ "open": 8.788,
301
+ "high": 8.832,
302
+ "low": 8.714,
303
+ "close": 8.76,
304
+ "volume": 4431229
305
+ },
306
+ {
307
+ "date": "2026-02-04",
308
+ "open": 8.82,
309
+ "high": 8.98,
310
+ "low": 8.752,
311
+ "close": 8.98,
312
+ "volume": 4264675
313
+ },
314
+ {
315
+ "date": "2026-02-05",
316
+ "open": 8.89,
317
+ "high": 8.904,
318
+ "low": 8.642,
319
+ "close": 8.684,
320
+ "volume": 5258261
321
+ },
322
+ {
323
+ "date": "2026-02-06",
324
+ "open": 8.65,
325
+ "high": 8.85,
326
+ "low": 8.504,
327
+ "close": 8.85,
328
+ "volume": 4736204
329
+ },
330
+ {
331
+ "date": "2026-02-09",
332
+ "open": 8.98,
333
+ "high": 8.98,
334
+ "low": 8.554,
335
+ "close": 8.72,
336
+ "volume": 5458496
337
+ },
338
+ {
339
+ "date": "2026-02-10",
340
+ "open": 8.79,
341
+ "high": 8.858,
342
+ "low": 8.598,
343
+ "close": 8.766,
344
+ "volume": 4073854
345
+ },
346
+ {
347
+ "date": "2026-02-11",
348
+ "open": 8.766,
349
+ "high": 8.766,
350
+ "low": 8.584,
351
+ "close": 8.636,
352
+ "volume": 3710800
353
+ },
354
+ {
355
+ "date": "2026-02-12",
356
+ "open": 8.77,
357
+ "high": 8.958,
358
+ "low": 8.7,
359
+ "close": 8.7,
360
+ "volume": 3981617
361
+ },
362
+ {
363
+ "date": "2026-02-13",
364
+ "open": 8.56,
365
+ "high": 8.65,
366
+ "low": 8.252,
367
+ "close": 8.286,
368
+ "volume": 6557617
369
+ },
370
+ {
371
+ "date": "2026-02-16",
372
+ "open": 8.42,
373
+ "high": 8.42,
374
+ "low": 8.122,
375
+ "close": 8.196,
376
+ "volume": 4905081
377
+ },
378
+ {
379
+ "date": "2026-02-17",
380
+ "open": 8.15,
381
+ "high": 8.272,
382
+ "low": 8.01,
383
+ "close": 8.07,
384
+ "volume": 5388222
385
+ },
386
+ {
387
+ "date": "2026-02-18",
388
+ "open": 8.2,
389
+ "high": 8.544,
390
+ "low": 8.102,
391
+ "close": 8.544,
392
+ "volume": 5845905
393
+ },
394
+ {
395
+ "date": "2026-02-19",
396
+ "open": 8.54,
397
+ "high": 8.54,
398
+ "low": 8.11,
399
+ "close": 8.18,
400
+ "volume": 3127063
401
+ },
402
+ {
403
+ "date": "2026-02-20",
404
+ "open": 8.24,
405
+ "high": 8.298,
406
+ "low": 8.042,
407
+ "close": 8.098,
408
+ "volume": 2756569
409
+ },
410
+ {
411
+ "date": "2026-02-24",
412
+ "open": 7.988,
413
+ "high": 8.06,
414
+ "low": 7.8,
415
+ "close": 7.812,
416
+ "volume": 7804217
417
+ },
418
+ {
419
+ "date": "2026-02-25",
420
+ "open": 7.896,
421
+ "high": 8.156,
422
+ "low": 7.896,
423
+ "close": 8.05,
424
+ "volume": 5073692
425
+ },
426
+ {
427
+ "date": "2026-02-26",
428
+ "open": 8.21,
429
+ "high": 8.38,
430
+ "low": 8.026,
431
+ "close": 8.124,
432
+ "volume": 5847365
433
+ },
434
+ {
435
+ "date": "2026-02-27",
436
+ "open": 8.074,
437
+ "high": 8.17,
438
+ "low": 8.018,
439
+ "close": 8.12,
440
+ "volume": 8267282
441
+ },
442
+ {
443
+ "date": "2026-03-02",
444
+ "open": 7.6,
445
+ "high": 7.818,
446
+ "low": 7.554,
447
+ "close": 7.57,
448
+ "volume": 7735426
449
+ },
450
+ {
451
+ "date": "2026-03-03",
452
+ "open": 7.42,
453
+ "high": 7.42,
454
+ "low": 6.95,
455
+ "close": 7.102,
456
+ "volume": 12631774
457
+ },
458
+ {
459
+ "date": "2026-03-04",
460
+ "open": 7.102,
461
+ "high": 7.49,
462
+ "low": 7.102,
463
+ "close": 7.444,
464
+ "volume": 9542266
465
+ },
466
+ {
467
+ "date": "2026-03-05",
468
+ "open": 7.372,
469
+ "high": 7.73,
470
+ "low": 7.358,
471
+ "close": 7.58,
472
+ "volume": 8904222
473
+ },
474
+ {
475
+ "date": "2026-03-06",
476
+ "open": 7.58,
477
+ "high": 7.588,
478
+ "low": 7.162,
479
+ "close": 7.2,
480
+ "volume": 6142548
481
+ }
482
+ ]
shared/data/ohlcv/QUEST.json ADDED
@@ -0,0 +1,482 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "date": "2025-12-05",
4
+ "open": 7.04,
5
+ "high": 7.05,
6
+ "low": 7.01,
7
+ "close": 7.02,
8
+ "volume": 23835
9
+ },
10
+ {
11
+ "date": "2025-12-08",
12
+ "open": 7.0,
13
+ "high": 7.1,
14
+ "low": 7.0,
15
+ "close": 7.04,
16
+ "volume": 72172
17
+ },
18
+ {
19
+ "date": "2025-12-09",
20
+ "open": 7.05,
21
+ "high": 7.07,
22
+ "low": 6.92,
23
+ "close": 6.92,
24
+ "volume": 50070
25
+ },
26
+ {
27
+ "date": "2025-12-10",
28
+ "open": 7.04,
29
+ "high": 7.04,
30
+ "low": 6.88,
31
+ "close": 7.04,
32
+ "volume": 19614
33
+ },
34
+ {
35
+ "date": "2025-12-11",
36
+ "open": 7.04,
37
+ "high": 7.18,
38
+ "low": 7.02,
39
+ "close": 7.18,
40
+ "volume": 54963
41
+ },
42
+ {
43
+ "date": "2025-12-12",
44
+ "open": 7.15,
45
+ "high": 7.22,
46
+ "low": 7.11,
47
+ "close": 7.22,
48
+ "volume": 17933
49
+ },
50
+ {
51
+ "date": "2025-12-15",
52
+ "open": 7.21,
53
+ "high": 7.21,
54
+ "low": 6.92,
55
+ "close": 7.14,
56
+ "volume": 160882
57
+ },
58
+ {
59
+ "date": "2025-12-16",
60
+ "open": 7.17,
61
+ "high": 7.17,
62
+ "low": 6.92,
63
+ "close": 7.08,
64
+ "volume": 87967
65
+ },
66
+ {
67
+ "date": "2025-12-17",
68
+ "open": 7.07,
69
+ "high": 7.07,
70
+ "low": 6.95,
71
+ "close": 7.0,
72
+ "volume": 25274
73
+ },
74
+ {
75
+ "date": "2025-12-18",
76
+ "open": 6.99,
77
+ "high": 7.01,
78
+ "low": 6.9,
79
+ "close": 6.98,
80
+ "volume": 47648
81
+ },
82
+ {
83
+ "date": "2025-12-19",
84
+ "open": 7.04,
85
+ "high": 7.04,
86
+ "low": 6.9,
87
+ "close": 6.9,
88
+ "volume": 83029
89
+ },
90
+ {
91
+ "date": "2025-12-22",
92
+ "open": 6.84,
93
+ "high": 7.0,
94
+ "low": 6.78,
95
+ "close": 7.0,
96
+ "volume": 60602
97
+ },
98
+ {
99
+ "date": "2025-12-23",
100
+ "open": 7.0,
101
+ "high": 7.05,
102
+ "low": 6.92,
103
+ "close": 6.98,
104
+ "volume": 23182
105
+ },
106
+ {
107
+ "date": "2025-12-29",
108
+ "open": 6.98,
109
+ "high": 7.04,
110
+ "low": 6.9,
111
+ "close": 7.04,
112
+ "volume": 24333
113
+ },
114
+ {
115
+ "date": "2025-12-30",
116
+ "open": 7.0,
117
+ "high": 7.09,
118
+ "low": 6.97,
119
+ "close": 7.09,
120
+ "volume": 16669
121
+ },
122
+ {
123
+ "date": "2025-12-31",
124
+ "open": 7.01,
125
+ "high": 7.06,
126
+ "low": 6.93,
127
+ "close": 7.06,
128
+ "volume": 43544
129
+ },
130
+ {
131
+ "date": "2026-01-02",
132
+ "open": 7.11,
133
+ "high": 7.12,
134
+ "low": 7.04,
135
+ "close": 7.05,
136
+ "volume": 9904
137
+ },
138
+ {
139
+ "date": "2026-01-05",
140
+ "open": 7.08,
141
+ "high": 7.16,
142
+ "low": 7.04,
143
+ "close": 7.16,
144
+ "volume": 10157
145
+ },
146
+ {
147
+ "date": "2026-01-07",
148
+ "open": 7.16,
149
+ "high": 7.2,
150
+ "low": 7.11,
151
+ "close": 7.2,
152
+ "volume": 21575
153
+ },
154
+ {
155
+ "date": "2026-01-08",
156
+ "open": 7.2,
157
+ "high": 7.22,
158
+ "low": 7.12,
159
+ "close": 7.12,
160
+ "volume": 19618
161
+ },
162
+ {
163
+ "date": "2026-01-09",
164
+ "open": 7.14,
165
+ "high": 7.14,
166
+ "low": 7.04,
167
+ "close": 7.1,
168
+ "volume": 7826
169
+ },
170
+ {
171
+ "date": "2026-01-12",
172
+ "open": 7.09,
173
+ "high": 7.09,
174
+ "low": 6.95,
175
+ "close": 6.95,
176
+ "volume": 33230
177
+ },
178
+ {
179
+ "date": "2026-01-13",
180
+ "open": 6.96,
181
+ "high": 6.99,
182
+ "low": 6.92,
183
+ "close": 6.95,
184
+ "volume": 10545
185
+ },
186
+ {
187
+ "date": "2026-01-14",
188
+ "open": 7.01,
189
+ "high": 7.01,
190
+ "low": 6.89,
191
+ "close": 7.0,
192
+ "volume": 35374
193
+ },
194
+ {
195
+ "date": "2026-01-15",
196
+ "open": 6.99,
197
+ "high": 6.99,
198
+ "low": 6.89,
199
+ "close": 6.92,
200
+ "volume": 25942
201
+ },
202
+ {
203
+ "date": "2026-01-16",
204
+ "open": 6.92,
205
+ "high": 6.98,
206
+ "low": 6.89,
207
+ "close": 6.95,
208
+ "volume": 25315
209
+ },
210
+ {
211
+ "date": "2026-01-19",
212
+ "open": 6.97,
213
+ "high": 6.97,
214
+ "low": 6.84,
215
+ "close": 6.84,
216
+ "volume": 50277
217
+ },
218
+ {
219
+ "date": "2026-01-20",
220
+ "open": 6.86,
221
+ "high": 6.88,
222
+ "low": 6.78,
223
+ "close": 6.78,
224
+ "volume": 29792
225
+ },
226
+ {
227
+ "date": "2026-01-21",
228
+ "open": 6.74,
229
+ "high": 6.79,
230
+ "low": 6.72,
231
+ "close": 6.72,
232
+ "volume": 41739
233
+ },
234
+ {
235
+ "date": "2026-01-22",
236
+ "open": 6.72,
237
+ "high": 6.98,
238
+ "low": 6.72,
239
+ "close": 6.98,
240
+ "volume": 22662
241
+ },
242
+ {
243
+ "date": "2026-01-23",
244
+ "open": 6.97,
245
+ "high": 7.09,
246
+ "low": 6.92,
247
+ "close": 7.09,
248
+ "volume": 27948
249
+ },
250
+ {
251
+ "date": "2026-01-26",
252
+ "open": 7.09,
253
+ "high": 7.09,
254
+ "low": 7.0,
255
+ "close": 7.0,
256
+ "volume": 13080
257
+ },
258
+ {
259
+ "date": "2026-01-27",
260
+ "open": 7.06,
261
+ "high": 7.09,
262
+ "low": 6.93,
263
+ "close": 7.03,
264
+ "volume": 12898
265
+ },
266
+ {
267
+ "date": "2026-01-28",
268
+ "open": 7.05,
269
+ "high": 7.05,
270
+ "low": 6.85,
271
+ "close": 6.97,
272
+ "volume": 31664
273
+ },
274
+ {
275
+ "date": "2026-01-29",
276
+ "open": 6.87,
277
+ "high": 7.05,
278
+ "low": 6.87,
279
+ "close": 7.04,
280
+ "volume": 18443
281
+ },
282
+ {
283
+ "date": "2026-01-30",
284
+ "open": 7.0,
285
+ "high": 7.04,
286
+ "low": 6.94,
287
+ "close": 7.04,
288
+ "volume": 14332
289
+ },
290
+ {
291
+ "date": "2026-02-02",
292
+ "open": 6.99,
293
+ "high": 7.04,
294
+ "low": 6.92,
295
+ "close": 7.04,
296
+ "volume": 13830
297
+ },
298
+ {
299
+ "date": "2026-02-03",
300
+ "open": 7.0,
301
+ "high": 7.07,
302
+ "low": 6.96,
303
+ "close": 7.03,
304
+ "volume": 24253
305
+ },
306
+ {
307
+ "date": "2026-02-04",
308
+ "open": 7.0,
309
+ "high": 7.08,
310
+ "low": 6.93,
311
+ "close": 7.08,
312
+ "volume": 23806
313
+ },
314
+ {
315
+ "date": "2026-02-05",
316
+ "open": 7.08,
317
+ "high": 7.08,
318
+ "low": 6.93,
319
+ "close": 6.95,
320
+ "volume": 26779
321
+ },
322
+ {
323
+ "date": "2026-02-06",
324
+ "open": 6.93,
325
+ "high": 6.95,
326
+ "low": 6.82,
327
+ "close": 6.95,
328
+ "volume": 37106
329
+ },
330
+ {
331
+ "date": "2026-02-09",
332
+ "open": 6.99,
333
+ "high": 6.99,
334
+ "low": 6.88,
335
+ "close": 6.92,
336
+ "volume": 19754
337
+ },
338
+ {
339
+ "date": "2026-02-10",
340
+ "open": 6.92,
341
+ "high": 6.92,
342
+ "low": 6.82,
343
+ "close": 6.92,
344
+ "volume": 15479
345
+ },
346
+ {
347
+ "date": "2026-02-11",
348
+ "open": 6.9,
349
+ "high": 6.93,
350
+ "low": 6.81,
351
+ "close": 6.93,
352
+ "volume": 15060
353
+ },
354
+ {
355
+ "date": "2026-02-12",
356
+ "open": 6.96,
357
+ "high": 7.02,
358
+ "low": 6.96,
359
+ "close": 7.02,
360
+ "volume": 12360
361
+ },
362
+ {
363
+ "date": "2026-02-13",
364
+ "open": 6.93,
365
+ "high": 6.95,
366
+ "low": 6.85,
367
+ "close": 6.91,
368
+ "volume": 19452
369
+ },
370
+ {
371
+ "date": "2026-02-16",
372
+ "open": 6.97,
373
+ "high": 6.97,
374
+ "low": 6.84,
375
+ "close": 6.92,
376
+ "volume": 12315
377
+ },
378
+ {
379
+ "date": "2026-02-17",
380
+ "open": 6.91,
381
+ "high": 6.91,
382
+ "low": 6.79,
383
+ "close": 6.91,
384
+ "volume": 9982
385
+ },
386
+ {
387
+ "date": "2026-02-18",
388
+ "open": 6.83,
389
+ "high": 6.96,
390
+ "low": 6.83,
391
+ "close": 6.96,
392
+ "volume": 16181
393
+ },
394
+ {
395
+ "date": "2026-02-19",
396
+ "open": 6.95,
397
+ "high": 6.99,
398
+ "low": 6.83,
399
+ "close": 6.87,
400
+ "volume": 13074
401
+ },
402
+ {
403
+ "date": "2026-02-20",
404
+ "open": 6.85,
405
+ "high": 6.87,
406
+ "low": 6.81,
407
+ "close": 6.84,
408
+ "volume": 12502
409
+ },
410
+ {
411
+ "date": "2026-02-24",
412
+ "open": 6.84,
413
+ "high": 6.84,
414
+ "low": 6.7,
415
+ "close": 6.71,
416
+ "volume": 21598
417
+ },
418
+ {
419
+ "date": "2026-02-25",
420
+ "open": 6.7,
421
+ "high": 6.75,
422
+ "low": 6.67,
423
+ "close": 6.7,
424
+ "volume": 16793
425
+ },
426
+ {
427
+ "date": "2026-02-26",
428
+ "open": 6.68,
429
+ "high": 6.87,
430
+ "low": 6.68,
431
+ "close": 6.86,
432
+ "volume": 8007
433
+ },
434
+ {
435
+ "date": "2026-02-27",
436
+ "open": 6.9,
437
+ "high": 6.92,
438
+ "low": 6.82,
439
+ "close": 6.83,
440
+ "volume": 37723
441
+ },
442
+ {
443
+ "date": "2026-03-02",
444
+ "open": 6.63,
445
+ "high": 6.78,
446
+ "low": 6.6,
447
+ "close": 6.69,
448
+ "volume": 26782
449
+ },
450
+ {
451
+ "date": "2026-03-03",
452
+ "open": 6.67,
453
+ "high": 6.67,
454
+ "low": 6.44,
455
+ "close": 6.56,
456
+ "volume": 35316
457
+ },
458
+ {
459
+ "date": "2026-03-04",
460
+ "open": 6.56,
461
+ "high": 6.65,
462
+ "low": 6.45,
463
+ "close": 6.58,
464
+ "volume": 37078
465
+ },
466
+ {
467
+ "date": "2026-03-05",
468
+ "open": 6.59,
469
+ "high": 6.66,
470
+ "low": 6.22,
471
+ "close": 6.39,
472
+ "volume": 50524
473
+ },
474
+ {
475
+ "date": "2026-03-06",
476
+ "open": 6.4,
477
+ "high": 6.42,
478
+ "low": 6.28,
479
+ "close": 6.31,
480
+ "volume": 33267
481
+ }
482
+ ]
shared/data/ohlcv/TSLA.json ADDED
@@ -0,0 +1,482 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "date": "2025-12-09",
4
+ "open": 375.8469,
5
+ "high": 388.603,
6
+ "low": 374.2663,
7
+ "close": 382.401,
8
+ "volume": 62367400
9
+ },
10
+ {
11
+ "date": "2025-12-10",
12
+ "open": 383.6068,
13
+ "high": 392.9031,
14
+ "low": 381.4913,
15
+ "close": 388.2335,
16
+ "volume": 63257500
17
+ },
18
+ {
19
+ "date": "2025-12-11",
20
+ "open": 383.6772,
21
+ "high": 383.9506,
22
+ "low": 376.3104,
23
+ "close": 381.9167,
24
+ "volume": 55979500
25
+ },
26
+ {
27
+ "date": "2025-12-12",
28
+ "open": 381.6965,
29
+ "high": 394.4058,
30
+ "low": 376.2278,
31
+ "close": 390.9559,
32
+ "volume": 95656700
33
+ },
34
+ {
35
+ "date": "2025-12-15",
36
+ "open": 399.9441,
37
+ "high": 410.4488,
38
+ "low": 398.4276,
39
+ "close": 404.9451,
40
+ "volume": 114542200
41
+ },
42
+ {
43
+ "date": "2025-12-16",
44
+ "open": 401.7232,
45
+ "high": 418.1338,
46
+ "low": 396.2955,
47
+ "close": 416.7556,
48
+ "volume": 107608100
49
+ },
50
+ {
51
+ "date": "2025-12-17",
52
+ "open": 415.524,
53
+ "high": 421.5328,
54
+ "low": 396.7828,
55
+ "close": 397.685,
56
+ "volume": 106490400
57
+ },
58
+ {
59
+ "date": "2025-12-18",
60
+ "open": 407.2106,
61
+ "high": 418.0262,
62
+ "low": 402.9185,
63
+ "close": 411.6476,
64
+ "volume": 95168400
65
+ },
66
+ {
67
+ "date": "2025-12-19",
68
+ "open": 416.2834,
69
+ "high": 418.3046,
70
+ "low": 404.8555,
71
+ "close": 410.3818,
72
+ "volume": 103305400
73
+ },
74
+ {
75
+ "date": "2025-12-22",
76
+ "open": 418.4114,
77
+ "high": 426.0557,
78
+ "low": 414.5252,
79
+ "close": 417.4292,
80
+ "volume": 86916100
81
+ },
82
+ {
83
+ "date": "2025-12-23",
84
+ "open": 415.9459,
85
+ "high": 418.1302,
86
+ "low": 410.3705,
87
+ "close": 412.6823,
88
+ "volume": 58223600
89
+ },
90
+ {
91
+ "date": "2025-12-24",
92
+ "open": 414.1236,
93
+ "high": 416.1752,
94
+ "low": 404.2215,
95
+ "close": 411.5124,
96
+ "volume": 41285400
97
+ },
98
+ {
99
+ "date": "2025-12-26",
100
+ "open": 411.7225,
101
+ "high": 414.9978,
102
+ "low": 402.041,
103
+ "close": 403.2035,
104
+ "volume": 58780700
105
+ },
106
+ {
107
+ "date": "2025-12-29",
108
+ "open": 398.378,
109
+ "high": 398.7177,
110
+ "low": 389.8838,
111
+ "close": 390.4274,
112
+ "volume": 66263000
113
+ },
114
+ {
115
+ "date": "2025-12-30",
116
+ "open": 391.6545,
117
+ "high": 393.3788,
118
+ "low": 385.4877,
119
+ "close": 385.9974,
120
+ "volume": 59238500
121
+ },
122
+ {
123
+ "date": "2025-12-31",
124
+ "open": 388.2597,
125
+ "high": 388.6427,
126
+ "low": 382.4711,
127
+ "close": 382.8286,
128
+ "volume": 49078000
129
+ },
130
+ {
131
+ "date": "2026-01-02",
132
+ "open": 389.6015,
133
+ "high": 390.0611,
134
+ "low": 370.4533,
135
+ "close": 372.8107,
136
+ "volume": 85535400
137
+ },
138
+ {
139
+ "date": "2026-01-05",
140
+ "open": 382.7447,
141
+ "high": 390.9124,
142
+ "low": 379.8228,
143
+ "close": 385.8888,
144
+ "volume": 67940800
145
+ },
146
+ {
147
+ "date": "2026-01-06",
148
+ "open": 381.0344,
149
+ "high": 382.6307,
150
+ "low": 366.0109,
151
+ "close": 369.579,
152
+ "volume": 89093800
153
+ },
154
+ {
155
+ "date": "2026-01-07",
156
+ "open": 372.9386,
157
+ "high": 375.0518,
158
+ "low": 368.9945,
159
+ "close": 369.0971,
160
+ "volume": 59828800
161
+ },
162
+ {
163
+ "date": "2026-01-08",
164
+ "open": 366.445,
165
+ "high": 374.1526,
166
+ "low": 363.4305,
167
+ "close": 373.2191,
168
+ "volume": 57041100
169
+ },
170
+ {
171
+ "date": "2026-01-09",
172
+ "open": 373.9536,
173
+ "high": 385.1906,
174
+ "low": 369.1843,
175
+ "close": 381.7251,
176
+ "volume": 67331500
177
+ },
178
+ {
179
+ "date": "2026-01-12",
180
+ "open": 379.5946,
181
+ "high": 390.8388,
182
+ "low": 376.8158,
183
+ "close": 386.2448,
184
+ "volume": 61649600
185
+ },
186
+ {
187
+ "date": "2026-01-13",
188
+ "open": 385.8754,
189
+ "high": 387.2554,
190
+ "low": 380.5184,
191
+ "close": 383.3041,
192
+ "volume": 53719200
193
+ },
194
+ {
195
+ "date": "2026-01-14",
196
+ "open": 380.3384,
197
+ "high": 381.2832,
198
+ "low": 372.9602,
199
+ "close": 377.2377,
200
+ "volume": 57259500
201
+ },
202
+ {
203
+ "date": "2026-01-15",
204
+ "open": 378.7719,
205
+ "high": 382.4039,
206
+ "low": 375.7838,
207
+ "close": 376.5738,
208
+ "volume": 49465800
209
+ },
210
+ {
211
+ "date": "2026-01-16",
212
+ "open": 378.5853,
213
+ "high": 385.2612,
214
+ "low": 374.933,
215
+ "close": 376.8625,
216
+ "volume": 60220600
217
+ },
218
+ {
219
+ "date": "2026-01-20",
220
+ "open": 368.8932,
221
+ "high": 370.0703,
222
+ "low": 358.6519,
223
+ "close": 360.207,
224
+ "volume": 63187300
225
+ },
226
+ {
227
+ "date": "2026-01-21",
228
+ "open": 359.5368,
229
+ "high": 373.64,
230
+ "low": 357.7974,
231
+ "close": 367.8759,
232
+ "volume": 68124000
233
+ },
234
+ {
235
+ "date": "2026-01-22",
236
+ "open": 372.7929,
237
+ "high": 385.0777,
238
+ "low": 370.6255,
239
+ "close": 384.9577,
240
+ "volume": 71546700
241
+ },
242
+ {
243
+ "date": "2026-01-23",
244
+ "open": 380.6421,
245
+ "high": 384.8958,
246
+ "low": 377.7582,
247
+ "close": 382.0288,
248
+ "volume": 56771400
249
+ },
250
+ {
251
+ "date": "2026-01-26",
252
+ "open": 375.2596,
253
+ "high": 375.2933,
254
+ "low": 366.2196,
255
+ "close": 366.9955,
256
+ "volume": 49397400
257
+ },
258
+ {
259
+ "date": "2026-01-27",
260
+ "open": 368.2992,
261
+ "high": 368.3918,
262
+ "low": 362.641,
263
+ "close": 362.8178,
264
+ "volume": 37733100
265
+ },
266
+ {
267
+ "date": "2026-01-28",
268
+ "open": 359.3966,
269
+ "high": 364.6805,
270
+ "low": 357.8905,
271
+ "close": 359.0222,
272
+ "volume": 54857400
273
+ },
274
+ {
275
+ "date": "2026-01-29",
276
+ "open": 365.5105,
277
+ "high": 367.5392,
278
+ "low": 346.1579,
279
+ "close": 347.7776,
280
+ "volume": 81686100
281
+ },
282
+ {
283
+ "date": "2026-01-30",
284
+ "open": 355.4735,
285
+ "high": 367.6165,
286
+ "low": 353.2589,
287
+ "close": 359.7022,
288
+ "volume": 82626100
289
+ },
290
+ {
291
+ "date": "2026-02-02",
292
+ "open": 355.5435,
293
+ "high": 360.489,
294
+ "low": 349.8131,
295
+ "close": 355.9823,
296
+ "volume": 58739500
297
+ },
298
+ {
299
+ "date": "2026-02-03",
300
+ "open": 359.59,
301
+ "high": 363.226,
302
+ "low": 350.623,
303
+ "close": 357.6322,
304
+ "volume": 56886500
305
+ },
306
+ {
307
+ "date": "2026-02-04",
308
+ "open": 355.8353,
309
+ "high": 358.7466,
310
+ "low": 337.826,
311
+ "close": 343.6063,
312
+ "volume": 74606900
313
+ },
314
+ {
315
+ "date": "2026-02-05",
316
+ "open": 336.4109,
317
+ "high": 340.7154,
318
+ "low": 328.3697,
319
+ "close": 336.5719,
320
+ "volume": 72819800
321
+ },
322
+ {
323
+ "date": "2026-02-06",
324
+ "open": 340.3587,
325
+ "high": 351.9737,
326
+ "low": 337.7096,
327
+ "close": 349.0529,
328
+ "volume": 62677100
329
+ },
330
+ {
331
+ "date": "2026-02-09",
332
+ "open": 346.624,
333
+ "high": 356.2132,
334
+ "low": 344.4085,
335
+ "close": 352.89,
336
+ "volume": 54484300
337
+ },
338
+ {
339
+ "date": "2026-02-10",
340
+ "open": 351.2081,
341
+ "high": 358.9114,
342
+ "low": 350.3008,
343
+ "close": 357.1977,
344
+ "volume": 64450200
345
+ },
346
+ {
347
+ "date": "2026-02-11",
348
+ "open": 359.9443,
349
+ "high": 367.0009,
350
+ "low": 353.2746,
351
+ "close": 360.205,
352
+ "volume": 57362000
353
+ },
354
+ {
355
+ "date": "2026-02-12",
356
+ "open": 362.3255,
357
+ "high": 367.3188,
358
+ "low": 348.6004,
359
+ "close": 351.1855,
360
+ "volume": 61933400
361
+ },
362
+ {
363
+ "date": "2026-02-13",
364
+ "open": 349.0852,
365
+ "high": 357.3002,
366
+ "low": 346.1952,
367
+ "close": 351.7224,
368
+ "volume": 51434100
369
+ },
370
+ {
371
+ "date": "2026-02-17",
372
+ "open": 347.9865,
373
+ "high": 349.1342,
374
+ "low": 337.9864,
375
+ "close": 346.5266,
376
+ "volume": 59678800
377
+ },
378
+ {
379
+ "date": "2026-02-18",
380
+ "open": 346.8741,
381
+ "high": 351.7594,
382
+ "low": 345.5831,
383
+ "close": 347.0513,
384
+ "volume": 45921400
385
+ },
386
+ {
387
+ "date": "2026-02-19",
388
+ "open": 345.4539,
389
+ "high": 352.24,
390
+ "low": 342.7903,
391
+ "close": 349.2371,
392
+ "volume": 51019600
393
+ },
394
+ {
395
+ "date": "2026-02-20",
396
+ "open": 346.9243,
397
+ "high": 352.3623,
398
+ "low": 344.5452,
399
+ "close": 349.9152,
400
+ "volume": 57912200
401
+ },
402
+ {
403
+ "date": "2026-02-23",
404
+ "open": 344.1478,
405
+ "high": 344.4943,
406
+ "low": 332.952,
407
+ "close": 337.8443,
408
+ "volume": 69680000
409
+ },
410
+ {
411
+ "date": "2026-02-24",
412
+ "open": 338.736,
413
+ "high": 348.3343,
414
+ "low": 337.159,
415
+ "close": 347.1133,
416
+ "volume": 58579500
417
+ },
418
+ {
419
+ "date": "2026-02-25",
420
+ "open": 350.0143,
421
+ "high": 356.9695,
422
+ "low": 350.0143,
423
+ "close": 354.4728,
424
+ "volume": 54809700
425
+ },
426
+ {
427
+ "date": "2026-02-26",
428
+ "open": 350.7527,
429
+ "high": 352.7755,
430
+ "low": 341.6457,
431
+ "close": 345.8098,
432
+ "volume": 53602500
433
+ },
434
+ {
435
+ "date": "2026-02-27",
436
+ "open": 341.3869,
437
+ "high": 344.9283,
438
+ "low": 337.2947,
439
+ "close": 341.0226,
440
+ "volume": 56890100
441
+ },
442
+ {
443
+ "date": "2026-03-02",
444
+ "open": 332.1584,
445
+ "high": 344.0127,
446
+ "low": 330.16,
447
+ "close": 342.9753,
448
+ "volume": 55088300
449
+ },
450
+ {
451
+ "date": "2026-03-03",
452
+ "open": 337.7624,
453
+ "high": 338.8311,
454
+ "low": 329.4699,
455
+ "close": 335.4884,
456
+ "volume": 62617300
457
+ },
458
+ {
459
+ "date": "2026-03-04",
460
+ "open": 342.6125,
461
+ "high": 351.6375,
462
+ "low": 339.7965,
463
+ "close": 349.5793,
464
+ "volume": 68305500
465
+ },
466
+ {
467
+ "date": "2026-03-05",
468
+ "open": 345.1213,
469
+ "high": 351.1803,
470
+ "low": 343.2735,
471
+ "close": 348.5418,
472
+ "volume": 51925900
473
+ },
474
+ {
475
+ "date": "2026-03-06",
476
+ "open": 342.9426,
477
+ "high": 346.6125,
478
+ "low": 339.6001,
479
+ "close": 341.771,
480
+ "volume": 63870200
481
+ }
482
+ ]
shared/data/order_id.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ 135
shared/data/securities.txt ADDED
@@ -0,0 +1,17 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #SYMBOL <start_price> <current_price>
2
+ ALPHA 3.45 3.43
3
+ PEIR 7.11 7.20
4
+ EXAE 6.30 7.00
5
+ QUEST 7.02 6.31
6
+ NBG 13.66 12.95
7
+ EUROB 3.41 3.57
8
+ AEG 14.36 11.58
9
+ INTKA 3.31 2.84
10
+ AAAK 6.35 4.96
11
+ ATTIK 1.81 1.61
12
+ AMZN 195.78 183.67
13
+ TSLA 382.40 341.77
14
+ NVDA 158.89 153.19
15
+ GOOGL 272.37 257.17
16
+ AAPL 237.88 221.79
17
+ ENX 124.50 142.40
shared_data/securities.txt DELETED
@@ -1,11 +0,0 @@
1
- #SYMBOL <start_price> <current_price>
2
- ALPHA 5.95 5.65
3
- PEIR 8.05 8.35
4
- EXAE 6.05 6.90
5
- QUEST 12.60 13.35
6
- NBG 8.05 8.00
7
- EUROB 3.20 3.45
8
- AEG 4.25 4.75
9
- INTKA 7.15 7.35
10
- AAAK 2.25 2.75
11
- ATTIK 4.15 4.9