OPEN-SOURCE SCRIPT
GEX Walls + Market Open Shading

### Overview
This Pine Script (version 6) creates a TradingView indicator called **"GEX Walls + Market Open Shading"**. It overlays directly on the price chart and is designed for intraday trading, particularly for indices like SPX or ES futures. The script combines two main features:
- **GEX Walls**: Visual boxes and labels highlighting "Gamma Exposure" (GEX) levels—key support (Put Wall) and resistance (Call Wall) zones based on options gamma. It includes approach alerts.
- **Market Open Shading**: A semi-transparent background shade during a customizable post-market-open session (e.g., first 2 hours after 9:30 AM EST).
It uses up to 20 boxes and 20 labels, with right-scale positioning for better visibility on the price axis. The script detects new trading days to reset visuals dynamically.
### Key Inputs
The script is highly customizable via inputs grouped into sections:
#### GEX Walls Inputs
- **Call Wall** (default: 6900.0): Upper resistance level.
- **Put Wall** (default: 6850.0): Lower support level.
- **Buffer** (default: 3.0 points): Vertical padding around each wall for box thickness.
- **Alert Distance** (default: 10.0 points): Threshold for triggering "approach" alerts.
- **Colors**: Semi-transparent yellow for Call Wall boxes (#ffeb3b at 80% opacity), orange for Put Wall (#ff9800 at 80%).
- **Toggles**: Show/hide boxes; enable/disable alerts; restrict alerts to shaded session only.
- **Labels**: Text color (white), offset (bars to the right, default -2), size (tiny/small/normal/large).
#### Market Open Shading Inputs
- **Shade Color** (default: white at 90% transparency): Background fill during session.
- **Transparency** (0-100, default: 90): Opacity level.
- **Open Time** (default: 9:30 EST): Hour/minute for session start.
- **Duration**: Dropdown with pre-formatted options (e.g., "120 min: 11:30a EST / 8:30a PST" up to 195 min), showing both EST and PST end times for convenience.
- **Toggle**: Show/hide shading.
### How It Works
#### 1. Market Open Shading
- Calculates end time from open hour/minute + selected duration (e.g., 120 minutes from 9:30 AM EST = 11:30 AM EST).
- Builds a session string (e.g., "0930-1130") for TradingView's `time()` function.
- Detects if the current bar is within the session using `not na(time("", sessionString))`.
- Applies `bgcolor()` with the user-defined color/transparency only during the session.
- Helper functions format times in 12-hour AM/PM style (e.g., "11:30a") for labels, with EST/PST variants.
#### 2. Day Detection
- Uses `time("D")` to track daily changes (`ta.change(dayTime) != 0` signals a new day).
- Maintains variables for the current day's start bar index (`todayStartIndex`) and previous day's start (`prevStartIndex`).
- This ensures boxes span exactly from yesterday's open to today (intraday reset on new days).
#### 3. GEX Walls Visualization
- **Boxes**: Drawn once `prevStartIndex` is known (i.e., on the second day onward).
- Left edge: Previous day's start bar.
- Right edge: Current bar (extends live).
- Height: Wall level ± buffer (e.g., Call Wall box from 6900-3 to 6900+3).
- Updated dynamically with `box.set_*` functions; hidden (100% transparent) if toggled off.
- **Labels**: Placed at exact wall levels, offset to the right (e.g., 2 bars ahead for readability).
- Text: "CALL WALL: 6900.0" or "PUT WALL: 6850.0".
- Style: Right-aligned, black background (transparent), user-defined text color/size.
- Deleted if toggled off.
- All visuals use `xloc.bar_index` for bar-based positioning.
#### 4. Alerts
- **Call Wall Approach**: Triggers when close enters within `alertDistance` below the wall, but prior bar was further away (rising toward resistance). Message: "Price approaching Call Wall at [level] from below (within [distance] points)".
- **Put Wall Approach**: Symmetric for falling toward support (within distance above wall).
- Filtered optionally to shaded session only.
- Uses `alertcondition()` with hidden plots (`display=display.none`) for dynamic message placeholders (e.g., `{{plot_0}}` inserts wall level).
### Notable Features & Behaviors
- **Intraday Focus**: Boxes/labels reset daily, making it ideal for day trading without historical clutter.
- **Time Zone Handling**: Defaults to EST for market open but shows PST equivalents in dropdowns (subtracts 3 hours).
- **Efficiency**: Uses `var` declarations for persistent objects (boxes/labels) to avoid recreation on every bar.
- **Edge Cases**: Handles label offsets (clamped -10 to 50 bars); session wrapping (e.g., overnight via %24); new chart loads (initializes on first bar).
- **Customization Depth**: 20+ inputs allow fine-tuning without code edits. Alerts integrate seamlessly with TradingView's system.
- **Limitations**: Relies on bar_index for historical spanning (best on lower timeframes like 1-5 min); no historical backfill for walls (live-only).
This script is a practical tool for options-aware traders monitoring gamma squeezes or pinning levels during market open volatility. To use it, paste into TradingView's Pine Editor, adjust inputs for your asset (e.g., update walls for current GEX data), and add to chart.
This Pine Script (version 6) creates a TradingView indicator called **"GEX Walls + Market Open Shading"**. It overlays directly on the price chart and is designed for intraday trading, particularly for indices like SPX or ES futures. The script combines two main features:
- **GEX Walls**: Visual boxes and labels highlighting "Gamma Exposure" (GEX) levels—key support (Put Wall) and resistance (Call Wall) zones based on options gamma. It includes approach alerts.
- **Market Open Shading**: A semi-transparent background shade during a customizable post-market-open session (e.g., first 2 hours after 9:30 AM EST).
It uses up to 20 boxes and 20 labels, with right-scale positioning for better visibility on the price axis. The script detects new trading days to reset visuals dynamically.
### Key Inputs
The script is highly customizable via inputs grouped into sections:
#### GEX Walls Inputs
- **Call Wall** (default: 6900.0): Upper resistance level.
- **Put Wall** (default: 6850.0): Lower support level.
- **Buffer** (default: 3.0 points): Vertical padding around each wall for box thickness.
- **Alert Distance** (default: 10.0 points): Threshold for triggering "approach" alerts.
- **Colors**: Semi-transparent yellow for Call Wall boxes (#ffeb3b at 80% opacity), orange for Put Wall (#ff9800 at 80%).
- **Toggles**: Show/hide boxes; enable/disable alerts; restrict alerts to shaded session only.
- **Labels**: Text color (white), offset (bars to the right, default -2), size (tiny/small/normal/large).
#### Market Open Shading Inputs
- **Shade Color** (default: white at 90% transparency): Background fill during session.
- **Transparency** (0-100, default: 90): Opacity level.
- **Open Time** (default: 9:30 EST): Hour/minute for session start.
- **Duration**: Dropdown with pre-formatted options (e.g., "120 min: 11:30a EST / 8:30a PST" up to 195 min), showing both EST and PST end times for convenience.
- **Toggle**: Show/hide shading.
### How It Works
#### 1. Market Open Shading
- Calculates end time from open hour/minute + selected duration (e.g., 120 minutes from 9:30 AM EST = 11:30 AM EST).
- Builds a session string (e.g., "0930-1130") for TradingView's `time()` function.
- Detects if the current bar is within the session using `not na(time("", sessionString))`.
- Applies `bgcolor()` with the user-defined color/transparency only during the session.
- Helper functions format times in 12-hour AM/PM style (e.g., "11:30a") for labels, with EST/PST variants.
#### 2. Day Detection
- Uses `time("D")` to track daily changes (`ta.change(dayTime) != 0` signals a new day).
- Maintains variables for the current day's start bar index (`todayStartIndex`) and previous day's start (`prevStartIndex`).
- This ensures boxes span exactly from yesterday's open to today (intraday reset on new days).
#### 3. GEX Walls Visualization
- **Boxes**: Drawn once `prevStartIndex` is known (i.e., on the second day onward).
- Left edge: Previous day's start bar.
- Right edge: Current bar (extends live).
- Height: Wall level ± buffer (e.g., Call Wall box from 6900-3 to 6900+3).
- Updated dynamically with `box.set_*` functions; hidden (100% transparent) if toggled off.
- **Labels**: Placed at exact wall levels, offset to the right (e.g., 2 bars ahead for readability).
- Text: "CALL WALL: 6900.0" or "PUT WALL: 6850.0".
- Style: Right-aligned, black background (transparent), user-defined text color/size.
- Deleted if toggled off.
- All visuals use `xloc.bar_index` for bar-based positioning.
#### 4. Alerts
- **Call Wall Approach**: Triggers when close enters within `alertDistance` below the wall, but prior bar was further away (rising toward resistance). Message: "Price approaching Call Wall at [level] from below (within [distance] points)".
- **Put Wall Approach**: Symmetric for falling toward support (within distance above wall).
- Filtered optionally to shaded session only.
- Uses `alertcondition()` with hidden plots (`display=display.none`) for dynamic message placeholders (e.g., `{{plot_0}}` inserts wall level).
### Notable Features & Behaviors
- **Intraday Focus**: Boxes/labels reset daily, making it ideal for day trading without historical clutter.
- **Time Zone Handling**: Defaults to EST for market open but shows PST equivalents in dropdowns (subtracts 3 hours).
- **Efficiency**: Uses `var` declarations for persistent objects (boxes/labels) to avoid recreation on every bar.
- **Edge Cases**: Handles label offsets (clamped -10 to 50 bars); session wrapping (e.g., overnight via %24); new chart loads (initializes on first bar).
- **Customization Depth**: 20+ inputs allow fine-tuning without code edits. Alerts integrate seamlessly with TradingView's system.
- **Limitations**: Relies on bar_index for historical spanning (best on lower timeframes like 1-5 min); no historical backfill for walls (live-only).
This script is a practical tool for options-aware traders monitoring gamma squeezes or pinning levels during market open volatility. To use it, paste into TradingView's Pine Editor, adjust inputs for your asset (e.g., update walls for current GEX data), and add to chart.
نص برمجي مفتوح المصدر
بروح TradingView الحقيقية، قام مبتكر هذا النص البرمجي بجعله مفتوح المصدر، بحيث يمكن للمتداولين مراجعة وظائفه والتحقق منها. شكرا للمؤلف! بينما يمكنك استخدامه مجانًا، تذكر أن إعادة نشر الكود يخضع لقواعد الموقع الخاصة بنا.
إخلاء المسؤولية
لا يُقصد بالمعلومات والمنشورات أن تكون، أو تشكل، أي نصيحة مالية أو استثمارية أو تجارية أو أنواع أخرى من النصائح أو التوصيات المقدمة أو المعتمدة من TradingView. اقرأ المزيد في شروط الاستخدام.
نص برمجي مفتوح المصدر
بروح TradingView الحقيقية، قام مبتكر هذا النص البرمجي بجعله مفتوح المصدر، بحيث يمكن للمتداولين مراجعة وظائفه والتحقق منها. شكرا للمؤلف! بينما يمكنك استخدامه مجانًا، تذكر أن إعادة نشر الكود يخضع لقواعد الموقع الخاصة بنا.
إخلاء المسؤولية
لا يُقصد بالمعلومات والمنشورات أن تكون، أو تشكل، أي نصيحة مالية أو استثمارية أو تجارية أو أنواع أخرى من النصائح أو التوصيات المقدمة أو المعتمدة من TradingView. اقرأ المزيد في شروط الاستخدام.