Appearance
Personalize your experience
Mode
Accent Color
Layout
Direction
Earnings Event Flags
FreeMark earnings dates with implied-move cones on the chart
4.5(92)
1.8k installs 410 2 commentsA
earningseventsfundamentalvolatilityiv
Preview
1 / 2
Chart preview
About
Plots earnings announcement dates as vertical event lines with expected-move cones based on implied volatility.
Features
• Vertical dashed event lines
• IV-based expected move cone projection
• Company label at top
• Auto-filters to visible range
Overlay Details
Render Layer
background
Source Code
Edit in IDEtypescript
| 1 | // Earnings Flags Overlay — Quatick IDE |
| 2 | // Returns an implied-volatility proxy from ATR to mark high-IV periods. |
| 3 | // SDK math globals available: sma, ema, atr, rsi, macd, bollingerBands, vwap, etc. |
| 4 | |
| 5 | const metadata = { id: 'earnings-flags', name: 'Earnings Flags', version: '1.0.0', category: 'overlay' }; |
| 6 | |
| 7 | interface BarData { |
| 8 | time: number; |
| 9 | open: number; |
| 10 | high: number; |
| 11 | low: number; |
| 12 | close: number; |
| 13 | volume?: number; |
| 14 | } |
| 15 | |
| 16 | const defaultParams = { atrPeriod: 14, smoothPeriod: 20, ivMultiplier: 1.5 }; |
| 17 | |
| 18 | /** |
| 19 | * Implied-Volatility Proxy Overlay. |
| 20 | * Returns normalised ATR relative to its SMA — spikes indicate high-IV periods |
| 21 | * similar to when earnings events cause unusual options pricing. |
| 22 | * Values above 1.5 flag potential earnings or catalyst events. |
| 23 | */ |
| 24 | function calculate(bars: BarData[], params = defaultParams): { time: number; value: number }[] { |
| 25 | const highs = bars.map(b => b.high); |
| 26 | const lows = bars.map(b => b.low); |
| 27 | const closes = bars.map(b => b.close); |
| 28 | |
| 29 | // atr() is an SDK global: atr(high[], low[], close[], period) -> number[] |
| 30 | const atrValues = atr(highs, lows, closes, params.atrPeriod); |
| 31 | const atrSMA = sma(atrValues, params.smoothPeriod); |
| 32 | |
| 33 | return bars |
| 34 | .map((bar, i) => ({ |
| 35 | time: bar.time, |
| 36 | value: (!isNaN(atrValues[i]) && !isNaN(atrSMA[i]) && atrSMA[i] > 0) |
| 37 | ? atrValues[i] / atrSMA[i] |
| 38 | : NaN, |
| 39 | })) |
| 40 | .filter(p => !isNaN(p.value)); |
| 41 | } |
Read-only preview. Open in the QuaTick IDE to edit and deploy.
Reviews
No reviews yet. Be the first to review this listing.
Discussion
Sign in to join the discussion. Your posts and replies show up on your profile.