Sam-max1 commited on
Commit
08f7dd2
·
verified ·
1 Parent(s): 5dfbd67

Deploy bare minimum codebase for nsedash

Browse files
nsedash/config.py CHANGED
@@ -171,6 +171,7 @@ class Paths:
171
 
172
  self.log_dir = self.base_dir / 'downloads'
173
  self.recommender_dir = self.data_dir / 'recommender'
 
174
 
175
  self.input_file = self.data_dir / 'nse_processed_data.parquet'
176
  self.extract_file = self.data_dir / 'nse_summary_data.parquet'
@@ -218,5 +219,5 @@ class Paths:
218
  return self.watchlist_dir / f"nse_dashboard_watchlist{n}.json"
219
 
220
  def ensure_dirs(self) -> None:
221
- for d in (self.data_dir, self.data_dir / 'watchlists', self.watchlist_dir, self.log_dir, self.recommender_dir):
222
  d.mkdir(parents=True, exist_ok=True)
 
171
 
172
  self.log_dir = self.base_dir / 'downloads'
173
  self.recommender_dir = self.data_dir / 'recommender'
174
+ self.aianalysis_dir = self.data_dir / 'aianalysis'
175
 
176
  self.input_file = self.data_dir / 'nse_processed_data.parquet'
177
  self.extract_file = self.data_dir / 'nse_summary_data.parquet'
 
219
  return self.watchlist_dir / f"nse_dashboard_watchlist{n}.json"
220
 
221
  def ensure_dirs(self) -> None:
222
+ for d in (self.data_dir, self.data_dir / 'watchlists', self.watchlist_dir, self.log_dir, self.recommender_dir, self.aianalysis_dir):
223
  d.mkdir(parents=True, exist_ok=True)
