FAQ

VolumeProfile:

WatchMyYouTubeVideos

What steps should I follow to install for first time? (ATTN: Trial Users!)

  1. Go to Downloads page to download the VolumeProfile install zip package.
  2. Save copy of CDA_VolumeProfile zip file to any local folder (e.g. …\Documents\NinjaTrader 7\import)
  3. Go to NinjaTrader Control Center Utilities to Import NinjaScript….Select CDA_VolumeProfile zip from the local folder where you saved the download package
  4. Contact Me to request a copy of current ES RTH VAP cache files and a workspace to get you started.
  5. Copy the ES Minute and Tick VAP CMEUSIndexFuturesRTH cache files for current contract month to C:\CDA_VP\cache folder (automatically created first time indicator is added to a chart)
  6. Copy the workspace xml file to your \Documents\NinjaTrader\workspaces folder (automatically created first time indicator is added to a chart)
  7. Open the workspace.

Why don’t I see any profiles after installing the indicator?

  1. The most common reason is that the indicator’s VAPMode parameter is set to UseCache and it cannot locate the appropriate Volume-At-Price (VAP) cache files in the CacheFolder; verify the VAP cache files exist for the session template and instrument/contract-month you have set in the data series of your chart. If you set the indicator’s VAPMode parameter to UseMInuteVolume, you will see profiles right away regardless of the existence of VAP cache files.
  2. There are 2 types of VAP cache files; Minute and Tick. I use the Minute VAP cache to span farther back in time when the detailed accuracy achieved with Tick volume data is not necessary; this is the case for the full composite profile. The Tick VAP cache files typically don’t go back any further than 30-60 days. IMPORTANT: cache files are based on a specific market instrument, contract month, session-template combination.
  3. You can get copies of the VAP cache files I use for various markets and sessions I follow from my CDA_VolumeProfile shared folder.  This is offered free of charge to help save users time, though they may not be updated every day.

How are the VAP cache files processed?

When the indicator starts, it first loads the pre-calculated volume-at-price values based on minute volume data from within the Minute.VAP cache file.  It will then load the the pre-calculated volume-at-price values based on tick volume data from the main (consolidated) Tick.VAP cache file, followed by the daily incremental “current session” Tick.VAP cache files. For any price which overlaps across the cache files, the most recent file loaded takes precedence. That means if you Tick.VAP data spans the past 60 days for example, the data used to draw the composite profile is based on Tick data for the past 60 days and Minute data for the days prior.

What steps should I follow to install an update?

  1. Download new package from website download page.
  2. Close all workspaces that may be using this or prior versions of this indicator.
  3. If the update is one in which a new parameter has been added or existing one has changed, you will need to remove any CDA_VolumeProfile.xml file that may be under the …\Documents\NinjaTrader 7\templates\Indicator folder.
  4. Remove NinjaScript Assembly……Select prev installed CDA_VolumeProfile….zip
  5. Restart NinjaTrader
  6. Import NinjaScript….Select new CDA_VolumeProfile….zip
  7. If the update is a minor defect fix (and not one in which a new parameter has been added or existing one has been changed), your existing workspaces should work just fine, otherwise you may need to create a new workspace and charts.

How do I build my own VAP cache files?

Whenever you are using VAPMode (indicator parameter) set to UseCache, you will need to have Minute.VAP and Tick.VAP cache files for the  instrument/contract-month and session templates you are using.  If I you cannot locate the files on my shared folder, follow the procedure listed below to build your own.

Disable your anti-virus, firewall, and anti-spyware apps; shouldn’t be any need for anti-virus/spyware running on a trading machine anyway, as it should be unnecessary and only slows down other real-time processes.

Prepare your NinjaTrader environment for instrument/contract-month and back-fill minute and tick (last) data.  Make sure your NT MergePolicy is set to MergeBackAdjusted.

  1. From NinjaTrader Control Center Instrument Manager, add the new instrument/contract-month to your instrument list.
  2. When the session is closed, from NinjaTrader Historical Data Manager, download Tick Last data for past 60 days and Minute Last data for past year or so.

Build the Tick.VAP cache files:

  1. Open a new chart selecting the instrument/contract-month and the session template you plan to use (normally, this is the RTH or instrument default session; I always explicitly select the one I use).   For the Tick.VAP cache file, set data series days to 60; if the session is currently active set the data series End Date to the previous day.
  2. Add the indicator to the chart.
  3. Under the Operational Parameters section, set the VAPMode parameter value to UseTickVolume and set RebuildVAPCache parameter to Overwrite.
  4. Click OK; expect it to take several minutes for control to return.
  5. Verify that VAPMode has been auto-reset to UseCache and RebuildVAPCache auto-reset to False; you should also see the session profiles displayed if you had ShowSessionProfile set to True.
  6. At this point you will have a Tick.VAP cache files for the session template you chose; you can see the file in your C:\CDA_VP\cache folder.

