mzFootprint
– Minimal font size has reduced
– Added Duration (duration of the bar) metric to the Statistic Grid
– Fix. Cluster zones are always breaked on session end regardless of settings
Common
– Added ‘Orderflow – Reconstruct tape: timestamps only’ parameter. If enabled Level 1 event (best bid/ask) is not used. Trades with equal timestamps are merged. Disable it to get an exact match reconstructed historical and reconstructed live data. Icebergs, DOM pressure/support are not available if enabled.
A pretty simple stretegy called ImbalanceMomentum has been just started as a custom coding request based on MZpack API. It opens long or short on bar close depending on stacked Imbalance And/Or Absorption zones occurred. The strategy uses limit orders placed relatively to these support/resistance zones. The stop loss order can be placed under the zone or under the signal bar. More stuff need to be done…
– MZpack 3.18.6 core
– Added Node.StopLossPrice, Node.ProfitTargetPrice properties. Assign it when the signal is validated inside OnCalulate() if you need signal-specific stop loss/profit target levels
We’ve just updated a fully featured Trial version of our most valuable package yet – MZpack Indicators w Divergence for NinjaTrader 8. Now mzDeltaDivergence indicator is included in the trial version!
This product can be purchased separately from indicators products. Also, this product can be purchased as an upgrade of your MZpack Indicators package with 30% discount.
Note. MZpack Strategies w Divergence doesn’t include indicators for charting or discretionary trading! It includes API only. Discretionary trading is available via creating relevant strategies only. These strategies must be switched to Manual mode.
The license types are LIFETIME for 1 or 2 devices.
Learn proven algorithmic tactics, strategies and probabilities to reverse engineer trade success…transform how you see the markets.
Here’s a few Institutional Trade Strategies and Trade Exercises that will elevate your trading…learn these and many more strategies and insight during the live hands-on sessions.
The Institutional Red Green “RGL” Trade Strategy…Key Strikes at Commercial Volatility
Cash Open Systematic Trade Process…Volatility Expansion Breaks
“MOCi” Market on Close Ignition Trades…Institutional Volume Auction Process
Opening Range “Measured Move” Liquidity Target Trade Levels
Our Goal is Simple. Fix the Trade Gap…Entries. Stops. Profit Targets.
Trade at the highest level…Engineering Trade Success, with the BEST Institutional Tactics, Strategies & Training Live in the Markets with a Quant Bank Trade Strategist.
– MZpack 3.18.5 core
– Resolve execution issues with Rithmic connection
– Protection orders can be adjusted in Chart Trader
– Added MZpackStrategyBase.OrderErrorRetry (‘Retry’ parameter in UI) – retries count for rejected orders.
– Rejected Stop loss orders (tight stops) are resubmitted OrderErrorRetry times. Position is closed if stop loss order is not accepted.
– Fix. mzVolumeProfile works not as expected in Minute accuracy mode.
mzBigTrade
– Added filter – ‘Trade: volume is multiple of’. This feature allows you to identify market participants trading with significant rounded sizes
– Selection filter has been added to Extra filters. You can choose percent of volumes or percent of numbers of trades criteria. See User Guide for details
– In Solid color mode a required level of Saturation can be chosen
– Saturation and Heatmap of trade markers are calculated inside the current chart frame to add contrast to the picture
Common
– Displaying of version number is disabled by default
2021 war ein sehr erfolgreiches Jahr für mich an der Börse. Mit meinen Trading-Strategien und Trading-Setups konnte ich einen Profit von 266% erzielen. Am Anfang des Jahres baue ich mir immer einen “Puffer” auf und skaliere nach und nach meinen Prozess und mein Risikomanagement nach oben.
“Im Moment befinden sich 32 Teilnehmer in meinem Trading-Programm. Vom Wissensstand her sind wir komplett durchgemischt -es gibt sowohl Anfänger, als auch Fortgeschrittene und auch bereits profitable Trader. Durch mein “On-Demand-Programm” finden Quereinsteiger & Anfänger schnell Anschluss und können jederzeit starten. Du hast Fragen und möchtest Kontakt zu Teilnehmern aus dem Programm aufnehmen? Nimm Kontakt auf und verschaffe dir einen Einblick.“
– MZpackStrategyBase.OnEntryPatternValidated() is virtual. Always call base method in overrider.
See how to implement one pattern validation per bar. This might be useful for OnEachTick signals tree.
public class MyStrategy : MZpack.NT8.Algo.Strategy
{
int validatedBarIdx = -1;
public MyStrategy(string name, MyNinjaStrategy ninjaStrategy) : base(name, ninjaStrategy)
{
}
public override void OnEntryPatternValidated(Pattern sender, DateTime time)
{
validatedBarIdx = MZpackStrategy.CurrentBar;
base.OnEntryPatternValidated(sender, time);
}
public override bool OnValidateEntryPatternFilter(object e, MarketDataSource source)
{
if (MZpackStrategy.CurrentBar == validatedBarIdx) // One pattern validation per bar
return false;
return true;
}
}
– Position.CancelClose() can cancel manually placed limit orders or close manually opened entries. Use it from UI (MZpack Control panel) to manage position without disabling of the strategy.
public void cancelCloseButton_Click(object sender, RoutedEventArgs e)
{
Strategy.Position.CancelClose("UI Cancel/Close", DateTime.Now);
(sender as Button).Content = getCancelCloseButtonText(); // Update button text
}
– MZpackStrategyBase.WorkingDataSeriesIdx is 0 (not a multi-timeframe strategy) by default
– Fix. Cancelling pending/working orders
– Fix. MZpackStrategyBase.GetCandle() method returns wrong candle metrics if ago value > 1
– MZpack 3.18.3 core
– Added Signal.GetDisplayName() method to display signal name in the Log and in pattern Dashboard legend:
public virtual string GetDisplayName() => string.IsNullOrEmpty(Name) ? this.GetType().ToString() : Name;
Override it in custom signals to display some usefull info about your signal
Example from built-in BarMetricsSignal class
public class BarMetricsSignal : Signal
{
BarMetrics barMetrics;
MinMax minMax;
int ago, ticks;
public override string GetDisplayName() => $"{barMetrics} {minMax} {ticks} ticks";
mzFootprint
– Added ‘Statistic grid – Volume per second’ value
– Added option: ‘S/R zones: ended by ByBarTouch’
– Added option: ‘S/R zones: approaching, ticks’ – Approaching of the price to a zone in ticks to terminate zone
– Fix. S/R Zone is ended not as expected if Reconstruct tape is enabled
Common
– Added ‘General – Crypto force instrument’. Enable this option if your data connection doesn’t mark crypto pair as a crypto instrument
– ‘Non-Crypto volumes divider’ has moved to General category
– Added Ninja ATM support. See MZpackStrategyBase.PositionManagement, MZpackStrategyBase.NinjaTraderATM_TemplateName properties
Note, that there are some limitations for Ninja ATM Strategies. Read more here https://ninjatrader.com/support/helpGuides/nt8/using_atm_strategies.htm
– Added Conjunction logical node
– Added new state ‘Not Calculated’ for Dashboard cells
– Added pop-up hint for Dashboard cells
– Added Strategy.IsOpeningPositionEnabled property
– Added Range.IsInSession property. Set IsInSession to True if pattern must be validated inside the current session only.
– Action can return SignalDirection.None which terminates validating of the signals/filters
– ControlPanel is disabled while loading market data
– Fix: issue with adding custom items to MZpack ControlPanel
We’d like to start this update by stressing that we are deeply saddened by what’s occurring in the Russia/Ukraine conflict. Many of us have nothing to do with or actively oppose the Russian government’s decision to invade Ukraine. We hope for a peaceful resolution.
“Under the current circumstances, we are suspending PayPal services in Russia,” President and Chief Executive Dan Schulman said in a statement. So, we’ve forwarded all the payments to our payment partner MyCommerce located in Germany. They also support PayPal transactions.
Unfortunately, some of our loyalty features like per customer discounts don’t work as expected so far. Don’t hesitate to create a support ticket if you believe that there are price differences.
Note, that our server is located at the Dallas data center to keep all your licenses safely.
We are working on new features and improvements to our products.
New promo and sales will come shortly. Stay tuned!
– Added Node.IsEnabled property
– Added the ability to add properties of a derived strategy class using ControlPanel attribute
– ControlPanel sample updated
MZpack Control Panel contains UI elements or controls to manage your MZpack-based strategy. Now you have the ability to change the settings of a strategy on the fly.
Adding controls can be as easy as adding a couple of lines to your code. See User Guide – Control Panel topic for more info.
Changes in parameters: Zigzag: deviation threshold. The threshold as Value or Percent. Value is the deviation of the price in ticks (not points!). The deviation of the price in percents is calculated inside the current session
Owners of lifetime licenses of MZpack Indicators for NinjaTrader 8 package will get 30% discount on mzDeltaDivergence indicator. Their lifetime licenses will be upgraded up to this license MZpack Indicators w Divergence for NinjaTrader 8 after the purchase of a license for a relevant number of devices.
Owners of lifetime licenses of MZpack Indicators & Strategies for NinjaTrader 8 package will get 30% discount on mzDeltaDivergence indicator. Their lifetime licenses will be upgraded up to this license MZpack Indicators & Strategies w Divergence for NinjaTrader 8 after the purchase of a license for a relevant number of devices.
Owners of lifetime licenses of MZpack Single Indicator(s) will get 30% discount on mzDeltaDivergence indicator.
How can I get my 30% discount?
Login on MZpack site using your purchase login.
2. Choose a desired product from the Shop menu.
3. Check the product price with the discount
4. Make a purchase using PayPal Personalmethod. For Bank card/PayPal Business payments contact us to get a direct payment link with the discount, please.
Feature Requests are one of the most valued parts of being an MZpack customer. This is absolutely free and depends only on the MZpack community.
How to submit a feature request?
Leave your feature requests on the Forum under the Feature Request category by starting a new topic. Other users (and you) can vote for the feature by clicking the Like button. Requests with at least 20+ likes will be implemented. Most liked requests will up in the queue. Note, that the final decision is for MZpack devs.
Stay up to date with unique FREE LIFETIME updates and improvements that you won’t find anywhere else!
MZpack Receives Code Signing Certification From GlobalSign!
Our organization has been thoroughly vetted by GlobalSign, a worldwide identity provider.
Code Signing Helps Prove
Content Source:
Code Signing identifies that MZpack is coming from a specific source – IP Zhelnov Mikhail Petrovich. When software is downloaded from the internet, browsers will exhibit a warning message stating the possible dangers of downloading data, or display an “unknown publisher” warning. Code Signing removes the “Unknown Publisher” security warnings and identifies the Publisher’s name (ie. Organization Name).
Content Integrity:
Code Signing ensures that a piece of code has not been altered and determines whether code is trustworthy for a specific purpose. If the application/ software code is tampered with or altered after digitally signing, the signature will appear invalid and untrusted. Signing code is beneficial for users downloading applications and beneficial for developers. Users are assured who they are downloading software from.
This is a notice that there will be an increase of 15% in our lifetime licenses pricing to take effect on October 11. The increase helps us ensure our commitment to providing the very best products and services for our customers.
We want to inform you because, perhaps, you are considering your purchase or upgrade of one of our products. So, you have a week to make your decision and save 15% right now.
Note, that prices for subscriptions remain. So, if you are a subscriber, nothing is changing for you.
You can find iceberg orders and DOM pressure functionality in mzBigTrade indicator.
Iceberg Orders
An iceberg order is a special limit order. The main size of an iceberg order is not shown in the order book. You will never know the size of the hidden part of the iceberg order, without analyzing algorithm running in real-time.
Fortunately, mzBigTrade indicator includes such searching algorithms.
Significant iceberg orders normally are exposed on reversals of local trends.
A SELL trade may trigger BUY iceberg orders.
Iceberg orders are shown with fuchsia contour.
DOM Pressure
We use the DOM pressure term to describe the behavior of liquidity on the way of a market order.
Any trade, you see in mzBigTrade indicator, is the result of matching market order, with a limit order, resting in the order book or DOM (Depth Of Market). This matching occurs at the best Bid or Ask prices, depending on the direction of the order, sell or buy.
DOM pressure can be negative or positive. Positive DOM pressure means adding the liquidity on the best Bid or Ask price right after matching. Negative DOM pressure means removing the liquidity on the best Bid or Ask price right after matching.
Positive DOM pressure always occurs at the opposite side of the order and is a resistance to the trend.
DOM pressure is shown as a triangle. Note, that expensive level 2 data, are not required for the indicator.
In this particular case, we can see a huge group of sell orders with buy iceberg orders, along with dom pressure. We call this a Reversal Order Flow Cluster.
The next occurred reversal order flow cluster is a smaller one. It contains fewer sell iceberg orders and dom pressure volumes. The price broke the level of the cluster and did test the second cluster. This could be your buy entry point, with the stop-loss order just below the first reversal cluster.
Use Reversal Order Flow Cluster pattern in conjunction with other MZpack indicators for better results.
Further Recommendations
Always look at the big picture first. Then drill down to the order flow and market microstructure.
mzFootprint
– Readability of stat values has improved
mzVolumeDelta
– Fix. The indicator is terminated if license checking was not completed before market data coming
mzVolumeProfile
– Fix. The last profile on the chart rendered as not as expected if Position is RightOnChartMargin and Calculate is OnBarClose
Auto-filtering feature allows easily spot significant trades on the chart. It works in the background. Use Presentation – Max number of trades in chart frame parameter to adjust the intensity of the order flow on the chart.
When the zoom is increased for the chart, smaller and smaller trades become visible because those small trades make sense on zoomed (smaller) chart frame. Thanks to auto-filtering you can dig into order flow as soon as you need it.
Size of iceberg part of the order, dom pressure, and dom support are also considered in auto-filtering algorithm during the selection of trades.
Note, that the scale and color intensity of trades markers is calculated on all loaded market data.
Stacked Tape
To enable Stacked Tape choose Stacked for Presentation – Marker position parameter.
The trades are organized vertically, by bar like a chain, and in the sequence in that trades come from the order flow. New buy trades are being added at the top, and new sell trades – at the bottom of each chain.
Stacked tape is extremely useful when you work with non-reconstructed tape, or when you have a lot of small trades for the traded instrument.
We recommend using stacked position on tick time frames like 20 Ticks.
Note, that stacked position is available for Bubble and Box markers only.
How can I get my 30% discount?
1. Login on MZpack site using your purchase login.
2. Choose a desired product from the Shop menu.
3. Check the product price with the discount
4. Make a purchase using PayPal Personal method. For bank card payments contact us to get a direct payment link, please.
– 3.16.12 core
– MZpackCustomStrategy0 sample has been optimized for OnBarClose logic
– Added BarIcebergsSignal signal
– Added RelativeToProfileSignal signal
– GetEntryPrice(…) method has modified and implemented inside base abstract Signal class.
mzVolumeProfile
– When profile Position = RightOnChartMargin it always occupies all available margin
– Added option ‘Volume Profile – Profile: left margin, px’. Use it along with ‘Profile: right margin, px’ to control the position of the profile on the right margin
– 3.16.11 core
– IMarketDepthMigration interface has renamed to IBarLiquidity
– Added SortedDictionary<int, IBarLiquidity> OverallLiquidity { get; } to IMarketDepthIndicator interface
– Added Trading Times feature. The strategy doesn’t make entries outside trading times. Working orders outside trading times will be closed, pending orders will be canceled.
See TradingTimes property, User Guide, and TradingTimes sample strategy
– Added RiskManagementclass. See User Guide and RiskManagement sample strategy
– Liquidity plots have been added. See Liquidity category.
Supported plots:
Plots total volume on Offer side and total volume on Bid side of the DOM (two lines)
Plots total volume on Offer side minus total volume on Bid side of the DOM (one line or candles)
Plots total volume on Bid side minus total volume on Offer side of the DOM (one line or candles)
As an example, see Liquidity Cross pattern based on OfferBid type.
A symmetrical cross can be drawn on OfferBid plots. The entry can be made after the right parts of the cross break its low and high bound.
– Fix. The liquidity scale is not as expected after changing Liquidity Migration – Overall type.
Added public enum CancelLimitOrderType { None, Ticks, Bars, Milliseconds }
Entryclass has extended:
– Added CancelLimitOrderType property – Cancel or not Limit order after the value CancelLimitOrderValue of this type has reached.
– Added CancelLimitOrderValue property – The threshold value of type CancelLimitOrderType to cancel Limit order.
– Added LimitEntryPriceChase property – Move or not pending Limit order tick by tick as price moves away until Limit order is filled or canceled.
Fix. Zero prices in the log at begin of trailing an entry
mzVolumeProifile
– Added support OnBarClose mode with Tick accuracy for optimization of system resources.
Set Setup – Calculate = OnBarClose from indicator settings.
TPO is always calculated in OnEachTick mode. See image from the User Guide, p.43.
– Fix. Zero volume bars (gap bars) may stop the indicator.
Common
– Fix. Gap bars with zero volumes (range bars) might lead to error (NSE, etc.)
– Fix. Some Levels parameters (Alert, Sound,..) are not as default.
mzBigTrade
– The maximum value for ‘Show last N trade’ parameter is set to 10000. The warning message appears when you set N > 3000.
– 3.16.6 MZpack core
– Signals tree is being validated on each market data event if one or many signals have IsReset = true despite the previous validation state.
– Fix. Caption for FILTERS tree missed in the log.
– 3.16.4 MZpack core
– Added Signal.Name property to display in Pattern Dashboard and in the log
– Strategy’s UI has reorganized. Logging options have been added to UI
– Added data access samples: DataAccess_mzFootprint, DataAccess_mzVolumeDelta
Common
– ‘Orderflow – Non-Crypto volumes divider’ parameter is back.
mzFootprint
– Added Imbalance – Marker type: Dot or Cluster
– Imbalance markers are visible for any footprint style, and even for single-sided footprint.– Optimization of S/R Levels and Cluster zones
– Fix. Histogram in Delta cluster is not scaled as expected
– Fix. Histogram size is not as expected after changing ‘Ticks per level’
– Fix. Aggregation of clusters is not as expected for some tickers with huge ‘Ticks per level’ values
mzVolumeProfile
– Added option RightOnChartMargin for profile Position. The set now is: Left, Right, RightOnMargin
– Added dedicated Delta options for Stacked profiles
LVN feature has transformed to Cluster Zones. Added ‘Cluster Zones: filter min/filter max’ parameters. Now we can spot not only Low Volume Nodes (LVN), but High Volume Nodes (HVN), Delta ranges, Delta Percentage ranges, Trades ranges.
Added DeltaPercentage footprint style
Added ‘Statistic grid – Predicted values: show’ feature. Stat values are being extrapolated (proportional to the bar time). The gauge shows the progress of the bar. Available for time-based intraday bar types.
Added time gauge and bar timer feature: ‘Statistic grid – Predicted values: gauge’. Available for time-based intraday bar types.
Fix. Ratio Numbers are not as expected when Ticks per level > 1
mzFootprint
– Added ‘Bar Statistic – Ratio Numbers’ feature.
There are three types of ratios: Neutral Ratio: which means the market is facilitating trade. A number between the high and low ratio (29.0 and 0.71 by default).
If the number falls between these two numbers, the market is facilitating trade. Ratio Bounds High: which indicates the price is being REJECTED. A number above 29.0. So if the Ratio number prints below the bar (Up Bar) then lower prices are being rejected. And if the Ratio number prints above the bar (Down Bar) then higher prices are being rejected. Ratio Bounds Low: which indicates a price level is being DEFENDED in the market. A number under 0.71 down to 0 (zero). So if the Ratio number prints below the (Up Bar) then the area is being supported by buyers. And if the Ratio number prints above the (Down Bar) then the area has sellers up there.
Read more on the forum: https://mzpack.freshdesk.com/en/support/discussions/topics/48000558972/page/2?url_locale=en
mzMarketDepth
– Added BidOfferDelta for Overall Liquidity Migrations. Now price can follow OLM bars.
mzFootprint
– Added ‘Left/Right Footprint – Values: abs Delta’ option. Disable to see signed delta when Color source is Delta.
– Fix. Enabling ‘Reconstruct tape’ leads to an exception.
– Fix. In ‘Reconstruct tape’ new session/daily VP starts not as expected.
– Fix. In ‘Reconstruct tape’ mode POC/VAH/VAL lines may start from zero price
– Fix. Imbalance/Absorptions and S/R Zones are not as expected in OnBarClose mode of indicator
mzVolumeProfile
– Fix. Printed delta value for ladders is always 0
mzMarketDepth
– Fix. Minor rendering inaccuracy of historical depth blocks.
We found that the date for market data from Coinbase connection is always in English format. But Ninja chart time is in local computer date format according to your regional settings. For example, 03.06.2021 (March 6rd) in English date format will be Jun 3rd in your local time format for European regional settings. The correct date notation must be 06.03.2021 for Europe. So because of internal filtering, live Level 1 data (those from the ‘future’) are not coming to MZpack order flow indicators.
You might see the following picture – no live plots from indicators or price marker is not moving at all.
To resolve the issue set your regional settings to English (USA) from Windows Control Panel. Then restart NinjaTrader.
mzFootprint
– Fix. Histograms of clusters are not as expected in Bar scale mode.
– Fix. Cluster size/saturation is not as expected if Scale/Color/Gradient source is Delta in Bar scale mode.
mzVolumeDelta
– Fix. Cumulative Delta mode is not as expected but is Candles mode on live data.
API 2.2.2
– MZpack 3.15.28 core
– Added static SignalDirection.UpgradeDirection() method. See API Help.
Our Bank cards/PayPal Business processing partner MyCommerce is making changes to further modernize their cloud platform.
Date: Wednesday, February 24, 2021 Time: 11 AM to 3 PM CET
MyCommerce will continue to take orders during the planned maintenance, but there may be temporary delays in customer fulfillment/order confirmation emails. The MyAccount customer area and the Control Panel on MyCommerce site may be temporarily unavailable.
Volumes for Cryptocurrencies (eg. BTCUSD, ETHUSD, etc.) are adjusted automatically.
Check if Instrument type is Cryptofor your Cryptocurrency instrument
These settings are essential when adjusting charts for a Cryptocurrency instrument:
– General – Crypto decimal places
– mzVolumeProfile: Common – Ticks per level
– mzFootprint: Filters – Ticks per level
– mzMarketDepth: Common – Level min height, px. Set the minimal height of level in pixels on the chart. It’s useful for instruments with tiny tick sizes
See mzMarketDepth Indicator vs NinjaTrader Order Flow Market Depth Map on BTCUSD futures
Check out pre-installed workspace ‘MZpack – Day Trading – BTCUSD’ Note: MZpack 3.15.24 or later required.
Added property MZpackStrategyBase.EnableBacktesting. See User Guide for details on strategies backtesting.
Added MZpack.NT8.Algo.MZpackStrategyBase.Operating property of type enum StrategyOperating { Auto, Manual }.
In Manual operating mode, the strategy is not making entries, so you can trade manually by the signals.
Added additional markup for entries ‘Entry: markup’, ‘Entry: Buy marker’, ‘Entry: Sell marker’ in the Visual category of the settings
The Visual category has been re-organized
Added support for mzFootprint.Calculate = OnBarClose
mzFootprint
– Loading time/performance optimization
– Support for OnBarClose calculation mode has returned for the indicator.
– Fix. VAL/VAH plots are not visible if VA: developing is not enabled.
mzVolumeDelta
– Added plotting zero bars with color from parameter: ‘Candle wick/Zero volume’. This is useful when Trade min/max filter is set that displays a lot of zero bars.
Cryptocurrency
– Orderflow – Volumes divider has deprecated.
– Volumes for Cryptocurrencies (eg. BTCUSD, ETHUSD, etc.) are adjusted automatically.
– Added ‘General – Crypto decimal places’ parameter (1..8).
– Added workspace ‘MZpack – Day Trading – BTCUSD’
MZpack mzMarketDepth Indicator vs NinjaTrader Order Flow Market Depth Map on BTCUSD futures
mzFootprint
– Parameter ‘Filters – Display value’ has been renamed and moved to ‘Presentation – Display volume filter’. It’s applied to the current Footprint value except for TradesNumber
– Added developing POC/VAH/VAL for chart sessions/days. Rendering of the levels has been improved.
mzMarketDepth
– Add ‘Common – Level min height, px’. Set the minimal height of level in pixels on the chart. It’s useful for instruments with tiny tick sizes, e.g. for BTCUSD.
– Added ‘Realtime DOM – Volumes filter’. Volumes less than this value are not shown in Real-time DOM.
mzVolumeProfile
– Render optimization
– ‘TPO levels – Attach to T +’ was changed to ‘TPO levels – Attach to T -‘
– ‘TPO levels – Naked by T +’ was changed to ‘TPO levels – Naked by T -‘
mzBigTrade
– Fix. Rendering issue (from 3.15.20).
Pro Bundle Installer
– Application renamed: MZpack 3 API for NinjaTrader 8
– Shortcut to API samples/signals folder has been added to the Windows start menu.
API
– Added functions into ITickIndicator interface:
double VolumeToCryptoCurrency(long volume);
long VolumeFromCryptoCurrency(double volume);
string VolumeToString(long volume);
– Fix. The pattern is not validated as expected if a logical node has no signal nodes.
– Property SignalsTree.DefaultDirection has deprecated.
– Logging of full Core/API versions in the trace file.
– Added DOMBlockSignal class. It tracks large limit orders (blocks) in the DOM. The signal generates LONG direction for bid blocks and SHORT direction for offer blocks.
– Added BigTradeSignal class.
– Added GetEntryPrice(object args) method. Use it to return custom entry price in overrider for built-in signals.
– Property HasPrice added to the base Signal class. Entry price can now be controlled for all built-in signals.
– Extended IMarketDepthIndicator interface. Added overall liquidity migration by bar index: SortedDictionary<int, IMarketDepthMigration> OverallMigrations.
– Added IMarketDepthMigration interface.
mzFootprint
– Added option: Imbalance – Marker position (Inner, Center, Outer)
mzMarketDepth
– Volumes are divided by General – Volumes divider parameter now
mzBigTrade
– Fix. Bar marker has a minimum height for instruments with a very small tick size, eg. BTCUSD
– Fix. DOM pressure/support values are not divided by General – Volumes divider parameter
mzVolumeProfile
– Weekly profile: the first day of the week is Sunday.
– Fix. Wrong duration of Weekly profile at the beginning of the year.
Here is the PREVIEW of MZpack Pro API Update. The release is scheduled for the beginning of December 2020. Stay tuned.
All these new improvements give you unlimited flexibility to build order flow strategy from precoded blocks. Only a minimum amount of coding required.
What’s new (only major features)
– API cleanup. Strategies code is shorter and very easy to understand now.
– New Pattern concept:
Added Signals and Filters decision trees with logical (AND/OR) and signals nodes.
Added built-in bar and price ranges control – localize your patterns easily.
– Added built-in signals: TradesClusterSignal, DOMImbalance, etc. More signals/filters will come.
– Added visualization for validated patterns.
– Added partially view mode for mzBigTrade, mzFootprint, mzMarketDepth indicators.
Now you can control from the strategy code which particular plots of an indicator should be visible. Eg. you can make visible only particular footprint bars or particular big trades from which a signal has been validated. This allows keeping the picture clean.
– Samples have been updated
Normal Visible Mode of Indicators
The same chart. New Partially Visible Mode of Indicators. Focus on meaningful plots only!
mzFootprint
– Fix. Indicator error might occur when Statistic Grid is visible
– Fix. Invalid cluster rendering in some cases for Forex pairs if Ticks per level > 1
Comprehensive order flow indicators like MZpack with a lot of features require significant CPU resources. The performance issue is aggravated by the fact that NinjaTrader 8 can utilize only one CPU thread per instrument. No matter how many CPU cores your system has – only one core will be used for processing market data for this particular instrument (even it is opened on ten charts). The purpose of this was synchronizing data and orders handling on all your charts, but in reality, this may lead to significant delays. And you guessed it, this greatly reduces the performance of the platform.
In this article, we will show how to create beautiful MZpack charts like this one on the screenshot in the header with around 1% CPU load and a very short overall loading time.
The idea is to use Minute profile accuracy for huge periodical profiles. Minute accuracy doesn’t require tick replay mode, requires much fewer CPU resources, and has significantly less loading time. As what about TPO profiles, those can be used with Minute accuracy mode even for very short periods like session.
The Required Steps
Open a new clean chart. We use 5 Min ES chart in this example.
Add two Data Series: 1st Data Series with Tick replay enabled and Days to load = 5 and 2nd Data Series with Tick replay disabled and Days to load = 30.
We recommend using equal time periods for both data series.
Now you have two panels with added data series.
Add mzVolumeProfile indicator to your chart. By default, it will be attached to the 1st data series. We used Weekly periodical profiles and Monthly profile as a stacked VP.
Choose 2nd Data Series as Input series for your mzVolumeProfile indicator.
Choose Minute for Profile accuracy. Then click Apply. The profile now is attached to 2nd data series.
Add mzFootprint indicator. It will be attached to the 1st Data Series by default.
Send 2nd Data Series to the panel containing 1st one. Now you have both Data Series on the same panel.
The result
The resulting image will look like this. Our Footprint indicator covers the latest 5 days of the chart. Whereas mzVolumeProfile indicator is applied to all 30 days.
The micro-dynamic of order flow can be observed by zooming in the chart.
Adding More Indicators
Add 2nd mzVolumeProfile indicator doing the same steps if you need more plots. Eg. we added another mzVolumeProfile to plot monthly WVAP with standard deviations.
Also, you can add more order flow indicators, like mzBigTrade or mzVolumeDelta to your 1st Data Series with Tick replay enabled.
Notes
The common method of adding mzVolumeProfile indicator with Minute accuracy:
Add mzVolumeProfile with Tick accuracy on your Data Series with Tick replay enabled
Move added mzVolumeProfile indicator to Data Series with disabled Tick replay
mzFootprint
– Added displaying of the price range for Delta Rate
– Optimization of S/R zones rendering
– Fix. Cluster scale is not correct when Scale source = TradesNumber and Ticks per level > 1
– Fix. Level can’t be attached to a footprint bar when adding
mzFootprint
– Delta Rate of Change has been added to the Statistics Grid and Notifications
Delta Rate value is attached to the bar and is shown in Statistics Grid, but is calculated continuously. Only the maximal (modulo) value of Delta Rate is shown for the bar.
Delta rate: type. Tick or Millisecond
Delta rate: value. Value of Delta rate measure interval in ticks or milliseconds
– Legend of the Statistics Grid can be adjusted Left or Right
As you probably know, MZpack license is linked to your PCs with product activation. But if you change machines or its hardware parts, you are able to transfer your license within 24 business hours by creating a support ticket.
This service was free previously. But because of the very high volume of transfer requests License transfer rules have been updated. Starting from Sep 21th 2020 you will be able to transfer your license by purchasing this transfer service (one purchase per license key).
User Guide has been updated, mzFootrpint Indicator, p.12
Filters
Ticks per level. Sets the level of aggregation for individual price levels, if price levels should be merged together. ‘Ticks per level’ parameter is not available if Orderflow – Reconstruct tape is enabled.
Trade min. Minimal single or reconstructed trade volume cumulated by Footprint.
Trade max. Maximal single or reconstructed trade volume cumulated by Footprint.
Display value. All values and its corresponding clusters less than this parameter will not be shown
mzVolumeProfile
– ‘Profile accuracy’ = Tick: if Tick Replay is disabled, you will see a warning message and historical plots are not shown
– ‘Profile accuracy’ = Minute: if Tick Replay is not disabled you will see a warning message and data (historical and real-time) are not processed
– Fix from 3.15.14: in Minute accuracy TPO open/close are not 100% exact
Working Time
‘General – Working time’ option is used to define the working time interval of the indicator. Set ‘Start time’ as a beginning and ‘Stop time’ as the end of time interval when indicator will process market data. You can specify the time of day only but not the date.
In mzVolumeProfile set ‘Chart Profile mode’ = Continuous if Working time is enabled. In this mode, a new profile is created at the beginning of each time interval.
Bars closed before Start time will be excluded from processing. Bars opened after Stop time will be excluded from processing. If the time of the bar falls into the Working time interval (even partially), this whole bar will be processed.
Note, that time of the bar on the chart is its CLOSE time. Next images illustrate how Working time is applied to such bars markup when Profile accuracy = Minute.
TPO levels consist of three groups of levels. Each group can be attached to all chart profiles or to a profile with a given T index. The last (current) profile of the chart has T index = 0, the previous profile has T index = 1, etc.
TPO levels include a set of significant profile levels: Open, Close, High, Low, IB High, IB Low, TPO POC, TPO VAL, TPO VAH. Each level can be Extended or Naked. The naked level can be terminated by any profile, next profile, or a profile with a given T index.
Some TPO levels can be used with volume profiles.
mzFootprint
– Fix. Trades number is divided by value divider in the Statistic grid.
– Fix. Values fonts of Footprints are used for Bar Statistic text.
mzVolumeDelta
– Fix. In Iceberg opposite mode wrong colors are used for drawing, some items of the histogram may be invisible.
mzVolumeProfile
– Added header letters in TPO Split mode when letters are displayed as blocks. See image.
– Fix. Wrong TPO prints spreading among chart bars may occur in Minute accuracy (since 3.15.11).
– Fix. TPO POC is at VAL when there is the only period in the market profile.
mzBigTrade
– Fix. Volumen position = OutsideRight, the value is on the left
All versions have been updated: 32 bit, Single Indicators, Trial.
mzVolumeDelta
– In Volume mode when Show = Icebergs only iceberg volumes are shown. This allows cleary to see iceberg buy/sell imbalance in three different ways: Total, Stacked, Opposite. Enable ‘Orderflow – Reconstruct tape’ option while using Icebergs.
– Added ‘Bar Delta alert’ option. Alert is triggered once on the absolute delta of the bar.
Common
– Added global volumes divider, see ‘Orderflow – Volumes divider’ parameter. Now you can adjust volumes processing in any MZpack indicator in one click.
Use 1 million for the Crypto market.
– Fix. Overflow of a volume value might occur in the Crypto market.
mzMarketDepth
– Added new Filtering modes for Historical DOM: AdaptiveLess and AdaptiveMore
Both modes use initial percent as a starting point for filtering.
AdaptiveMore calculates minimal DOM order size to display starting from the point when DOM was initialized.
Later the percent will be changed automatically to maintain minimal DOM order size for displaying.
AdaptiveLess mode is similar to AdaptiveMore except that minimal DOM order size to display will be slightly adjusted in time.
Both modes allow seeing clear historical DOM picture automatically adapting to future orders’ sizes.
mzVolumeProfile
– Fix. VWAP can be broken on establishing data connection because of a data gap.
Common
– Changes in Orderflow – Calculation modes.
The UpDownTick mode uses UpDownTick calculation for historical and real-time data now.
The BidAsk mode uses BidAsk calculation for historical and real-time data (as usual).
Added Hybrid calculation mode.
The Hybrid mode uses UpDownTick calculation for historical data and BidAsk calculation for real-time data, which is much accurate. Read more on how to use it in Indian Market.
– Added workspace for the Indian market: MZpack – BANKNIFTY – NIFTY – Default Settings
Indian Market (NSE) data providers (eg. Accelpix) don’t translate historical bid/ask data so far. For Indian users, Hybrid mode for ‘Orderflow – Calculation’ settings has been added. The Hybrid mode uses UpDownTick calculation for historical data and BidAsk calculation for real-time data, which is more accurate. Hybrid mode is available starting from version 3.15.11.
For ‘Spread trades’ set Split or LastKnownSide.
Non-Crypto volumes divider and Ticks per level
Indian users must adjust Non-Crypto volumes divider and Ticks per level parameters.
For NIFTY features set volumes divider = 75 according to lot size. BANKNIFTY features has 20 as the lot size. See the above image. Non-crypto volumes divider is available starting from version 3.16.3
For NIFTY futures set Ticks per level = 40. We use this value for mzFootprint on 240 Range chart and for mzVolumeProfile on 30 Min chart.
For BANKNIFTY futures set Ticks per level = 1500.
mzBigTrade Indicator
mzBigTrade Indicator requires fine-tuning. See image. You can use 10 Tick chart to refine your entries. Take some screen time to make adjustments suited for your trading strategy.
Download BANKNIFTY – NIFTY workspace. MZpack 3.16.3 or later required.
Common
– Added font settings for pop-up info (mzMarketDepth, mzBigTrade). Default font now is ‘Montserrat’, 10
– Added ‘Levels – Mouse drag’ option. Disable it to prevent levels dragging by mouse. You can still move a level from properties by editing level price
Levels
– Added saving levels in workspace and chart template. All your saved levels are on the chart when you open a workspace.
– Set an individual style for a level from the level properties window
– Add custom text to a level with ‘Label’ property
– Added AboveRight/AboveLeft for Value position.
– The new level properties window
– New level control spots: properties, delete
– A level placed inside VolumeProfile/TPO begins from begin of this profile
mzFootprint
– Added auto-scaling for Legend text
– Fix. Stat grid values are not scaled if ‘Presentation – Auto-scale’ values disabled
mzMarketDepth
– For Overall Liquidity Migration added ‘Liquidity Migration – Plots position’ which can be Top or Bottom
– Fix. Overall LM is rendered in the wrong position if there is a chart panel above indicator’s panel
mzVolumeProfile
– Fix. VWAP/StdDeviations are not visible for custom profiles if enabled from On-the-fly settings
– Fix. Minute accuracy is not disabled after switching to or loading for non-minute based bars
– Fix. Area profile presentation may throw an error for some futures.
Common
– Fix. An error might occur in UI thread for finalized indicator
mzVolumeProfile
– Fix. Bars mode works not as expected for Stacked profile.
mzFootprint
– Fix. Ending types for Imabalce/Absorption S/R zones can affect each other
– Fix. Absolute Delta Average can be 0 for historical data and requires indicator reloading to be calculated
mzVolumeDelta
– ‘Presentation – Negative delta’ parameters have ben merged with ‘Presentation – Sell volume’ => ‘Presentation – Sell volume/Negative delta’.
The same is for ‘Positive delta’ parameter
mzBigTrade
– Rendering optimization for auto-scaled values
– Fix. Some trades are not shown if Reconstruct tape disabled
– Fix. Reconstruct tape, when enabled On-the-fly, ignores some collected Iceberg/DOM pressure/support values on historical bars
– Fix. Optimized render when enabled doesn’t limit rendering time
mzMarketDepth
– Maximal value for ‘History depth, bars’ is 10000 now.
Common
– Optimization of memory releasing
– Fix. Multi-threading locks.
mzVolumeProfile
– Fix. TPO is not updated live when Split enabled.
– Fix. Volume profile (or its part )with Area presentation maybe not visible for some zoom values
– Fix. Custom profile is not changed during creation/resizing
mzVolumeProfile
– Profile accuracy = Minute mode.
E.g. calculation of profiles for one year of ES futures requires only 10-15 seconds on an average machine now.
Use Profile accuracy = Minute with disabled Tick replay to speed up the calculation of Volume Profiles or TPO for huge periods like months or years.
Tick replay data are not used with Minute accuracy.
Also, we recommend setting ‘Ticks per level’ = 10..20
Note, to emulate Daily bars use 1440 Minute bars. See video.
HISTORICAL DATA
Minute volumes are being spread proportionally across each minute range.
Volumes of up bars are buy volumes, volumes of down bars are sell volumes.
For strategies API: Calculation of the profiles will be OnBarClose – this means ‘on close of each 1 Min interval according to Profile Accuracy’.
REAL-TIME DATA
Orderflow Calculation mode is ‘UpDownTick’
The rest is the same as for Tick accuracy
Orderflow settings are not available for Minute accuracy.
NOTICE.
On historical data, the Minute accuracy shows volume spreading is very close to Tick accuracy for large profiles.
But we don’t recommend using Delta with Minute accuracy on historical data!
TPO is identical in both modes for historical and real-time.
– ‘Profile accuracy’ has been moved to ‘Common’ section.
– Added two workspaces to illustrate TPO+VP features and Minute accuracy.
mzMarketDepth
– Rendering optimization
– Added ‘General – Refresh delay, ms’ parameter. The default value is 250 ms. Min value is 50 ms. Don’t use low values on slow machines.
– Fix. Historical DOM is not fully visible when ‘Hold levels’ disabled.
– Fix. Enumeration exception may occur