Net Delta
—
Directional exposure
Net Theta / day
—
Daily time decay (₹)
@@ -818,21 +822,46 @@ function setExpiry(btn,exp){
var _CAT_COLOR={DANGER_SHORT:'#E74C3C',DEAD_WEIGHT:'#F5A623',UNDER_PRESSURE:'#E67E22',HEDGE:'#3498DB',WORKING:'#2ECC71'};
var _CAT_EMOJI={DANGER_SHORT:'π΄',DEAD_WEIGHT:'π‘',UNDER_PRESSURE:'π ',HEDGE:'π΅',WORKING:'π’'};
var _RISK_COL={LOW:'var(--green)',MODERATE:'var(--amber)',HIGH:'#E67E22',CRITICAL:'var(--red)'};
+var _curView='dashboard';
function showView(name){
+ _curView=name;
document.querySelectorAll('[data-view]').forEach(function(el){el.style.display='none';});
- var el=document.getElementById('view-'+name);if(el)el.style.display='block';
+ var el=document.getElementById('view-'+name);
+ if(el){el.style.display='block';el.style.visibility='visible';}
document.querySelectorAll('.nav-tab').forEach(function(t){t.classList.remove('active');});
var tab=document.querySelector('.nav-tab[data-target="'+name+'"]');if(tab)tab.classList.add('active');
+ window.scrollTo(0,0);
if(name==='analysis')loadAnalysis();
}
+async function forceRefreshAnalysis(){
+ var btn=document.getElementById('a-refresh-btn');
+ if(btn){btn.textContent='Refreshingβ¦';btn.disabled=true;}
+ try{
+ await fetch('/api/refresh',{method:'POST'});
+ }catch(e){}
+ await loadAnalysis();
+ if(btn){btn.textContent='β» Refresh';btn.disabled=false;}
+}
+
async function loadAnalysis(){
+ var tbody=document.getElementById('a-class-body');
+ var rBody=document.getElementById('a-risk-body');
+ var sBody=document.getElementById('a-scen-body');
try{
var res=await fetch('/api/analysis').then(function(r){return r.json();});
- if(!res.ok||!res.data)return;
+ if(!res||!res.ok||!res.data){
+ if(tbody)tbody.innerHTML='
| No analysis data yet β click β» Refresh above to trigger a poll |
';
+ if(rBody)rBody.innerHTML='
No data yet
';
+ if(sBody)sBody.innerHTML='
No data yet
';
+ return;
+ }
renderAnalysis(res.data,res.asOf);
- }catch(e){console.error('loadAnalysis:',e);}
+ }catch(e){
+ console.error('loadAnalysis:',e);
+ if(tbody)tbody.innerHTML='
| Error: '+(e&&e.message?e.message:String(e))+' |
';
+ }
}
function renderAnalysis(d,asOf){
@@ -932,13 +961,15 @@ function renderAnalysis(d,asOf){
return '
'+(pt.totalPnl>=0?'+':'')+'βΉ'+Math.round(pt.totalPnl).toLocaleString('en-IN')+' | ';}).join('')+
'