Create Account
Log In
Dark
chart
exchange
Premium
Terminal
Screener
Stocks
Crypto
Forex
Trends
Depth
Close
Check out our Level2View

TX
Ternium S.A.
stock NYSE ADR

At Close
Sep 1, 2026 3:59:49 PM EDT
55.62USD+1.459%(+0.80)1,013,949
0.00Bid   0.00Ask   0.00Spread
Pre-market
0.00USD-100.000%(-54.82)0
After-hours
Sep 1, 2026 4:10:30 PM EDT
55.67USD+0.090%(+0.05)1
OverviewOption ChainMax PainOptionsPrice & VolumeDividendsHistoricalExchange VolumeDark Pool LevelsDark Pool PrintsExchangesShort VolumeShort Interest - DailyShort InterestBorrow Fee (CTB)Failure to Deliver (FTD)ShortsTrendsNewsTrends
TX Reddit Mentions
Subreddits
Limit Labels     

We have sentiment values and mention counts going back to 2017. The complete data set is available via the API.
Take me to the API
TX Specific Mentions
As of Sep 1, 2026 10:03:37 PM EDT (1 min. ago)
Includes all comments and posts. Mentions per user per ticker capped at one per hour.
8 hr ago • u/formulaferrari5 • r/ValueInvesting • why_are_analysts_projected_higher_price_targets • C
Good entry point if you want to hold something long term, green power will have a comeback and long term interest. Investment in infrastructure is going to be a focal point nationally in the coming years. Texas being one of the states with the highest need- a blue wave in TX opening funding for improvements there would see NRG stock go to Houston for takeoff.
sentiment 0.86
24 hr ago • u/Defragmentation • r/Schwab • is_there_a_way_to_export_individual_tax_lot_data • C
This bookmarklet pretty much works:
javascript:(async()=>{try{ const S=m=>new Promise(r=>setTimeout(r,m)); const TX=e=>(e?.innerText||e?.textContent||'').replace(/\\s+/g,' ').trim(); const V=e=>{if(!e||!e.isConnected)return false;const r=e.getBoundingClientRect(),s=getComputedStyle(e);return r.width>0&&r.height>0&&s.display!=='none'&&s.visibility!=='hidden'}; const DATE=/\^\\d{1,2}\\/\\d{1,2}\\/\\d{4}$/; const W=async(fn,ms=2000)=>{const end=performance.now()+ms;while(performance.now()<end){const x=fn();if(x)return x;await S(40)}return null}; function N(v){ let s=String(v??'').trim(); if(!s||s==='--'||s==='N/A')return null; const neg=/\^\\(.\*\\)$/.test(s); s=s.replace(/\[,$%()\]/g,'').replace(/\^\\+/,''); const n=Number(s); return Number.isNaN(n)?v:(neg?-n:n); } function PC(el){ const r=el.getBoundingClientRect(),x=r.left+r.width/2,y=r.top+r.height/2; let t=document.elementFromPoint(x,y)||el; t=t.closest?.('button,a,\[role="menuitem"\],.sdps-menu\_\_item')||t; for(const type of \['pointerdown','mousedown','pointerup','mouseup','click'\]){ const C=type.startsWith('pointer')&&window.PointerEvent?PointerEvent:MouseEvent; t.dispatchEvent(new C(type,{bubbles:true,cancelable:true,view:window,clientX:x,clientY:y,button:0,buttons:type.includes('down')?1:0,pointerId:1,pointerType:'mouse',isPrimary:true})); } } function ESC(){ const e=document.activeElement||document; for(const type of \['keydown','keyup'\])e.dispatchEvent(new KeyboardEvent(type,{key:'Escape',code:'Escape',keyCode:27,which:27,bubbles:true,cancelable:true})); } function positionRows(){ return \[...document.querySelectorAll('tbody\[id\^="holdingsAccount\_"\] tr\[data-symbol\]')\].filter(r=>r.querySelector('button\[id\^="menu-trigger-next-steps-"\]\[aria-label="Open Menu"\]')); } function scrollParent(el){ let p=el?.parentElement; while(p&&p!==document.body){ const s=getComputedStyle(p); if(/auto|scroll/.test(s.overflowY)&&p.scrollHeight>p.clientHeight+50)return p; p=p.parentElement; } return document.scrollingElement||document.documentElement; } const docScroller=s=>s===document.scrollingElement||s===document.documentElement||s===document.body; const getTop=s=>docScroller(s)?window.scrollY:s.scrollTop; const setTop=(s,v)=>{v=Math.max(0,v);docScroller(s)?window.scrollTo(0,v):s.scrollTop=v}; const viewH=s=>docScroller(s)?window.innerHeight:s.clientHeight; const maxTop=s=>Math.max(0,s.scrollHeight-viewH(s)); const absY=(row,s)=>{const rr=row.getBoundingClientRect();if(docScroller(s))return window.scrollY+rr.top;const sr=s.getBoundingClientRect();return s.scrollTop+rr.top-sr.top}; function lotTable(){ return \[...document.querySelectorAll('table')\].filter(V).find(t=>{ const h=\[...t.querySelectorAll('th')\].map(TX); return h.includes('Open Date')&&h.includes('Quantity')&&h.some(x=>/Cost\\/?Share/i.test(x))&&h.some(x=>/Holding Period/i.test(x)); }); } function lotRows(){ const t=lotTable(); if(!t)return \[\]; return \[...t.querySelectorAll('tr')\].map(r=>\[...r.querySelectorAll('th,td')\].map(TX)).filter(c=>c.length>=9&&DATE.test(c\[0\])); } function lotTableText(){ const t=lotTable(); return t?TX(t):''; } async function closeLots(){ const t=lotTable(); if(!t)return true; let root=t.closest('\[role="dialog"\],sdps-modal,.sdps-modal,#open-lot-overlay')||t.parentElement; let b=null; if(root){ b=\[...root.querySelectorAll('button')\].filter(V).find(x=>/\\bclose\\b/i.test(\[TX(x),x.getAttribute('aria-label')||'',x.title||''\].join(' '))); } if(b)PC(b);else ESC(); let closed=await W(()=>!lotTable(),1000); if(!closed){ESC();closed=await W(()=>!lotTable(),700)} return !!closed; } async function extractFromRow(row){ const menu=row.querySelector('button\[id\^="menu-trigger-next-steps-"\]\[aria-label="Open Menu"\]'); if(!menu)return {status:'no\_menu'}; row.scrollIntoView({block:'center',inline:'nearest'}); await S(40); menu.click(); const item=await W(()=>\[...document.querySelectorAll('\[role="menuitem"\],.sdps-menu\_\_item')\].filter(V).find(e=>TX(e)==='Lot Details'),1000); if(!item){ESC();return {status:'no\_lot\_details'}}; const start=performance.now(); PC(item); const table=await W(()=>lotTable(),2000); if(!table){ESC();return {status:'table\_not\_open'}}; const rows=await W(()=>{const x=lotRows();return x.length?x:null},2000); if(!rows){ const tt=lotTableText(); return {status:/incomplete/i.test(tt)?'incomplete\_cost\_basis':'no\_dated\_rows',loadMs:Math.round(performance.now()-start)}; } await S(80); const finalRows=lotRows(); return {status:'ok',rows:finalRows.length?finalRows:rows,loadMs:Math.round(performance.now()-start)}; } const box=document.createElement('div'); box.style='position:fixed;right:16px;bottom:16px;z-index:2147483647;background:#fff;border:1px solid #777;padding:10px 14px;font:14px Arial;color:#111;box-shadow:0 2px 8px #777;max-width:390px'; box.textContent='Schwab tax lots: discovering positions...'; document.body.appendChild(box); const first=positionRows()\[0\]; if(!first){box.remove();alert('No Schwab position rows found.');return} const sc=scrollParent(first),originalTop=getTop(sc); const seen=new Map(),accountLabels=new Map(); let nextAccount=1; function collect(){ for(const row of positionRows()){ const sym=row.getAttribute('data-symbol'); const body=row.closest('tbody\[id\^="holdingsAccount\_"\]'); if(!sym||!body)continue; if(!accountLabels.has(body.id))accountLabels.set(body.id,'Account '+nextAccount++); const key=body.id+'|'+sym; if(!seen.has(key))seen.set(key,{key,symbol:sym,bodyId:body.id,account:accountLabels.get(body.id),pos:absY(row,sc)}); else seen.get(key).pos=absY(row,sc); } box.textContent='Schwab tax lots: discovering positions... '+seen.size; } setTop(sc,0);await S(250); let unchanged=0,last=-1; for(let i=0;i<900;i++){ collect(); if(seen.size===last)unchanged++;else unchanged=0; last=seen.size; const cur=getTop(sc),max=maxTop(sc); if(cur>=max-2&&unchanged>=3)break; setTop(sc,Math.min(max,cur+Math.max(300,viewH(sc)\*0.75))); await S(90); } collect(); const items=\[...seen.values()\].sort((a,b)=>a.pos-b.pos); console.log('\[Tax Lots\] discovered',items.length,items.map(x=>({account:x.account,symbol:x.symbol}))); async function locate(info){ const target=Math.max(0,info.pos-viewH(sc)\*0.35); setTop(sc,target);await S(80); let r=positionRows().find(x=>x.getAttribute('data-symbol')===info.symbol&&x.closest('tbody\[id\^="holdingsAccount\_"\]')?.id===info.bodyId); if(r)return r; const step=Math.max(300,viewH(sc)\*0.65); for(const d of \[step,-step,2\*step,-2\*step\]){ setTop(sc,target+d);await S(90); r=positionRows().find(x=>x.getAttribute('data-symbol')===info.symbol&&x.closest('tbody\[id\^="holdingsAccount\_"\]')?.id===info.bodyId); if(r){info.pos=absY(r,sc);return r} } return null; } const go=confirm('Discovered '+items.length+' positions.\\n\\nRun the full tax-lot extraction now?'); if(!go){setTop(sc,originalTop);box.remove();return} const out=\[\],errors=\[\]; let totalLots=0; for(let i=0;i<items.length;i++){ const info=items\[i\]; box.textContent='Schwab tax lots: '+(i+1)+'/'+items.length+' - '+info.symbol+' | lots: '+totalLots; try{ if(lotTable()){ const ok=await closeLots(); if(!ok){errors.push({account:info.account,symbol:info.symbol,reason:'previous\_overlay\_would\_not\_close'});break} } const row=await locate(info); if(!row){errors.push({account:info.account,symbol:info.symbol,reason:'row\_not\_found'});continue} const res=await extractFromRow(row); if(res.status==='ok'){ const lots=res.rows.map(c=>({openDate:c\[0\],quantity:N(c\[1\]),price:N(c\[2\]),costPerShare:N(c\[3\]),marketValue:N(c\[4\]),costBasis:N(c\[5\]),gainLoss:N(c\[6\]),gainLossPercent:N(c\[7\]),holdingPeriod:c\[8\]})); out.push({account:info.account,symbol:info.symbol,loadMs:res.loadMs,lotCount:lots.length,lots}); totalLots+=lots.length; console.log('\[Tax Lots\] SUCCESS',info.account,info.symbol,lots.length,'lots',res.loadMs+'ms'); }else{ errors.push({account:info.account,symbol:info.symbol,reason:res.status,loadMs:res.loadMs??null}); console.warn('\[Tax Lots\] SKIP',info.account,info.symbol,res.status); } if(lotTable()){ const ok=await closeLots(); if(!ok){errors.push({account:info.account,symbol:info.symbol,reason:'overlay\_would\_not\_close'});break} } await S(40); if(i===2&&out.length===0){alert('STOPPED EARLY. The first 3 positions produced zero successful lot extractions.');break} }catch(e){ console.error('\[Tax Lots\]',info.symbol,e); errors.push({account:info.account,symbol:info.symbol,reason:String(e?.message||e)}); await closeLots(); } } setTop(sc,originalTop); const data={generatedAt:new Date().toISOString(),positionsDiscovered:items.length,positionsWithLots:out.length,totalLots,positionsSkippedOrErrored:errors.length,positions:out,errors}; console.log('\[Tax Lots\] COMPLETE',data); const blob=new Blob(\[JSON.stringify(data,null,2)\],{type:'application/json'}),url=URL.createObjectURL(blob),a=document.createElement('a'); a.href=url;a.download='schwab-tax-lots.json';document.body.appendChild(a);a.click();a.remove();setTimeout(()=>URL.revokeObjectURL(url),1000); box.textContent='Schwab tax lots: complete'; alert('Finished.\\n\\nPositions discovered: '+items.length+'\\nPositions with lots: '+out.length+'\\nIndividual tax lots: '+totalLots+'\\nSkipped/errors: '+errors.length+'\\n\\nDownloaded schwab-tax-lots.json'); setTimeout(()=>box.remove(),4000); }catch(e){console.error('\[Tax Lots\] FATAL',e);alert('ERROR: '+String(e?.message||e))}})();
sentiment 0.95
1 day ago • u/mrkjmsdln_new • r/teslainvestorsclub • tesla_adds_45_cybercabs_to_its_texas_robotaxi • C
That many in TX. They had about 300 in Austin thru Q1 and do about 62K miles a day. They will likely top out closer to 6-7K fleet by end of year it seems. Will likely get closer to 100K miles a day by EOY based on other cities progress in Austin. The rest mostly in DAL or HOU as SAT is slow. For perspective, they've done 15M+ miles rider only in Austin. Tesla was 380K miles unsupervised mostly in Austin thru Q2 lifetime so probably closer to 190K rider only. This will be the big year where Tesla may begin scaling I think. For Waymo and the 3 major Chinese L4 companies, the ramp to 1M was hard and then the jump to 10M takes time to scale the support model. Thereafter it can scale when the support ratio becomes economic. That's the biggest expense for autonmous taxi until the service converges to safe and low cost to support. That seems to be when these services can finally focus on scaling.
sentiment 0.90
2 days ago • u/johndsmits • r/wallstreetbets • what_are_your_moves_tomorrow_august_31_2026 • C
Yup, that's the strategy, mix WTI light with Venz Sour.

Problem is takes more nat gas (ok), energy (?), rare earths (?), and compute (ok). All I can say $4/gal and more pollution in the TX area for the next decade at this point.
sentiment -0.24


Share
About
Pricing
Policies
Markets
API
Info
tz UTC-4
Connect with us
ChartExchange Email
ChartExchange on Discord
ChartExchange on X
ChartExchange on Reddit
ChartExchange on GitHub
ChartExchange on YouTube
© 2020 - 2026 ChartExchange LLC