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

OUT
OUTFRONT Media Inc.
stock NYSE

At Close
Sep 29, 2026 3:59:56 PM EDT
27.98USD+0.251%(+0.07)1,222,897
27.96Bid   31.80Ask   3.84Spread
Pre-market
0.00USD-100.000%(-27.91)0
After-hours
Sep 29, 2026 4:10:30 PM EDT
27.99USD+0.036%(+0.01)1
OverviewOption ChainMax PainOptionsPrice & VolumeSplitsDividendsHistoricalExchange VolumeDark Pool LevelsDark Pool PrintsExchangesShort VolumeShort Interest - DailyShort InterestBorrow Fee (CTB)Failure to Deliver (FTD)ShortsTrendsNewsTrends
OUT 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
OUT Specific Mentions
As of Sep 29, 2026 5:26:13 PM EDT (<1 min. ago)
Includes all comments and posts. Mentions per user per ticker capped at one per hour.
1 hr ago • u/spendology • r/wallstreetbets • what_are_your_moves_tomorrow_september_30_2026 • C
Well...THE FREAKS COME OUT AT NIGHT!!
sentiment -0.16
2 hr ago • u/Life-Trade-6514 • r/wallstreetbets • daily_discussion_thread_for_september_29_2026 • C
Anthropic's CEO looks like a fuckin RAT and for that reason, IM OUT
sentiment 0.36
3 hr ago • u/the_cham3le0n • r/Bitcoin • lava_locked_me_out_of_9000_in_bitcoin • T
LAVA LOCKED ME OUT OF $9,000 IN BITCOIN
sentiment 0.00
3 hr ago • u/IWishIwasAwhale1 • r/wallstreetbets • daily_discussion_thread_for_september_29_2026 • C
BRING HIM OUT
sentiment 0.00
3 hr ago • u/ResidentLonely4137 • r/IndianStockMarket • is_there_any_update_on_moneyview_ipo_allotment • C
Allotment status is OUT
sentiment 0.00
6 hr ago • u/Doge2020Hodl86 • r/dogecoin • tokens_are_not_coins • C
Dogecoin is a good currency tool and so is bitcoin, thats why I want it, and why i never sold. Governments around the world rug their people with national currencies daily, including ours printing and the federal reserve. A money system everyone can mine and share the ledger is the goal to enable a currency tool that works and a level 2 economy. Banks are squeezing us so hard rn that's why im here- AFTER WE BAIL THEM OUT!!
sentiment 0.63
10 hr ago • u/Spy300 • r/wallstreetbets • daily_discussion_thread_for_september_29_2026 • C
>TRUMP: I HAVE THE GREATEST PLAN OF ALL, WON'T REVEAL WHAT IT IS
>TRUMP: WHEN OIL PRICES GO UP, WE MAKE A LOT OF MONEY
>TRUMP: FRANKLY, GAS PRICE HASN'T GONE UP AS MUCH AS I THOUGHT
>TRUMP: WE WILL GROW OUR WAY OUT OF DEBT
>TRUMP: I LOVE THE INFLATION
>TRUMP: 'WORLD’S MOST POWERFUL RESET!!!
sentiment 0.24
13 hr ago • u/Horror-Celery4869 • r/Forex • geometry_is_a_lie • C
<script src="https://gist.github.com/aimasri/70cbc9d28ee19f0f0c13d98cc4752568.js"></script>
`"""`
`Minimal Event-Driven Backtesting Core (Anti-Lookahead & Friction-Aware)`
`======================================================================`
`Most retail backtests produce phantom alpha because:`
`1. Look-Ahead Bias: Vectorized calculations leak future data into current decisions.`
`2. Unrealistic Fills: Stops and targets are evaluated on bar 'Close' rather than intra-bar extremes.`
`3. Zero-Friction Delusion: Slippage and broker spreads are omitted, vaporizing small edges.`
`This snippet demonstrates a physically constrained point-in-time loop with intra-bar SL/TP.`
`"""`
`from typing import Callable, Dict, List, Optional`
`import numpy as np`
`import pandas as pd`
`class PointInTimeDataFeed:`
`"""`
`Chronological data provider that acts as a physical firewall against look-ahead bias.`
`At step T, the strategy can ONLY see bars up to T-1. Future rows do not exist in memory.`
`"""`
`def __init__(self, df: pd.DataFrame):`
`self._df = df.sort_index()`
`self._cursor = 0`
`self._length = len(df)`
`def __iter__(self):`
`self._cursor = 0`
`return self`
`def __next__(self):`
`if self._cursor >= self._length:`
`raise StopIteration`
`row = self._df.iloc[self._cursor]`
`# Only historical bars up to the current pointer are exposed`
`history = self._df.iloc[:self._cursor]`
`self._cursor += 1`
`return` [`row.name`](http://row.name)`, row, history`
`def run_simulation(`
`df: pd.DataFrame,`
`strategy_fn: Callable[[pd.Series, pd.DataFrame], Optional[str]],`
`spread_pips: float = 1.0,`
`pip_size: float = 0.0001`
`) -> List[Dict]:`
`"""`
`Executes a bar-by-bar backtest enforcing intra-bar extremes and broker friction.`
`"""`
`position = None # Tracks: {'dir': 1 or -1, 'entry': float, 'sl': float, 'tp': float}`
`closed_trades = []`
`feed = PointInTimeDataFeed(df)`
`for timestamp, bar, history in feed:`
`# -------------------------------------------------------------`
`# STEP 1: Intra-bar Stop Loss / Take Profit Evaluation`
`# -------------------------------------------------------------`
`# Reality: Price traverses within [Low, High] during the bar.`
`# If low <= stop_loss, the trade was stopped OUT intra-bar,`
`# regardless of where the bar eventually closes.`
`if position:`
`is_long = (position['dir'] == 1)`
`hit_sl = (bar['low'] <= position['sl']) if is_long else (bar['high'] >= position['sl'])`
`hit_tp = (bar['high'] >= position['tp']) if is_long else (bar['low'] <= position['tp'])`
`if hit_sl:`
`pnl = (position['sl'] - position['entry']) * position['dir']`
`closed_trades.append({'time': timestamp, 'type': 'SL', 'pnl_pips': pnl / pip_size})`
`position = None`
`elif hit_tp:`
`pnl = (position['tp'] - position['entry']) * position['dir']`
`closed_trades.append({'time': timestamp, 'type': 'TP', 'pnl_pips': pnl / pip_size})`
`position = None`
`# -------------------------------------------------------------`
`# STEP 2: Evaluate Strategy on Strictly Historical Bars`
`# -------------------------------------------------------------`
`# Warmup threshold: Ensure enough historical bars exist for indicator calculation`
`if not position and len(history) >= 20:`
`signal = strategy_fn(bar, history) # Returns 'BUY', 'SELL', or None`
`if signal in ('BUY', 'SELL'):`
`direction = 1 if signal == 'BUY' else -1`
`# ---------------------------------------------------------`
`# STEP 3: Apply Real-World Friction to the Entry Fill`
`# ---------------------------------------------------------`
`# Long buys at Ask (Close + Spread); Short sells at Bid (Close - Spread)`
`friction_penalty = spread_pips * pip_size * direction`
`entry_fill = bar['close'] + friction_penalty`
`# Set structural 20-pip SL and 40-pip TP`
`position = {`
`'dir': direction,`
`'entry': entry_fill,`
`'sl': entry_fill - (20.0 * pip_size * direction),`
`'tp': entry_fill + (40.0 * pip_size * direction),`
`}`
`return closed_trades`
`# =====================================================================`
`# Verification: Run with Synthetic Data and a Simple EMA Strategy`
`# =====================================================================`
`if __name__ == "__main__":`
`# Generate 500 bars of synthetic geometric random walk`
`np.random.seed(42)`
`prices = 1.1000 + np.cumsum(np.random.normal(0, 0.0004, 500))`
`dates = pd.date_range("2026-01-01", periods=500, freq="15min")`
`df = pd.DataFrame({`
`'open': prices,`
`'high': prices + np.abs(np.random.normal(0, 0.0003, 500)),`
`'low': prices - np.abs(np.random.normal(0, 0.0003, 500)),`
`'close': prices + np.random.normal(0, 0.0001, 500),`
`}, index=dates)`
`# Strategy: Fast EMA (8) crosses Slow EMA (21)`
`def ema_crossover_strategy(bar, history) -> Optional[str]:`
`fast = history['close'].ewm(span=8).mean().iloc[-1]`
`slow = history['close'].ewm(span=21).mean().iloc[-1]`
`prev_fast = history['close'].ewm(span=8).mean().iloc[-2]`
`prev_slow = history['close'].ewm(span=21).mean().iloc[-2]`
`if prev_fast <= prev_slow and fast > slow:`
`return 'BUY'`
`elif prev_fast >= prev_slow and fast < slow:`
`return 'SELL'`
`return None`
`results = run_simulation(df, ema_crossover_strategy, spread_pips=1.2)`
`# Calculate performance summary`
`total_trades = len(results)`
`wins = [t for t in results if t['pnl_pips'] > 0]`
`total_pnl = sum(t['pnl_pips'] for t in results)`
`win_rate = (len(wins) / total_trades * 100) if total_trades else 0`
`print(f"--- Backtest Finished ---")`
`print(f"Closed Trades : {total_trades}")`
`print(f"Win Rate : {win_rate:.1f}%")`
`print(f"Net PnL (Pips): {total_pnl:.1f}")`
sentiment -0.60
20 hr ago • u/MKD8595 • r/Gold • gold_getting_hammered_whats_causing_this • C
ZOOM. OUT.
sentiment 0.00
20 hr ago • u/Spy300 • r/stocks • rstocks_daily_discussion_monday_sep_28_2026 • C
>TRUMP: I HAVE THE GREATEST PLAN OF ALL, WON'T REVEAL WHAT IT IS
>TRUMP: WHEN OIL PRICES GO UP, WE MAKE A LOT OF MONEY
>TRUMP: FRANKLY, GAS PRICE HASN'T GONE UP AS MUCH AS I THOUGHT
>TRUMP: WE WILL GROW OUR WAY OUT OF DEBT
>TRUMP: I LOVE THE INFLATION
>TRUMP: 'WORLD’S MOST POWERFUL RESET!!!
sentiment 0.24
21 hr ago • u/CouchPotatoFamine • r/wallstreetbets • anthropic_files_for_ipo • C
Count me OUT, I put all my overhyped money into SPCX.
sentiment 0.00
22 hr ago • u/No-Inevitable1270 • r/wallstreetbets • what_are_your_moves_tomorrow_september_29_2026 • C
guys ASS TITS COULD GET BOUGHT OUT MAYBE
sentiment -0.78
22 hr ago • u/Spy300 • r/wallstreetbets • what_are_your_moves_tomorrow_september_29_2026 • C
>TRUMP: I HAVE THE GREATEST PLAN OF ALL, WON'T REVEAL WHAT IT IS
>TRUMP: WHEN OIL PRICES GO UP, WE MAKE A LOT OF MONEY
>TRUMP: FRANKLY, GAS PRICE HASN'T GONE UP AS MUCH AS I THOUGHT
>TRUMP: WE WILL GROW OUR WAY OUT OF DEBT
>TRUMP: I LOVE THE INFLATION
>TRUMP: 'WORLD’S MOST POWERFUL RESET!!!
This sequence is completed with QE / YCC. Given the 30Y at 5.55% and 10Y at 5.24%, that will likely happen in the next 7-10 days.
sentiment 0.24
22 hr ago • u/imlenab • r/Schwab • anyone_that_moved_tda_account_to_schwab_during • C
TDA TRAN - TRANSFER OF SECURITY OR OPTION OUT (MASI)...what does this mean? I had shares of Masimo and now they are gone? I didnt receive any notification...
sentiment 0.69
24 hr ago • u/throwaway613514 • r/quant • podshop_vs_collab_shops • C
I've worked at both, and what I will say is that if you can get a seat on a successful pod (which is *very* tricky task, since you don't obviously don't know how well a pod will do a priori), the comp will blow the collaborative shops OUT OF THE WATER. I've seen 3-4 person pods who made over $500M in a year; the firm usually gets something in the neighborhood of 55-60%, the PM gets 20-25% (so, roughly half of the non-firm cut), and the QRs/QDs get the remainder, based on their seniority. In good years, this is easily over $4-5M per person.
Of course, the average case is much different; the average pod employee makes less than a comparable collab shop employee, all else being equal.
sentiment 0.65
1 day ago • u/AdCritical5383 • r/wallstreetbets • daily_discussion_thread_for_september_28_2026 • C
COCKS OUT HE TALKIN
sentiment 0.00
1 day ago • u/M00NFAC3_69 • r/wallstreetbets • daily_discussion_thread_for_september_28_2026 • C
IM CRASHING THE FUK OUT BOYS, GG NO RE
sentiment -0.30
1 day ago • u/No-Inevitable1270 • r/wallstreetbets • daily_discussion_thread_for_september_28_2026 • C
VVVVVVV PEACE DEAL TOMORROW THEY ONLY HAVE OT FIGURE OUT THE NUCLEAR STUFF OTHERWISE USA IS WILLING TO GIVE THEIR FROZEN ASSETS BACK AND THE SANCTIONS
sentiment 0.64
1 day ago • u/Curious_Associate904 • r/wallstreetbets • thieves_steal_nvidiabranded_trailers_hoping_for • C
Pinky you idiot, you’re supposed to hi jack the truck on its way OUT.
sentiment -0.51
1 day ago • u/remilk123 • r/wallstreetbets • daily_discussion_thread_for_september_28_2026 • C
:screech: :screech: 28 MINS TIL 🥭 ANNOUNCES HIS BIGLY UPDATE ON THE BALLROOM! TUNE IN TO FIND OUT WHETHER THE MARKET TANKS EVEN MORE OR V UP!
sentiment 0.00


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