Volume Profile POC Pro
- Эксперты
- Версия: 1.20
- Обновлено: 14 сентября 2026
- Активации: 20
Volume Profile POC Retest EA is an automated trading system for MetaTrader 5 that implements Volume Profile analysis through a multi-timeframe structural approach. The EA identifies the Point of Control (POC) — the price level with the highest traded volume — within the most recent swing leg, then waits for price to retest that zone before executing entries. The system does not rely on lagging trend indicators such as EMA, SMA, or Bollinger Bands — all decisions are derived from price structure, swing points, traded volume, and volatility-adjusted stop placement.
The core innovation of v1.0 is a robust market-closed handling system combined with a Dynamic Modify Buffer that automatically increases stop-distance tolerance whenever the broker rejects a stop modification. This makes the EA resilient against broker rollover windows, session gaps, and strict stop levels — without spamming failed order or modify requests.
Core Features
-
Volume Profile POC engine — Anchored POC computed from the last swing leg on the Lower Timeframe (M5)
-
Swing-based trend detection — Bearish (Lower High + Lower Low) vs Bullish (Higher Low + Higher High)
-
HTF trend confirmation — Higher Timeframe (H1) swing structure filter, no moving averages
-
POC retest trigger — Entry only when price pulls back into the POC zone with rejection candle confirmation
-
Dynamic Modify Buffer (v1.0) — Auto-increases stop distance buffer on INVALID_STOPS
-
Universal minimum stop distance — Combines broker stops, ATR, % of price, and user buffer
-
Asset-class presets — Auto-tuned parameters for FX Major, Gold, Crypto, Indices, Oil
-
Dynamic lot sizing — Risk-based position sizing from % equity per trade
-
Flexible SL modes — ATR-based or Fixed points
-
Flexible TP modes — Risk:Reward or Fixed points
-
Breakeven + Trailing Stop — With broker-safe distance validation
-
Modify anti-spam guard — Cooldown and fail-limit to prevent broker rejection loops
-
Market-closed protection — Auto-cooldown after MARKET_CLOSED rejection, per-symbol
-
Multi-symbol support — Trade 1 pair or a basket of pairs from one chart
-
Daily risk limits — Loss limit, profit target, max drawdown, max daily trades
-
Friday auto-close — Prevents weekend gap exposure
-
Spread & session filters — Optional entry filters
Signal Engine — Volume Profile POC Multi-Timeframe Logic
The EA uses a two-stage confirmation model: Swing structure on LTF, POC retest on LTF, trend filter on HTF.
Stage 1 — Swing Structure Detection (Lower Timeframe)
| Component | Description |
|---|---|
| Swing Depth | Last InpSwingDepth bars scanned for swing high/low |
| Swing High | Highest High in the lookback window |
| Swing Low | Lowest Low in the lookback window |
| Bearish Structure | Swing High occurs earlier than Swing Low → Lower High + Lower Low |
| Bullish Structure | Swing Low occurs earlier than Swing High → Higher Low + Higher High |
Stage 2 — Anchored POC Calculation (Lower Timeframe)
| Component | Description |
|---|---|
| Bin Size | 1 pip per bin ( step = point × 10 ) |
| Range | Between last Swing High and Swing Low |
| Volume Distribution | Each bar's volume is spread across all bins its range touches |
| POC | Bin with the highest accumulated volume — the price most traded in the leg |
Stage 3 — Entry Trigger (Lower Timeframe)
| Component | Description |
|---|---|
| Price-in-Zone | Last closed candle's range must overlap the POC zone ± InpTolerancePips |
| Rejection Candle | Candle closes bearish (Sell) or bullish (Buy) — configurable |
| Direction Match | Bearish structure → Sell, Bullish structure → Buy |
| HTF Trend Filter | HTF swing structure must agree with the signal direction |
Entry is triggered only when all three stages align.
Universal Stop Distance Calculator
The EA calculates minimum stop distance from four independent sources and takes the maximum:
| Source | Formula |
|---|---|
| Broker Stops | max(stopsLevel, freezeLevel) × InpStopsMult |
| User Buffer | presetMinBuffer (per asset preset) |
| ATR-Based | ATR(H1) × presetATRMult |
| Percent-Based | price × presetPercent / 100 |
Then adds:
-
InpExtraStopsPts (fixed extra buffer)
-
dynamicBufferPts (grows automatically on modify fails)
Final distance is clamped to InpAbsMinDistPts minimum.
Dynamic Modify Buffer (Key Innovation)
When PositionModify() is rejected with INVALID_STOPS , the EA:
-
Increases dynamicBufferPts by InpFailIncreasePts
-
Caps at InpMaxDynamicBuffer
-
Retries with a wider stop on the next attempt
-
After N consecutive fails → cooldown for InpModifyFailWaitSec
This eliminates the endless modify-fail loop that plagues many EAs on strict brokers.
Market-Closed Protection (v1.0 Enhancement)
When OrderSend is rejected with TRADE_RETCODE_MARKET_CLOSED , the EA:
-
Silently sets a per-symbol cooldown of InpMarketClosedCooldownSec
-
Skips all further entry attempts for that symbol until cooldown expires
-
Does not spam the log with repeated failures
The IsMarketOpen() check now correctly handles over-midnight sessions (e.g., 23:00 → 01:00) by comparing seconds-since-midnight with wrap-around detection. Fallback is safe: if no session data is available, the EA assumes market is open.
Modify Safety Layers
| Layer | Purpose |
|---|---|
| InpModifySafetyMult | SL must be 1.4× minDist from market |
| InpModifyExtraPts | Extra fixed buffer per modify |
| InpModifyMinGapSec | Minimum gap between modify calls |
| InpModifyFailLimit | Fail threshold before penalty |
| InpModifyFailWaitSec | Cooldown duration after fail limit |
Asset-Class Presets
| Preset | ATR Mult | % Price | Min Buffer |
|---|---|---|---|
| FX Major | 0.40 | 0.15% | 400 pts |
| Gold | 0.60 | 0.40% | 600 pts |
| Crypto | 0.80 | 0.80% | 1000 pts |
| Indices | 0.50 | 0.30% | 600 pts |
| Oil | 0.60 | 0.50% | 600 pts |
| Custom | User-defined | User-defined | User-defined |
Risk Management
-
Risk-per-trade via dynamic lot sizing
-
Maximum lot cap
-
Daily loss limit (%)
-
Daily profit target (%)
-
Maximum drawdown guard (%)
-
Maximum daily trades counter
-
Friday auto-close at configurable hour
-
Margin check before order execution
-
Spread filter
-
Session filter
Position Management
Breakeven
-
Trigger: profit ≥ InpBreakevenTrigger points
-
Buffer: InpBreakevenBuffer points beyond entry
-
Auto-clamped to broker min distance
Trailing Stop
-
Trigger: profit ≥ InpTrailingStart points
-
Distance: InpTrailingDistance points
-
Step: InpTrailingStep points
-
Auto-clamped to broker min distance
Trading Modes
Single-Symbol Mode
EA trades one specific symbol attached to the chart.
Multi-Symbol Mode
EA manages a basket of symbols from one chart:
-
Comma-separated list
-
Global risk limits apply across all pairs
-
Each symbol has independent POC tracking and modify cooldown
Tester Mode
In Strategy Tester, EA auto-locks to the tester symbol.
Requirements
-
MetaTrader 5 (build 3000+)
-
Minimum deposit: $500 standard account
-
All timeframes supported (H1 + M5 recommended)
-
Works on any broker (auto-adapts to stop levels)
Setup Instructions
-
Attach EA to a single chart (e.g., EURUSD M5)
-
Select trading mode (Specific or Multi-Symbol)
-
Choose stop preset matching your instrument class
-
Configure SL/TP mode (ATR / Fixed / RR)
-
Set risk parameters (risk %, max lot, daily limits)
-
Adjust Dynamic Modify Safety if broker has strict stops
-
Backtest first, then forward-test on demo
-
Deploy to live only after 2+ weeks of demo verification
Important Notes
-
POC is recalculated on every new Lower Timeframe bar
-
Swing structure is refreshed each bar using the last InpSwingDepth bars
-
Dynamic buffer resets only when EA is reloaded
-
Modify cooldown is per-symbol
-
Market-closed cooldown is per-symbol
-
Daily counters reset at broker server midnight
-
EA skips trading near market close (configurable buffer)
-
All stops are validated against broker minimums before sending
Frequently Asked Questions
What is the minimum deposit?
$500 for standard accounts. Cent accounts can start lower.
Which timeframe works best?
H1 (Higher TF) + M5 (Lower TF) is the default. H4 HTF gives fewer but cleaner signals.
Does this EA use moving averages?
No. Only ATR (for volatility measurement), traded volume, and price structure. No EMA, SMA, or Bollinger Bands.
What makes it special?
The combination of anchored Volume Profile POC (not fixed-session VP) and the Dynamic Modify Buffer — the EA adapts both to market structure and broker rejection behavior.
How is POC different from support/resistance?
POC marks the price with the highest accumulated volume inside the current swing leg — a statistically proven zone of institutional interest. It updates automatically as new swings form.
How does the multi-symbol mode work?
One EA instance on one chart manages all listed symbols. Global risk limits apply across all positions.
Why are stops so wide?
Because the EA prioritizes broker safety over tight stops. InpAbsMinDistPts ensures stops always survive broker minimum distance rules.
Can it be backtested?
Yes. Use MT5 Strategy Tester with "Every tick based on real ticks" for best accuracy.
Why didn't my trade trigger?
Multiple filters must align: swing leg valid, POC computed, price retests zone, rejection candle confirmed, HTF trend matches, spread OK, session OK, daily limits not hit.
Why do I see "Market closed" entries in the log?
In v1.0 this is handled automatically — the EA sets a per-symbol cooldown and stops retrying until the market reopens. Only one line per occurrence, no spam.
Disclaimer
Trading forex, metals, crypto, and indices carries a high level of risk. You may lose all invested capital. Volume Profile POC Retest EA is a trading tool and does not guarantee profits.
Users are advised to:
-
Backtest and forward-test on demo accounts
-
Apply proper risk management
-
Understand the logic before live deployment
-
Never use emergency or borrowed funds
-
Adjust presets to current market volatility
Past performance does not guarantee future results. By using this product, you acknowledge and accept these risks.
