{"title":"Free Tools","description":"\u003cp\u003eFree trading indicators and add-ons designed to support your technical analysis. Download these tools to enhance your visualization and performance while trading, identify potential support and resistance levels, and complement your market analysis. Please review the requirements and instructions for each product before installation.\u003c\/p\u003e\n\u003cblockquote\u003e\n\u003cp style=\"text-align: center;\"\u003eNinjaTrader® is a registered trademark of NinjaTrader Group, LLC. No NinjaTrader company has any affiliation with, interest in, ownership of, or endorsement\/promotion or recommendation of the owner, developer, or provider of the products described here or any of their products or services.\u003c\/p\u003e\n\u003c\/blockquote\u003e","products":[{"product_id":"bm-swingzones","title":"BM SwingZones","description":"\u003cp\u003e\u003cstrong\u003eCATEGORY:\u003c\/strong\u003e Indicator · For NinjaTrader 8 · Automatic support and resistance zones\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHOW IT WORKS:\u003c\/strong\u003e It detects the most recent swing highs and lows (swing pivots) and draws a horizontal band—not just a line—over each one, representing the support or resistance zone. The width of each band is calculated based on market volatility at the exact moment the pivot formed (expressed in ticks), subject to configurable minimum and maximum limits. It maintains a limited number of active zones on each side and automatically removes them after a maximum number of bars or when they are no longer valid. It includes an optional alert for when the price enters an active zone.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eKey features:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eA zone, not a line—by design, not merely for visual effect. Actual price action involves penetrating support or resistance levels and then returning; representing this with a single, exact price point is an oversimplification. The band's width is intended to reflect the typical penetration seen during actual retests, rather than representing an arbitrary margin.\u003cbr\u003eThe volatility estimator used to define the band width was selected based on empirical evidence rather than convention. Four different volatility measures (ATR, mid-range, standard deviation of closes, and standard deviation of returns) were compared across 6,000 bars featuring alternating volatility regimes, measuring the actual penetration of 175 pivots during subsequent retests. The selection criterion was not the highest correlation (all four performed similarly, ranging from 0.21 to 0.28), but rather which measure maintained the most stable coverage across changing volatility regimes—that is, which remained reliable in both quiet and turbulent markets. While the mid-range measure proved the most stable in that test, ATR (which is smoother and an industry standard) is the default setting; the comparison is documented for users who may wish to switch to a different method.\u003cbr\u003eExplicit methodological transparency regarding the limitations of this measurement: the simulation did not account for session gaps (opening\/closing gaps), a phenomenon that does occur in real-world futures trading. The ATR calculation accounts for these gaps—as does the average range—whereas the standard deviation of closes does not; consequently, for instruments with distinct session breaks, the ATR's actual advantage over the other measures is likely greater than the test results indicated.\u003cbr\u003eThe width of each zone is fixed at the moment the pivot forms and is not recalculated subsequently. A zone originating during a quiet market period retains its original width even if volatility increases later; if it were recalculated on every bar, the zones would constantly change size and cease to serve as a stable reference point.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eTRADER STYLE: \u003c\/strong\u003eTraders who trade support and resistance levels and want zones drawn automatically with a width based on actual volatility measured at the pivot point, rather than a fixed margin in ticks or points that fails to adapt to the specific instrument or market conditions.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eTECHNICAL REQUIREMENTS\u003c\/strong\u003e: NinjaTrader 8. Any instrument with intraday data. Platform limitation (not an indicator issue): NinjaTrader does not save this type of zone drawing in the workspace file; therefore, the bands disappear when the chart is reloaded until the indicator recalculates—this is documented NinjaTrader 8 behavior, not a flaw in BMSwingZones.\u003c\/p\u003e\n\u003cp style=\"text-align: center;\"\u003e\u003cstrong\u003eNinjaTrader® is a registered trademark of NinjaTrader Group, LLC. No NinjaTrader company has any affiliation with, interest in, or ownership of the owner, developer, or provider of the products described herein, nor do they endorse, promote, or recommend any such products or services.\u003c\/strong\u003e\u003cstrong\u003e\u003c\/strong\u003e\u003c\/p\u003e","brand":"EKAITRADING","offers":[{"title":"Default Title","offer_id":51760092545330,"sku":null,"price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0992\/3493\/9186\/files\/swing.png?v=1789021235"},{"product_id":"bm-trendchannel","title":"BM TrendChannel","description":"\u003cp\u003e\u003cstrong\u003eCATEGORY\u003c\/strong\u003e: Indicator · For NinjaTrader 8 · Automatic trend lines\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHOW IT WORKS\u003c\/strong\u003e: It detects the most recent swing lows and highs (swing pivots) and plots two independent trend lines extending indefinitely to the right: one connecting the recent lows (uptrend boundary) and another connecting the recent highs (downtrend boundary). Each line has a configurable number of pivots—they are not linked to one another, so you can specify, for example, 3 rising lows and only 2 falling highs. It issues an alert when the price breaks either line, with a configurable breakout margin (in ticks) and confirmation upon bar close or instantly.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eKey features:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eAutomatically classifies the pattern formed by the two lines based on their relative orientation: rising lows and rising highs indicate an ascending channel; falling lows and falling highs indicate a descending channel; rising lows and falling highs indicate a compression wedge; falling lows and rising highs indicate an expansion pattern (megaphone)—the trader does not need to interpret the geometry visually.\u003cbr\u003eUses a least-squares fit for 3 or more pivots, rather than simply connecting two points. While any straight line passes exactly through two pivots, with three or more, the line of best fit is calculated; this absorbs noise from an outlier pivot at the cost of the line not touching every point exactly. Includes an R² filter (fit quality) that is only meaningful when using 3 or more pivots—with two points, R² always equals 1, so the indicator applies it correctly only when it provides actual information.\u003cbr\u003eDoes not repaint, by explicit design: a pivot is confirmed N bars after forming (based on the configured pivot strength), and this delay is the price paid to ensure that the line, once drawn, does not move retroactively. Configurable tolerance for pivot chains in noisy markets: by default, it requires each new pivot to be strictly higher (or lower) than the previous one, but allows for a small deviation (in ticks) so that a new high exceeding the previous one by a negligible margin doesn't unnecessarily break the chain.\u003cbr\u003eRetains the history of broken lines, not just the active one: each line tracks its own \"period\" count (starting when its pivots form and ending when it breaks) and can be configured to display a set number of past broken periods for visual reference, using distinct styling to differentiate historical lines from the active one.\u003cbr\u003eExposes its internal state for use by other strategies—beyond mere on-screen visualization—including the number of pivots in each active chain, the bar and price where the last pivot was confirmed, and each line's slope and R² value. This allows an automated strategy to react the instant a third pivot is completed, for example, without needing to reimplement the detection logic.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eTRADER STYLE:\u003c\/strong\u003e\u0026nbsp;Traders who trade channels and trendlines and want them automatically detected, classified, and updated—complete with breakout alerts—as well as developers wishing to build custom strategies upon this same pivot and line detection logic using the data the indicator already exposes.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eTECHNICAL REQUIREMENTS:\u003c\/strong\u003e NinjaTrader 8. Any instrument with intraday data.\u003c\/p\u003e\n\u003cp style=\"text-align: center;\"\u003e\u003cstrong\u003eNinjaTrader® is a registered trademark of NinjaTrader Group, LLC. No NinjaTrader company has any affiliation with, interest in, or ownership of the owner, developer, or provider of the products described herein, nor do they endorse, promote, or recommend any such products or services.\u003c\/strong\u003e\u003cstrong\u003e\u003c\/strong\u003e\u003c\/p\u003e","brand":"EKAITRADING","offers":[{"title":"Default Title","offer_id":51760119185714,"sku":null,"price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0992\/3493\/9186\/files\/trednchannel.png?v=1789021972"},{"product_id":"bm-tradecopier","title":"SimpleTradeCopier","description":"\u003cp\u003e\u003cstrong\u003eCATEGORY:\u003c\/strong\u003e Add-on (account tool) · For NinjaTrader 8 · Trade copier between accounts\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHOW IT WORKS: \u003c\/strong\u003eAutomatically copies trades executed in a \"master\" account to up to 20 \"follower\" accounts, featuring an activation\/deactivation button integrated directly into NinjaTrader's ChartTrader panel (no separate window required). It monitors executions (actual fills) from the master account—not order status changes—and sends an equivalent order to each configured follower account for every fill. It includes an optional quantity multiplier and a maximum-contracts-per-account setting as a safety limit. It also includes duplicate protection (each execution is processed only once, based on its unique identifier) and a counter on the panel displaying copied, successful, and failed trades.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eIt can copy all trades across all instruments from the master account or be limited to the specific instrument of the chart where it is loaded—this is configurable.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eOperational details to know before using it with live accounts:\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan style=\"font-size: 0.875rem;\"\u003eAll orders are sent to follower accounts as market orders, regardless of the original order type in the master account (limit, stop, etc.). This means the fill price in follower accounts may differ from the master account's price, especially in fast-moving markets or with illiquid instruments.\u003c\/span\u003e\u003c\/li\u003e\n\u003cli\u003eThe quantity multiplier and maximum contracts per account are global settings applied equally to all 20 follower accounts; there is no per-account quantity configuration in this version.\u003cbr\u003e\u003c\/li\u003e\n\u003cli\u003eCopying works in one direction only: the master account is monitored (orders, positions, and executions), while follower accounts only receive orders. There is no verification that the order actually filled correctly in each account beyond the success\/error log in the Output window. FOR WHOM: Traders managing multiple accounts (personal, funded, or client-managed) who wish to automatically replicate trades executed in a primary account without manually repeating each trade across every account. Note that replication occurs at market price using a uniform size factor across accounts; it does not involve exact order-type copying or adjustments proportional to the capital of each follower account.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eTECHNICAL REQUIREMENTS: \u003c\/strong\u003eNinjaTrader 8. It installs as an indicator and is activated via the chart's ChartTrader panel. All accounts (master and follower) must be connected and visible within the same instance of NinjaTrader.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eAUTHORSHIP AND RIGHTS:\u003c\/strong\u003e A third-party tool not developed by TSDCCORP\/EKAITRADING. It is distributed here free of charge—without functional modifications—as a courtesy to the NinjaTrader 8 community, rather than as an EKAITRADING product. If you are the original author, please contact us to add attribution or to request its removal from this store.\u003c\/p\u003e","brand":"EKAITRADING","offers":[{"title":"Default Title","offer_id":52236229771570,"sku":null,"price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0992\/3493\/9186\/files\/genera-una-imagen-favicon-a-partir-de-es_LuF75PkdVHapwZMsSkelLg_MV9GvkDnSzazhPTU48hOWw_d3e49363-c1d0-47c4-90d7-190592c61d1b.png?v=1790229934"},{"product_id":"ergonomiccharts","title":"ErgonomicCharts","description":"\u003cp\u003e\u003cstrong\u003eCATEGORY:\u003c\/strong\u003e Third-party add-on · For NinjaTrader 8 · Chart navigation\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHOW IT WORKS:\u003c\/strong\u003e Allows you to pan freely across the chart (horizontally, vertically, and diagonally) without holding down the Ctrl key—it simulates this automatically while using the mouse—and enables direct zooming with the mouse wheel, without requiring any keyboard modifiers.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eFOR WHOM: \u003c\/strong\u003eTraders who frequently navigate charts and prefer not to rely on keyboard combinations for panning or zooming.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eTECHNICAL REQUIREMENTS:\u003c\/strong\u003e NinjaTrader 8.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eAUTHORSHIP AND RIGHTS\u003c\/strong\u003e: A third-party tool, not developed by TSDCCORP\/EKAITRADING. It is distributed here for free—without functional modifications—as a courtesy to the NinjaTrader 8 community, rather than as an EKAITRADING product.\u003c\/p\u003e","brand":"EKAITRADING","offers":[{"title":"Default Title","offer_id":52254065951026,"sku":null,"price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0992\/3493\/9186\/files\/genera-una-imagen-favicon-a-partir-de-es_LuF75PkdVHapwZMsSkelLg_MV9GvkDnSzazhPTU48hOWw_3c989d97-5c3f-47c1-a2b5-114c8b2e5bd4.png?v=1790229893"},{"product_id":"ekai-anchored-volume-profile-pro","title":"EKAI Anchored Volume Profile Pro","description":"\u003cp\u003e\u003cstrong\u003eInstitutional-grade Fixed Range Volume Profile for MetaTrader 5\u003c\/strong\u003e \u003cstrong\u003ewith mouse-draggable range handles, buy\/sell split, POC and Value Area\u003c\/strong\u003e\u003c\/p\u003e\n\u003chr\u003e\n\u003ch2\u003eOverview\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eEKAI Anchored Volume Profile Pro\u003c\/strong\u003e brings the visual power of TradingView's Fixed Range Volume Profile and NinjaTrader's Order Flow Volume Profile natively to MetaTrader 5. Two draggable handles define a time range on the chart, and the indicator draws a full-featured volume profile inside that range: histogram, buy\/sell split by tick direction, Point of Control (POC), and Value Area (VAH\/VAL).\u003c\/p\u003e\n\u003cp\u003eYou can move either handle at any time by clicking and dragging it. The profile recomputes automatically. If you cross one handle over the other, the indicator detects the swap and reorders them silently.\u003c\/p\u003e\n\u003cp\u003eUnder the hood, the indicator uses a \u003cstrong\u003e3-tier volume classification cascade\u003c\/strong\u003e: it prefers real broker tick flags (available on futures and stock exchanges), falls back to the Lee-Ready algorithm for Forex (using bid\/ask\/last quote analysis), and finally to tick volume distribution if no tick data is available. This means the same tool works on ES, NQ, CL futures, on stock CFDs, and on any Forex pair, always giving you the best classification available for that instrument.\u003c\/p\u003e\n\u003cp\u003eThe result is a professional-grade volume analysis tool that traders can use to identify high-volume nodes (institutional accumulation), low-volume nodes (breakout targets), and buy\/sell aggressor imbalance within any custom time window — for prop firm challenge preparation, key level identification, or day-trading structure.\u003c\/p\u003e\n\u003chr\u003e\n\u003ch2\u003eWhat Makes It Different\u003c\/h2\u003e\n\u003cp\u003eThe MQL5 Market has plenty of volume profile indicators, but most fall into one of three categories:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSession profiles\u003c\/strong\u003e (Asia \/ London \/ NY) with no user control over the range\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFixed range\u003c\/strong\u003e (visible range or fixed number of bars) with no manual selection\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eBasic anchored VWAP-style tools\u003c\/strong\u003e that only anchor a single point\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eVery few indicators combine:\u003c\/p\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003eTwo mouse-draggable range handles\u003c\/strong\u003e — you select the range visually, just like TradingView Fixed Range VP\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eReal-time buy\/sell split\u003c\/strong\u003e — each histogram bar is split into buy (green) and sell (red) portions based on tick direction\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003e3-tier volume classification\u003c\/strong\u003e — real broker flags → Lee-Ready → tick volume distribution, transparent about which method it's using\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eFull Value Area calculation\u003c\/strong\u003e — POC, VAH, VAL computed with the standard 70% expansion algorithm from the POC\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePersistent state per chart\u003c\/strong\u003e — the range you set stays after MT5 restarts\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003eIf you've been jumping between TradingView (for the volume analysis) and MetaTrader (for execution), this indicator lets you keep everything in MT5.\u003c\/p\u003e\n\u003chr\u003e\n\u003ch2\u003eKey Features\u003c\/h2\u003e\n\u003ch3\u003eTwo Draggable Range Handles\u003c\/h3\u003e\n\u003cp\u003eThe core of the indicator is a \u003cstrong\u003erange\u003c\/strong\u003e — not a single anchor point. Two vertical gold lines define the left and right boundaries of the range:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eClick on either line → it becomes selected (MT5 native)\u003c\/li\u003e\n\u003cli\u003eDrag horizontally → move the boundary to any bar\u003c\/li\u003e\n\u003cli\u003eRelease → the profile recomputes automatically\u003c\/li\u003e\n\u003cli\u003eCross one handle over the other → the indicator detects the swap and reorders both handles + rectangle silently\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eBetween the two handles, a \u003cstrong\u003esemi-transparent navy background\u003c\/strong\u003e (toggleable) marks the selected range clearly across the chart. This background sits behind the price bars so it never obstructs your view of the candles.\u003c\/p\u003e\n\u003ch3\u003eBuy\/Sell Split Histogram\u003c\/h3\u003e\n\u003cp\u003eFor each price bin inside the range, the indicator computes buy volume and sell volume separately:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGreen portion\u003c\/strong\u003e (buy) — aggressive buying at that price level\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eRed portion\u003c\/strong\u003e (sell) — aggressive selling at that price level\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThe two portions are drawn side-by-side inside a single bar, so you can immediately see whether accumulation or distribution dominated at each price level. Bars grow from the left handle toward the right, with the POC (largest bar) reaching a configurable percentage of the total range width (default 65%).\u003c\/p\u003e\n\u003cp\u003eAlternative style: single-color bars per dominant side (green if buy dominated, red if sell dominated).\u003c\/p\u003e\n\u003ch3\u003e3-Tier Volume Classification Cascade\u003c\/h3\u003e\n\u003cp\u003eMetaTrader 5 does not provide a single reliable way to classify a tick as buy or sell. This indicator uses a cascade to always give you the best classification available for the instrument:\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eTier 1 — Real broker flags\u003c\/strong\u003e (\u003ccode\u003eTICK_FLAG_BUY\u003c\/code\u003e \/ \u003ccode\u003eTICK_FLAG_SELL\u003c\/code\u003e)\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvailable on futures exchanges (CME: ES, NQ, CL, GC, etc.) and stock exchanges\u003c\/li\u003e\n\u003cli\u003eThe exchange itself marks each trade with the side of the aggressor\u003c\/li\u003e\n\u003cli\u003eMost accurate classification possible\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eTier 2 — Lee-Ready quote test\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eFor Forex spot and CFDs, where broker flags are typically absent\u003c\/li\u003e\n\u003cli\u003eUses the tick's bid, ask, and last price to classify:\n\u003cul\u003e\n\u003cli\u003eTrade above the midpoint of the spread → BUY (aggressor bought at the ask)\u003c\/li\u003e\n\u003cli\u003eTrade below the midpoint → SELL (aggressor sold at the bid)\u003c\/li\u003e\n\u003cli\u003eTrade exactly at the midpoint → falls to Tier 3\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003cli\u003eStandard academic algorithm used in institutional flow analysis\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eTier 3 — Tick test\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eUltimate fallback when no bid\/ask context is available\u003c\/li\u003e\n\u003cli\u003eCompares the current tick's price to the previous tick:\n\u003cul\u003e\n\u003cli\u003ePrice up → BUY\u003c\/li\u003e\n\u003cli\u003ePrice down → SELL\u003c\/li\u003e\n\u003cli\u003eSame price → inherit the previous direction\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eTier 4 — Bar-level distribution fallback\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf \u003ccode\u003eCopyTicksRange\u003c\/code\u003e returns no data at all (rare, some brokers with limited tick history), the indicator distributes bar tick_volume across the bar's high-low range, weighted 65\/35 toward the bullish\/bearish side based on close vs open\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThe Info Panel always shows which tier was used, so you know the reliability of the classification:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eReal (broker flags): 45230 ticks\u003c\/code\u003e — top confidence\u003c\/li\u003e\n\u003cli\u003e\u003ccode\u003eLee-Ready (est.): 45230 ticks\u003c\/code\u003e — high confidence\u003c\/li\u003e\n\u003cli\u003e\u003ccode\u003eTick test (est.): 45230 ticks\u003c\/code\u003e — reasonable confidence\u003c\/li\u003e\n\u003cli\u003e\u003ccode\u003eTick volume (bar dist.): 250 bars\u003c\/code\u003e — approximation\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003ePoint of Control (POC) + Value Area\u003c\/h3\u003e\n\u003cp\u003eStandard institutional volume profile levels, computed correctly:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePOC (Point of Control)\u003c\/strong\u003e — the price level with the highest volume, drawn as a solid gold line across the range\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eVAH (Value Area High)\u003c\/strong\u003e — the top of the 70% value area, drawn as a cyan dashed line\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eVAL (Value Area Low)\u003c\/strong\u003e — the bottom of the 70% value area, drawn as a cyan dashed line\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThe Value Area is computed with the standard expansion algorithm: start at the POC, then repeatedly add the adjacent bin (above or below) with the higher volume until the accumulated volume reaches 70% (configurable) of the total volume in the range.\u003c\/p\u003e\n\u003cp\u003eThese three levels are your key trading reference points inside the range. Price rejections at VAH\/VAL are institutional decisions to stay within value. Breaks of VAH\/VAL are structural direction moves. The POC is the fair-value magnet — price tends to return to it.\u003c\/p\u003e\n\u003ch3\u003eInfo Panel with Range Statistics\u003c\/h3\u003e\n\u003cp\u003eA compact info panel in the top-left corner shows everything you need at a glance:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003e═══════ AVP Pro ═══════ [Reset] [Hide]\n═ RANGE ═\nStart:    2026.09.27 14:00\nEnd:      2026.09.28 22:00\nBars:     100\nSource:   Lee-Ready (est.): 45230 ticks\n\n═ PROFILE ═\nPOC:      4285.60\nVAH:      4291.20\nVAL:      4278.50\n\n═ VOLUME ═\nBuy %:    52.3%\nSell %:   47.7%\nDelta:    +12.4K\nTotal:    1.85M\n\n[POC ON] [VA ON] [HIST ON]\n\u003c\/code\u003e\u003c\/pre\u003e\n\u003cp\u003e\u003cstrong\u003eButtons in the panel\u003c\/strong\u003e:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eReset\u003c\/strong\u003e — restores the range to the initial size (100 bars back to current, or your configured default)\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eHide\u003c\/strong\u003e — collapses the panel (the small \u003ccode\u003e[x] AVP\u003c\/code\u003e button in the corner brings it back)\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003ePOC ON\/OFF\u003c\/strong\u003e — toggle POC line visibility instantly\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eVA ON\/OFF\u003c\/strong\u003e — toggle VAH\/VAL visibility instantly\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eHIST ON\/OFF\u003c\/strong\u003e — toggle histogram visibility instantly\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThe external toggle button \u003ccode\u003e[x] AVP\u003c\/code\u003e \/ \u003ccode\u003e[ ] AVP\u003c\/code\u003e is always visible even when the panel is hidden, so you can bring the panel back with one click.\u003c\/p\u003e\n\u003ch3\u003eFull State Persistence\u003c\/h3\u003e\n\u003cp\u003eEverything is saved automatically to a per-chart file:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eRange start and end times\u003c\/li\u003e\n\u003cli\u003ePanel position and visibility\u003c\/li\u003e\n\u003cli\u003ePOC \/ VA \/ Histogram toggle states\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eClose MT5, reopen it, reattach the indicator — the range, the panel state, and all your toggles are exactly as you left them.\u003c\/p\u003e\n\u003chr\u003e\n\u003ch2\u003eUse Cases\u003c\/h2\u003e\n\u003ch3\u003eThe Fixed Range Analyst\u003c\/h3\u003e\n\u003cp\u003eYou want to analyze the volume distribution during a specific swing, session, or news event. Instead of guessing where the important levels are, you draw the range around the move: \u003cstrong\u003ePOC gives you the fair value\u003c\/strong\u003e, \u003cstrong\u003eVAH\/VAL give you the acceptance boundaries\u003c\/strong\u003e, \u003cstrong\u003eHVN and LVN in the histogram give you support\/resistance for the next move\u003c\/strong\u003e. Perfect for post-mortem analysis of key sessions.\u003c\/p\u003e\n\u003ch3\u003eThe Order Flow Trader\u003c\/h3\u003e\n\u003cp\u003eYou need to know \u003cstrong\u003ewho was in control\u003c\/strong\u003e during a specific price move — buyers or sellers. The buy\/sell split histogram shows you at each price level whether accumulation or distribution dominated. Bars with dominant green at the lows tell you buyers absorbed the pullback. Bars with dominant red at the highs tell you sellers took liquidity from the buyers. This is institutional order flow analysis, natively in MT5.\u003c\/p\u003e\n\u003ch3\u003eThe Prop Firm Challenge Trader\u003c\/h3\u003e\n\u003cp\u003eYou're running an FTMO or Alpha Capital challenge and need to identify \u003cstrong\u003ekey levels for the day\u003c\/strong\u003e. Set the range on yesterday's session → get yesterday's POC, VAH, VAL. These are the reference points every institutional trader will react to at open. Combined with your entry rules, this gives you a structural edge.\u003c\/p\u003e\n\u003ch3\u003eThe Multi-Session Comparison Trader\u003c\/h3\u003e\n\u003cp\u003eOpen two charts of the same instrument. Set the range on the London session in one, on the NY session in the other. Compare POCs, deltas, and value areas. Where is the true institutional interest? Where did most of the volume trade? This context is invisible on price charts alone.\u003c\/p\u003e\n\u003ch3\u003eThe Post-News Level Mapper\u003c\/h3\u003e\n\u003cp\u003eFOMC just released. Price is in chaos. You need to know where the \u003cstrong\u003einitial acceptance zones\u003c\/strong\u003e formed. Set the range from 15 minutes before the news to 30 minutes after → the profile shows you the exact price band where volume concentrated after the initial shock. That band becomes support\/resistance for the rest of the day.\u003c\/p\u003e\n\u003ch3\u003eThe Multi-Range Comparative Analyst \u003cem\u003e(Roadmap)\u003c\/em\u003e\u003c\/h3\u003e\n\u003cp\u003eComing in a future update: attach the indicator multiple times to the same chart with different ranges. Compare POCs across ranges. Identify naked POCs (POCs that have never been retested). Build a full institutional level map.\u003c\/p\u003e\n\u003chr\u003e\n\u003ch2\u003eRequirements\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eMetaTrader 5\u003c\/strong\u003e build 3550 or newer\u003c\/li\u003e\n\u003cli\u003eAny broker\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAny instrument\u003c\/strong\u003e — futures, stocks, CFDs, Forex, indices, crypto\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eNo external DLLs, no third-party dependencies\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eNo network access required\u003c\/strong\u003e — all computation is local\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eTick data preferred\u003c\/strong\u003e — the indicator works best when your broker provides tick history via \u003ccode\u003eCopyTicksRange\u003c\/code\u003e. If not available, it falls back to bar-based distribution.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003chr\u003e\n\u003ch2\u003eInstallation\u003c\/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003eDownload\u003c\/strong\u003e from the MQL5 Market\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eAttach\u003c\/strong\u003e to any chart (works on any timeframe)\u003c\/li\u003e\n\u003cli\u003eTwo gold vertical lines appear defining the initial range (last 100 bars by default)\u003c\/li\u003e\n\u003cli\u003eThe volume profile is drawn inside the range\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eDrag either line\u003c\/strong\u003e to redefine the range\u003c\/li\u003e\n\u003cli\u003eUse the info panel to toggle POC \/ VA \/ Histogram visibility\u003c\/li\u003e\n\u003cli\u003eAdjust \u003ccode\u003eInpBins\u003c\/code\u003e (default 60) if you want more or less granularity\u003c\/li\u003e\n\u003cli\u003eAdjust \u003ccode\u003eInpMaxWidthPct\u003c\/code\u003e (default 65%) if the histogram is too wide\/narrow\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003chr\u003e\n\u003ch2\u003eFAQ\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Does this work on Forex?\u003c\/strong\u003e Yes. On Forex, most brokers don't provide the \u003ccode\u003eTICK_FLAG_BUY\u003c\/code\u003e \/ \u003ccode\u003eTICK_FLAG_SELL\u003c\/code\u003e flags, so the indicator automatically falls back to the Lee-Ready algorithm (quote test using bid\/ask\/last). The Info Panel will show \"Lee-Ready (est.)\" as the source. Classification accuracy is high (typically 75-85% match against real flags when both are available).\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Does this work on futures?\u003c\/strong\u003e Yes, and it works best on futures. CME instruments (ES, NQ, CL, GC, ZB) provide real \u003ccode\u003eTICK_FLAG_BUY\/SELL\u003c\/code\u003e flags via most brokers with exchange connectivity. The Info Panel will show \"Real (broker flags)\" as the source. This is the most accurate classification available in MT5.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: What if my broker doesn't provide tick data?\u003c\/strong\u003e The indicator gracefully falls back to bar-level distribution. It reads \u003ccode\u003etick_volume\u003c\/code\u003e for each bar in the range and distributes it across the high-low band, weighted 65\/35 toward the bullish\/bearish direction based on close vs open. The Info Panel will show \"Tick volume (bar dist.)\". This is an approximation but still gives you meaningful POC and Value Area levels.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: How accurate is the Lee-Ready classification?\u003c\/strong\u003e The Lee-Ready algorithm is the academic gold standard for classifying trades when you have bid\/ask\/last data but no explicit flags. Empirical studies show 75-90% classification accuracy vs known aggressor data. For prop trading purposes this is more than sufficient to identify buy\/sell imbalance zones.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: How is the Value Area computed?\u003c\/strong\u003e Standard institutional method: start at the POC bin (highest volume price), then repeatedly add the adjacent bin (above or below) with the higher volume, accumulating until you capture 70% (configurable via \u003ccode\u003eInpValueAreaPct\u003c\/code\u003e) of the total volume in the range. VAH = top of the covered range, VAL = bottom.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Can I have multiple ranges on the same chart?\u003c\/strong\u003e Not in v1.00. Currently each chart has one range at a time. Multi-range support is on the Fase 2 roadmap and will allow up to 3 simultaneous ranges (A\/B\/C) with different colors.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Can I use it as an Anchored Volume Profile (fixed start, floating end)?\u003c\/strong\u003e Yes. Just place the right handle at the current bar and never move it — as new bars form, you can drag the right handle forward to include them, effectively behaving as an anchored VP with a growing right side. Or configure \u003ccode\u003eInpInitialRange = RANGE_SESSION\u003c\/code\u003e to always start from the day session open.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Does it slow down MT5?\u003c\/strong\u003e No. The profile is rebuilt only when you move a handle or a new bar closes, and the rebuild is throttled to a timer (default every 2 seconds), never on every tick. Memory-wise, only one range worth of tick data is held. The indicator has been tested with 500,000 ticks in a single range on an average PC without noticeable lag.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: How many bins should I use?\u003c\/strong\u003e Default is 60 which works well for most timeframes. Increase to 100-200 for very tight scalping precision on futures. Decrease to 30-40 for higher timeframes where you want cleaner, broader zones.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: What if my range crosses the weekend \/ market close?\u003c\/strong\u003e The indicator handles gaps naturally — bars without volume simply don't contribute. However, if you're on a Forex Sunday chart, the anchor may fall in a gap. Just drag the left handle forward to the first bar with actual volume.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Does it persist between MT5 restarts?\u003c\/strong\u003e Yes. Range boundaries, panel position, panel visibility, and all toggles are saved to a per-chart file in the MT5 sandbox. Restart MT5 and everything reappears exactly as you left it.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Can I customize the colors?\u003c\/strong\u003e Yes. Handle color, buy color, sell color, POC color, VAH\/VAL colors, and the range background color are all configurable inputs.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eQ: Does it work in the Strategy Tester?\u003c\/strong\u003e The indicator initializes correctly in the Strategy Tester but its usefulness there is limited since tick history in the Tester doesn't always provide real flag data. For meaningful volume analysis, run it on live\/demo charts.\u003c\/p\u003e\n\u003chr\u003e\n\u003ch2\u003eData Source: Technical Deep Dive\u003c\/h2\u003e\n\u003cp\u003eFor advanced users who want to understand exactly what the indicator is doing:\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHow volume is fetched\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe indicator calls \u003ccode\u003eCopyTicksRange(_Symbol, ticks, COPY_TICKS_ALL, from_msc, to_msc)\u003c\/code\u003e to retrieve all ticks between the range start and end. \u003ccode\u003eCOPY_TICKS_ALL\u003c\/code\u003e returns bid\/ask\/last\/volume\/flags for every tick, which is the maximum information available in MT5.\u003c\/p\u003e\n\u003cp\u003eIf \u003ccode\u003eCopyTicksRange\u003c\/code\u003e returns 0 or fails, the indicator falls back to \u003ccode\u003eCopyRates\u003c\/code\u003e and uses bar tick_volume with bar-classification heuristics.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHow each tick is classified\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eFor each returned tick, the classifier runs through the 3 tiers in order:\u003c\/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eif(ticks[i].flags \u0026amp; TICK_FLAG_BUY)\u003c\/code\u003e → BUY. \u003ccode\u003eTICK_FLAG_BUY\u003c\/code\u003e and \u003ccode\u003eTICK_FLAG_SELL\u003c\/code\u003e are set by the broker\/exchange when the tick has real aggressor data. Present on futures, stock exchanges, some crypto exchanges.\u003c\/p\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf flags are absent, and the tick has valid bid\/ask\/last, compute the mid = \u003ccode\u003e(bid + ask) \/ 2\u003c\/code\u003e and threshold = \u003ccode\u003ehalf_spread * 0.3\u003c\/code\u003e:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elast \u0026gt; mid + threshold\u003c\/code\u003e → BUY (aggressor bought above mid)\u003c\/li\u003e\n\u003cli\u003e\u003ccode\u003elast \u0026lt; mid - threshold\u003c\/code\u003e → SELL (aggressor sold below mid)\u003c\/li\u003e\n\u003cli\u003eElse → falls to tick test\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf still unclassified, compare the tick's price to the previous tick:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003ePrice up → BUY\u003c\/li\u003e\n\u003cli\u003ePrice down → SELL\u003c\/li\u003e\n\u003cli\u003eSame → inherit previous direction\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003cp\u003eUltimate fallback: alternate 50\/50 to avoid biasing the profile.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHow volume is measured\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eFor each tick, the classifier extracts volume with this priority:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eticks[i].volume_real\u003c\/code\u003e if \u003ccode\u003eInpUseRealVol=true\u003c\/code\u003e and available (fractional volume, most accurate on some exchanges)\u003c\/li\u003e\n\u003cli\u003eElse \u003ccode\u003eticks[i].volume\u003c\/code\u003e (integer volume, standard)\u003c\/li\u003e\n\u003cli\u003eElse 1 (contribution counter, when no volume data is present)\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cstrong\u003eHow the histogram is built\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eThe price range from range-min to range-max is divided into \u003ccode\u003eInpBins\u003c\/code\u003e equal-width bins. Each classified tick contributes its volume to the bin containing its price:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebinIdx = floor((price - priceMin) \/ binWidth)\u003c\/code\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ccode\u003ebinBuyVol[binIdx] += vol\u003c\/code\u003e if BUY\u003c\/li\u003e\n\u003cli\u003e\u003ccode\u003ebinSellVol[binIdx] += vol\u003c\/code\u003e if SELL\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThen \u003ccode\u003ebinTotalVol[i] = binBuyVol[i] + binSellVol[i]\u003c\/code\u003e for each bin.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHow POC is found\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eSimple max scan: \u003ccode\u003epocBin = argmax(binTotalVol)\u003c\/code\u003e. This is the bin with the highest total volume. \u003ccode\u003epocPrice = binPrice[pocBin]\u003c\/code\u003e (bin center).\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eHow Value Area is computed\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eStandard expansion:\u003c\/p\u003e\n\u003cpre\u003e\u003ccode\u003etarget = totalVolume * InpValueAreaPct \/ 100.0   (default 70%)\nlo = hi = pocBin\nacc = binTotalVol[pocBin]\n\nwhile acc \u0026lt; target and (lo \u0026gt; 0 or hi \u0026lt; binCount - 1):\n    volLo = binTotalVol[lo - 1]  (or -1 if lo == 0)\n    volHi = binTotalVol[hi + 1]  (or -1 if hi == binCount - 1)\n    if volHi \u0026gt; volLo:\n        hi += 1\n        acc += binTotalVol[hi]\n    else:\n        lo -= 1\n        acc += binTotalVol[lo]\n\nvahPrice = binPrice[hi] + binWidth \/ 2\nvalPrice = binPrice[lo] - binWidth \/ 2\n\u003c\/code\u003e\u003c\/pre\u003e\n\u003cp\u003e\u003cstrong\u003ePerformance profile\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eRebuild cost: O(N) where N = number of ticks in range. Bounded by \u003ccode\u003eInpMaxTicks\u003c\/code\u003e (default 500,000).\u003c\/li\u003e\n\u003cli\u003eRebuild is triggered by: handle drag release, new bar close, panel toggle affecting histogram.\u003c\/li\u003e\n\u003cli\u003eRebuild is throttled to \u003ccode\u003eOnTimer\u003c\/code\u003e (default 2 seconds), never on every tick.\u003c\/li\u003e\n\u003cli\u003eMemory: O(bins + ticks). Typical usage: 500K ticks × 24 bytes = 12 MB peak during rebuild, released after.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003chr\u003e\n\u003ch2\u003eVersion History\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003ev1.00 (initial release)\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eTwo mouse-draggable range handles\u003c\/li\u003e\n\u003cli\u003eSemi-transparent range background (toggleable)\u003c\/li\u003e\n\u003cli\u003eBuy\/Sell split histogram with side-by-side coloring\u003c\/li\u003e\n\u003cli\u003eAlternative single-color histogram (dominant-side style)\u003c\/li\u003e\n\u003cli\u003ePOC (Point of Control) line\u003c\/li\u003e\n\u003cli\u003eVAH \/ VAL (Value Area High\/Low) with configurable percentage (default 70%)\u003c\/li\u003e\n\u003cli\u003e3-tier volume classification: real broker flags → Lee-Ready → tick test\u003c\/li\u003e\n\u003cli\u003eBar-level fallback when no tick data available\u003c\/li\u003e\n\u003cli\u003eInfo panel with range statistics\u003c\/li\u003e\n\u003cli\u003ePOC \/ VA \/ Histogram toggles from the panel\u003c\/li\u003e\n\u003cli\u003eExternal \u003ccode\u003e[x] AVP\u003c\/code\u003e toggle button to hide\/show the panel\u003c\/li\u003e\n\u003cli\u003eFull state persistence per chart (range, panel, toggles)\u003c\/li\u003e\n\u003cli\u003eAuto-swap detection when user crosses handles\u003c\/li\u003e\n\u003cli\u003eConfigurable colors, bins, value area percentage, histogram width\u003c\/li\u003e\n\u003cli\u003eWorks on any symbol, any timeframe, any account type\u003c\/li\u003e\n\u003cli\u003eNo external DLLs, no network access\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003chr\u003e\n\u003cp\u003e\u003cstrong\u003eEKAITRADING \/ TSDCCORP\u003c\/strong\u003e Built by traders, for traders.\u003c\/p\u003e","brand":"EKAITRADING","offers":[{"title":"Default Title","offer_id":67901986636082,"sku":null,"price":0.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0992\/3493\/9186\/files\/ChatGPTImageSep29_2026_01_05_18PM.png?v=1791001596"}],"url":"https:\/\/ekaitrading.com\/en\/collections\/descargas-gratis.oembed","provider":"EKAITRADING","version":"1.0","type":"link"}