Build the Minute.VAP cache files:

  1. To build the Minute.VAP cache files, change the data series to 180 days (or to however long back you expect you need your full composite to begin); set the end date of the data series to be the day before the beginning of the Tick.VAP cache file (i.e., current date minus 60 days); there is no need for the Minute.VAP cache file to overlap the Tick.VAP cache file, but it is perfectly fine if they do; the indicator will automatically use the Tick VAP values in place of the Minute VAP values.
  2. Make sure you set your session template to the same one you used for building the Tick.VAP file.
  3. Under the Operational Parameters section, set the VAPMode parameter value to UseMInuteVolume and set RebuildVAPCache parameter to Overwrite.
  4. Click OK and when control returns, verify that VAPMode has been auto-reset to UseCache and RebuildVAPCache auto-reset to False; you should also see the session profiles displayed if you had ShowSessionProfile set to True.

Create or update your workspace charts:

  1. At this point you now have a Minute.VAP cache file and a Tick.VAP cache file  for your the session  instrument/contract-month you plan to use.
  2. Now,  you can create your charts or open a previous workspace containing the instrument/contract-month and session template that corresponds to the ones you used to build the Minute.VAP and Tick.VAP cache files.
  3. Add the indicator to your chart and under the Operational Parameters section, set the VAPMode parameter value to UseCache; the indicator will automatically load and use the VAP data contained in the cache files to render the profiles.
  4. Note the FAQ question below: Why do I have a chart with only current day and VAPMode set to UseTickVolume?  It is strongly recommended that you do this for each instrument/contract-month/session-template you have, for the reasons explained.

What do I do if I’m away for a few days and am missing some of session profiles and  the daily incremental “current session” Tick VAP cache files for those missing days?

  1. If you can’t get them from another CDA VolumeProfile trader, the easiest thing to do is to append the missing days of Volume-At-Price data to the consolidated Tick VAP cache file..
  2. You only need to do this for the Tick VAP cache file
  3. Wait until the session is not active, then…
  4. Open a new chart selecting the existing instrument/contract-month and session template.  But this time under the data series Data properties section, chose CustomRange for Load data based on, and explicitly set the desired Start and End dates to the days you are missing, and chose the same Session template.
  5. Add the indicator to the chart.
  6. Under the Operational Parameters section, set VAPMode to UseTickVolume.  Set RebuildVAPCache to Append; this will update the consolidated Tick.VAP cache file. An alternative is to leave RebuildVAPCache to false and this will simply create the missing incremental session Tick.VAP cache files.
  7. Click OK; it will take a few minutes… sometimes as much as 2 minutes per day.
  8. When you regain control of NT, open the chart indicator and verify VAPMode was auto-reset to UseCache and verify the missing session profiles are now there.
  9. The order of each block of days records within the main (consolidated) VAP cache file is not really important; that is they do not need to be ordered.  However, for ease of browsing, if I ever do an Append RebuildVAPCache, I usually move each day to the location within the file as if being ordered was important.

What do I do need to do for contract roll-over?

You will need to create new Minute.VAP and Tick.VAP cache files for the new instrument/contract-month and session templates you use, by following the procedure listed below. [Note, that I also do this for various instruments RTH and custom ON sessions and upload them to my shared folder.]   Make sure your NT MergePolicy is set to MergeBackAdjusted.

To make it easier to identify the newly created files from the old ones, I copy all the existing files I will no longer need (i.e., the ones for the expired contracts) to a new folder (e.g.,  C:\CDA_VP\cache\old).

Disable your anti-virus, firewall, and anti-spyware apps; shouldn’t be any need for anti-virus/spyware running on a trading machine anyway, as it should be unnecessary and only slows down other real-time processes.