nsedash/core/nvidia_llm.py ADDED
@@ -0,0 +1,644 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ NVIDIA NIM LLM Wrapper with Intelligent Routing
3
+ ================================================
4
+ Maintains a curated registry of all 121 NVIDIA NIM free-tier models,
5
+ categorized and benchmarked by purpose. Provides intelligent routing
6
+ based on the request type (coding, reasoning, chat, memory, judge,
7
+ finance, vision, safety, translation, embedding).
8
+
9
+ Model Registry is stored in: utils/config/nvidia_model_registry.json
10
+ """
11
+
12
+ from typing import Any, Optional
13
+ import requests
14
+ import os
15
+ import json
16
+ import threading
17
+ import datetime
18
+
19
+ try:
20
+ import keyring
21
+ except ImportError:
22
+ keyring = None
23
+
24
+ try:
25
+ from crewai.llms.base_llm import BaseLLM
26
+ except ImportError:
27
+ class BaseLLM:
28
+ def __init__(self, **kwargs):
29
+ self.model = kwargs.get("model")
30
+ self.api_key = kwargs.get("api_key")
31
+
32
+ # ---------------------------------------------------------------------------
33
+ # Telemetry Token Tracking State
34
+ # ---------------------------------------------------------------------------
35
+ TOKEN_STATE_FILE = os.path.join(os.path.dirname(__file__), "token_state.json")
36
+ MODEL_REGISTRY_FILE = os.path.join(os.path.dirname(__file__), "nvidia_model_registry.json")
37
+ token_lock = threading.Lock()
38
+
39
+ def load_token_usage() -> dict:
40
+ with token_lock:
41
+ if os.path.exists(TOKEN_STATE_FILE):
42
+ try:
43
+ with open(TOKEN_STATE_FILE, "r") as f:
44
+ return json.load(f)
45
+ except Exception:
46
+ pass
47
+ return {"prompt_tokens": 0, "completion_tokens": 0, "total_tokens": 0}
48
+
49
+ def save_token_usage(usage: dict):
50
+ with token_lock:
51
+ try:
52
+ with open(TOKEN_STATE_FILE, "w") as f:
53
+ json.dump(usage, f, indent=4)
54
+ except Exception:
55
+ pass
56
+
57
+ def add_tokens(prompt: int, completion: int, model_id: str = ""):
58
+ usage = load_token_usage()
59
+ usage["prompt_tokens"] += prompt
60
+ usage["completion_tokens"] += completion
61
+ usage["total_tokens"] += (prompt + completion)
62
+ # Per-model telemetry
63
+ per_model = usage.setdefault("per_model", {})
64
+ entry = per_model.setdefault(model_id, {"prompt_tokens": 0, "completion_tokens": 0, "total_tokens": 0})
65
+ entry["prompt_tokens"] += prompt
66
+ entry["completion_tokens"] += completion
67
+ entry["total_tokens"] += (prompt + completion)
68
+ save_token_usage(usage)
69
+
70
+ def get_token_usage() -> dict:
71
+ return load_token_usage()
72
+
73
+ def reset_token_usage():
74
+ save_token_usage({"prompt_tokens": 0, "completion_tokens": 0, "total_tokens": 0})
75
+
76
+
77
+ # ---------------------------------------------------------------------------
78
+ # Curated Model Registry — Built from deep research on 121 NVIDIA NIM models
79
+ # ---------------------------------------------------------------------------
80
+ # Categories: coding, reasoning, chat, memory, judge, finance, vision,
81
+ # safety, translation, embedding, creative, fast
82
+ #
83
+ # Ratings: 5=exceptional, 4=excellent, 3=good, 2=decent, 1=basic
84
+ # Source: NVIDIA NIM catalog + community benchmarks (HumanEval, MMLU, etc.)
85
+ # ---------------------------------------------------------------------------
86
+
87
+ NVIDIA_MODEL_REGISTRY = {
88
+ # === CODING ===
89
+ # Best for: code generation, debugging, refactoring, code review, self-improvement agents
90
+ "coding": {
91
+ "primary": "deepseek-ai/deepseek-v4-pro",
92
+ "fallback": ["deepseek-ai/deepseek-v4-flash", "mistralai/codestral-22b-instruct-v0.1", "nvidia/llama-3.3-nemotron-super-49b-v1", "ibm/granite-34b-code-instruct", "meta/codellama-70b", "bigcode/starcoder2-15b", "deepseek-ai/deepseek-coder-6.7b-instruct"],
93
+ "models": {
94
+ "deepseek-ai/deepseek-v4-pro": {
95
+ "rating": 5, "context_window": 163840, "description": "State-of-the-art coding. Best for complex code generation, debugging, agentic coding. Beats GPT-4o on HumanEval.", "strengths": ["code_gen", "debugging", "refactor", "agentic"]
96
+ },
97
+ "deepseek-ai/deepseek-v4-flash": {
98
+ "rating": 4, "context_window": 163840, "description": "Fast version of DeepSeek V4. Excellent for iterative coding workflows needing low latency.", "strengths": ["code_gen", "fast", "agentic"]
99
+ },
100
+ "mistralai/codestral-22b-instruct-v0.1": {
101
+ "rating": 4, "context_window": 32768, "description": "Mistral's dedicated code model. Excellent for infilling, multi-language code, unit tests.", "strengths": ["code_gen", "infill", "test_gen"]
102
+ },
103
+ "nvidia/llama-3.3-nemotron-super-49b-v1": {
104
+ "rating": 4, "context_window": 128000, "description": "NVIDIA's tuned 49B model — excellent at coding + agentic planning + reasoning.", "strengths": ["code_gen", "reasoning", "agentic"]
105
+ },
106
+ "nvidia/llama-3.3-nemotron-super-49b-v1.5": {
107
+ "rating": 4, "context_window": 128000, "description": "Latest NVIDIA Nemotron Super 49B v1.5 — best NVIDIA native code+reasoning model.", "strengths": ["code_gen", "reasoning", "agentic"]
108
+ },
109
+ "ibm/granite-34b-code-instruct": {
110
+ "rating": 4, "context_window": 8192, "description": "IBM's dedicated code model, 34B. Strong at enterprise-grade code quality.", "strengths": ["code_gen", "enterprise"]
111
+ },
112
+ "ibm/granite-8b-code-instruct": {
113
+ "rating": 3, "context_window": 8192, "description": "IBM 8B code model — fast code completion with lower resource footprint.", "strengths": ["code_gen", "fast"]
114
+ },
115
+ "meta/codellama-70b": {
116
+ "rating": 3, "context_window": 16384, "description": "Meta's 70B CodeLlama — reliable baseline for code generation and completion.", "strengths": ["code_gen", "infill"]
117
+ },
118
+ "bigcode/starcoder2-15b": {
119
+ "rating": 3, "context_window": 16384, "description": "Open-source code model — strong at code completion, licensed models.", "strengths": ["code_gen", "infill", "open_source"]
120
+ },
121
+ "google/codegemma-1.1-7b": {
122
+ "rating": 3, "context_window": 8192, "description": "Google CodeGemma 7B — compact, fast code model.", "strengths": ["code_gen", "fast"]
123
+ },
124
+ "nvidia/nv-embedcode-7b-v1": {
125
+ "rating": 3, "context_window": 8192, "description": "Code embedding model — for semantic code search and similarity.", "strengths": ["embedding", "code_search"]
126
+ },
127
+ }
128
+ },
129
+
130
+ # === REASONING / COMPLEX TASKS ===
131
+ # Best for: multi-step reasoning, mathematical analysis, strategy planning, agentic workflows
132
+ "reasoning": {
133
+ "primary": "nvidia/nemotron-3-ultra-550b-a55b",
134
+ "fallback": ["qwen/qwen3.5-397b-a17b", "nvidia/llama-3.1-nemotron-ultra-253b-v1", "moonshotai/kimi-k2.6", "minimaxai/minimax-m3", "nvidia/llama-3.1-nemotron-70b-instruct", "z-ai/glm-5.2", "meta/llama-3.3-70b-instruct"],
135
+ "models": {
136
+ "nvidia/nemotron-3-ultra-550b-a55b": {
137
+ "rating": 5, "context_window": 128000, "description": "NVIDIA's 550B ultra model — frontier reasoning & agentic capability. Top-tier for complex multi-step tasks.", "strengths": ["reasoning", "agentic", "planning", "math"]
138
+ },
139
+ "qwen/qwen3.5-397b-a17b": {
140
+ "rating": 5, "context_window": 32768, "description": "Qwen3.5 397B MoE — exceptional reasoning and complex analysis. Top MMLU scores.", "strengths": ["reasoning", "analysis", "math"]
141
+ },
142
+ "nvidia/llama-3.1-nemotron-ultra-253b-v1": {
143
+ "rating": 5, "context_window": 128000, "description": "NVIDIA 253B ultra — powerful multi-turn reasoning and agentic planning.", "strengths": ["reasoning", "agentic", "planning"]
144
+ },
145
+ "moonshotai/kimi-k2.6": {
146
+ "rating": 4, "context_window": 131072, "description": "Moonshot Kimi K2.6 — exceptional long-context reasoning & analysis (128K context).", "strengths": ["reasoning", "long_context", "analysis"]
147
+ },
148
+ "minimaxai/minimax-m3": {
149
+ "rating": 4, "context_window": 40960, "description": "MiniMax M3 — excellent complex reasoning and long-form generation.", "strengths": ["reasoning", "complex_tasks"]
150
+ },
151
+ "minimaxai/minimax-m2.7": {
152
+ "rating": 4, "context_window": 40960, "description": "MiniMax M2.7 — strong reasoning, fast inference.", "strengths": ["reasoning", "fast"]
153
+ },
154
+ "nvidia/llama-3.1-nemotron-70b-instruct": {
155
+ "rating": 4, "context_window": 128000, "description": "NVIDIA Nemotron 70B — tuned for agentic reasoning and instruction-following.", "strengths": ["reasoning", "instruction", "agentic"]
156
+ },
157
+ "z-ai/glm-5.2": {
158
+ "rating": 4, "context_window": 128000, "description": "GLM-5.2 — excellent for long-horizon reasoning and agentic workflows.", "strengths": ["reasoning", "agentic", "long_context"]
159
+ },
160
+ "nvidia/nemotron-3-super-120b-a12b": {
161
+ "rating": 4, "context_window": 128000, "description": "NVIDIA 120B MoE super model — balanced reasoning + speed.", "strengths": ["reasoning", "agentic"]
162
+ },
163
+ "qwen/qwen3-next-80b-a3b-instruct": {
164
+ "rating": 4, "context_window": 32768, "description": "Qwen3 Next 80B — excellent reasoning + instruction following.", "strengths": ["reasoning", "instruction"]
165
+ },
166
+ "meta/llama-3.3-70b-instruct": {
167
+ "rating": 3, "context_window": 128000, "description": "Meta Llama 3.3 70B — solid general reasoning. Good 128K context.", "strengths": ["reasoning", "general"]
168
+ },
169
+ "meta/llama-4-maverick-17b-128e-instruct": {
170
+ "rating": 4, "context_window": 1000000, "description": "Llama 4 Maverick 17B MoE — 1M context window, excellent for very long-context analysis.", "strengths": ["reasoning", "long_context", "agentic"]
171
+ },
172
+ }
173
+ },
174
+
175
+ # === CHAT / GENERAL PURPOSE ===
176
+ # Best for: conversational Q&A, summarization, instruction-following
177
+ "chat": {
178
+ "primary": "meta/llama-3.1-8b-instruct",
179
+ "fallback": ["mistralai/mistral-large", "nvidia/llama-3.1-nemotron-51b-instruct", "meta/llama-3.3-70b-instruct", "mistralai/mistral-medium-3.5-128b", "mistralai/mistral-large-2-instruct", "mistralai/mistral-large-3-675b-instruct-2512", "mistralai/mistral-small-4-119b-2603"],
180
+ "models": {
181
+ "meta/llama-3.1-8b-instruct": {
182
+ "rating": 4, "context_window": 128000, "description": "Llama 3.1 8B — fast, reliable, excellent general chat. Default workhorse.", "strengths": ["chat", "instruction", "fast"]
183
+ },
184
+ "mistralai/mistral-large": {
185
+ "rating": 4, "context_window": 128000, "description": "Mistral Large — excellent instruction-following and conversational quality.", "strengths": ["chat", "instruction"]
186
+ },
187
+ "nvidia/llama-3.1-nemotron-51b-instruct": {
188
+ "rating": 4, "context_window": 128000, "description": "NVIDIA Nemotron 51B — strong conversational assistant, tuned for helpfulness.", "strengths": ["chat", "instruction", "helpful"]
189
+ },
190
+ "mistralai/mistral-medium-3.5-128b": {
191
+ "rating": 4, "context_window": 128000, "description": "Mistral Medium 3.5 — balanced medium-size model for rich conversational tasks.", "strengths": ["chat", "balanced"]
192
+ },
193
+ "mistralai/ministral-14b-instruct-2512": {
194
+ "rating": 3, "context_window": 32768, "description": "Mistral 14B — efficient medium model.", "strengths": ["chat", "fast"]
195
+ },
196
+ "mistralai/mixtral-8x7b-instruct-v0.1": {
197
+ "rating": 3, "context_window": 32768, "description": "Mixtral MoE 8x7B — fast, cost-efficient, good quality.", "strengths": ["chat", "fast", "moe"]
198
+ },
199
+ }
200
+ },
201
+
202
+ # === MEMORY / SUMMARIZATION ===
203
+ # Best for: MEMORY.md updates, long-context summarization, KB compression
204
+ "memory": {
205
+ "primary": "meta/llama-4-maverick-17b-128e-instruct",
206
+ "fallback": ["moonshotai/kimi-k2.6", "mistralai/mistral-large-2-instruct", "meta/llama-3.3-70b-instruct", "meta/llama-3.1-8b-instruct"],
207
+ "models": {
208
+ "meta/llama-4-maverick-17b-128e-instruct": {
209
+ "rating": 5, "context_window": 1000000, "description": "Llama 4 Maverick — 1M token context. Best for ingesting entire codebases or large memory files.", "strengths": ["summarization", "long_context", "memory"]
210
+ },
211
+ "moonshotai/kimi-k2.6": {
212
+ "rating": 4, "context_window": 131072, "description": "Kimi K2.6 — 128K context summarization. Excellent at extracting key information.", "strengths": ["summarization", "long_context"]
213
+ },
214
+ }
215
+ },
216
+
217
+ # === JUDGE / AUDIT ===
218
+ # Best for: LLM-as-a-Judge, evaluation, scoring, hallucination detection, trajectory auditing
219
+ "judge": {
220
+ "primary": "nvidia/nemotron-4-340b-reward",
221
+ "fallback": ["nvidia/nemotron-4-340b-instruct", "nvidia/llama-3.1-nemotron-ultra-253b-v1", "meta/llama-3.3-70b-instruct"],
222
+ "models": {
223
+ "nvidia/nemotron-4-340b-reward": {
224
+ "rating": 5, "context_window": 4096, "description": "NVIDIA Nemotron 340B Reward — purpose-built reward model for evaluation. Best LLM-as-a-judge.", "strengths": ["judge", "evaluation", "reward"]
225
+ },
226
+ "nvidia/nemotron-4-340b-instruct": {
227
+ "rating": 4, "context_window": 4096, "description": "NVIDIA Nemotron 340B instruct — strong judge for code and task evaluation.", "strengths": ["judge", "evaluation"]
228
+ },
229
+ }
230
+ },
231
+
232
+ # === FINANCE / DOMAIN ===
233
+ # Best for: financial analysis, report generation, portfolio optimization queries
234
+ "finance": {
235
+ "primary": "writer/palmyra-fin-70b-32k",
236
+ "fallback": ["stockmark/stockmark-2-100b-instruct", "meta/llama-3.3-70b-instruct", "mistralai/mistral-large"],
237
+ "models": {
238
+ "writer/palmyra-fin-70b-32k": {
239
+ "rating": 5, "context_window": 32768, "description": "Palmyra Finance 70B — purpose-built for financial documents, analysis, and reporting.", "strengths": ["finance", "analysis", "report"]
240
+ },
241
+ "stockmark/stockmark-2-100b-instruct": {
242
+ "rating": 4, "context_window": 32768, "description": "Stockmark 2 100B — trained on financial markets data. Excellent for stock analysis.", "strengths": ["finance", "markets", "analysis"]
243
+ },
244
+ }
245
+ },
246
+
247
+ # === VISION / MULTIMODAL ===
248
+ # Best for: image understanding, chart analysis, VLM-based tasks
249
+ "vision": {
250
+ "primary": "meta/llama-3.2-90b-vision-instruct",
251
+ "fallback": ["meta/llama-3.2-11b-vision-instruct", "microsoft/phi-3-vision-128k-instruct", "nvidia/llama-3.1-nemotron-nano-vl-8b-v1", "nvidia/neva-22b"],
252
+ "models": {
253
+ "meta/llama-3.2-90b-vision-instruct": {
254
+ "rating": 5, "context_window": 128000, "description": "Llama 3.2 90B Vision — best open-source VLM for complex chart/image understanding.", "strengths": ["vision", "chart_analysis", "vqa"]
255
+ },
256
+ "meta/llama-3.2-11b-vision-instruct": {
257
+ "rating": 4, "context_window": 128000, "description": "Llama 3.2 11B Vision — fast VLM for image Q&A and analysis.", "strengths": ["vision", "vqa", "fast"]
258
+ },
259
+ }
260
+ },
261
+
262
+ # === SAFETY / CONTENT MODERATION ===
263
+ # Best for: guardrails, PII detection, content safety checks, topic control
264
+ "safety": {
265
+ "primary": "nvidia/llama-3.1-nemoguard-8b-content-safety",
266
+ "fallback": ["meta/llama-guard-4-12b", "nvidia/llama-3.1-nemotron-safety-guard-8b-v3", "nvidia/nemotron-3-content-safety"],
267
+ "models": {
268
+ "nvidia/llama-3.1-nemoguard-8b-content-safety": {
269
+ "rating": 5, "context_window": 8192, "description": "NeMoGuard 8B Content Safety — purpose-built NVIDIA safety classifier.", "strengths": ["safety", "content_moderation"]
270
+ },
271
+ "meta/llama-guard-4-12b": {
272
+ "rating": 4, "context_window": 128000, "description": "Llama Guard 4 12B — Meta's safety model with 128K context.", "strengths": ["safety", "content_moderation"]
273
+ },
274
+ }
275
+ },
276
+
277
+ # === FAST / LIGHTWEIGHT ===
278
+ # Best for: quick classification, token-budget-conscious tasks, high-throughput pipelines
279
+ "fast": {
280
+ "primary": "meta/llama-3.1-8b-instruct",
281
+ "fallback": ["microsoft/phi-4-mini-instruct", "meta/llama-3.2-3b-instruct", "google/gemma-3-4b-it", "nvidia/nemotron-mini-4b-instruct", "mistralai/mistral-7b-instruct-v0.3"],
282
+ "models": {
283
+ "meta/llama-3.1-8b-instruct": {
284
+ "rating": 4, "context_window": 128000, "description": "Llama 3.1 8B — fast, reliable, high-quality 8B model.", "strengths": ["fast", "general", "instruction"]
285
+ },
286
+ "microsoft/phi-4-mini-instruct": {
287
+ "rating": 4, "context_window": 128000, "description": "Phi-4 Mini — Microsoft's compact model, excellent quality per parameter count.", "strengths": ["fast", "instruction", "compact"]
288
+ },
289
+ "google/gemma-3-4b-it": {
290
+ "rating": 3, "context_window": 128000, "description": "Gemma 3 4B — Google's compact model.", "strengths": ["fast", "compact"]
291
+ },
292
+ }
293
+ },
294
+
295
+ # === CREATIVE / LONG-FORM ===
296
+ # Best for: report writing, creative text, documentation generation
297
+ "creative": {
298
+ "primary": "writer/palmyra-creative-122b",
299
+ "fallback": ["mistralai/mistral-large-3-675b-instruct-2512", "qwen/qwen3.5-122b-a10b", "minimaxai/minimax-m3"],
300
+ "models": {
301
+ "writer/palmyra-creative-122b": {
302
+ "rating": 5, "context_window": 32768, "description": "Palmyra Creative 122B — purpose-built for creative writing, reports, documentation.", "strengths": ["creative", "long_form", "documentation"]
303
+ },
304
+ "qwen/qwen3.5-122b-a10b": {
305
+ "rating": 4, "context_window": 32768, "description": "Qwen3.5 122B MoE — excellent creative and analytical writing.", "strengths": ["creative", "analysis"]
306
+ },
307
+ }
308
+ },
309
+
310
+ # === MEDICAL / DOMAIN ===
311
+ # Best for: medical report interpretation, health queries, clinical analysis
312
+ "medical": {
313
+ "primary": "writer/palmyra-med-70b-32k",
314
+ "fallback": ["writer/palmyra-med-70b", "meta/llama-3.3-70b-instruct"],
315
+ "models": {
316
+ "writer/palmyra-med-70b-32k": {
317
+ "rating": 5, "context_window": 32768, "description": "Palmyra Med 70B 32K — purpose-built for medical text generation and clinical Q&A.", "strengths": ["medical", "clinical", "analysis"]
318
+ },
319
+ }
320
+ },
321
+
322
+ # === EMBEDDING ===
323
+ # Best for: vector embeddings for semantic search, RAG, document retrieval
324
+ "embedding": {
325
+ "primary": "nvidia/nv-embedqa-e5-v5",
326
+ "fallback": ["nvidia/nv-embed-v1", "baai/bge-m3", "snowflake/arctic-embed-l", "nvidia/llama-3.2-nv-embedqa-1b-v1"],
327
+ "models": {
328
+ "nvidia/nv-embedqa-e5-v5": {
329
+ "rating": 5, "context_window": 512, "description": "NVIDIA NV-EmbedQA E5 v5 — best NVIDIA embedding model for QA retrieval.", "strengths": ["embedding", "rag", "retrieval"]
330
+ },
331
+ "baai/bge-m3": {
332
+ "rating": 4, "context_window": 8192, "description": "BAAI BGE-M3 — multilingual embedding model, excellent for semantic search.", "strengths": ["embedding", "multilingual", "retrieval"]
333
+ },
334
+ }
335
+ },
336
+ }
337
+
338
+ # Keyword → category routing table for automatic dispatch
339
+ ROUTING_KEYWORDS = {
340
+ "coding": ["code", "python", "function", "class", "debug", "refactor", "implement", "syntax", "algorithm", "programming", "script", "module", "bug", "fix", "rewrite", "agent_workflow", "agent"],
341
+ "reasoning": ["reason", "analyze", "plan", "strategy", "optimize", "complex", "math", "calculate", "evaluate", "multi-step", "explain", "compare", "decide"],
342
+ "memory": ["summarize", "memory", "kb", "knowledge", "log", "history", "update memory", "compress", "recall", "persist"],
343
+ "judge": ["judge", "evaluate", "score", "audit", "rate", "hallucin", "assess", "review trajectory", "llm-as-a-judge"],
344
+ "finance": ["finance", "stock", "trading", "market", "portfolio", "financial", "investment", "equity", "backtest", "capital"],
345
+ "vision": ["image", "chart", "graph", "visual", "picture", "plot", "screenshot", "vision"],
346
+ "safety": ["safety", "harmful", "pii", "content moderation", "guardrail", "toxic", "filter", "censor"],
347
+ "fast": ["quick", "fast", "brief", "short", "classify", "yes/no", "simple", "ping"],
348
+ "creative": ["write", "creative", "document", "report", "essay", "story", "generate text"],
349
+ "medical": ["medical", "health", "clinical", "patient", "diagnosis", "symptom", "drug"],
350
+ }
351
+
352
+
353
+ def route_request(prompt: str, hint: Optional[str] = None) -> tuple[str, str]:
354
+ """
355
+ Determine the best category and model for a given prompt.
356
+ Returns (category, model_id).
357
+ - hint: explicit category override (e.g. 'coding', 'judge', 'memory')
358
+ """
359
+ if hint and hint in NVIDIA_MODEL_REGISTRY:
360
+ cat = hint
361
+ return cat, NVIDIA_MODEL_REGISTRY[cat]["primary"]
362
+
363
+ prompt_lower = prompt.lower()
364
+ scores = {}
365
+ for category, keywords in ROUTING_KEYWORDS.items():
366
+ score = sum(1 for kw in keywords if kw in prompt_lower)
367
+ if score > 0:
368
+ scores[category] = score
369
+
370
+ if scores:
371
+ best_cat = max(scores, key=scores.get)
372
+ return best_cat, NVIDIA_MODEL_REGISTRY[best_cat]["primary"]
373
+
374
+ # Default: fast general chat
375
+ return "chat", NVIDIA_MODEL_REGISTRY["chat"]["primary"]
376
+
377
+
378
+ def get_model_registry() -> dict:
379
+ """Return the full model registry dict."""
380
+ return NVIDIA_MODEL_REGISTRY
381
+
382
+
383
+ def get_best_model(category: str) -> str:
384
+ """Return the primary model ID for a given category."""
385
+ entry = NVIDIA_MODEL_REGISTRY.get(category)
386
+ if entry:
387
+ return entry["primary"]
388
+ return "meta/llama-3.1-8b-instruct"
389
+
390
+
391
+ def list_categories() -> list:
392
+ """Return all routing categories."""
393
+ return list(NVIDIA_MODEL_REGISTRY.keys())
394
+
395
+
396
+ def save_model_registry():
397
+ """Persist registry to JSON for external inspection / KB."""
398
+ os.makedirs(os.path.dirname(MODEL_REGISTRY_FILE), exist_ok=True)
399
+ try:
400
+ with open(MODEL_REGISTRY_FILE, "w") as f:
401
+ json.dump({
402
+ "updated_at": datetime.datetime.now().isoformat(),
403
+ "total_nvidia_nim_models": 121,
404
+ "categories": list(NVIDIA_MODEL_REGISTRY.keys()),
405
+ "registry": NVIDIA_MODEL_REGISTRY,
406
+ "routing_keywords": ROUTING_KEYWORDS,
407
+ }, f, indent=2)
408
+ print(f"[NVIDIA LLM] Model registry saved to {MODEL_REGISTRY_FILE}")
409
+ except Exception as e:
410
+ print(f"[NVIDIA LLM] Failed to save registry: {e}")
411
+
412
+
413
+ # ---------------------------------------------------------------------------
414
+ # NvidiaLLM — CrewAI-compatible wrapper with intelligent routing
415
+ # ---------------------------------------------------------------------------
416
+ class NvidiaLLM(BaseLLM):
417
+ """
418
+ CrewAI-compatible LLM wrapper for NVIDIA NIM API.
419
+ Supports intelligent routing to specialist models by task category.
420
+ """
421
+
422
+ def __init__(self, **kwargs):
423
+ # Resolve API key from keyring or env
424
+ api_key = kwargs.pop("api_key", None)
425
+ if not api_key:
426
+ try:
427
+ if keyring:
428
+ api_key = keyring.get_password("system", "NVIDIA_API_KEY") or os.getenv("NVIDIA_API_KEY")
429
+ else:
430
+ api_key = os.getenv("NVIDIA_API_KEY")
431
+ except Exception:
432
+ api_key = os.getenv("NVIDIA_API_KEY")
433
+
434
+ if not api_key:
435
+ print("WARNING: NVIDIA_API_KEY is not set. API calls might fail.")
436
+
437
+ # Default to fast chat model
438
+ kwargs["api_key"] = api_key
439
+ kwargs.setdefault("model", "meta/llama-3.1-8b-instruct")
440
+ super().__init__(**kwargs)
441
+
442
+ self.max_tokens = kwargs.get("max_tokens", 4096)
443
+ self.temperature = kwargs.get("temperature", 1.0)
444
+ self.top_p = kwargs.get("top_p", 0.95)
445
+ self.timeout = kwargs.get("timeout", 120)
446
+
447
+ def _raw_call(self, model_id: str, formatted_messages: list, max_tokens: int, timeout: int = None) -> str:
448
+ """Make a single raw API call with explicit model_id."""
449
+ effective_timeout = timeout or self.timeout
450
+ invoke_url = "https://integrate.api.nvidia.com/v1/chat/completions"
451
+ headers = {
452
+ "Authorization": f"Bearer {self.api_key}",
453
+ "Accept": "application/json",
454
+ "Content-Type": "application/json",
455
+ }
456
+ payload = {
457
+ "model": model_id,
458
+ "messages": formatted_messages,
459
+ "max_tokens": max_tokens,
460
+ "temperature": self.temperature,
461
+ "top_p": self.top_p,
462
+ "stream": False,
463
+ }
464
+
465
+ resp = requests.post(invoke_url, headers=headers, json=payload, timeout=effective_timeout)
466
+ resp.raise_for_status()
467
+ resp_data = resp.json()
468
+
469
+ # Track tokens per model
470
+ usage = resp_data.get("usage", {})
471
+ pt = usage.get("prompt_tokens", 0)
472
+ ct = usage.get("completion_tokens", 0)
473
+ if pt > 0 or ct > 0:
474
+ add_tokens(pt, ct, model_id=model_id)
475
+
476
+ if "choices" in resp_data and len(resp_data["choices"]) > 0:
477
+ message = resp_data["choices"][0].get("message", {})
478
+ if message.get("content"):
479
+ return message["content"].strip()
480
+ return ""
481
+
482
+ def call(self, messages: list[dict], callbacks: list[Any] | None = None, **kwargs: Any) -> str:
483
+ """
484
+ Main entry point. Supports:
485
+ - hint="coding"/"judge"/"memory" etc. for explicit routing
486
+ - Automatic keyword-based routing if hint not provided
487
+ - Fallback chain through category fallback models on failure
488
+ """
489
+ # Budget guardrail
490
+ current_usage = get_token_usage()
491
+ if current_usage.get("total_tokens", 0) > 10000000:
492
+ print("[AGENTS DIAG ERROR] Token budget exceeded (10M limit)! Throttling LLM call.")
493
+ return "[LLM ERROR] Token budget exceeded. API call blocked by guardrail."
494
+
495
+ # Normalize messages
496
+ if isinstance(messages, str):
497
+ formatted_messages = [{"role": "user", "content": messages}]
498
+ prompt_text = messages
499
+ elif isinstance(messages, list):
500
+ formatted_messages = messages
501
+ prompt_text = " ".join(m.get("content", "") for m in messages if isinstance(m, dict))
502
+ else:
503
+ formatted_messages = [{"role": "user", "content": str(messages)}]
504
+ prompt_text = str(messages)
505
+
506
+ max_tokens = kwargs.get("max_tokens") or self.max_tokens
507
+
508
+ # --- Intelligent Routing ---
509
+ hint = kwargs.get("hint") # caller can pass hint="coding" etc.
510
+
511
+ # Per-category dynamic timeouts (large models need more time on free tier)
512
+ CATEGORY_TIMEOUTS = {
513
+ "coding": 180, # DeepSeek V4 Pro is large — allow 3 min
514
+ "reasoning": 240, # 550B+ models need time
515
+ "memory": 180, # 1M context summaries
516
+ "judge": 120, # 340B reward model
517
+ "finance": 60,
518
+ "vision": 90,
519
+ "safety": 30,
520
+ "fast": 20,
521
+ "chat": 60,
522
+ "creative": 120,
523
+ "medical": 60,
524
+ "embedding": 30,
525
+ }
526
+
527
+ # Per-category max_tokens caps — avoid wasting budget on huge outputs
528
+ CATEGORY_MAX_TOKENS = {
529
+ "coding": 8192,
530
+ "reasoning": 4096,
531
+ "memory": 2048,
532
+ "judge": 1024,
533
+ "finance": 2048,
534
+ "chat": 1024,
535
+ "fast": 256,
536
+ "creative": 4096,
537
+ "medical": 2048,
538
+ "safety": 256,
539
+ "embedding": 512,
540
+ }
541
+
542
+ # If caller explicitly set a model via self.model (not default), use it directly
543
+ if self.model and self.model != "meta/llama-3.1-8b-instruct":
544
+ category = hint or "chat"
545
+ model_id = self.model
546
+ fallbacks = []
547
+ else:
548
+ # Auto-route based on content
549
+ category, model_id = route_request(prompt_text, hint=hint)
550
+ registry_entry = NVIDIA_MODEL_REGISTRY.get(category, {})
551
+ fallbacks = registry_entry.get("fallback", [])
552
+
553
+ # Apply category-tuned limits
554
+ effective_timeout = CATEGORY_TIMEOUTS.get(category, self.timeout)
555
+ effective_max_tokens = min(max_tokens, CATEGORY_MAX_TOKENS.get(category, max_tokens))
556
+
557
+ print(f"[NVIDIA LLM ROUTER] Category={category} → Model={model_id} (timeout={effective_timeout}s, max_tokens={effective_max_tokens})")
558
+
559
+ # Try primary, then fallbacks
560
+ candidates = [model_id] + fallbacks
561
+ last_error = None
562
+ for candidate in candidates:
563
+ try:
564
+ result = self._raw_call(candidate, formatted_messages, effective_max_tokens, timeout=effective_timeout)
565
+ if result:
566
+ if candidate != model_id:
567
+ print(f"[NVIDIA LLM ROUTER] Fallback used: {candidate}")
568
+ return result
569
+ except requests.exceptions.HTTPError as e:
570
+ last_error = f"[LLM HTTP ERROR] {e}"
571
+ if hasattr(e, "response") and e.response is not None and e.response.status_code == 401:
572
+ return "[LLM ERROR] Unauthorized: Invalid NVIDIA_API_KEY."
573
+ print(f"[NVIDIA LLM ROUTER] Model {candidate} failed ({e}), trying next...")
574
+ except requests.exceptions.ConnectionError:
575
+ last_error = "[LLM OFFLINE] Cannot connect to the NVIDIA API."
576
+ return last_error
577
+ except requests.exceptions.Timeout:
578
+ last_error = f"[LLM TIMEOUT] Model {candidate} timed out after {effective_timeout}s."
579
+ print(f"[NVIDIA LLM ROUTER] Model {candidate} timed out, trying next fallback...")
580
+ except Exception as e:
581
+ last_error = f"[LLM ERROR] {str(e)}"
582
+ print(f"[NVIDIA LLM ROUTER] Model {candidate} error: {e}, trying next...")
583
+
584
+ return last_error or "[LLM ERROR] All models in fallback chain failed."
585
+
586
+ def supports_function_calling(self) -> bool:
587
+ return False
588
+
589
+ def supports_stop_words(self) -> bool:
590
+ return False
591
+
592
+
593
+ # ---------------------------------------------------------------------------
594
+ # Convenience factory functions for specific categories
595
+ # ---------------------------------------------------------------------------
596
+ def get_coding_llm(**kwargs) -> NvidiaLLM:
597
+ """Return an NvidiaLLM pre-configured for coding tasks."""
598
+ return NvidiaLLM(model=get_best_model("coding"), **kwargs)
599
+
600
+ def get_reasoning_llm(**kwargs) -> NvidiaLLM:
601
+ """Return an NvidiaLLM pre-configured for complex reasoning."""
602
+ return NvidiaLLM(model=get_best_model("reasoning"), **kwargs)
603
+
604
+ def get_memory_llm(**kwargs) -> NvidiaLLM:
605
+ """Return an NvidiaLLM pre-configured for memory/summarization."""
606
+ return NvidiaLLM(model=get_best_model("memory"), **kwargs)
607
+
608
+ def get_judge_llm(**kwargs) -> NvidiaLLM:
609
+ """Return an NvidiaLLM pre-configured for LLM-as-a-judge evaluation."""
610
+ return NvidiaLLM(model=get_best_model("judge"), **kwargs)
611
+
612
+ def get_finance_llm(**kwargs) -> NvidiaLLM:
613
+ """Return an NvidiaLLM pre-configured for financial analysis."""
614
+ return NvidiaLLM(model=get_best_model("finance"), **kwargs)
615
+
616
+ def get_fast_llm(**kwargs) -> NvidiaLLM:
617
+ """Return an NvidiaLLM pre-configured for fast/lightweight tasks."""
618
+ return NvidiaLLM(model=get_best_model("fast"), **kwargs)
619
+
620
+ def get_creative_llm(**kwargs) -> NvidiaLLM:
621
+ """Return an NvidiaLLM pre-configured for creative writing and documentation."""
622
+ return NvidiaLLM(model=get_best_model("creative"), **kwargs)
623
+
624
+
625
+ # ---------------------------------------------------------------------------
626
+ # Default singleton (chat model, auto-routing enabled)
627
+ # ---------------------------------------------------------------------------
628
+ _llm_instance = None
629
+
630
+ def get_nvidia_llm() -> NvidiaLLM:
631
+ global _llm_instance
632
+ if _llm_instance is None:
633
+ _llm_instance = NvidiaLLM()
634
+ return _llm_instance
635
+
636
+
637
+ # ---------------------------------------------------------------------------
638
+ # Eager initialization on main thread + save registry to JSON
639
+ # ---------------------------------------------------------------------------
640
+ try:
641
+ get_nvidia_llm()
642
+ save_model_registry()
643
+ except Exception as e:
644
+ print(f"[NVIDIA LLM] Initialization warning: {e}")
nsedash/core/nvidia_model_registry.json ADDED
@@ -0,0 +1,728 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "updated_at": "2026-07-09T23:55:28.280873",
3
+ "total_nvidia_nim_models": 121,
4
+ "categories": [
5
+ "coding",
6
+ "reasoning",
7
+ "chat",
8
+ "memory",
9
+ "judge",
10
+ "finance",
11
+ "vision",
12
+ "safety",
13
+ "fast",
14
+ "creative",
15
+ "medical",
16
+ "embedding"
17
+ ],
18
+ "registry": {
19
+ "coding": {
20
+ "primary": "deepseek-ai/deepseek-v4-pro",
21
+ "fallback": [
22
+ "deepseek-ai/deepseek-v4-flash",
23
+ "mistralai/codestral-22b-instruct-v0.1",
24
+ "nvidia/llama-3.3-nemotron-super-49b-v1",
25
+ "ibm/granite-34b-code-instruct",
26
+ "meta/codellama-70b",
27
+ "bigcode/starcoder2-15b",
28
+ "deepseek-ai/deepseek-coder-6.7b-instruct"
29
+ ],
30
+ "models": {
31
+ "deepseek-ai/deepseek-v4-pro": {
32
+ "rating": 5,
33
+ "context_window": 163840,
34
+ "description": "State-of-the-art coding. Best for complex code generation, debugging, agentic coding. Beats GPT-4o on HumanEval.",
35
+ "strengths": [
36
+ "code_gen",
37
+ "debugging",
38
+ "refactor",
39
+ "agentic"
40
+ ]
41
+ },
42
+ "deepseek-ai/deepseek-v4-flash": {
43
+ "rating": 4,
44
+ "context_window": 163840,
45
+ "description": "Fast version of DeepSeek V4. Excellent for iterative coding workflows needing low latency.",
46
+ "strengths": [
47
+ "code_gen",
48
+ "fast",
49
+ "agentic"
50
+ ]
51
+ },
52
+ "mistralai/codestral-22b-instruct-v0.1": {
53
+ "rating": 4,
54
+ "context_window": 32768,
55
+ "description": "Mistral's dedicated code model. Excellent for infilling, multi-language code, unit tests.",
56
+ "strengths": [
57
+ "code_gen",
58
+ "infill",
59
+ "test_gen"
60
+ ]
61
+ },
62
+ "nvidia/llama-3.3-nemotron-super-49b-v1": {
63
+ "rating": 4,
64
+ "context_window": 128000,
65
+ "description": "NVIDIA's tuned 49B model \u2014 excellent at coding + agentic planning + reasoning.",
66
+ "strengths": [
67
+ "code_gen",
68
+ "reasoning",
69
+ "agentic"
70
+ ]
71
+ },
72
+ "nvidia/llama-3.3-nemotron-super-49b-v1.5": {
73
+ "rating": 4,
74
+ "context_window": 128000,
75
+ "description": "Latest NVIDIA Nemotron Super 49B v1.5 \u2014 best NVIDIA native code+reasoning model.",
76
+ "strengths": [
77
+ "code_gen",
78
+ "reasoning",
79
+ "agentic"
80
+ ]
81
+ },
82
+ "ibm/granite-34b-code-instruct": {
83
+ "rating": 4,
84
+ "context_window": 8192,
85
+ "description": "IBM's dedicated code model, 34B. Strong at enterprise-grade code quality.",
86
+ "strengths": [
87
+ "code_gen",
88
+ "enterprise"
89
+ ]
90
+ },
91
+ "ibm/granite-8b-code-instruct": {
92
+ "rating": 3,
93
+ "context_window": 8192,
94
+ "description": "IBM 8B code model \u2014 fast code completion with lower resource footprint.",
95
+ "strengths": [
96
+ "code_gen",
97
+ "fast"
98
+ ]
99
+ },
100
+ "meta/codellama-70b": {
101
+ "rating": 3,
102
+ "context_window": 16384,
103
+ "description": "Meta's 70B CodeLlama \u2014 reliable baseline for code generation and completion.",
104
+ "strengths": [
105
+ "code_gen",
106
+ "infill"
107
+ ]
108
+ },
109
+ "bigcode/starcoder2-15b": {
110
+ "rating": 3,
111
+ "context_window": 16384,
112
+ "description": "Open-source code model \u2014 strong at code completion, licensed models.",
113
+ "strengths": [
114
+ "code_gen",
115
+ "infill",
116
+ "open_source"
117
+ ]
118
+ },
119
+ "google/codegemma-1.1-7b": {
120
+ "rating": 3,
121
+ "context_window": 8192,
122
+ "description": "Google CodeGemma 7B \u2014 compact, fast code model.",
123
+ "strengths": [
124
+ "code_gen",
125
+ "fast"
126
+ ]
127
+ },
128
+ "nvidia/nv-embedcode-7b-v1": {
129
+ "rating": 3,
130
+ "context_window": 8192,
131
+ "description": "Code embedding model \u2014 for semantic code search and similarity.",
132
+ "strengths": [
133
+ "embedding",
134
+ "code_search"
135
+ ]
136
+ }
137
+ }
138
+ },
139
+ "reasoning": {
140
+ "primary": "nvidia/nemotron-3-ultra-550b-a55b",
141
+ "fallback": [
142
+ "qwen/qwen3.5-397b-a17b",
143
+ "nvidia/llama-3.1-nemotron-ultra-253b-v1",
144
+ "moonshotai/kimi-k2.6",
145
+ "minimaxai/minimax-m3",
146
+ "nvidia/llama-3.1-nemotron-70b-instruct",
147
+ "z-ai/glm-5.2",
148
+ "meta/llama-3.3-70b-instruct"
149
+ ],
150
+ "models": {
151
+ "nvidia/nemotron-3-ultra-550b-a55b": {
152
+ "rating": 5,
153
+ "context_window": 128000,
154
+ "description": "NVIDIA's 550B ultra model \u2014 frontier reasoning & agentic capability. Top-tier for complex multi-step tasks.",
155
+ "strengths": [
156
+ "reasoning",
157
+ "agentic",
158
+ "planning",
159
+ "math"
160
+ ]
161
+ },
162
+ "qwen/qwen3.5-397b-a17b": {
163
+ "rating": 5,
164
+ "context_window": 32768,
165
+ "description": "Qwen3.5 397B MoE \u2014 exceptional reasoning and complex analysis. Top MMLU scores.",
166
+ "strengths": [
167
+ "reasoning",
168
+ "analysis",
169
+ "math"
170
+ ]
171
+ },
172
+ "nvidia/llama-3.1-nemotron-ultra-253b-v1": {
173
+ "rating": 5,
174
+ "context_window": 128000,
175
+ "description": "NVIDIA 253B ultra \u2014 powerful multi-turn reasoning and agentic planning.",
176
+ "strengths": [
177
+ "reasoning",
178
+ "agentic",
179
+ "planning"
180
+ ]
181
+ },
182
+ "moonshotai/kimi-k2.6": {
183
+ "rating": 4,
184
+ "context_window": 131072,
185
+ "description": "Moonshot Kimi K2.6 \u2014 exceptional long-context reasoning & analysis (128K context).",
186
+ "strengths": [
187
+ "reasoning",
188
+ "long_context",
189
+ "analysis"
190
+ ]
191
+ },
192
+ "minimaxai/minimax-m3": {
193
+ "rating": 4,
194
+ "context_window": 40960,
195
+ "description": "MiniMax M3 \u2014 excellent complex reasoning and long-form generation.",
196
+ "strengths": [
197
+ "reasoning",
198
+ "complex_tasks"
199
+ ]
200
+ },
201
+ "minimaxai/minimax-m2.7": {
202
+ "rating": 4,
203
+ "context_window": 40960,
204
+ "description": "MiniMax M2.7 \u2014 strong reasoning, fast inference.",
205
+ "strengths": [
206
+ "reasoning",
207
+ "fast"
208
+ ]
209
+ },
210
+ "nvidia/llama-3.1-nemotron-70b-instruct": {
211
+ "rating": 4,
212
+ "context_window": 128000,
213
+ "description": "NVIDIA Nemotron 70B \u2014 tuned for agentic reasoning and instruction-following.",
214
+ "strengths": [
215
+ "reasoning",
216
+ "instruction",
217
+ "agentic"
218
+ ]
219
+ },
220
+ "z-ai/glm-5.2": {
221
+ "rating": 4,
222
+ "context_window": 128000,
223
+ "description": "GLM-5.2 \u2014 excellent for long-horizon reasoning and agentic workflows.",
224
+ "strengths": [
225
+ "reasoning",
226
+ "agentic",
227
+ "long_context"
228
+ ]
229
+ },
230
+ "nvidia/nemotron-3-super-120b-a12b": {
231
+ "rating": 4,
232
+ "context_window": 128000,
233
+ "description": "NVIDIA 120B MoE super model \u2014 balanced reasoning + speed.",
234
+ "strengths": [
235
+ "reasoning",
236
+ "agentic"
237
+ ]
238
+ },
239
+ "qwen/qwen3-next-80b-a3b-instruct": {
240
+ "rating": 4,
241
+ "context_window": 32768,
242
+ "description": "Qwen3 Next 80B \u2014 excellent reasoning + instruction following.",
243
+ "strengths": [
244
+ "reasoning",
245
+ "instruction"
246
+ ]
247
+ },
248
+ "meta/llama-3.3-70b-instruct": {
249
+ "rating": 3,
250
+ "context_window": 128000,
251
+ "description": "Meta Llama 3.3 70B \u2014 solid general reasoning. Good 128K context.",
252
+ "strengths": [
253
+ "reasoning",
254
+ "general"
255
+ ]
256
+ },
257
+ "meta/llama-4-maverick-17b-128e-instruct": {
258
+ "rating": 4,
259
+ "context_window": 1000000,
260
+ "description": "Llama 4 Maverick 17B MoE \u2014 1M context window, excellent for very long-context analysis.",
261
+ "strengths": [
262
+ "reasoning",
263
+ "long_context",
264
+ "agentic"
265
+ ]
266
+ }
267
+ }
268
+ },
269
+ "chat": {
270
+ "primary": "meta/llama-3.1-8b-instruct",
271
+ "fallback": [
272
+ "mistralai/mistral-large",
273
+ "nvidia/llama-3.1-nemotron-51b-instruct",
274
+ "meta/llama-3.3-70b-instruct",
275
+ "mistralai/mistral-medium-3.5-128b",
276
+ "mistralai/mistral-large-2-instruct",
277
+ "mistralai/mistral-large-3-675b-instruct-2512",
278
+ "mistralai/mistral-small-4-119b-2603"
279
+ ],
280
+ "models": {
281
+ "meta/llama-3.1-8b-instruct": {
282
+ "rating": 4,
283
+ "context_window": 128000,
284
+ "description": "Llama 3.1 8B \u2014 fast, reliable, excellent general chat. Default workhorse.",
285
+ "strengths": [
286
+ "chat",
287
+ "instruction",
288
+ "fast"
289
+ ]
290
+ },
291
+ "mistralai/mistral-large": {
292
+ "rating": 4,
293
+ "context_window": 128000,
294
+ "description": "Mistral Large \u2014 excellent instruction-following and conversational quality.",
295
+ "strengths": [
296
+ "chat",
297
+ "instruction"
298
+ ]
299
+ },
300
+ "nvidia/llama-3.1-nemotron-51b-instruct": {
301
+ "rating": 4,
302
+ "context_window": 128000,
303
+ "description": "NVIDIA Nemotron 51B \u2014 strong conversational assistant, tuned for helpfulness.",
304
+ "strengths": [
305
+ "chat",
306
+ "instruction",
307
+ "helpful"
308
+ ]
309
+ },
310
+ "mistralai/mistral-medium-3.5-128b": {
311
+ "rating": 4,
312
+ "context_window": 128000,
313
+ "description": "Mistral Medium 3.5 \u2014 balanced medium-size model for rich conversational tasks.",
314
+ "strengths": [
315
+ "chat",
316
+ "balanced"
317
+ ]
318
+ },
319
+ "mistralai/ministral-14b-instruct-2512": {
320
+ "rating": 3,
321
+ "context_window": 32768,
322
+ "description": "Mistral 14B \u2014 efficient medium model.",
323
+ "strengths": [
324
+ "chat",
325
+ "fast"
326
+ ]
327
+ },
328
+ "mistralai/mixtral-8x7b-instruct-v0.1": {
329
+ "rating": 3,
330
+ "context_window": 32768,
331
+ "description": "Mixtral MoE 8x7B \u2014 fast, cost-efficient, good quality.",
332
+ "strengths": [
333
+ "chat",
334
+ "fast",
335
+ "moe"
336
+ ]
337
+ }
338
+ }
339
+ },
340
+ "memory": {
341
+ "primary": "meta/llama-4-maverick-17b-128e-instruct",
342
+ "fallback": [
343
+ "moonshotai/kimi-k2.6",
344
+ "mistralai/mistral-large-2-instruct",
345
+ "meta/llama-3.3-70b-instruct",
346
+ "meta/llama-3.1-8b-instruct"
347
+ ],
348
+ "models": {
349
+ "meta/llama-4-maverick-17b-128e-instruct": {
350
+ "rating": 5,
351
+ "context_window": 1000000,
352
+ "description": "Llama 4 Maverick \u2014 1M token context. Best for ingesting entire codebases or large memory files.",
353
+ "strengths": [
354
+ "summarization",
355
+ "long_context",
356
+ "memory"
357
+ ]
358
+ },
359
+ "moonshotai/kimi-k2.6": {
360
+ "rating": 4,
361
+ "context_window": 131072,
362
+ "description": "Kimi K2.6 \u2014 128K context summarization. Excellent at extracting key information.",
363
+ "strengths": [
364
+ "summarization",
365
+ "long_context"
366
+ ]
367
+ }
368
+ }
369
+ },
370
+ "judge": {
371
+ "primary": "nvidia/nemotron-4-340b-reward",
372
+ "fallback": [
373
+ "nvidia/nemotron-4-340b-instruct",
374
+ "nvidia/llama-3.1-nemotron-ultra-253b-v1",
375
+ "meta/llama-3.3-70b-instruct"
376
+ ],
377
+ "models": {
378
+ "nvidia/nemotron-4-340b-reward": {
379
+ "rating": 5,
380
+ "context_window": 4096,
381
+ "description": "NVIDIA Nemotron 340B Reward \u2014 purpose-built reward model for evaluation. Best LLM-as-a-judge.",
382
+ "strengths": [
383
+ "judge",
384
+ "evaluation",
385
+ "reward"
386
+ ]
387
+ },
388
+ "nvidia/nemotron-4-340b-instruct": {
389
+ "rating": 4,
390
+ "context_window": 4096,
391
+ "description": "NVIDIA Nemotron 340B instruct \u2014 strong judge for code and task evaluation.",
392
+ "strengths": [
393
+ "judge",
394
+ "evaluation"
395
+ ]
396
+ }
397
+ }
398
+ },
399
+ "finance": {
400
+ "primary": "writer/palmyra-fin-70b-32k",
401
+ "fallback": [
402
+ "stockmark/stockmark-2-100b-instruct",
403
+ "meta/llama-3.3-70b-instruct",
404
+ "mistralai/mistral-large"
405
+ ],
406
+ "models": {
407
+ "writer/palmyra-fin-70b-32k": {
408
+ "rating": 5,
409
+ "context_window": 32768,
410
+ "description": "Palmyra Finance 70B \u2014 purpose-built for financial documents, analysis, and reporting.",
411
+ "strengths": [
412
+ "finance",
413
+ "analysis",
414
+ "report"
415
+ ]
416
+ },
417
+ "stockmark/stockmark-2-100b-instruct": {
418
+ "rating": 4,
419
+ "context_window": 32768,
420
+ "description": "Stockmark 2 100B \u2014 trained on financial markets data. Excellent for stock analysis.",
421
+ "strengths": [
422
+ "finance",
423
+ "markets",
424
+ "analysis"
425
+ ]
426
+ }
427
+ }
428
+ },
429
+ "vision": {
430
+ "primary": "meta/llama-3.2-90b-vision-instruct",
431
+ "fallback": [
432
+ "meta/llama-3.2-11b-vision-instruct",
433
+ "microsoft/phi-3-vision-128k-instruct",
434
+ "nvidia/llama-3.1-nemotron-nano-vl-8b-v1",
435
+ "nvidia/neva-22b"
436
+ ],
437
+ "models": {
438
+ "meta/llama-3.2-90b-vision-instruct": {
439
+ "rating": 5,
440
+ "context_window": 128000,
441
+ "description": "Llama 3.2 90B Vision \u2014 best open-source VLM for complex chart/image understanding.",
442
+ "strengths": [
443
+ "vision",
444
+ "chart_analysis",
445
+ "vqa"
446
+ ]
447
+ },
448
+ "meta/llama-3.2-11b-vision-instruct": {
449
+ "rating": 4,
450
+ "context_window": 128000,
451
+ "description": "Llama 3.2 11B Vision \u2014 fast VLM for image Q&A and analysis.",
452
+ "strengths": [
453
+ "vision",
454
+ "vqa",
455
+ "fast"
456
+ ]
457
+ }
458
+ }
459
+ },
460
+ "safety": {
461
+ "primary": "nvidia/llama-3.1-nemoguard-8b-content-safety",
462
+ "fallback": [
463
+ "meta/llama-guard-4-12b",
464
+ "nvidia/llama-3.1-nemotron-safety-guard-8b-v3",
465
+ "nvidia/nemotron-3-content-safety"
466
+ ],
467
+ "models": {
468
+ "nvidia/llama-3.1-nemoguard-8b-content-safety": {
469
+ "rating": 5,
470
+ "context_window": 8192,
471
+ "description": "NeMoGuard 8B Content Safety \u2014 purpose-built NVIDIA safety classifier.",
472
+ "strengths": [
473
+ "safety",
474
+ "content_moderation"
475
+ ]
476
+ },
477
+ "meta/llama-guard-4-12b": {
478
+ "rating": 4,
479
+ "context_window": 128000,
480
+ "description": "Llama Guard 4 12B \u2014 Meta's safety model with 128K context.",
481
+ "strengths": [
482
+ "safety",
483
+ "content_moderation"
484
+ ]
485
+ }
486
+ }
487
+ },
488
+ "fast": {
489
+ "primary": "meta/llama-3.1-8b-instruct",
490
+ "fallback": [
491
+ "microsoft/phi-4-mini-instruct",
492
+ "meta/llama-3.2-3b-instruct",
493
+ "google/gemma-3-4b-it",
494
+ "nvidia/nemotron-mini-4b-instruct",
495
+ "mistralai/mistral-7b-instruct-v0.3"
496
+ ],
497
+ "models": {
498
+ "meta/llama-3.1-8b-instruct": {
499
+ "rating": 4,
500
+ "context_window": 128000,
501
+ "description": "Llama 3.1 8B \u2014 fast, reliable, high-quality 8B model.",
502
+ "strengths": [
503
+ "fast",
504
+ "general",
505
+ "instruction"
506
+ ]
507
+ },
508
+ "microsoft/phi-4-mini-instruct": {
509
+ "rating": 4,
510
+ "context_window": 128000,
511
+ "description": "Phi-4 Mini \u2014 Microsoft's compact model, excellent quality per parameter count.",
512
+ "strengths": [
513
+ "fast",
514
+ "instruction",
515
+ "compact"
516
+ ]
517
+ },
518
+ "google/gemma-3-4b-it": {
519
+ "rating": 3,
520
+ "context_window": 128000,
521
+ "description": "Gemma 3 4B \u2014 Google's compact model.",
522
+ "strengths": [
523
+ "fast",
524
+ "compact"
525
+ ]
526
+ }
527
+ }
528
+ },
529
+ "creative": {
530
+ "primary": "writer/palmyra-creative-122b",
531
+ "fallback": [
532
+ "mistralai/mistral-large-3-675b-instruct-2512",
533
+ "qwen/qwen3.5-122b-a10b",
534
+ "minimaxai/minimax-m3"
535
+ ],
536
+ "models": {
537
+ "writer/palmyra-creative-122b": {
538
+ "rating": 5,
539
+ "context_window": 32768,
540
+ "description": "Palmyra Creative 122B \u2014 purpose-built for creative writing, reports, documentation.",
541
+ "strengths": [
542
+ "creative",
543
+ "long_form",
544
+ "documentation"
545
+ ]
546
+ },
547
+ "qwen/qwen3.5-122b-a10b": {
548
+ "rating": 4,
549
+ "context_window": 32768,
550
+ "description": "Qwen3.5 122B MoE \u2014 excellent creative and analytical writing.",
551
+ "strengths": [
552
+ "creative",
553
+ "analysis"
554
+ ]
555
+ }
556
+ }
557
+ },
558
+ "medical": {
559
+ "primary": "writer/palmyra-med-70b-32k",
560
+ "fallback": [
561
+ "writer/palmyra-med-70b",
562
+ "meta/llama-3.3-70b-instruct"
563
+ ],
564
+ "models": {
565
+ "writer/palmyra-med-70b-32k": {
566
+ "rating": 5,
567
+ "context_window": 32768,
568
+ "description": "Palmyra Med 70B 32K \u2014 purpose-built for medical text generation and clinical Q&A.",
569
+ "strengths": [
570
+ "medical",
571
+ "clinical",
572
+ "analysis"
573
+ ]
574
+ }
575
+ }
576
+ },
577
+ "embedding": {
578
+ "primary": "nvidia/nv-embedqa-e5-v5",
579
+ "fallback": [
580
+ "nvidia/nv-embed-v1",
581
+ "baai/bge-m3",
582
+ "snowflake/arctic-embed-l",
583
+ "nvidia/llama-3.2-nv-embedqa-1b-v1"
584
+ ],
585
+ "models": {
586
+ "nvidia/nv-embedqa-e5-v5": {
587
+ "rating": 5,
588
+ "context_window": 512,
589
+ "description": "NVIDIA NV-EmbedQA E5 v5 \u2014 best NVIDIA embedding model for QA retrieval.",
590
+ "strengths": [
591
+ "embedding",
592
+ "rag",
593
+ "retrieval"
594
+ ]
595
+ },
596
+ "baai/bge-m3": {
597
+ "rating": 4,
598
+ "context_window": 8192,
599
+ "description": "BAAI BGE-M3 \u2014 multilingual embedding model, excellent for semantic search.",
600
+ "strengths": [
601
+ "embedding",
602
+ "multilingual",
603
+ "retrieval"
604
+ ]
605
+ }
606
+ }
607
+ }
608
+ },
609
+ "routing_keywords": {
610
+ "coding": [
611
+ "code",
612
+ "python",
613
+ "function",
614
+ "class",
615
+ "debug",
616
+ "refactor",
617
+ "implement",
618
+ "syntax",
619
+ "algorithm",
620
+ "programming",
621
+ "script",
622
+ "module",
623
+ "bug",
624
+ "fix",
625
+ "rewrite",
626
+ "agent_workflow",
627
+ "agent"
628
+ ],
629
+ "reasoning": [
630
+ "reason",
631
+ "analyze",
632
+ "plan",
633
+ "strategy",
634
+ "optimize",
635
+ "complex",
636
+ "math",
637
+ "calculate",
638
+ "evaluate",
639
+ "multi-step",
640
+ "explain",
641
+ "compare",
642
+ "decide"
643
+ ],
644
+ "memory": [
645
+ "summarize",
646
+ "memory",
647
+ "kb",
648
+ "knowledge",
649
+ "log",
650
+ "history",
651
+ "update memory",
652
+ "compress",
653
+ "recall",
654
+ "persist"
655
+ ],
656
+ "judge": [
657
+ "judge",
658
+ "evaluate",
659
+ "score",
660
+ "audit",
661
+ "rate",
662
+ "hallucin",
663
+ "assess",
664
+ "review trajectory",
665
+ "llm-as-a-judge"
666
+ ],
667
+ "finance": [
668
+ "finance",
669
+ "stock",
670
+ "trading",
671
+ "market",
672
+ "portfolio",
673
+ "financial",
674
+ "investment",
675
+ "equity",
676
+ "backtest",
677
+ "capital"
678
+ ],
679
+ "vision": [
680
+ "image",
681
+ "chart",
682
+ "graph",
683
+ "visual",
684
+ "picture",
685
+ "plot",
686
+ "screenshot",
687
+ "vision"
688
+ ],
689
+ "safety": [
690
+ "safety",
691
+ "harmful",
692
+ "pii",
693
+ "content moderation",
694
+ "guardrail",
695
+ "toxic",
696
+ "filter",
697
+ "censor"
698
+ ],
699
+ "fast": [
700
+ "quick",
701
+ "fast",
702
+ "brief",
703
+ "short",
704
+ "classify",
705
+ "yes/no",
706
+ "simple",
707
+ "ping"
708
+ ],
709
+ "creative": [
710
+ "write",
711
+ "creative",
712
+ "document",
713
+ "report",
714
+ "essay",
715
+ "story",
716
+ "generate text"
717
+ ],
718
+ "medical": [
719
+ "medical",
720
+ "health",
721
+ "clinical",
722
+ "patient",
723
+ "diagnosis",
724
+ "symptom",
725
+ "drug"
726
+ ]
727
+ }
728
+ }
nsedash/web/api.py CHANGED
@@ -1023,3 +1023,113 @@ def admin_action():
1023
  return jsonify({"ok": False, "message": "Unknown action."}), 400
1024
 
1025
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1023
  return jsonify({"ok": False, "message": "Unknown action."}), 400
1024
 
1025
 
1026
+ @api.get("/stocks/<symbol>/ai-analysis")
1027
+ def get_ai_analysis(symbol: str):
1028
+ """
1029
+ Get or generate AI-driven stock analysis in markdown format.
1030
+ Refreshes if more than 24 hours old. Saves to processed/aianalysis.
1031
+ """
1032
+ token = get_session_token()
1033
+ base_dir = current_app.extensions["nsedash"]["base_dir"]
1034
+ from ..config import Paths
1035
+ paths = Paths(base_dir=base_dir, session_token=token)
1036
+
1037
+ aianalysis_dir = paths.aianalysis_dir
1038
+ file_path = aianalysis_dir / f"{symbol}.md"
1039
+
1040
+ # 24-hour cache freshness check
1041
+ import time
1042
+ refresh = True
1043
+ if file_path.exists():
1044
+ try:
1045
+ mtime = file_path.stat().st_mtime
1046
+ if time.time() - mtime < 24 * 3600:
1047
+ refresh = False
1048
+ except Exception:
1049
+ pass
1050
+
1051
+ if not refresh:
1052
+ try:
1053
+ analysis = file_path.read_text(encoding='utf-8')
1054
+ return jsonify({"ok": True, "symbol": symbol, "analysis": analysis, "cached": True})
1055
+ except Exception as exc:
1056
+ logging.error("Failed to read cached AI analysis for %s: %s", symbol, exc)
1057
+
1058
+ # Gather stock data
1059
+ svc_inst = _svc()
1060
+ cell = svc_inst._find_cell(symbol)
1061
+ from ..core.dashboard_service import Cell
1062
+ if not cell:
1063
+ # Stock is not on the board; create a temp Cell
1064
+ cell = Cell(symbol)
1065
+
1066
+ # Get live metrics if they are missing
1067
+ if cell.current_cmp == 0.0:
1068
+ from ..core.live_fetch import LiveFetcher
1069
+ fetcher = LiveFetcher(prev_volume_lookup=lambda s: 0.0)
1070
+ live_data = fetcher.fetch_symbol_gf(symbol) or fetcher.fetch_symbol_yf(symbol)
1071
+ if live_data:
1072
+ cell.current_cmp = live_data.get("CLOSE_PRICE", 0.0)
1073
+ cell.prev_close = live_data.get("PREV_CL_PR", 0.0)
1074
+ cell.live = live_data
1075
+
1076
+ payload = svc_inst._cell_payload(cell, include_chart=False)
1077
+
1078
+ # Build prompt
1079
+ prompt = f"""
1080
+ You are a senior equity research analyst. Generate a comprehensive, professional stock analysis report in Markdown format for the following NSE stock using the provided real-time and historical market data:
1081
+
1082
+ **Stock Details:**
1083
+ - Symbol: {payload.get('symbol')}
1084
+ - Company Name: {payload.get('security', 'N/A')}
1085
+ - Current Market Price (CMP): INR {payload.get('current_cmp', 0.0):,.2f}
1086
+ - Previous Close: INR {payload.get('prev_close', 0.0):,.2f}
1087
+ - 52-Week High: INR {payload.get('hi_52wk', 0.0):,.2f} (Diff: {payload.get('hi_diff', 0.0):.2f}%)
1088
+ - 52-Week Low: INR {payload.get('lo_52wk', 0.0):,.2f} (Diff: {payload.get('lo_diff', 0.0):.2f}%)
1089
+
1090
+ **Technical Analysis & Price Performance:**
1091
+ - 1-Day Return: {payload.get('changes', {}).get('1D', 0.0):+.2f}%
1092
+ - 1-Week Return: {payload.get('changes', {}).get('1W', 0.0):+.2f}%
1093
+ - 1-Month Return: {payload.get('changes', {}).get('1M', 0.0):+.2f}%
1094
+ - 3-Month Return: {payload.get('changes', {}).get('3M', 0.0):+.2f}%
1095
+ - Volume Trend (last 5 sessions): {", ".join(f"{v:+.1f}%" for v in payload.get('volume_changes', []))}
1096
+
1097
+ **LSTM Model Prediction:**
1098
+ - Action: {payload.get('recommendation', {}).get('action', 'N/A') if payload.get('recommendation') else 'N/A'}
1099
+ - Confidence: {payload.get('recommendation', {}).get('confidence', 0.0) if payload.get('recommendation') else 0.0:.2f}
1100
+
1101
+ **Moneycontrol Scorecard:**
1102
+ - Financial Score: {payload.get('mc', {}).get('score', 'N/A')} / 100
1103
+ - Market Cap: {payload.get('mc', {}).get('mcap')} Cr
1104
+ - Face Value: INR {payload.get('mc', {}).get('fv')}
1105
+
1106
+ Please structure your report with:
1107
+ 1. **Executive Summary**: Overview of the stock's current valuation, relative performance, and short-term vs medium-term trends.
1108
+ 2. **Technical Outlook**: Interpretation of the recent price actions, 52-week boundaries, and volume momentum.
1109
+ 3. **Model & Scorecard Assessment**: Critique of the LSTM recommendation and Moneycontrol financial score.
1110
+ 4. **Bull vs Bear Thesis**: 3 key arguments for the upside, and 3 key risks/downsides.
1111
+ 5. **Investment Recommendation**: Concluding action recommendation (Buy/Hold/Sell/Accumulate) and support thesis. Include a standard disclaimer stating this is for educational/informational purposes and not financial advice.
1112
+ """
1113
+ try:
1114
+ from ..core.nvidia_llm import NvidiaLLM
1115
+ llm = NvidiaLLM()
1116
+ analysis = llm.call(prompt, hint="finance")
1117
+ if not analysis or "LLM ERROR" in analysis or "LLM OFFLINE" in analysis:
1118
+ return jsonify({"ok": False, "message": "Failed to generate analysis from NVIDIA LLM."}), 500
1119
+
1120
+ # Write to cache
1121
+ file_path.write_text(analysis, encoding='utf-8')
1122
+
1123
+ # Sync with HF dataset if enabled
1124
+ extensions = current_app.extensions["nsedash"]
1125
+ hf_sync = extensions.get("hf_sync")
1126
+ if hf_sync:
1127
+ hf_sync.push_file_async(file_path)
1128
+
1129
+ return jsonify({"ok": True, "symbol": symbol, "analysis": analysis, "cached": False})
1130
+ except Exception as exc:
1131
+ logging.error("Failed generating AI analysis for %s: %s", symbol, exc)
1132
+ return jsonify({"ok": False, "message": f"Error running LLM: {str(exc)}"}), 500
1133
+
1134
+
1135
+
nsedash/web/static/app.js CHANGED
@@ -334,7 +334,10 @@ function cardEl(c) {
334
  ? `${c.recommendation.action}
335
  <span class="muted">(${fmt(c.recommendation.confidence)})</span>`
336
  : ""}</span>
337
- <button class="mc-btn">${mc.link ? "MC ↗" : "Set MC link"}</button>
 
 
 
338
  </div>`;
339
 
340
  card.querySelector(".rm").addEventListener("click", async () => {
@@ -360,6 +363,26 @@ function cardEl(c) {
360
  card.querySelectorAll(".in-qty, .in-price").forEach((inp) => {
361
  inp.addEventListener("change", pushInputs);
362
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
363
  card.querySelector(".mc-btn").addEventListener("click", async () => {
364
  if (mc.link) { window.open(mc.link, "_blank"); return; }
365
  const link = prompt(
@@ -1050,6 +1073,7 @@ document.addEventListener("DOMContentLoaded", async () => {
1050
 
1051
  // Admin Panel Event Handlers
1052
  $("#admin-close").onclick = () => $("#modal-admin").classList.add("hidden");
 
1053
  $("#admin-btn-show-add").onclick = () => {
1054
  hideAllAdminSidebarPanels();
1055
  $("#panel-add-user").classList.remove("hidden");
 
334
  ? `${c.recommendation.action}
335
  <span class="muted">(${fmt(c.recommendation.confidence)})</span>`
336
  : ""}</span>
337
+ <div style="display: flex; gap: 4px;">
338
+ <button class="ai-btn" aria-label="Generate AI analysis for ${c.symbol}">AI ✦</button>
339
+ <button class="mc-btn">${mc.link ? "MC ↗" : "Set MC link"}</button>
340
+ </div>
341
  </div>`;
342
 
343
  card.querySelector(".rm").addEventListener("click", async () => {
 
363
  card.querySelectorAll(".in-qty, .in-price").forEach((inp) => {
364
  inp.addEventListener("change", pushInputs);
365
  });
366
+ card.querySelector(".ai-btn").addEventListener("click", async () => {
367
+ $("#modal-ai").classList.remove("hidden");
368
+ $("#ai-title").innerText = `AI Stock Analysis: ${c.symbol}`;
369
+ $("#ai-content").innerHTML = `<div class="loading-spinner" style="display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 40px; color: var(--muted);">
370
+ <div class="spinner" style="border: 3px solid rgba(255,255,255,0.1); border-top: 3px solid var(--accent); border-radius: 50%; width: 30px; height: 30px; animation: spin 1s linear infinite; margin-bottom: 12px;"></div>
371
+ <span>Generating AI analysis... Please wait...</span>
372
+ </div>`;
373
+
374
+ try {
375
+ const payload = await api(`/stocks/${encodeURIComponent(c.symbol)}/ai-analysis`);
376
+ if (payload && payload.ok && payload.analysis) {
377
+ $("#ai-content").innerHTML = marked.parse(payload.analysis);
378
+ } else {
379
+ $("#ai-content").innerHTML = `<span class="loss">Error: ${esc((payload && payload.message) || "Failed to generate analysis")}</span>`;
380
+ }
381
+ } catch (err) {
382
+ $("#ai-content").innerHTML = `<span class="loss">Error: ${esc(err.message)}</span>`;
383
+ }
384
+ });
385
+
386
  card.querySelector(".mc-btn").addEventListener("click", async () => {
387
  if (mc.link) { window.open(mc.link, "_blank"); return; }
388
  const link = prompt(
 
1073
 
1074
  // Admin Panel Event Handlers
1075
  $("#admin-close").onclick = () => $("#modal-admin").classList.add("hidden");
1076
+ $("#ai-close").onclick = () => $("#modal-ai").classList.add("hidden");
1077
  $("#admin-btn-show-add").onclick = () => {
1078
  hideAllAdminSidebarPanels();
1079
  $("#panel-add-user").classList.remove("hidden");
nsedash/web/static/style.css CHANGED
@@ -781,4 +781,42 @@ html, body {
781
  border: 0;
782
  }
783
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
784
 
 
781
  border: 0;
782
  }
783
 
784
+ /* AI button & modal styles */
785
+ .ai-btn {
786
+ background: linear-gradient(135deg, #6c5ce7, #4834d4);
787
+ color: #fff;
788
+ border: none;
789
+ font-weight: 600;
790
+ transition: transform 0.2s ease, filter 0.2s ease;
791
+ }
792
+ .ai-btn:hover {
793
+ filter: brightness(1.2);
794
+ transform: translateY(-1px);
795
+ }
796
+ .ai-analysis-modal {
797
+ max-width: 800px;
798
+ width: 90%;
799
+ }
800
+ @keyframes spin {
801
+ 0% { transform: rotate(0deg); }
802
+ 100% { transform: rotate(360deg); }
803
+ }
804
+ /* Style markdown lists, headings, and tables in modal */
805
+ .markdown-body h1, .markdown-body h2, .markdown-body h3 {
806
+ margin-top: 16px;
807
+ margin-bottom: 8px;
808
+ color: var(--accent);
809
+ }
810
+ .markdown-body p {
811
+ margin-bottom: 12px;
812
+ }
813
+ .markdown-body ul, .markdown-body ol {
814
+ padding-left: 20px;
815
+ margin-bottom: 12px;
816
+ }
817
+ .markdown-body li {
818
+ margin-bottom: 4px;
819
+ }
820
+
821
+
822
 
nsedash/web/templates/index.html CHANGED
@@ -6,6 +6,7 @@
6
  <title>NSE Stock Dashboard</title>
7
  <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
8
  <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.min.js"></script>
 
9
  </head>
10
  <body>
11
 
@@ -302,6 +303,19 @@
302
  </div>
303
  </div>
304
 
 
 
 
 
 
 
 
 
 
 
 
 
 
305
  <!-- Shutdown Screen -->
306
  <div id="shutdown-screen" class="shutdown-screen">
307
  <div class="splash-content">
 
6
  <title>NSE Stock Dashboard</title>
7
  <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
8
  <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.4.1/chart.umd.min.js"></script>
9
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/marked/11.1.1/marked.min.js"></script>
10
  </head>
11
  <body>
12
 
 
303
  </div>
304
  </div>
305
 
306
+ <!-- AI Analysis Modal -->
307
+ <div id="modal-ai" class="overlay hidden" role="dialog" aria-modal="true" aria-labelledby="ai-title">
308
+ <div class="modal ai-analysis-modal">
309
+ <div class="modal-header" style="display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,0.1); padding-bottom: 12px; margin-bottom: 15px;">
310
+ <h3 id="ai-title" style="margin: 0;">AI Stock Analysis</h3>
311
+ <button id="ai-close" class="close-btn" style="background: none; border: none; font-size: 20px; color: var(--muted); cursor: pointer;" aria-label="Close AI analysis">×</button>
312
+ </div>
313
+ <div id="ai-content" class="markdown-body" style="max-height: 70vh; overflow-y: auto; text-align: left; padding: 10px; font-size: 14px; line-height: 1.6; color: var(--fg);">
314
+ <!-- Generated AI analysis in markdown format will go here -->
315
+ </div>
316
+ </div>
317
+ </div>
318
+
319
  <!-- Shutdown Screen -->
320
  <div id="shutdown-screen" class="shutdown-screen">
321
  <div class="splash-content">
processed/watchlists/nse_dashboard_hist_maxprice1d50.json CHANGED
@@ -2,255 +2,255 @@
2
  "name": "1D Max Price Portfolio",
3
  "symbols": [
4
  {
5
- "SYMBOL": "ELGIRUBCO",
6
  "Quantity": 0.0,
7
  "Price": 0.0
8
  },
9
  {
10
- "SYMBOL": "TPLPLASTEH",
11
  "Quantity": 0.0,
12
  "Price": 0.0
13
  },
14
  {
15
- "SYMBOL": "IKIO",
16
  "Quantity": 0.0,
17
  "Price": 0.0
18
  },
19
  {
20
- "SYMBOL": "DIGITIDE",
21
  "Quantity": 0.0,
22
  "Price": 0.0
23
  },
24
  {
25
- "SYMBOL": "SUMICHEM",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
29
  {
30
- "SYMBOL": "SOLARWORLD",
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
34
  {
35
- "SYMBOL": "INDOFARM",
36
  "Quantity": 0.0,
37
  "Price": 0.0
38
  },
39
  {
40
- "SYMBOL": "GANECOS",
41
  "Quantity": 0.0,
42
  "Price": 0.0
43
  },
44
  {
45
- "SYMBOL": "ASIANHOTNR",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
49
  {
50
- "SYMBOL": "HTMEDIA",
51
  "Quantity": 0.0,
52
  "Price": 0.0
53
  },
54
  {
55
- "SYMBOL": "BVCL",
56
  "Quantity": 0.0,
57
  "Price": 0.0
58
  },
59
  {
60
- "SYMBOL": "MENNPIS",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
64
  {
65
- "SYMBOL": "ZENSARTECH",
66
  "Quantity": 0.0,
67
  "Price": 0.0
68
  },
69
  {
70
- "SYMBOL": "INDORAMA",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
74
  {
75
- "SYMBOL": "TAALTECH",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
79
  {
80
- "SYMBOL": "ELECTHERM",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
- "SYMBOL": "CORDELIA",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
- "SYMBOL": "BTTL",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
- "SYMBOL": "SUVEN",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
- "SYMBOL": "AMIRCHAND",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
- "SYMBOL": "PATELRMART",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
- "SYMBOL": "AEGISVOPAK",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
- "SYMBOL": "SUPREME",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
- "SYMBOL": "FOODSIN",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
- "SYMBOL": "NGLFINE",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
- "SYMBOL": "KAUSHALYA",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
- "SYMBOL": "BUTTERFLY",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
- "SYMBOL": "CYIENTDLM",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
- "SYMBOL": "LOVABLE",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
- "SYMBOL": "AVG",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
- "SYMBOL": "COMSYN",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
- "SYMBOL": "MOSCHIP",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
- "SYMBOL": "VOEPL",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
- "SYMBOL": "ECLERX",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
- "SYMBOL": "DECNGOLD",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
- "SYMBOL": "SEIL",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
- "SYMBOL": "RAYMONDREL",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
- "SYMBOL": "GOLDIAM",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
- "SYMBOL": "FILATEX",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
- "SYMBOL": "BLAL",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
- "SYMBOL": "GCSL",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
- "SYMBOL": "KOTHARIPET",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
- "SYMBOL": "SPANDANA",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
- "SYMBOL": "DENTA",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
- "SYMBOL": "BANSALWIRE",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
- "SYMBOL": "GINNIFILA",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
- "SYMBOL": "FUSION",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
- "SYMBOL": "COSMOFIRST",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
- "SYMBOL": "IFGLEXPOR",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
- "SYMBOL": "EFCIL",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
- "last_updated": "2026-07-04T11:51:15.633394"
256
  }
 
2
  "name": "1D Max Price Portfolio",
3
  "symbols": [
4
  {
5
+ "SYMBOL": "KALYANKJIL",
6
  "Quantity": 0.0,
7
  "Price": 0.0
8
  },
9
  {
10
+ "SYMBOL": "MASTERTR",
11
  "Quantity": 0.0,
12
  "Price": 0.0
13
  },
14
  {
15
+ "SYMBOL": "TBZ",
16
  "Quantity": 0.0,
17
  "Price": 0.0
18
  },
19
  {
20
+ "SYMBOL": "MAPMYINDIA",
21
  "Quantity": 0.0,
22
  "Price": 0.0
23
  },
24
  {
25
+ "SYMBOL": "IKIO",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
29
  {
30
+ "SYMBOL": "UNICHEMLAB",
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
34
  {
35
+ "SYMBOL": "BUILDPRO",
36
  "Quantity": 0.0,
37
  "Price": 0.0
38
  },
39
  {
40
+ "SYMBOL": "RADHIKAJWE",
41
  "Quantity": 0.0,
42
  "Price": 0.0
43
  },
44
  {
45
+ "SYMBOL": "AZAD",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
49
  {
50
+ "SYMBOL": "TCIEXP",
51
  "Quantity": 0.0,
52
  "Price": 0.0
53
  },
54
  {
55
+ "SYMBOL": "MARSONS",
56
  "Quantity": 0.0,
57
  "Price": 0.0
58
  },
59
  {
60
+ "SYMBOL": "FERMENTA",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
64
  {
65
+ "SYMBOL": "BPL",
66
  "Quantity": 0.0,
67
  "Price": 0.0
68
  },
69
  {
70
+ "SYMBOL": "COCKERILL",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
74
  {
75
+ "SYMBOL": "MBAPL",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
79
  {
80
+ "SYMBOL": "INDNIPPON",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
+ "SYMBOL": "BETA",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
+ "SYMBOL": "BORORENEW",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
+ "SYMBOL": "JNKINDIA",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
+ "SYMBOL": "SUVEN",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
+ "SYMBOL": "INA",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
+ "SYMBOL": "SIKKO",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
+ "SYMBOL": "HALDER",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
+ "SYMBOL": "PML",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
+ "SYMBOL": "SAATVIKGL",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
+ "SYMBOL": "RPGLIFE",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
+ "SYMBOL": "SOMATEX",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
+ "SYMBOL": "KSHINTL",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
+ "SYMBOL": "CARYSIL",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
+ "SYMBOL": "DECNGOLD",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
+ "SYMBOL": "CHOICEIN",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
+ "SYMBOL": "TVSELECT",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
+ "SYMBOL": "BALAMINES",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
+ "SYMBOL": "HTMEDIA",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
+ "SYMBOL": "SWIGGY",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
+ "SYMBOL": "PPAP",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
+ "SYMBOL": "WALCHANNAG",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
+ "SYMBOL": "KRISHANA",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
+ "SYMBOL": "CNL",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
+ "SYMBOL": "EPACKPEB",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
+ "SYMBOL": "OMNI",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
+ "SYMBOL": "RAMCOIND",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
+ "SYMBOL": "SCANSTL",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
+ "SYMBOL": "NIBE",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
+ "SYMBOL": "DPABHUSHAN",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
+ "SYMBOL": "CARRARO",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
+ "SYMBOL": "INOXINDIA",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
+ "SYMBOL": "LODHA",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
+ "SYMBOL": "AMNPLST",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
+ "SYMBOL": "RBZJEWEL",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
+ "last_updated": "2026-07-09T21:06:09.095138"
256
  }
processed/watchlists/nse_dashboard_hist_maxprice1m50.json CHANGED
@@ -7,250 +7,250 @@
7
  "Price": 0.0
8
  },
9
  {
10
- "SYMBOL": "GRANDOAK",
11
  "Quantity": 0.0,
12
  "Price": 0.0
13
  },
14
  {
15
- "SYMBOL": "RAMCOSYS",
16
  "Quantity": 0.0,
17
  "Price": 0.0
18
  },
19
  {
20
- "SYMBOL": "AEGISLOG",
21
  "Quantity": 0.0,
22
  "Price": 0.0
23
  },
24
  {
25
- "SYMBOL": "VIPULLTD",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
29
  {
30
- "SYMBOL": "MSTCLTD",
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
34
  {
35
- "SYMBOL": "ONMOBILE",
36
  "Quantity": 0.0,
37
  "Price": 0.0
38
  },
39
  {
40
- "SYMBOL": "BLUSPRING",
41
  "Quantity": 0.0,
42
  "Price": 0.0
43
  },
44
  {
45
- "SYMBOL": "PARAS",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
49
  {
50
- "SYMBOL": "CUPID",
51
  "Quantity": 0.0,
52
  "Price": 0.0
53
  },
54
  {
55
- "SYMBOL": "MACPOWER",
56
  "Quantity": 0.0,
57
  "Price": 0.0
58
  },
59
  {
60
- "SYMBOL": "UFBL",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
64
  {
65
- "SYMBOL": "AVG",
66
  "Quantity": 0.0,
67
  "Price": 0.0
68
  },
69
  {
70
- "SYMBOL": "QUADFUTURE",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
74
  {
75
- "SYMBOL": "EMSLIMITED",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
79
  {
80
- "SYMBOL": "EBGNG",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
- "SYMBOL": "IXIGO",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
- "SYMBOL": "DENTA",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
- "SYMBOL": "BETA",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
- "SYMBOL": "NACLIND",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
- "SYMBOL": "INVPRECQ",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
- "SYMBOL": "PWL",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
- "SYMBOL": "CEMPRO",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
- "SYMBOL": "RPTECH",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
- "SYMBOL": "ASTRAMICRO",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
- "SYMBOL": "ORIENTHOT",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
- "SYMBOL": "QUESS",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
- "SYMBOL": "CARTRADE",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
- "SYMBOL": "INDSWFTLAB",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
- "SYMBOL": "ACSTECH",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
- "SYMBOL": "RELTD",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
- "SYMBOL": "GALAPREC",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
- "SYMBOL": "BTTL",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
- "SYMBOL": "SIKA",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
- "SYMBOL": "MENNPIS",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
- "SYMBOL": "JAYBARMARU",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
- "SYMBOL": "WABAG",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
- "SYMBOL": "SHIVAUM",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
- "SYMBOL": "AEGISVOPAK",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
- "SYMBOL": "PAISALO",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
- "SYMBOL": "CEWATER",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
- "SYMBOL": "RML",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
- "SYMBOL": "FUSION",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
- "SYMBOL": "AEROENTER",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
- "SYMBOL": "VOGL",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
- "SYMBOL": "YASHO",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
- "SYMBOL": "SPAL",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
- "SYMBOL": "NELCO",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
- "SYMBOL": "IGARASHI",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
- "SYMBOL": "SENORES",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
- "last_updated": "2026-07-04T11:51:15.667534"
256
  }
 
7
  "Price": 0.0
8
  },
9
  {
10
+ "SYMBOL": "UNICHEMLAB",
11
  "Quantity": 0.0,
12
  "Price": 0.0
13
  },
14
  {
15
+ "SYMBOL": "AEGISLOG",
16
  "Quantity": 0.0,
17
  "Price": 0.0
18
  },
19
  {
20
+ "SYMBOL": "RAMCOSYS",
21
  "Quantity": 0.0,
22
  "Price": 0.0
23
  },
24
  {
25
+ "SYMBOL": "EBGNG",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
29
  {
30
+ "SYMBOL": "GRANDOAK",
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
34
  {
35
+ "SYMBOL": "INDSWFTLAB",
36
  "Quantity": 0.0,
37
  "Price": 0.0
38
  },
39
  {
40
+ "SYMBOL": "CUPID",
41
  "Quantity": 0.0,
42
  "Price": 0.0
43
  },
44
  {
45
+ "SYMBOL": "BETA",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
49
  {
50
+ "SYMBOL": "AEGISVOPAK",
51
  "Quantity": 0.0,
52
  "Price": 0.0
53
  },
54
  {
55
+ "SYMBOL": "SPAL",
56
  "Quantity": 0.0,
57
  "Price": 0.0
58
  },
59
  {
60
+ "SYMBOL": "AMAGI",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
64
  {
65
+ "SYMBOL": "PWL",
66
  "Quantity": 0.0,
67
  "Price": 0.0
68
  },
69
  {
70
+ "SYMBOL": "RPTECH",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
74
  {
75
+ "SYMBOL": "AMIRCHAND",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
79
  {
80
+ "SYMBOL": "DBSTOCKBRO",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
+ "SYMBOL": "AEQUS",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
+ "SYMBOL": "RELTD",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
+ "SYMBOL": "RML",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
+ "SYMBOL": "FUSION",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
+ "SYMBOL": "TBZ",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
+ "SYMBOL": "MACPOWER",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
+ "SYMBOL": "SCHNEIDER",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
+ "SYMBOL": "STYL",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
+ "SYMBOL": "JAYBARMARU",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
+ "SYMBOL": "SHAREINDIA",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
+ "SYMBOL": "GNA",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
+ "SYMBOL": "MENNPIS",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
+ "SYMBOL": "LODHA",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
+ "SYMBOL": "TARSONS",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
+ "SYMBOL": "IKIO",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
+ "SYMBOL": "DENTA",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
+ "SYMBOL": "WABAG",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
+ "SYMBOL": "PPAP",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
+ "SYMBOL": "SIKA",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
+ "SYMBOL": "EMSLIMITED",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
+ "SYMBOL": "SPARC",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
+ "SYMBOL": "UFBL",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
+ "SYMBOL": "OPTIEMUS",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
+ "SYMBOL": "ZSARACOM",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
+ "SYMBOL": "KIRLOSIND",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
+ "SYMBOL": "PANSARI",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
+ "SYMBOL": "NACLIND",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
+ "SYMBOL": "ELGIRUBCO",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
+ "SYMBOL": "BHARATSE",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
+ "SYMBOL": "ORIENTHOT",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
+ "SYMBOL": "SUVEN",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
+ "SYMBOL": "NITTAGELA",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
+ "SYMBOL": "KIRLOSENG",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
+ "SYMBOL": "AETHER",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
+ "last_updated": "2026-07-09T21:06:09.131567"
256
  }
processed/watchlists/nse_dashboard_hist_maxprice1w50.json CHANGED
@@ -2,255 +2,255 @@
2
  "name": "1W Max Price Portfolio",
3
  "symbols": [
4
  {
5
- "SYMBOL": "IKIO",
6
  "Quantity": 0.0,
7
  "Price": 0.0
8
  },
9
  {
10
- "SYMBOL": "ONMOBILE",
11
  "Quantity": 0.0,
12
  "Price": 0.0
13
  },
14
  {
15
- "SYMBOL": "VOGL",
16
  "Quantity": 0.0,
17
  "Price": 0.0
18
  },
19
  {
20
- "SYMBOL": "LEXUS",
21
  "Quantity": 0.0,
22
  "Price": 0.0
23
  },
24
  {
25
- "SYMBOL": "BHARATSE",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
29
  {
30
- "SYMBOL": "MHLXMIRU",
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
34
  {
35
- "SYMBOL": "AMIRCHAND",
36
  "Quantity": 0.0,
37
  "Price": 0.0
38
  },
39
  {
40
- "SYMBOL": "TAALTECH",
41
  "Quantity": 0.0,
42
  "Price": 0.0
43
  },
44
  {
45
- "SYMBOL": "AVG",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
49
  {
50
- "SYMBOL": "IFGLEXPOR",
51
  "Quantity": 0.0,
52
  "Price": 0.0
53
  },
54
  {
55
- "SYMBOL": "FUSION",
56
  "Quantity": 0.0,
57
  "Price": 0.0
58
  },
59
  {
60
- "SYMBOL": "TPLPLASTEH",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
64
  {
65
- "SYMBOL": "COMSYN",
66
  "Quantity": 0.0,
67
  "Price": 0.0
68
  },
69
  {
70
- "SYMBOL": "HALEOSLABS",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
74
  {
75
- "SYMBOL": "AYMSYNTEX",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
79
  {
80
- "SYMBOL": "SIGNPOST",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
- "SYMBOL": "CORDELIA",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
- "SYMBOL": "EMIL",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
- "SYMBOL": "CENTRUM",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
- "SYMBOL": "PCJEWELLER",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
- "SYMBOL": "ELGIRUBCO",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
- "SYMBOL": "SETL",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
- "SYMBOL": "DIGITIDE",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
- "SYMBOL": "SHAH",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
- "SYMBOL": "SUMICHEM",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
- "SYMBOL": "PAISALO",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
- "SYMBOL": "ZENSARTECH",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
- "SYMBOL": "SUVEN",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
- "SYMBOL": "SUPREMEINF",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
- "SYMBOL": "QUESS",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
- "SYMBOL": "IGCL",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
- "SYMBOL": "DIVGIITTS",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
- "SYMBOL": "GCSL",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
- "SYMBOL": "FOODSIN",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
- "SYMBOL": "DCAL",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
- "SYMBOL": "SIKA",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
- "SYMBOL": "BALAMINES",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
- "SYMBOL": "SOLARWORLD",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
- "SYMBOL": "KERNEX",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
- "SYMBOL": "CEMPRO",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
- "SYMBOL": "SCPL",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
- "SYMBOL": "TIRUMALCHM",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
- "SYMBOL": "TIRUPATIFL",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
- "SYMBOL": "IXIGO",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
- "SYMBOL": "KAUSHALYA",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
- "SYMBOL": "INDOFARM",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
- "SYMBOL": "VISL",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
- "SYMBOL": "MAPMYINDIA",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
- "SYMBOL": "PICCADIL",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
- "SYMBOL": "KEYFINSERV",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
- "last_updated": "2026-07-04T11:51:15.651997"
256
  }
 
2
  "name": "1W Max Price Portfolio",
3
  "symbols": [
4
  {
5
+ "SYMBOL": "UNICHEMLAB",
6
  "Quantity": 0.0,
7
  "Price": 0.0
8
  },
9
  {
10
+ "SYMBOL": "ZSARACOM",
11
  "Quantity": 0.0,
12
  "Price": 0.0
13
  },
14
  {
15
+ "SYMBOL": "SHAREINDIA",
16
  "Quantity": 0.0,
17
  "Price": 0.0
18
  },
19
  {
20
+ "SYMBOL": "ELGIRUBCO",
21
  "Quantity": 0.0,
22
  "Price": 0.0
23
  },
24
  {
25
+ "SYMBOL": "MASTERTR",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
29
  {
30
+ "SYMBOL": "GANECOS",
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
34
  {
35
+ "SYMBOL": "ITDC",
36
  "Quantity": 0.0,
37
  "Price": 0.0
38
  },
39
  {
40
+ "SYMBOL": "IKIO",
41
  "Quantity": 0.0,
42
  "Price": 0.0
43
  },
44
  {
45
+ "SYMBOL": "SOMATEX",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
49
  {
50
+ "SYMBOL": "TBZ",
51
  "Quantity": 0.0,
52
  "Price": 0.0
53
  },
54
  {
55
+ "SYMBOL": "DPABHUSHAN",
56
  "Quantity": 0.0,
57
  "Price": 0.0
58
  },
59
  {
60
+ "SYMBOL": "DBSTOCKBRO",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
64
  {
65
+ "SYMBOL": "BUILDPRO",
66
  "Quantity": 0.0,
67
  "Price": 0.0
68
  },
69
  {
70
+ "SYMBOL": "AZAD",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
74
  {
75
+ "SYMBOL": "DIGITIDE",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
79
  {
80
+ "SYMBOL": "LODHA",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
+ "SYMBOL": "HTMEDIA",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
+ "SYMBOL": "AEGISVOPAK",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
+ "SYMBOL": "NAUKRI",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
+ "SYMBOL": "AMIRCHAND",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
+ "SYMBOL": "MAPMYINDIA",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
+ "SYMBOL": "CORDELIA",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
+ "SYMBOL": "FILATEX",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
+ "SYMBOL": "SUVEN",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
+ "SYMBOL": "CONSOFINVT",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
+ "SYMBOL": "PANSARI",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
+ "SYMBOL": "SPARC",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
+ "SYMBOL": "MOSCHIP",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
+ "SYMBOL": "INDSWFTLAB",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
+ "SYMBOL": "KALYANKJIL",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
+ "SYMBOL": "FERMENTA",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
+ "SYMBOL": "CYIENTDLM",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
+ "SYMBOL": "CNL",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
+ "SYMBOL": "DIACABS",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
+ "SYMBOL": "MIRZAINT",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
+ "SYMBOL": "PWL",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
+ "SYMBOL": "TPLPLASTEH",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
+ "SYMBOL": "BANARBEADS",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
+ "SYMBOL": "SWIGGY",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
+ "SYMBOL": "RADHIKAJWE",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
+ "SYMBOL": "NITTAGELA",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
+ "SYMBOL": "SOTL",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
+ "SYMBOL": "DECNGOLD",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
+ "SYMBOL": "OAL",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
+ "SYMBOL": "JINDRILL",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
+ "SYMBOL": "GEMAROMA",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
+ "SYMBOL": "AEQUS",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
+ "SYMBOL": "IFGLEXPOR",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
+ "SYMBOL": "SOLARWORLD",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
+ "SYMBOL": "IOLCP",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
+ "last_updated": "2026-07-09T21:06:09.113842"
256
  }
processed/watchlists/nse_dashboard_hist_maxprice3m50.json CHANGED
@@ -2,52 +2,52 @@
2
  "name": "3M Max Price Portfolio",
3
  "symbols": [
4
  {
5
- "SYMBOL": "UFBL",
6
  "Quantity": 0.0,
7
  "Price": 0.0
8
  },
9
  {
10
- "SYMBOL": "HFCL",
11
  "Quantity": 0.0,
12
  "Price": 0.0
13
  },
14
  {
15
- "SYMBOL": "CEMPRO",
16
  "Quantity": 0.0,
17
  "Price": 0.0
18
  },
19
  {
20
- "SYMBOL": "KERNEX",
21
  "Quantity": 0.0,
22
  "Price": 0.0
23
  },
24
  {
25
- "SYMBOL": "APOLLO",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
29
  {
30
- "SYMBOL": "CUPID",
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
34
  {
35
- "SYMBOL": "SETL",
36
  "Quantity": 0.0,
37
  "Price": 0.0
38
  },
39
  {
40
- "SYMBOL": "AEGISLOG",
41
  "Quantity": 0.0,
42
  "Price": 0.0
43
  },
44
  {
45
- "SYMBOL": "PARACABLES",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
49
  {
50
- "SYMBOL": "BALAMINES",
51
  "Quantity": 0.0,
52
  "Price": 0.0
53
  },
@@ -57,7 +57,7 @@
57
  "Price": 0.0
58
  },
59
  {
60
- "SYMBOL": "BBOX",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
@@ -67,190 +67,190 @@
67
  "Price": 0.0
68
  },
69
  {
70
- "SYMBOL": "RPTECH",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
74
  {
75
- "SYMBOL": "JAYBARMARU",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
79
  {
80
- "SYMBOL": "ELECTHERM",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
- "SYMBOL": "PARAS",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
- "SYMBOL": "RPEL",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
- "SYMBOL": "NITTAGELA",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
- "SYMBOL": "PAISALO",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
- "SYMBOL": "EXICOM",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
- "SYMBOL": "BLUSPRING",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
- "SYMBOL": "CPPLUS",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
- "SYMBOL": "ASTRAMICRO",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
- "SYMBOL": "SPARC",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
- "SYMBOL": "SUVEN",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
- "SYMBOL": "AYE",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
- "SYMBOL": "SKMEGGPROD",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
- "SYMBOL": "SHADOWFAX",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
- "SYMBOL": "AEQUS",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
- "SYMBOL": "LLOYDSENGG",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
- "SYMBOL": "ONMOBILE",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
- "SYMBOL": "SBCL",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
- "SYMBOL": "VIDYAWIRES",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
- "SYMBOL": "RATEGAIN",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
- "SYMBOL": "VINDHYATEL",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
- "SYMBOL": "JNKINDIA",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
- "SYMBOL": "AVALON",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
- "SYMBOL": "GRWRHITECH",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
- "SYMBOL": "CMPDI",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
- "SYMBOL": "ADFFOODS",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
- "SYMBOL": "PREMEXPLN",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
- "SYMBOL": "ORCHPHARMA",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
- "SYMBOL": "IOLCP",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
- "SYMBOL": "AEROFLEX",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
- "SYMBOL": "MSTCLTD",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
- "SYMBOL": "SENORES",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
- "SYMBOL": "AEROENTER",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
- "SYMBOL": "NIBE",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
- "SYMBOL": "RRKABEL",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
- "last_updated": "2026-07-04T11:51:15.683318"
256
  }
 
2
  "name": "3M Max Price Portfolio",
3
  "symbols": [
4
  {
5
+ "SYMBOL": "SIGMAADV",
6
  "Quantity": 0.0,
7
  "Price": 0.0
8
  },
9
  {
10
+ "SYMBOL": "UFBL",
11
  "Quantity": 0.0,
12
  "Price": 0.0
13
  },
14
  {
15
+ "SYMBOL": "HFCL",
16
  "Quantity": 0.0,
17
  "Price": 0.0
18
  },
19
  {
20
+ "SYMBOL": "CEMPRO",
21
  "Quantity": 0.0,
22
  "Price": 0.0
23
  },
24
  {
25
+ "SYMBOL": "CUPID",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
29
  {
30
+ "SYMBOL": "NITTAGELA",
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
34
  {
35
+ "SYMBOL": "BALAMINES",
36
  "Quantity": 0.0,
37
  "Price": 0.0
38
  },
39
  {
40
+ "SYMBOL": "SETL",
41
  "Quantity": 0.0,
42
  "Price": 0.0
43
  },
44
  {
45
+ "SYMBOL": "JAYBARMARU",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
49
  {
50
+ "SYMBOL": "IOLCP",
51
  "Quantity": 0.0,
52
  "Price": 0.0
53
  },
 
57
  "Price": 0.0
58
  },
59
  {
60
+ "SYMBOL": "AEGISLOG",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
 
67
  "Price": 0.0
68
  },
69
  {
70
+ "SYMBOL": "UNICHEMLAB",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
74
  {
75
+ "SYMBOL": "RPTECH",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
79
  {
80
+ "SYMBOL": "CPPLUS",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
+ "SYMBOL": "ORCHPHARMA",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
+ "SYMBOL": "SPARC",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
+ "SYMBOL": "GRWRHITECH",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
+ "SYMBOL": "JNKINDIA",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
+ "SYMBOL": "PAISALO",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
+ "SYMBOL": "RPEL",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
+ "SYMBOL": "PARACABLES",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
+ "SYMBOL": "KERNEX",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
+ "SYMBOL": "SKMEGGPROD",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
+ "SYMBOL": "ASTRAMICRO",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
+ "SYMBOL": "COCKERILL",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
+ "SYMBOL": "AEQUS",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
+ "SYMBOL": "PARAS",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
+ "SYMBOL": "BBOX",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
+ "SYMBOL": "SUVEN",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
+ "SYMBOL": "DIACABS",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
+ "SYMBOL": "RANEHOLDIN",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
+ "SYMBOL": "SENORES",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
+ "SYMBOL": "RML",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
+ "SYMBOL": "CYIENTDLM",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
+ "SYMBOL": "LLOYDSENGG",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
+ "SYMBOL": "DECNGOLD",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
+ "SYMBOL": "INDOBORAX",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
+ "SYMBOL": "SEDEMAC",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
+ "SYMBOL": "TIMEX",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
+ "SYMBOL": "ELPROINTL",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
+ "SYMBOL": "ICIL",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
+ "SYMBOL": "PANACEABIO",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
+ "SYMBOL": "SOTL",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
+ "SYMBOL": "RUBICON",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
+ "SYMBOL": "VINDHYATEL",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
+ "SYMBOL": "APOLLO",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
+ "SYMBOL": "INDSWFTLAB",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
+ "SYMBOL": "RATEGAIN",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
+ "last_updated": "2026-07-09T21:06:09.148918"
256
  }
processed/watchlists/nse_dashboard_hist_maxvol1d50.json CHANGED
@@ -2,255 +2,255 @@
2
  "name": "1D Max Volume Portfolio",
3
  "symbols": [
4
  {
5
- "SYMBOL": "SUMICHEM",
6
  "Quantity": 0.0,
7
  "Price": 0.0
8
  },
9
  {
10
- "SYMBOL": "SOLARWORLD",
11
  "Quantity": 0.0,
12
  "Price": 0.0
13
  },
14
  {
15
- "SYMBOL": "INDOFARM",
16
  "Quantity": 0.0,
17
  "Price": 0.0
18
  },
19
  {
20
- "SYMBOL": "INDORAMA",
21
  "Quantity": 0.0,
22
  "Price": 0.0
23
  },
24
  {
25
- "SYMBOL": "TPLPLASTEH",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
29
  {
30
- "SYMBOL": "DIGITIDE",
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
34
  {
35
- "SYMBOL": "PATELRMART",
36
  "Quantity": 0.0,
37
  "Price": 0.0
38
  },
39
  {
40
- "SYMBOL": "KOTHARIPET",
41
  "Quantity": 0.0,
42
  "Price": 0.0
43
  },
44
  {
45
- "SYMBOL": "SUPREME",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
49
  {
50
- "SYMBOL": "RUPA",
51
  "Quantity": 0.0,
52
  "Price": 0.0
53
  },
54
  {
55
- "SYMBOL": "GANGESSECU",
56
  "Quantity": 0.0,
57
  "Price": 0.0
58
  },
59
  {
60
- "SYMBOL": "MOMENTUM30",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
64
  {
65
- "SYMBOL": "TAINWALCHM",
66
  "Quantity": 0.0,
67
  "Price": 0.0
68
  },
69
  {
70
- "SYMBOL": "POLICYBZR",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
74
  {
75
- "SYMBOL": "ELGIRUBCO",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
79
  {
80
- "SYMBOL": "RAYMONDREL",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
- "SYMBOL": "MODIS",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
- "SYMBOL": "INDIANHUME",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
- "SYMBOL": "KKCL",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
- "SYMBOL": "BANKBETA",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
- "SYMBOL": "NIFTYBETA",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
- "SYMBOL": "GANECOS",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
- "SYMBOL": "CAPILLARY",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
- "SYMBOL": "ASIANHOTNR",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
- "SYMBOL": "BVCL",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
- "SYMBOL": "RAJTV",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
- "SYMBOL": "LOVABLE",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
- "SYMBOL": "MOSCHIP",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
- "SYMBOL": "MENNPIS",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
- "SYMBOL": "KRYSTAL",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
- "SYMBOL": "RKDL",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
- "SYMBOL": "CYIENTDLM",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
- "SYMBOL": "DENTA",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
- "SYMBOL": "HTMEDIA",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
- "SYMBOL": "BLAL",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
- "SYMBOL": "UNIECOM",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
- "SYMBOL": "BAJAJHFL",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
- "SYMBOL": "AROGRANITE",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
- "SYMBOL": "RESPONIND",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
- "SYMBOL": "SINDHUTRAD",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
- "SYMBOL": "BEDMUTHA",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
- "SYMBOL": "SHIVATEX",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
- "SYMBOL": "MANGLMCEM",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
- "SYMBOL": "VISL",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
- "SYMBOL": "MAXESTATES",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
- "SYMBOL": "BLSE",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
- "SYMBOL": "INNOVISION",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
- "SYMBOL": "DONEAR",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
- "SYMBOL": "ARTNIRMAN",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
- "SYMBOL": "NUVAMA",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
- "last_updated": "2026-07-04T11:51:20.798360"
256
  }
 
2
  "name": "1D Max Volume Portfolio",
3
  "symbols": [
4
  {
5
+ "SYMBOL": "SURAJLTD",
6
  "Quantity": 0.0,
7
  "Price": 0.0
8
  },
9
  {
10
+ "SYMBOL": "DBCORP",
11
  "Quantity": 0.0,
12
  "Price": 0.0
13
  },
14
  {
15
+ "SYMBOL": "CNL",
16
  "Quantity": 0.0,
17
  "Price": 0.0
18
  },
19
  {
20
+ "SYMBOL": "INA",
21
  "Quantity": 0.0,
22
  "Price": 0.0
23
  },
24
  {
25
+ "SYMBOL": "TCIEXP",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
29
  {
30
+ "SYMBOL": "VISL",
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
34
  {
35
+ "SYMBOL": "NDTV",
36
  "Quantity": 0.0,
37
  "Price": 0.0
38
  },
39
  {
40
+ "SYMBOL": "RESPONIND",
41
  "Quantity": 0.0,
42
  "Price": 0.0
43
  },
44
  {
45
+ "SYMBOL": "INDIQUBE",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
49
  {
50
+ "SYMBOL": "MAPMYINDIA",
51
  "Quantity": 0.0,
52
  "Price": 0.0
53
  },
54
  {
55
+ "SYMBOL": "BPL",
56
  "Quantity": 0.0,
57
  "Price": 0.0
58
  },
59
  {
60
+ "SYMBOL": "SINDHUTRAD",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
64
  {
65
+ "SYMBOL": "SAGCEM",
66
  "Quantity": 0.0,
67
  "Price": 0.0
68
  },
69
  {
70
+ "SYMBOL": "EIMCOELECO",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
74
  {
75
+ "SYMBOL": "PNC",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
79
  {
80
+ "SYMBOL": "NEPHROPLUS",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
+ "SYMBOL": "TVSELECT",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
+ "SYMBOL": "EIHOTEL",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
+ "SYMBOL": "IKIO",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
+ "SYMBOL": "BORORENEW",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
+ "SYMBOL": "GMBREW",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
+ "SYMBOL": "ARIHANTCAP",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
+ "SYMBOL": "BLS",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
+ "SYMBOL": "INDNIPPON",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
+ "SYMBOL": "PANACHE",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
+ "SYMBOL": "DGCONTENT",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
+ "SYMBOL": "HEADSUP",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
+ "SYMBOL": "FERMENTA",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
+ "SYMBOL": "JSWDULUX",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
+ "SYMBOL": "SAHLIBHFI",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
+ "SYMBOL": "TOTAL",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
+ "SYMBOL": "CARRARO",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
+ "SYMBOL": "PPAP",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
+ "SYMBOL": "DELTAMAGNT",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
+ "SYMBOL": "FEDDERSHOL",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
+ "SYMBOL": "LIBAS",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
+ "SYMBOL": "PRIMESECU",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
+ "SYMBOL": "CELEBRITY",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
+ "SYMBOL": "CHOICEIN",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
+ "SYMBOL": "BUILDPRO",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
+ "SYMBOL": "RBZJEWEL",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
+ "SYMBOL": "ENIL",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
+ "SYMBOL": "ASIANTILES",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
+ "SYMBOL": "BHARATSE",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
+ "SYMBOL": "SUNTECK",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
+ "SYMBOL": "CREST",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
+ "SYMBOL": "TIPSMUSIC",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
+ "SYMBOL": "DRREDDY",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
+ "SYMBOL": "HAPPSTMNDS",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
+ "SYMBOL": "LYPSAGEMS",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
+ "last_updated": "2026-07-09T21:06:14.932731"
256
  }
processed/watchlists/nse_dashboard_hist_maxvol1m50.json CHANGED
@@ -2,32 +2,32 @@
2
  "name": "1M Max Volume Portfolio",
3
  "symbols": [
4
  {
5
- "SYMBOL": "WEIZMANIND",
6
  "Quantity": 0.0,
7
  "Price": 0.0
8
  },
9
  {
10
- "SYMBOL": "CLSEL",
11
  "Quantity": 0.0,
12
  "Price": 0.0
13
  },
14
  {
15
- "SYMBOL": "SURYALAXMI",
16
  "Quantity": 0.0,
17
  "Price": 0.0
18
  },
19
  {
20
- "SYMBOL": "RUSTOMJEE",
21
  "Quantity": 0.0,
22
  "Price": 0.0
23
  },
24
  {
25
- "SYMBOL": "GRANDOAK",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
29
  {
30
- "SYMBOL": "BANK10ADD",
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
@@ -37,12 +37,12 @@
37
  "Price": 0.0
38
  },
39
  {
40
- "SYMBOL": "TCIEXP",
41
  "Quantity": 0.0,
42
  "Price": 0.0
43
  },
44
  {
45
- "SYMBOL": "ABSL10BANK",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
@@ -52,162 +52,162 @@
52
  "Price": 0.0
53
  },
54
  {
55
- "SYMBOL": "PANSARI",
56
  "Quantity": 0.0,
57
  "Price": 0.0
58
  },
59
  {
60
- "SYMBOL": "GRAVISSHO",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
64
  {
65
- "SYMBOL": "PIXTRANS",
66
  "Quantity": 0.0,
67
  "Price": 0.0
68
  },
69
  {
70
- "SYMBOL": "CONTROLPR",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
74
  {
75
- "SYMBOL": "OMAXE",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
79
  {
80
- "SYMBOL": "HSBCGOLD",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
- "SYMBOL": "RELAXO",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
- "SYMBOL": "SAKSOFT",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
- "SYMBOL": "SILLYMONKS",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
- "SYMBOL": "COMSYN",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
- "SYMBOL": "RITES",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
- "SYMBOL": "ANMOL",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
- "SYMBOL": "SPAL",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
- "SYMBOL": "CENTRUM",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
- "SYMBOL": "SAMBHAAV",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
- "SYMBOL": "SUPREME",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
- "SYMBOL": "IGARASHI",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
- "SYMBOL": "GARFIBRES",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
- "SYMBOL": "ADL",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
- "SYMBOL": "MFML",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
- "SYMBOL": "THEMISMED",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
- "SYMBOL": "NIFTYADD",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
- "SYMBOL": "UNIECOM",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
- "SYMBOL": "EMSLIMITED",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
- "SYMBOL": "SUMICHEM",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
- "SYMBOL": "IKIO",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
- "SYMBOL": "EXXARO",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
- "SYMBOL": "ROTO",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
- "SYMBOL": "BANKBETA",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
- "SYMBOL": "LCCINFOTEC",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
- "SYMBOL": "STUDDS",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
- "SYMBOL": "INDOFARM",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
@@ -217,40 +217,40 @@
217
  "Price": 0.0
218
  },
219
  {
220
- "SYMBOL": "SOMICONVEY",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
- "SYMBOL": "AFCONS",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
- "SYMBOL": "RAMCOIND",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
- "SYMBOL": "NUCLEUS",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
- "SYMBOL": "DGCONTENT",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
- "SYMBOL": "HINDWAREAP",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
- "SYMBOL": "ENIFTY",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
- "last_updated": "2026-07-04T11:51:35.277487"
256
  }
 
2
  "name": "1M Max Volume Portfolio",
3
  "symbols": [
4
  {
5
+ "SYMBOL": "GRAVISSHO",
6
  "Quantity": 0.0,
7
  "Price": 0.0
8
  },
9
  {
10
+ "SYMBOL": "ABSL10BANK",
11
  "Quantity": 0.0,
12
  "Price": 0.0
13
  },
14
  {
15
+ "SYMBOL": "CLSEL",
16
  "Quantity": 0.0,
17
  "Price": 0.0
18
  },
19
  {
20
+ "SYMBOL": "SURYALAXMI",
21
  "Quantity": 0.0,
22
  "Price": 0.0
23
  },
24
  {
25
+ "SYMBOL": "RUSTOMJEE",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
29
  {
30
+ "SYMBOL": "TCIEXP",
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
 
37
  "Price": 0.0
38
  },
39
  {
40
+ "SYMBOL": "BANK10ADD",
41
  "Quantity": 0.0,
42
  "Price": 0.0
43
  },
44
  {
45
+ "SYMBOL": "ITDC",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
 
52
  "Price": 0.0
53
  },
54
  {
55
+ "SYMBOL": "JINDRILL",
56
  "Quantity": 0.0,
57
  "Price": 0.0
58
  },
59
  {
60
+ "SYMBOL": "NATIONSTD",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
64
  {
65
+ "SYMBOL": "SURAJLTD",
66
  "Quantity": 0.0,
67
  "Price": 0.0
68
  },
69
  {
70
+ "SYMBOL": "PIXTRANS",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
74
  {
75
+ "SYMBOL": "CONTROLPR",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
79
  {
80
+ "SYMBOL": "OMAXE",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
+ "SYMBOL": "BANARBEADS",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
+ "SYMBOL": "RITES",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
+ "SYMBOL": "SHAREINDIA",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
+ "SYMBOL": "INDIANCARD",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
+ "SYMBOL": "PANSARI",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
+ "SYMBOL": "RELAXO",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
+ "SYMBOL": "WEIZMANIND",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
+ "SYMBOL": "SAKSOFT",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
+ "SYMBOL": "SILLYMONKS",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
+ "SYMBOL": "ANMOL",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
+ "SYMBOL": "SPAL",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
+ "SYMBOL": "CENTRUM",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
+ "SYMBOL": "HSBCGOLD",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
+ "SYMBOL": "SAMBHAAV",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
+ "SYMBOL": "DPABHUSHAN",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
+ "SYMBOL": "ADL",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
+ "SYMBOL": "TARC",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
+ "SYMBOL": "IGARASHI",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
+ "SYMBOL": "GARFIBRES",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
+ "SYMBOL": "COMSYN",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
+ "SYMBOL": "SUPREME",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
+ "SYMBOL": "THEMISMED",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
+ "SYMBOL": "DBCORP",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
+ "SYMBOL": "UNIECOM",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
+ "SYMBOL": "IKIO",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
+ "SYMBOL": "SUMICHEM",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
 
217
  "Price": 0.0
218
  },
219
  {
220
+ "SYMBOL": "EXXARO",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
+ "SYMBOL": "CNL",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
+ "SYMBOL": "ROTO",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
+ "SYMBOL": "DGCONTENT",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
+ "SYMBOL": "SOMICONVEY",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
+ "SYMBOL": "MUNJALAU",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
+ "SYMBOL": "RAMCOIND",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
+ "last_updated": "2026-07-09T21:06:30.181766"
256
  }
processed/watchlists/nse_dashboard_hist_maxvol1w50.json CHANGED
@@ -2,7 +2,7 @@
2
  "name": "1W Max Volume Portfolio",
3
  "symbols": [
4
  {
5
- "SYMBOL": "CONTROLPR",
6
  "Quantity": 0.0,
7
  "Price": 0.0
8
  },
@@ -12,245 +12,245 @@
12
  "Price": 0.0
13
  },
14
  {
15
- "SYMBOL": "GRAVISSHO",
16
  "Quantity": 0.0,
17
  "Price": 0.0
18
  },
19
  {
20
- "SYMBOL": "PANSARI",
21
  "Quantity": 0.0,
22
  "Price": 0.0
23
  },
24
  {
25
- "SYMBOL": "CENTRUM",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
29
  {
30
- "SYMBOL": "RITES",
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
34
  {
35
- "SYMBOL": "COMSYN",
36
  "Quantity": 0.0,
37
  "Price": 0.0
38
  },
39
  {
40
- "SYMBOL": "IKIO",
41
  "Quantity": 0.0,
42
  "Price": 0.0
43
  },
44
  {
45
- "SYMBOL": "SUMICHEM",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
49
  {
50
- "SYMBOL": "SOLARWORLD",
51
  "Quantity": 0.0,
52
  "Price": 0.0
53
  },
54
  {
55
- "SYMBOL": "JTEKTINDIA",
56
  "Quantity": 0.0,
57
  "Price": 0.0
58
  },
59
  {
60
- "SYMBOL": "BSL",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
64
  {
65
- "SYMBOL": "DIVGIITTS",
66
  "Quantity": 0.0,
67
  "Price": 0.0
68
  },
69
  {
70
- "SYMBOL": "ORIENTTECH",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
74
  {
75
- "SYMBOL": "INDOFARM",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
79
  {
80
- "SYMBOL": "IFGLEXPOR",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
- "SYMBOL": "SIGNPOST",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
- "SYMBOL": "RHIM",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
- "SYMBOL": "INDORAMA",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
- "SYMBOL": "MUNJALAU",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
- "SYMBOL": "TPLPLASTEH",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
- "SYMBOL": "HINDCOMPOS",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
- "SYMBOL": "BHARATSE",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
- "SYMBOL": "ADFFOODS",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
- "SYMBOL": "DIGITIDE",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
- "SYMBOL": "PATELRMART",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
- "SYMBOL": "EXCELSOFT",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
- "SYMBOL": "NELCAST",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
- "SYMBOL": "SIKA",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
- "SYMBOL": "ZENSARTECH",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
- "SYMBOL": "MONEYBOXX",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
- "SYMBOL": "JINDALPHOT",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
- "SYMBOL": "KOTHARIPET",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
- "SYMBOL": "SUPREME",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
- "SYMBOL": "AVG",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
- "SYMBOL": "RUPA",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
- "SYMBOL": "SMSPHARMA",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
- "SYMBOL": "IVALUE",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
- "SYMBOL": "GENUSPOWER",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
- "SYMBOL": "MFML",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
- "SYMBOL": "GANGESSECU",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
- "SYMBOL": "SONATSOFTW",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
- "SYMBOL": "BUTTERFLY",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
- "SYMBOL": "TAINWALCHM",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
- "SYMBOL": "GUFICBIO",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
- "SYMBOL": "MOMENTUM30",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
- "SYMBOL": "ITADD",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
- "SYMBOL": "SUPREMEINF",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
- "SYMBOL": "PCJEWELLER",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
- "SYMBOL": "MOTOUR",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
- "last_updated": "2026-07-04T11:51:28.104619"
256
  }
 
2
  "name": "1W Max Volume Portfolio",
3
  "symbols": [
4
  {
5
+ "SYMBOL": "GRAVISSHO",
6
  "Quantity": 0.0,
7
  "Price": 0.0
8
  },
 
12
  "Price": 0.0
13
  },
14
  {
15
+ "SYMBOL": "ITDC",
16
  "Quantity": 0.0,
17
  "Price": 0.0
18
  },
19
  {
20
+ "SYMBOL": "JINDRILL",
21
  "Quantity": 0.0,
22
  "Price": 0.0
23
  },
24
  {
25
+ "SYMBOL": "SURAJLTD",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
29
  {
30
+ "SYMBOL": "BANARBEADS",
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
34
  {
35
+ "SYMBOL": "SHAREINDIA",
36
  "Quantity": 0.0,
37
  "Price": 0.0
38
  },
39
  {
40
+ "SYMBOL": "INDIANCARD",
41
  "Quantity": 0.0,
42
  "Price": 0.0
43
  },
44
  {
45
+ "SYMBOL": "TARC",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
49
  {
50
+ "SYMBOL": "DPABHUSHAN",
51
  "Quantity": 0.0,
52
  "Price": 0.0
53
  },
54
  {
55
+ "SYMBOL": "DBCORP",
56
  "Quantity": 0.0,
57
  "Price": 0.0
58
  },
59
  {
60
+ "SYMBOL": "CNL",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
64
  {
65
+ "SYMBOL": "SUMICHEM",
66
  "Quantity": 0.0,
67
  "Price": 0.0
68
  },
69
  {
70
+ "SYMBOL": "RITES",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
74
  {
75
+ "SYMBOL": "SOLARWORLD",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
79
  {
80
+ "SYMBOL": "FERMENTA",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
+ "SYMBOL": "INA",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
+ "SYMBOL": "TCIEXP",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
+ "SYMBOL": "INDOFARM",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
+ "SYMBOL": "GANGESSECU",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
+ "SYMBOL": "ADVENTHTL",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
+ "SYMBOL": "GEMAROMA",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
+ "SYMBOL": "NIITMTS",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
+ "SYMBOL": "INDORAMA",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
+ "SYMBOL": "RETAIL",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
+ "SYMBOL": "KREBSBIO",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
+ "SYMBOL": "HIKAL",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
+ "SYMBOL": "SINTERCOM",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
+ "SYMBOL": "TARSONS",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
+ "SYMBOL": "NATIONSTD",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
+ "SYMBOL": "TPLPLASTEH",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
+ "SYMBOL": "DALMIASUG",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
+ "SYMBOL": "AARTECH",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
+ "SYMBOL": "ORCHPHARMA",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
+ "SYMBOL": "MASTERTR",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
+ "SYMBOL": "DIGITIDE",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
+ "SYMBOL": "MUNJALAU",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
+ "SYMBOL": "PATELRMART",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
+ "SYMBOL": "DTIL",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
+ "SYMBOL": "ANDHRSUGAR",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
+ "SYMBOL": "GANESHHOU",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
+ "SYMBOL": "KOTIC",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
+ "SYMBOL": "SGMART",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
+ "SYMBOL": "VISL",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
+ "SYMBOL": "KOTHARIPET",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
+ "SYMBOL": "SUPREME",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
+ "SYMBOL": "SPECTRUM",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
+ "SYMBOL": "ARTNIRMAN",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
+ "SYMBOL": "RUPA",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
+ "SYMBOL": "RESPONIND",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
+ "last_updated": "2026-07-09T21:06:22.224841"
256
  }
processed/watchlists/nse_dashboard_hist_maxvol3m50.json CHANGED
@@ -7,7 +7,7 @@
7
  "Price": 0.0
8
  },
9
  {
10
- "SYMBOL": "BANK10ADD",
11
  "Quantity": 0.0,
12
  "Price": 0.0
13
  },
@@ -17,12 +17,12 @@
17
  "Price": 0.0
18
  },
19
  {
20
- "SYMBOL": "LAHOTIOV",
21
  "Quantity": 0.0,
22
  "Price": 0.0
23
  },
24
  {
25
- "SYMBOL": "VALUE",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
@@ -36,6 +36,11 @@
36
  "Quantity": 0.0,
37
  "Price": 0.0
38
  },
 
 
 
 
 
39
  {
40
  "SYMBOL": "CLSEL",
41
  "Quantity": 0.0,
@@ -57,12 +62,12 @@
57
  "Price": 0.0
58
  },
59
  {
60
- "SYMBOL": "RUSTOMJEE",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
64
  {
65
- "SYMBOL": "KREBSBIO",
66
  "Quantity": 0.0,
67
  "Price": 0.0
68
  },
@@ -82,42 +87,42 @@
82
  "Price": 0.0
83
  },
84
  {
85
- "SYMBOL": "GRAVISSHO",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
- "SYMBOL": "AQYLON",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
- "SYMBOL": "HPIL",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
- "SYMBOL": "KRYSTAL",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
- "SYMBOL": "GALLANTT",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
- "SYMBOL": "ARVSMART",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
- "SYMBOL": "LCCINFOTEC",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
- "SYMBOL": "MFML",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
@@ -137,57 +142,52 @@
137
  "Price": 0.0
138
  },
139
  {
140
- "SYMBOL": "SAMBHAAV",
141
- "Quantity": 0.0,
142
- "Price": 0.0
143
- },
144
- {
145
- "SYMBOL": "CONTROLPR",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
- "SYMBOL": "LEMERITE",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
- "SYMBOL": "SICALLOG",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
- "SYMBOL": "ENIFTY",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
- "SYMBOL": "PDSL",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
- "SYMBOL": "OMAXE",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
- "SYMBOL": "ACEINTEG",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
- "SYMBOL": "SAKSOFT",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
- "SYMBOL": "GREENPLY",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
- "SYMBOL": "ITDC",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
@@ -197,60 +197,60 @@
197
  "Price": 0.0
198
  },
199
  {
200
- "SYMBOL": "SILLYMONKS",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
- "SYMBOL": "LFIC",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
- "SYMBOL": "IKIO",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
- "SYMBOL": "AIROLAM",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
- "SYMBOL": "MUTHOOTMF",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
- "SYMBOL": "SUPREME",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
- "SYMBOL": "COMSYN",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
- "SYMBOL": "BTTL",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
- "SYMBOL": "MSCIADD",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
- "SYMBOL": "RPGLIFE",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
- "SYMBOL": "AMNPLST",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
- "last_updated": "2026-07-04T11:51:43.386155"
256
  }
 
7
  "Price": 0.0
8
  },
9
  {
10
+ "SYMBOL": "GRAVISSHO",
11
  "Quantity": 0.0,
12
  "Price": 0.0
13
  },
 
17
  "Price": 0.0
18
  },
19
  {
20
+ "SYMBOL": "VALUE",
21
  "Quantity": 0.0,
22
  "Price": 0.0
23
  },
24
  {
25
+ "SYMBOL": "LAHOTIOV",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
 
36
  "Quantity": 0.0,
37
  "Price": 0.0
38
  },
39
+ {
40
+ "SYMBOL": "BANK10ADD",
41
+ "Quantity": 0.0,
42
+ "Price": 0.0
43
+ },
44
  {
45
  "SYMBOL": "CLSEL",
46
  "Quantity": 0.0,
 
62
  "Price": 0.0
63
  },
64
  {
65
+ "SYMBOL": "KREBSBIO",
66
  "Quantity": 0.0,
67
  "Price": 0.0
68
  },
69
  {
70
+ "SYMBOL": "RUSTOMJEE",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
 
87
  "Price": 0.0
88
  },
89
  {
90
+ "SYMBOL": "JINDRILL",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
+ "SYMBOL": "ITDC",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
+ "SYMBOL": "NATIONSTD",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
+ "SYMBOL": "HPIL",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
+ "SYMBOL": "KRYSTAL",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
+ "SYMBOL": "SURAJLTD",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
+ "SYMBOL": "VISL",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
+ "SYMBOL": "BANARBEADS",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
 
142
  "Price": 0.0
143
  },
144
  {
145
+ "SYMBOL": "RITES",
 
 
 
 
 
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
+ "SYMBOL": "INDIANCARD",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
+ "SYMBOL": "MFML",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
+ "SYMBOL": "CONTROLPR",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
+ "SYMBOL": "SAMBHAAV",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
+ "SYMBOL": "LCCINFOTEC",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
+ "SYMBOL": "LEMERITE",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
+ "SYMBOL": "ENIFTY",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
+ "SYMBOL": "OMAXE",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
+ "SYMBOL": "GEMAROMA",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
 
197
  "Price": 0.0
198
  },
199
  {
200
+ "SYMBOL": "ACEINTEG",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
+ "SYMBOL": "SAKSOFT",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
+ "SYMBOL": "SHAREINDIA",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
+ "SYMBOL": "GREENPLY",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
+ "SYMBOL": "SILLYMONKS",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
+ "SYMBOL": "IKIO",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
+ "SYMBOL": "MUTHOOTMF",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
+ "SYMBOL": "RPGLIFE",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
+ "SYMBOL": "RETAIL",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
+ "SYMBOL": "AMNPLST",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
+ "SYMBOL": "COMSYN",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
+ "last_updated": "2026-07-09T21:06:39.236409"
256
  }
processed/watchlists/nse_dashboard_hist_minprice1d50.json CHANGED
@@ -2,255 +2,255 @@
2
  "name": "1D Min Price Portfolio",
3
  "symbols": [
4
  {
5
- "SYMBOL": "MIDQ50ADD",
6
  "Quantity": 0.0,
7
  "Price": 0.0
8
  },
9
  {
10
- "SYMBOL": "HEALTHADD",
11
  "Quantity": 0.0,
12
  "Price": 0.0
13
  },
14
  {
15
- "SYMBOL": "MBAPL",
16
  "Quantity": 0.0,
17
  "Price": 0.0
18
  },
19
  {
20
- "SYMBOL": "KRISHANA",
21
  "Quantity": 0.0,
22
  "Price": 0.0
23
  },
24
  {
25
- "SYMBOL": "NATIONSTD",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
29
  {
30
- "SYMBOL": "GVT&D",
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
34
  {
35
- "SYMBOL": "TDPOWERSYS",
36
  "Quantity": 0.0,
37
  "Price": 0.0
38
  },
39
  {
40
- "SYMBOL": "WHEELS",
41
  "Quantity": 0.0,
42
  "Price": 0.0
43
  },
44
  {
45
- "SYMBOL": "POWERINDIA",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
49
  {
50
- "SYMBOL": "ENRIN",
51
  "Quantity": 0.0,
52
  "Price": 0.0
53
  },
54
  {
55
- "SYMBOL": "CGPOWER",
56
  "Quantity": 0.0,
57
  "Price": 0.0
58
  },
59
  {
60
- "SYMBOL": "UCAL",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
64
  {
65
- "SYMBOL": "MODTHREAD",
66
  "Quantity": 0.0,
67
  "Price": 0.0
68
  },
69
  {
70
- "SYMBOL": "UNIONBANK",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
74
  {
75
- "SYMBOL": "CLEANMAX",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
79
  {
80
- "SYMBOL": "THERMAX",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
- "SYMBOL": "APARINDS",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
- "SYMBOL": "VEDPOWER",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
- "SYMBOL": "TARIL",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
- "SYMBOL": "CEIGALL",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
- "SYMBOL": "DIACABS",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
- "SYMBOL": "POLICYBZR",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
- "SYMBOL": "ROLEXRINGS",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
- "SYMBOL": "POWERICA",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
- "SYMBOL": "OMNI",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
- "SYMBOL": "GVPIL",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
- "SYMBOL": "THAKDEV",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
- "SYMBOL": "CURAA",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
- "SYMBOL": "WABAG",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
- "SYMBOL": "VISL",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
- "SYMBOL": "EBGNG",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
- "SYMBOL": "SETL",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
- "SYMBOL": "GLOSTERLTD",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
- "SYMBOL": "RAJTV",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
- "SYMBOL": "RPTECH",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
- "SYMBOL": "RUBICON",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
- "SYMBOL": "IOLCP",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
- "SYMBOL": "RHIM",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
- "SYMBOL": "AEROFLEX",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
- "SYMBOL": "DMART",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
- "SYMBOL": "BHEL",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
- "SYMBOL": "GICL",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
- "SYMBOL": "PIONRINV",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
- "SYMBOL": "AEROENTER",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
- "SYMBOL": "ATLANTAELE",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
- "SYMBOL": "HIRECT",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
- "SYMBOL": "S&SPOWER",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
- "SYMBOL": "FRONTSP",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
- "SYMBOL": "CONFIPET",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
- "SYMBOL": "UNIVCABLES",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
- "last_updated": "2026-07-04T11:51:15.644051"
256
  }
 
2
  "name": "1D Min Price Portfolio",
3
  "symbols": [
4
  {
5
+ "SYMBOL": "NATIONSTD",
6
  "Quantity": 0.0,
7
  "Price": 0.0
8
  },
9
  {
10
+ "SYMBOL": "INDIAVIX",
11
  "Quantity": 0.0,
12
  "Price": 0.0
13
  },
14
  {
15
+ "SYMBOL": "HAVISHA",
16
  "Quantity": 0.0,
17
  "Price": 0.0
18
  },
19
  {
20
+ "SYMBOL": "ZSARACOM",
21
  "Quantity": 0.0,
22
  "Price": 0.0
23
  },
24
  {
25
+ "SYMBOL": "RESPONIND",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
29
  {
30
+ "SYMBOL": "PIONRINV",
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
34
  {
35
+ "SYMBOL": "DRREDDY",
36
  "Quantity": 0.0,
37
  "Price": 0.0
38
  },
39
  {
40
+ "SYMBOL": "LIBAS",
41
  "Quantity": 0.0,
42
  "Price": 0.0
43
  },
44
  {
45
+ "SYMBOL": "DBSTOCKBRO",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
49
  {
50
+ "SYMBOL": "GRANDOAK",
51
  "Quantity": 0.0,
52
  "Price": 0.0
53
  },
54
  {
55
+ "SYMBOL": "VISL",
56
  "Quantity": 0.0,
57
  "Price": 0.0
58
  },
59
  {
60
+ "SYMBOL": "TICL",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
64
  {
65
+ "SYMBOL": "PARAS",
66
  "Quantity": 0.0,
67
  "Price": 0.0
68
  },
69
  {
70
+ "SYMBOL": "SHRIKRISH",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
74
  {
75
+ "SYMBOL": "SHANTI",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
79
  {
80
+ "SYMBOL": "JSWDULUX",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
+ "SYMBOL": "EIMCOELECO",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
+ "SYMBOL": "SONAL",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
+ "SYMBOL": "NIRAJISPAT",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
+ "SYMBOL": "NAGREEKEXP",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
+ "SYMBOL": "ANTELOPUS",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
+ "SYMBOL": "ICDSLTD",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
+ "SYMBOL": "DELTAMAGNT",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
+ "SYMBOL": "ELITECON",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
+ "SYMBOL": "BLS",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
+ "SYMBOL": "MATRIMONY",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
+ "SYMBOL": "SOLARINDS",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
+ "SYMBOL": "TVVISION",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
+ "SYMBOL": "JAYSREETEA",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
+ "SYMBOL": "MAZDOCK",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
+ "SYMBOL": "LOYALTEX",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
+ "SYMBOL": "POCL",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
+ "SYMBOL": "ISHANCH",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
+ "SYMBOL": "THANGAMAYL",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
+ "SYMBOL": "INFOMEDIA",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
+ "SYMBOL": "LEXUS",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
+ "SYMBOL": "ASPINWALL",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
+ "SYMBOL": "ATAM",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
+ "SYMBOL": "SHAILY",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
+ "SYMBOL": "TECHNVISN",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
+ "SYMBOL": "KSR",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
+ "SYMBOL": "AMBICAAGAR",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
+ "SYMBOL": "MSPL",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
+ "SYMBOL": "NORBTEAEXP",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
+ "SYMBOL": "VOEPL",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
+ "SYMBOL": "APCL",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
+ "SYMBOL": "CURAA",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
+ "SYMBOL": "NELCAST",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
+ "SYMBOL": "CMRGREEN",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
+ "SYMBOL": "KIRANVYPAR",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
+ "last_updated": "2026-07-09T21:06:09.105168"
256
  }
processed/watchlists/nse_dashboard_hist_minprice1m50.json CHANGED
@@ -12,7 +12,7 @@
12
  "Price": 0.0
13
  },
14
  {
15
- "SYMBOL": "GICL",
16
  "Quantity": 0.0,
17
  "Price": 0.0
18
  },
@@ -22,12 +22,12 @@
22
  "Price": 0.0
23
  },
24
  {
25
- "SYMBOL": "GRMOVER",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
29
  {
30
- "SYMBOL": "LEMERITE",
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
@@ -42,22 +42,22 @@
42
  "Price": 0.0
43
  },
44
  {
45
- "SYMBOL": "INDIAVIX",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
49
  {
50
- "SYMBOL": "NATIONSTD",
51
  "Quantity": 0.0,
52
  "Price": 0.0
53
  },
54
  {
55
- "SYMBOL": "TECHNVISN",
56
  "Quantity": 0.0,
57
  "Price": 0.0
58
  },
59
  {
60
- "SYMBOL": "AQYLON",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
@@ -67,190 +67,190 @@
67
  "Price": 0.0
68
  },
69
  {
70
- "SYMBOL": "NATIONALUM",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
74
  {
75
- "SYMBOL": "BOHRAIND",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
79
  {
80
- "SYMBOL": "RAJTV",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
- "SYMBOL": "AVANTIFEED",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
- "SYMBOL": "BANG",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
- "SYMBOL": "ATLANTAELE",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
- "SYMBOL": "PIONRINV",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
- "SYMBOL": "ASIANTILES",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
- "SYMBOL": "HGM",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
- "SYMBOL": "JSLL",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
- "SYMBOL": "SAIL",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
- "SYMBOL": "MFML",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
- "SYMBOL": "ADVENZYMES",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
- "SYMBOL": "HINDALCO",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
- "SYMBOL": "JAGRAN",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
- "SYMBOL": "SGL",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
- "SYMBOL": "RETAIL",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
- "SYMBOL": "TATAELXSI",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
- "SYMBOL": "NSLNISP",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
- "SYMBOL": "BUILDPRO",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
- "SYMBOL": "RSYSTEMS",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
- "SYMBOL": "RMC",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
- "SYMBOL": "TDPOWERSYS",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
- "SYMBOL": "HAVISHA",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
- "SYMBOL": "VEDL",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
- "SYMBOL": "JARO",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
- "SYMBOL": "INFY",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
- "SYMBOL": "ELITECON",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
- "SYMBOL": "APCL",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
- "SYMBOL": "OIL",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
- "SYMBOL": "GRAPHITE",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
- "SYMBOL": "LUMAXTECH",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
- "SYMBOL": "BSOFT",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
- "SYMBOL": "SOUTHWEST",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
- "SYMBOL": "WIPRO",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
- "SYMBOL": "NORBTEAEXP",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
- "SYMBOL": "TMPV",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
- "last_updated": "2026-07-04T11:51:15.675368"
256
  }
 
12
  "Price": 0.0
13
  },
14
  {
15
+ "SYMBOL": "NATIONSTD",
16
  "Quantity": 0.0,
17
  "Price": 0.0
18
  },
 
22
  "Price": 0.0
23
  },
24
  {
25
+ "SYMBOL": "TECHNVISN",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
29
  {
30
+ "SYMBOL": "AQYLON",
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
 
42
  "Price": 0.0
43
  },
44
  {
45
+ "SYMBOL": "BANG",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
49
  {
50
+ "SYMBOL": "HAVISHA",
51
  "Quantity": 0.0,
52
  "Price": 0.0
53
  },
54
  {
55
+ "SYMBOL": "BOHRAIND",
56
  "Quantity": 0.0,
57
  "Price": 0.0
58
  },
59
  {
60
+ "SYMBOL": "GICL",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
 
67
  "Price": 0.0
68
  },
69
  {
70
+ "SYMBOL": "ASIANTILES",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
74
  {
75
+ "SYMBOL": "GOCOLORS",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
79
  {
80
+ "SYMBOL": "AXISCADES",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
+ "SYMBOL": "PVP",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
+ "SYMBOL": "MFML",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
+ "SYMBOL": "GAYAHWS",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
+ "SYMBOL": "TRUALT",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
+ "SYMBOL": "HINDOILEXP",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
+ "SYMBOL": "LEMERITE",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
+ "SYMBOL": "SASKEN",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
+ "SYMBOL": "TERASOFT",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
+ "SYMBOL": "PIONRINV",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
+ "SYMBOL": "GTL",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
+ "SYMBOL": "KREBSBIO",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
+ "SYMBOL": "VGL",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
+ "SYMBOL": "TATAELXSI",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
+ "SYMBOL": "RMC",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
+ "SYMBOL": "RRIL",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
+ "SYMBOL": "ELITECON",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
+ "SYMBOL": "OLAELEC",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
+ "SYMBOL": "TMPV",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
+ "SYMBOL": "MANAKALUCO",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
+ "SYMBOL": "FRACTAL",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
+ "SYMBOL": "GULPOLY",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
+ "SYMBOL": "GTLINFRA",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
+ "SYMBOL": "EASEMYTRIP",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
+ "SYMBOL": "AVROIND",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
+ "SYMBOL": "INDIAVIX",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
+ "SYMBOL": "MONEYBOXX",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
+ "SYMBOL": "BSOFT",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
+ "SYMBOL": "ASIANENE",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
+ "SYMBOL": "ATLANTAELE",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
+ "SYMBOL": "PROZONER",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
+ "SYMBOL": "ASTRAL",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
+ "SYMBOL": "ASTEC",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
+ "SYMBOL": "NIRAJISPAT",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
+ "SYMBOL": "NSLNISP",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
+ "last_updated": "2026-07-09T21:06:09.140267"
256
  }
processed/watchlists/nse_dashboard_hist_minprice1w50.json CHANGED
@@ -17,240 +17,240 @@
17
  "Price": 0.0
18
  },
19
  {
20
- "SYMBOL": "KPITTECH",
21
  "Quantity": 0.0,
22
  "Price": 0.0
23
  },
24
  {
25
- "SYMBOL": "TECHNVISN",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
29
  {
30
- "SYMBOL": "WHEELS",
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
34
  {
35
- "SYMBOL": "INDIAVIX",
36
  "Quantity": 0.0,
37
  "Price": 0.0
38
  },
39
  {
40
- "SYMBOL": "MFML",
41
  "Quantity": 0.0,
42
  "Price": 0.0
43
  },
44
  {
45
- "SYMBOL": "TDPOWERSYS",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
49
  {
50
- "SYMBOL": "APARINDS",
51
  "Quantity": 0.0,
52
  "Price": 0.0
53
  },
54
  {
55
- "SYMBOL": "POWERINDIA",
56
  "Quantity": 0.0,
57
  "Price": 0.0
58
  },
59
  {
60
- "SYMBOL": "GVT&D",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
64
  {
65
- "SYMBOL": "WALCHANNAG",
66
  "Quantity": 0.0,
67
  "Price": 0.0
68
  },
69
  {
70
- "SYMBOL": "TICL",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
74
  {
75
- "SYMBOL": "THERMAX",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
79
  {
80
- "SYMBOL": "ASIANTILES",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
- "SYMBOL": "CINEVISTA",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
- "SYMBOL": "ZFCVINDIA",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
- "SYMBOL": "GNRL",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
- "SYMBOL": "POWERICA",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
- "SYMBOL": "ASIANENE",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
- "SYMBOL": "NARMADA",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
- "SYMBOL": "KIRLOSENG",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
- "SYMBOL": "ENRIN",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
- "SYMBOL": "DMART",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
- "SYMBOL": "EPIGRAL",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
- "SYMBOL": "AEROENTER",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
- "SYMBOL": "CEIGALL",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
- "SYMBOL": "WELSPLSOL",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
- "SYMBOL": "RUBICON",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
- "SYMBOL": "RSYSTEMS",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
- "SYMBOL": "AERONEU",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
- "SYMBOL": "TATAELXSI",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
- "SYMBOL": "BANKBARODA",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
- "SYMBOL": "BHEL",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
- "SYMBOL": "GOCOLORS",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
- "SYMBOL": "ARIHANT",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
- "SYMBOL": "IGL",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
- "SYMBOL": "GSLSU",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
- "SYMBOL": "GVPIL",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
- "SYMBOL": "FINCABLES",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
- "SYMBOL": "CMSINFO",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
- "SYMBOL": "AURIGROW",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
- "SYMBOL": "CGPOWER",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
- "SYMBOL": "ABINFRA",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
- "SYMBOL": "UNIONBANK",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
- "SYMBOL": "ZODIACLOTH",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
- "SYMBOL": "RRKABEL",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
- "SYMBOL": "CURAA",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
- "SYMBOL": "FINOPB",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
- "last_updated": "2026-07-04T11:51:15.659651"
256
  }
 
17
  "Price": 0.0
18
  },
19
  {
20
+ "SYMBOL": "VISL",
21
  "Quantity": 0.0,
22
  "Price": 0.0
23
  },
24
  {
25
+ "SYMBOL": "VEDPOWER",
26
  "Quantity": 0.0,
27
  "Price": 0.0
28
  },
29
  {
30
+ "SYMBOL": "AEROFLEX",
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
34
  {
35
+ "SYMBOL": "TICL",
36
  "Quantity": 0.0,
37
  "Price": 0.0
38
  },
39
  {
40
+ "SYMBOL": "VOGL",
41
  "Quantity": 0.0,
42
  "Price": 0.0
43
  },
44
  {
45
+ "SYMBOL": "LEXUS",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
49
  {
50
+ "SYMBOL": "TECHNVISN",
51
  "Quantity": 0.0,
52
  "Price": 0.0
53
  },
54
  {
55
+ "SYMBOL": "ELITECON",
56
  "Quantity": 0.0,
57
  "Price": 0.0
58
  },
59
  {
60
+ "SYMBOL": "GLOSTERLTD",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
64
  {
65
+ "SYMBOL": "AYMSYNTEX",
66
  "Quantity": 0.0,
67
  "Price": 0.0
68
  },
69
  {
70
+ "SYMBOL": "GICL",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
74
  {
75
+ "SYMBOL": "INDOTHAI",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
79
  {
80
+ "SYMBOL": "MARINE",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
+ "SYMBOL": "TRENT",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
+ "SYMBOL": "AEROENTER",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
+ "SYMBOL": "MARKOLINES",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
+ "SYMBOL": "SUPRIYA",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
+ "SYMBOL": "OLAELEC",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
+ "SYMBOL": "SCPL",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
+ "SYMBOL": "KERNEX",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
+ "SYMBOL": "WHEELS",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
+ "SYMBOL": "BLUSPRING",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
+ "SYMBOL": "JSWDULUX",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
+ "SYMBOL": "PINELABS",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
+ "SYMBOL": "JSWHL",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
+ "SYMBOL": "GOCOLORS",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
+ "SYMBOL": "FIRSTCRY",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
+ "SYMBOL": "PIONRINV",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
+ "SYMBOL": "TEJASNET",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
+ "SYMBOL": "CURAA",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
+ "SYMBOL": "MAHABANK",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
+ "SYMBOL": "UNIONBANK",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
+ "SYMBOL": "TIRUMALCHM",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
+ "SYMBOL": "UNIVCABLES",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
+ "SYMBOL": "PARAS",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
+ "SYMBOL": "APOLLO",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
+ "SYMBOL": "SASKEN",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
+ "SYMBOL": "OLECTRA",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
+ "SYMBOL": "CONTROLPR",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
+ "SYMBOL": "BANSWRAS",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
+ "SYMBOL": "BIL",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
+ "SYMBOL": "SWARAJENG",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
+ "SYMBOL": "JISLJALEQS",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
+ "SYMBOL": "SADBHAV",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
+ "SYMBOL": "INOXWIND",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
+ "SYMBOL": "NELCAST",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
+ "SYMBOL": "HIRECT",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
+ "last_updated": "2026-07-09T21:06:09.122762"
256
  }
processed/watchlists/nse_dashboard_hist_minprice3m50.json CHANGED
@@ -27,12 +27,7 @@
27
  "Price": 0.0
28
  },
29
  {
30
- "SYMBOL": "RAJTV",
31
- "Quantity": 0.0,
32
- "Price": 0.0
33
- },
34
- {
35
- "SYMBOL": "INDIAVIX",
36
  "Quantity": 0.0,
37
  "Price": 0.0
38
  },
@@ -42,22 +37,22 @@
42
  "Price": 0.0
43
  },
44
  {
45
- "SYMBOL": "ABCOTS",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
49
  {
50
- "SYMBOL": "TICL",
51
  "Quantity": 0.0,
52
  "Price": 0.0
53
  },
54
  {
55
- "SYMBOL": "ELITECON",
56
  "Quantity": 0.0,
57
  "Price": 0.0
58
  },
59
  {
60
- "SYMBOL": "GRADIENTE",
61
  "Quantity": 0.0,
62
  "Price": 0.0
63
  },
@@ -72,7 +67,7 @@
72
  "Price": 0.0
73
  },
74
  {
75
- "SYMBOL": "NATIONSTD",
76
  "Quantity": 0.0,
77
  "Price": 0.0
78
  },
@@ -82,175 +77,180 @@
82
  "Price": 0.0
83
  },
84
  {
85
- "SYMBOL": "RPSGVENT",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
- "SYMBOL": "RMDRIP",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
- "SYMBOL": "JINDALPOLY",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
- "SYMBOL": "AVANTIFEED",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
- "SYMBOL": "MANOMAY",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
- "SYMBOL": "BSOFT",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
- "SYMBOL": "TARAPUR",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
- "SYMBOL": "GSLSU",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
- "SYMBOL": "COMFINTE",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
- "SYMBOL": "RKEC",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
- "SYMBOL": "INFY",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
- "SYMBOL": "KPITTECH",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
- "SYMBOL": "RENUKA",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
- "SYMBOL": "PML",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
- "SYMBOL": "JAINREC",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
- "SYMBOL": "MARSONS",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
- "SYMBOL": "GUJAPOLLO",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
- "SYMBOL": "HCLTECH",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
- "SYMBOL": "BOHRAIND",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
- "SYMBOL": "LANDSMILL",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
- "SYMBOL": "INDOUS",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
- "SYMBOL": "AARON",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
- "SYMBOL": "WSI",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
- "SYMBOL": "ZFSTEERING",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
- "SYMBOL": "NIITMTS",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
- "SYMBOL": "SGL",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
- "SYMBOL": "RSYSTEMS",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
- "SYMBOL": "MRPL",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
- "SYMBOL": "PIONRINV",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
- "SYMBOL": "HAVISHA",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
- "SYMBOL": "TTL",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
- "SYMBOL": "ORICONENT",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
- "SYMBOL": "ONGC",
246
  "Quantity": 0.0,
247
  "Price": 0.0
248
  },
249
  {
250
- "SYMBOL": "CHEMPLASTS",
 
 
 
 
 
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
- "last_updated": "2026-07-04T11:51:15.691018"
256
  }
 
27
  "Price": 0.0
28
  },
29
  {
30
+ "SYMBOL": "NATIONSTD",
 
 
 
 
 
31
  "Quantity": 0.0,
32
  "Price": 0.0
33
  },
 
37
  "Price": 0.0
38
  },
39
  {
40
+ "SYMBOL": "TICL",
41
  "Quantity": 0.0,
42
  "Price": 0.0
43
  },
44
  {
45
+ "SYMBOL": "ELITECON",
46
  "Quantity": 0.0,
47
  "Price": 0.0
48
  },
49
  {
50
+ "SYMBOL": "ABCOTS",
51
  "Quantity": 0.0,
52
  "Price": 0.0
53
  },
54
  {
55
+ "SYMBOL": "RAJTV",
56
  "Quantity": 0.0,
57
  "Price": 0.0
58
  },
 
67
  "Price": 0.0
68
  },
69
  {
70
+ "SYMBOL": "AVANTIFEED",
71
  "Quantity": 0.0,
72
  "Price": 0.0
73
  },
 
77
  "Price": 0.0
78
  },
79
  {
80
+ "SYMBOL": "GSLSU",
81
  "Quantity": 0.0,
82
  "Price": 0.0
83
  },
84
  {
85
+ "SYMBOL": "ASIANTILES",
86
  "Quantity": 0.0,
87
  "Price": 0.0
88
  },
89
  {
90
+ "SYMBOL": "LANDSMILL",
91
  "Quantity": 0.0,
92
  "Price": 0.0
93
  },
94
  {
95
+ "SYMBOL": "RMDRIP",
96
  "Quantity": 0.0,
97
  "Price": 0.0
98
  },
99
  {
100
+ "SYMBOL": "INDIAVIX",
101
  "Quantity": 0.0,
102
  "Price": 0.0
103
  },
104
  {
105
+ "SYMBOL": "HAVISHA",
106
  "Quantity": 0.0,
107
  "Price": 0.0
108
  },
109
  {
110
+ "SYMBOL": "SECURKLOUD",
111
  "Quantity": 0.0,
112
  "Price": 0.0
113
  },
114
  {
115
+ "SYMBOL": "RKEC",
116
  "Quantity": 0.0,
117
  "Price": 0.0
118
  },
119
  {
120
+ "SYMBOL": "TARAPUR",
121
  "Quantity": 0.0,
122
  "Price": 0.0
123
  },
124
  {
125
+ "SYMBOL": "LEXUS",
126
  "Quantity": 0.0,
127
  "Price": 0.0
128
  },
129
  {
130
+ "SYMBOL": "INDOTHAI",
131
  "Quantity": 0.0,
132
  "Price": 0.0
133
  },
134
  {
135
+ "SYMBOL": "TPHQ",
136
  "Quantity": 0.0,
137
  "Price": 0.0
138
  },
139
  {
140
+ "SYMBOL": "BSOFT",
141
  "Quantity": 0.0,
142
  "Price": 0.0
143
  },
144
  {
145
+ "SYMBOL": "PROZONER",
146
  "Quantity": 0.0,
147
  "Price": 0.0
148
  },
149
  {
150
+ "SYMBOL": "SUVIDHAA",
151
  "Quantity": 0.0,
152
  "Price": 0.0
153
  },
154
  {
155
+ "SYMBOL": "UEL",
156
  "Quantity": 0.0,
157
  "Price": 0.0
158
  },
159
  {
160
+ "SYMBOL": "PAKKA",
161
  "Quantity": 0.0,
162
  "Price": 0.0
163
  },
164
  {
165
+ "SYMBOL": "KPITTECH",
166
  "Quantity": 0.0,
167
  "Price": 0.0
168
  },
169
  {
170
+ "SYMBOL": "ORIENTALTL",
171
  "Quantity": 0.0,
172
  "Price": 0.0
173
  },
174
  {
175
+ "SYMBOL": "COMFINTE",
176
  "Quantity": 0.0,
177
  "Price": 0.0
178
  },
179
  {
180
+ "SYMBOL": "VCL",
181
  "Quantity": 0.0,
182
  "Price": 0.0
183
  },
184
  {
185
+ "SYMBOL": "GAYAHWS",
186
  "Quantity": 0.0,
187
  "Price": 0.0
188
  },
189
  {
190
+ "SYMBOL": "NIITMTS",
191
  "Quantity": 0.0,
192
  "Price": 0.0
193
  },
194
  {
195
+ "SYMBOL": "TECILCHEM",
196
  "Quantity": 0.0,
197
  "Price": 0.0
198
  },
199
  {
200
+ "SYMBOL": "SBGLP",
201
  "Quantity": 0.0,
202
  "Price": 0.0
203
  },
204
  {
205
+ "SYMBOL": "OSWALGREEN",
206
  "Quantity": 0.0,
207
  "Price": 0.0
208
  },
209
  {
210
+ "SYMBOL": "ZFSTEERING",
211
  "Quantity": 0.0,
212
  "Price": 0.0
213
  },
214
  {
215
+ "SYMBOL": "PIONRINV",
216
  "Quantity": 0.0,
217
  "Price": 0.0
218
  },
219
  {
220
+ "SYMBOL": "XELPMOC",
221
  "Quantity": 0.0,
222
  "Price": 0.0
223
  },
224
  {
225
+ "SYMBOL": "HCLTECH",
226
  "Quantity": 0.0,
227
  "Price": 0.0
228
  },
229
  {
230
+ "SYMBOL": "RAMKY",
231
  "Quantity": 0.0,
232
  "Price": 0.0
233
  },
234
  {
235
+ "SYMBOL": "SOLEX",
236
  "Quantity": 0.0,
237
  "Price": 0.0
238
  },
239
  {
240
+ "SYMBOL": "GUJAPOLLO",
241
  "Quantity": 0.0,
242
  "Price": 0.0
243
  },
244
  {
245
+ "SYMBOL": "JAINREC",
246
+ "Quantity": 0.0,
247
+ "Price": 0.0
248
+ },
249
+ {
250
+ "SYMBOL": "MANOMAY",
251
  "Quantity": 0.0,
252
  "Price": 0.0
253
  }
254
  ],
255
+ "last_updated": "2026-07-09T21:06:09.157764"
256
  }
processed/watchlists/nse_dashboard_maxfall50.json CHANGED
@@ -252,5 +252,5 @@
252
  "Price": 0.0
253
  }
254
  ],
255
- "last_updated": "2026-07-09T15:49:21.597072"
256
  }
 
252
  "Price": 0.0
253
  }
254
  ],
255
+ "last_updated": "2026-07-09T21:07:00.629575"
256
  }
processed/watchlists/nse_dashboard_maxprice50.json CHANGED
@@ -252,5 +252,5 @@
252
  "Price": 0.0
253
  }
254
  ],
255
- "last_updated": "2026-07-09T15:49:21.576761"
256
  }
 
252
  "Price": 0.0
253
  }
254
  ],
255
+ "last_updated": "2026-07-09T21:07:00.621014"
256
  }
processed/watchlists/nse_dashboard_maxvol50.json CHANGED
@@ -127,5 +127,5 @@
127
  "Price": 0.0
128
  }
129
  ],
130
- "last_updated": "2026-07-09T15:49:21.551328"
131
  }
 
127
  "Price": 0.0
128
  }
129
  ],
130
+ "last_updated": "2026-07-09T21:07:00.611551"
131
  }