Files
mql5/Indicators/MyIndicators/Session_Analysis_Pro.md
T

191 lines
11 KiB
Markdown
Raw Normal View History

2025-10-13 15:30:05 +02:00
# Session Analysis Professional
2025-10-13 12:43:05 +02:00
## 1. Summary (Introduction)
The Session Analysis Pro is an advanced, multi-faceted analytical tool designed to visualize and analyze price action within specific, user-defined trading sessions. It is particularly useful for traders who focus on the dynamics of the major market opens.
2025-10-13 12:43:05 +02:00
2025-10-20 12:04:07 +02:00
This powerful indicator can simultaneously display and analyze up to **three independent markets** (e.g., NYSE, LSE, TSE), each with its own customizable **Pre-Market, Core, Post-Market, and optional Full Day** sessions.
2025-10-20 12:04:07 +02:00
For each defined session, the indicator can display several key analytical components:
2025-10-13 12:43:05 +02:00
1. **Session Range Box:** A rectangle encompassing the high and low of the session.
2. **Volume Weighted Average Price (VWAP):** The true average price for the session, weighted by volume, rendered using a high-performance, buffer-based drawing method for maximum speed and stability.
2025-10-13 15:30:05 +02:00
3. **Mean Price:** The simple arithmetic average of the selected source prices within the session.
2025-10-13 12:43:05 +02:00
4. **Linear Regression Line:** A statistical trendline showing the "best fit" line for the session's price action.
The indicator is highly customizable and fully supports both **standard** and **Heikin Ashi** data sources for its calculations.
2025-10-13 12:43:05 +02:00
## 2. Calculation Logic
The indicator identifies bars belonging to a specific time window and performs distinct calculations on the data within that session.
2025-10-13 12:43:05 +02:00
2025-10-13 15:30:05 +02:00
1. **Session Range:** Identifies the highest `High` and lowest `Low` within the session's time boundaries and draws a rectangle around them.
2. **Volume Weighted Average Price (VWAP):** Calculates the cumulative, volume-weighted average of the `Typical Price` `(H+L+C)/3`, resetting at the start of each new session. The calculation is performed by a dedicated, optimized engine.
2025-10-13 15:30:05 +02:00
3. **Mean Price:** Calculates the simple arithmetic average of the user-selected `Source Price` for all bars within the session.
4. **Linear Regression Line:** Calculates the "least squares fit" trendline on the user-selected `Source Price`.
* **Note on Matching Built-in Tools:** The standard MetaTrader `Standard Deviation Channel` object calculates its centerline based on **`PRICE_CLOSE`**. To perfectly match the built-in object's trendline, select `PRICE_CLOSE` as the `Source Price` in the indicator settings. Our indicator's flexibility allows you to analyze regression based on other price types as well.
2025-10-13 12:43:05 +02:00
2025-10-13 15:30:05 +02:00
## 3. MQL5 Implementation Details
2025-10-13 12:43:05 +02:00
2025-10-20 12:04:07 +02:00
Our MQL5 implementation follows a modern, robust, and high-performance **hybrid architecture** to provide a smooth, freeze-free user experience.
* **Hybrid Drawing Architecture:** The indicator uses two distinct systems, each optimized for its specific task:
2025-10-20 15:06:43 +02:00
* **VWAP via Indicator Buffers:** All VWAP calculations are handled by a dedicated `CVWAPCalculator` engine. This engine writes its results directly into MQL5's fastest drawing mechanism: **indicator buffers** (`DRAW_LINE`). We use the **"double buffer" technique** to create clean visual gaps between sessions.
* **Boxes & Stats via Graphical Objects:** The Session Box, Mean, and Linear Regression lines are drawn using standard graphical objects (`OBJ_RECTANGLE`, `OBJ_TREND`). This is handled by a separate `CSessionAnalyzer` class, providing flexibility for these elements.
2025-10-20 15:06:43 +02:00
* **Unified Heikin Ashi Integration:** When `CANDLE_HEIKIN_ASHI` is selected, the indicator uses a unified approach. Both the `CVWAPCalculator` and the `CSessionAnalyzer` instantiate their respective `_HA` child classes. This ensures that **all visual components**—the VWAP lines, the session range boxes, the Mean, and the Linear Regression lines—are consistently calculated using the smoothed Heikin Ashi data.
2025-10-20 15:06:43 +02:00
* **Robust Multi-Instance Support:** Each instance of the indicator on a chart generates a unique, stable ID for its graphical objects using the `ChartWindowFind()` method. This ID is used as a prefix for all object names, ensuring that multiple copies of the indicator can run on the same chart without any conflicts.
2025-10-20 15:06:43 +02:00
* **Robust Cleanup on Re-initialization:** To prevent "ghost" objects or line fragments after a timeframe change or parameter edit, the indicator employs a strict two-phase cleanup process:
1. **Object Cleanup:** In `OnInit`, it immediately deletes all graphical objects associated with its unique instance ID from the chart.
2. **Buffer Cleanup:** At the beginning of every **new bar calculation** in `OnCalculate`, it explicitly clears all 24 VWAP buffers by filling them with `EMPTY_VALUE`.
This "clean slate" approach guarantees a perfect and stable redraw under all conditions.
2025-10-13 12:43:05 +02:00
2025-10-20 15:06:43 +02:00
* **Efficient "On New Bar" Updates:** All calculations and redraws are executed only **once per bar**, preventing unnecessary CPU load on every tick.
2025-10-20 12:04:07 +02:00
2025-10-13 15:30:05 +02:00
## 4. Parameters
2025-10-13 12:43:05 +02:00
* **Global Settings:**
2025-10-13 15:30:05 +02:00
* `InpFillBoxes`: Toggles whether the session range boxes are filled or drawn as outlines.
* `InpVolumeType`: Selects between `Tick Volume` and `Real Volume` for all VWAP calculations.
* `InpCandleSource`: Selects the candle type (`Standard` or `Heikin Ashi`) for the **VWAP** calculation.
* `InpSourcePrice`: The source price for the **Mean and Linear Regression** calculations.
* **Market Settings (Market 1, Market 2, Market 3):**
* `Enable`: A master switch to turn all analysis for that market on or off.
* **Session Settings (Pre-Market, Core, Post-Market, Full Day):**
* `Enable`: Turns the analysis for that specific session on or off.
* `Start / End`: The start and end times for the session in "HH:MM" format, based on the **broker's server time**.
2025-10-20 12:04:07 +02:00
* `Color`: The color for all graphical elements (box and VWAP line) drawn for that session.
* `VWAP / Mean / LinReg`: Toggles the visibility of each analytical component for that session.
2025-10-13 12:43:05 +02:00
2025-10-14 13:59:09 +02:00
## 5. Trading Session Times Reference
2025-10-13 12:43:05 +02:00
2025-10-14 13:59:09 +02:00
This section provides a detailed reference for the trading hours of major global exchanges to help configure the indicator.
2025-10-13 12:43:05 +02:00
2025-10-14 13:59:09 +02:00
**IMPORTANT:** All times are listed in various time zones for comparison. You must use the times that correspond to your **broker's server time** in the indicator settings. Be aware that you may need to adjust these times twice a year due to Daylight Saving Time (DST) changes.
2025-10-13 12:43:05 +02:00
2025-10-14 13:59:09 +02:00
---
2025-10-13 12:43:05 +02:00
2025-10-14 13:59:09 +02:00
### **New York Stock Exchange (NYSE)**
2025-10-13 15:30:05 +02:00
2025-10-14 13:59:09 +02:00
* **Time Zone**: Eastern Time (ET)
* **DST (USA) in 2025**: Starts March 9, Ends November 2.
2025-10-13 15:30:05 +02:00
2025-10-14 13:59:09 +02:00
#### Summer (EDT, UTC-4)
| Time Zone | Pre-Market | Core Trading | Post-Market |
| :--- | :--- | :--- | :--- |
| **New York (EDT)** | 06:3009:30 | 09:3016:00 | 16:0020:00 |
| **UTC** | 10:3013:30 | 13:3020:00 | 20:0000:00 |
| **Nicosia (EEST, UTC+3)** | 13:3016:30 | 16:3023:00 | 23:0003:00 |
| **Budapest (CEST, UTC+2)**| 12:3015:30 | 15:3022:00 | 22:0002:00 |
#### Winter (EST, UTC-5)
| Time Zone | Pre-Market | Core Trading | Post-Market |
| :--- | :--- | :--- | :--- |
| **New York (EST)** | 06:3009:30 | 09:3016:00 | 16:0020:00 |
| **UTC** | 11:3014:30 | 14:3021:00 | 21:0001:00 |
| **Nicosia (EET, UTC+2)** | 13:3016:30 | 16:3023:00 | 23:0003:00 |
| **Budapest (CET, UTC+1)** | 12:3015:30 | 15:3022:00 | 22:0002:00 |
---
### **London Stock Exchange (LSE)**
* **Time Zone**: GMT / BST
* **DST (Europe) in 2025**: Starts March 30, Ends October 26.
#### Summer (BST, UTC+1)
| Time Zone | Pre-Market | Core Trading | Post-Market |
| :--- | :--- | :--- | :--- |
| **London (BST)** | 05:0008:00 | 08:0016:30 | 16:3017:15 |
| **UTC** | 04:0007:00 | 07:0015:30 | 15:3016:15 |
| **Nicosia (EEST, UTC+3)** | 07:0010:00 | 10:0018:30 | 18:3019:15 |
| **Budapest (CEST, UTC+2)**| 06:0009:00 | 09:0017:30 | 17:3018:15 |
#### Winter (GMT, UTC+0)
| Time Zone | Pre-Market | Core Trading | Post-Market |
| :--- | :--- | :--- | :--- |
| **London (GMT)** | 05:0008:00 | 08:0016:30 | 16:3017:15 |
| **UTC** | 05:0008:00 | 08:0016:30 | 16:3017:15 |
| **Nicosia (EET, UTC+2)** | 07:0010:00 | 10:0018:30 | 18:3019:15 |
| **Budapest (CET, UTC+1)** | 06:0009:00 | 09:0017:30 | 17:3018:15 |
---
### **Frankfurt Stock Exchange (Xetra)**
* **Time Zone**: CET / CEST
* **DST (Europe) in 2025**: Starts March 30, Ends October 26.
#### Summer (CEST, UTC+2)
| Time Zone | Pre-Market | Core Trading | Post-Market |
| :--- | :--- | :--- | :--- |
| **Frankfurt (CEST)**| 08:0009:00 | 09:0017:30 | 17:3020:00 |
| **UTC** | 06:0007:00 | 07:0015:30 | 15:3018:00 |
| **Nicosia (EEST, UTC+3)** | 09:0010:00 | 10:0018:30 | 18:3021:00 |
| **Budapest (CEST, UTC+2)**| 08:0009:00 | 09:0017:30 | 17:3020:00 |
#### Winter (CET, UTC+1)
| Time Zone | Pre-Market | Core Trading | Post-Market |
| :--- | :--- | :--- | :--- |
| **Frankfurt (CET)** | 08:0009:00 | 09:0017:30 | 17:3020:00 |
| **UTC** | 07:0008:00 | 08:0016:30 | 16:3019:00 |
| **Nicosia (EET, UTC+2)** | 09:0010:00 | 10:0018:30 | 18:3021:00 |
| **Budapest (CET, UTC+1)** | 08:0009:00 | 09:0017:30 | 17:3020:00 |
---
### **Tokyo Stock Exchange (TSE)**
* **Time Zone**: Japan Standard Time (JST), UTC+9 all year.
* **No Daylight Saving Time.**
| Time Zone | Pre-Market | Core Trading | Post-Market |
| :--- | :--- | :--- | :--- |
| **Tokyo (JST)** | 08:0009:00 | 09:0011:30 | 12:3015:30 |
| **UTC** | 23:0000:00 | 00:0002:30 | 03:3006:30 |
| **Nicosia** | 01:0002:00 (W) / 02:0003:00 (S) | 02:0004:30 (W) / 03:0005:30 (S) | 05:3008:30 (W) / 06:3009:30 (S) |
| **Budapest** | 00:0001:00 (W) / 01:0002:00 (S) | 01:0003:30 (W) / 02:0004:30 (S) | 04:3007:30 (W) / 05:3008:30 (S) |
---
### **Sydney Stock Exchange (ASX)**
* **Time Zone**: AEST / AEDT
* **DST (Australia) in 2025**: Starts October 5, Ends April 6.
#### Summer (AEDT, UTC+11) (Oct - Apr)
| Time Zone | Pre-Market | Core Trading | Post-Market |
| :--- | :--- | :--- | :--- |
| **Sydney (AEDT)** | 07:0010:00 | 10:0016:00 | 16:0019:00 |
| **UTC** | 20:0023:00 | 23:0005:00 | 05:0008:00 |
| **Nicosia (EET, UTC+2)** | 22:0001:00 | 01:0007:00 | 07:0010:00 |
| **Budapest (CET, UTC+1)** | 21:0000:00 | 00:0006:00 | 06:0009:00 |
#### Winter (AEST, UTC+10) (Apr - Oct)
| Time Zone | Pre-Market | Core Trading | Post-Market |
| :--- | :--- | :--- | :--- |
| **Sydney (AEST)** | 07:0010:00 | 10:0016:00 | 16:0019:00 |
| **UTC** | 21:0000:00 | 00:0006:00 | 06:0009:00 |
| **Nicosia (EEST, UTC+3)** | 00:0003:00 | 03:0009:00 | 09:0012:00 |
| **Budapest (CEST, UTC+2)**| 23:0002:00 | 02:0008:00 | 08:0011:00 |
---
2025-10-13 15:30:05 +02:00
## 6. Usage and Interpretation
2025-10-13 12:43:05 +02:00
2025-10-13 15:30:05 +02:00
* **Contextual Analysis:** The primary use is to understand the behavior of price during specific, high-volume trading sessions.
* **VWAP as a Benchmark:** The VWAP line is a key level for intraday traders. Price action above the session VWAP is generally considered bullish; price action below is bearish.
* **Mean and Linear Regression:** These lines provide a statistical "fair value" for the session. The slope of the regression line indicates the overall direction and strength of the session's trend.
* **Range Box:** The high and low of the session box become critical support and resistance levels for subsequent trading sessions.