Prepare NinjaTrader environment for the new contract-month:

  1. Back-fill minute and tick last data for at least 60 days; you will know whether you do or don’t have the minute data when you open a chart and see or not see price bars when you select a Minute period.
  2. You need to determine if you need/want to override the NT contract roll-over offset. So, for CME traded instruments like the ES, go to the CME website to determine the official contract roll-over offset (http://www.cmegroup.com/trading/equity-index/us-index/e-mini-sandp500_quotes_settlements_futures.html).  It will be the difference between the front-month Settle price and the back month Settle price on the night before the official roll-over day.
  3. So using  the roll-over of the ES 06-14 to the ES 09-14 contract the official offset would be -7.25, that is, 1936.75 minus 1944.00 from Wednesday, 11 Jun (Final) posting.
  4. Now, AFTER THE CLOSE of the official Rollover date  (6/12/2014 in our ES example), restart NinjaTrader to determine what it is using for the offset; it may even be best to wait until the next morning (Friday).
      1. Go to the NT Control Center->Instrument Manager; find and highlight the instrument in the right column, click the Edit button.
      2. Click the Misc tab in the Instrument Editor, scroll all the way to the bottom, click the bottom right corner of the right column (for the Contract months row).
      3. Find and click the new front month (e.g., 09-14) on the Contract Months pop-up.

If the NT offset value is different than the CME official offset value, then

    1. Change the value to the official value (-7.25 in our ES 09-14 example) and (unfortunately) change the Rollover date to the day after the official contract roll-over day (i.e., to 6/13/2014 in the ES 09-14 example).  Notice that in this example, NT would otherwise be using an offset value of -6.75.
    2. Now, WAIT UNTIL AFTER THE CLOSE of the displayed Rollover date  before continuing, then you can proceed with the building of the VAP cache then proceed to Build the Tick.VAP Cache Files: below.

If the NT offset value is the same as the CME official offset value or you don’t particularly care about the difference, then you can proceed with the following.

Build the Tick.VAP Cache Files:

  1. Open a new chart selecting the new instrument/contract-month and the appropriate session template (normally, this is the RTH session).   For the Tick.VAP cache file, set data series days to 60
  2. Add the indicator to the chart.
  3. Under the Operational Parameters section, set the VAPMode parameter value to UseTickVolume and set RebuildVAPCache parameter to Overwrite.
  4. Click OK and when control returns, verify that VAPMode has been auto-reset to UseCache and RebuildVAPCache auto-reset to False; you should also see the session profiles displayed if you had ShowSessionProfile set to True.
  5. Now, if you  if you are using a custom Overnight session templates, you need to repeat the previous 2 steps after changing the data series session template to the custom ON session; make sure the end date is yesterday, not today.
  6. At this point you will have 2 Tick.VAP cache files, one for the RTH session and one for the custom ON session; you can see these files in your C:\CDA_VP\cache folder.

Build the Minute.VAP Cache Files:

  1. To build the Minute.VAP cache files, change the data series to 180 days (or to however long back you expect you need your full composite to begin); set the end date of the data series to be the day before the beginning of the Tick.VAP cache file (i.e., current date minus 60 days); there is no need for the Minute.VAP cache file to overlap the Tick.VAP cache file, but it is fine if they do.
  2. Set your session template to your main (normally RTH) session.
  3. Under the Operational Parameters section, set the VAPMode parameter value to UseMInuteVolume and set RebuildVAPCache parameter to Overwrite.
  4. Click OK and when control returns, verify that VAPMode has been auto-reset to UseCache and RebuildVAPCache auto-reset to False; you should also see the session profiles displayed if you had ShowSessionProfile set to True.

Update your workspace charts:

  1. At this point you now have a Minute.VAP cache file for your main (RTH) session, and a Tick.VAP cache file for your main (RTH) and custom ON session templates.
  2. Now, open you workspace containing the old instrument/contract-month and change the data series to the new instrument/contract-month for all charts.

Is there a setting to keep the VPOC track after the refresh?

Yes, UseMInuteVolume mode or UseTickVolume mode (the glib response). However, in the more commonly used UseCache mode, unfortunately this is not possible. The reason for this may not be obvious until you understand how the caching works….remember the cache file (even the current session cache file) reflects the most recent accumulation of volume-at-price values. On a refresh, this accumulation does not “start over” (as it effectively does in UseMInuteVolume and UseTickVolume modes), so it can only “see” the single price/volume pair in the cache file that has the greatest volume (VPOC) from the last time the file was updated. If you have a current-day-only UseTickVolume mode 25k VB (as I do), there is a possibility I could “record” the VPOC changes from that chart and use that info in the other UseCache mode charts….a bunch of work I’m not sure is really worth the effort at this time.

Why do I have a chart with only current day and VAPMode set to UseTickVolume?

My ES 2500 VB chart runs with VAPMode set to UseTickVolume.  I do this to avoid having “holes” in the daily incremental Tick VAP cache file, which can happen when all your charts are set to UseCache and you have an interruption in processing the real-time stream of market data.  This can happen if you have an unreliable internet connection, you are late to the RTH party and don’t have your charts running before the open, or you have a problem that causes NT or the indicator to be restarted during RTH.   The daily incremental can be created/updated with the UseCache mode chart, but I chose not to let it since I want to insure the most reliable Tick VAP cache, especially for the current session!

So, I rely on my single-day (Days 0) 2500VB chart to maintain the current cache file, with UseTickVolume mode set.  If there is any interruption and this chart refreshes, there will be a “penalty” in time to refresh (approx 10-15 minutes), but the cache file will be correct. To speed-up the initial opening of the workspace you may want to save the workspace with this chart’s VAPMode set to UseCache and then only set it to UseTickVolume mode when you are ready and preferably sufficient time before the open (if the Start date is still set to a prior date). I prefer this approach so I can also insure that the Start and End date is only the date of the current session, in which case, setting VAPMode to UseTickVolume mode will not cause a 15 minute delay to refresh, since that day’s RTH hasn’t yet started.

If you are in the habit of frequently restarting NT or are evaluating different appearance settings, I strongly suggest you either temporarily switch the 2500VB UseTickVolume chart to UseCache or UseMInuteVolume mode, so you don’t have to wait the 15 minutes per day for it to re-process all that tick data.

What should I do if I don’t see today’s session profile or only a partial profile?

If you don’t see a session profile for the current day, that means one of the following:

  1. You don’t have a chart with VAPMode set to UseTickVolume running, or
  2. If you have a partial profile, you either didn’t start the chart prior to the open, or you had an real-time market stream interruption and had to refresh the chart.  Read I noticed you use a 2500 VB chart with only the current day….why is that? FAQ.

How can I improve performance?

  1. Minimize the number of days and options enabled on your intraday chart.
  2. Minimize the number of indicators especially those which process bid/ask or tick data, or whose Calculate on bar close parameter is set to false.
  3. Minimize or close any chart which is not actively needed.
  4. Add memory to your computer; recommend a minimum of 8GB.
  5. Do your charting on one computer and trade management on another.

What are the .lck files and what do I need to know about them?

These are for internal use and you do not need to be concerned about them lock file.  Their use is a mechanism to prevent multiple instances of the indicator from updating the same cache file.  It is created automatically by the indicator instance that is charged with the task of updating the daily current session Tick.VAP cache file and the VB cache file (when SaveVBData is true) .  If you have one or more instances in UseTickVolume VAPMode, the last one started will be the dominate one;  “UseTickVolume” and a system-generated ID will be inserted in the lock file for that instance.

If you ever suspect the cache file is not being updated and you have a UseTickVolume VAPMode chart, delete the lock file and refresh the chart.   If you are using all UseCache VAPMode charts, understand that the last chart refreshed will be dominate and will assume control for updating the daily current-session cache file which means that if this happens during RTH, the file contents will “start over” from the moment of the refresh, not from the beginning of RTH as one might expect.

How do I setup my charts like yours?

The O/N values aren’t directly available to the RTH, but I can show you what I do.

I’ve created a custom O/N session template.

For the ES, I have 5 charts:

  1. 2500vb single-day RTH chart to basically watch the open and to avoid holes in building the RTH session VAP cache as explained in the FAQ.
  2. 2500vb single-day O/N chart to avoid holes in building the O/N session VAP cache.
  3. A 405min RTH big-picture chart
  4. 3min RTH only intra-day chart
  5. RTH & O/N combined intra-day chart

Here’s the Data Series setup for #3.  Both data series are applied to Panel 1. The only reason the data series start date is 2007 is so the the attached VP indicator will be able to plot naked vpocs and gaps from long ago.  Notice the price bars for the 15min data series are transparent.

There are 2 VP indicators attached to the 15min data series and 1 to the 405min data series:

Image 1 of VP 1 applied to 15min data seriesImage 2 of VP 1 applied to 15min data series, and Image 3 of VP 1 applied to 15min data series shows the setup to create the session profiles, the gaps, the micro composite profile from 2/3/2012-3/9/2012, and the full composite profile.

Image of VP 2 applied to 15min data series shows the setup that is used to create only the micro composite profile from 1/20/2012-2/2/2012.  It could have just as well been applied to the 405min data series with the same affect as is illustrated in Image of VP 3 applied to 405min data series to create only the micro composite profile from 2/20/2012-3/5/2012.

The VP indicator setup for the 3min RTH only intra-day chart is basically like the VP 1 applied to the 15min data series on the 405/15min chart.  I simply turn on the IB and VWAP for this chart.  I set the data series to only about the past 60 days.  But if you want naked vpocs and gaps to show up from a long time ago, you would need to begin the start date as in the other chart.

The RTH & O/N combined intra-day chart has 2 data series assigned to panel 1, each with its own session template (an RTH and the custom O/N mentioned above), and then a separate VP indicator attached to each.  The configuration of the one attached to the 3min RTH is the same as the one applied to the 3min RTH only intra-day chart.  This is the parameter configuration of the one attached to the 30min O/N data series session.

If you really don’t need or want to deal with this last chart but still want to see the o/n high, low, and vpoc on the 3min RTH intra-day chart, you would minimally need the 2500vb single-day O/N chart and then draw the 3 lines manually on the 3min RTH intra-day chart during your morning prep.

WatchMyYouTubeVideos