Friday, August 7, 2015

NinjaTrader 7 Max Drawdown Percent Is Not What You Think It Is

Maximum Drawdown is a common metric used in evaluating trading systems. It is defined  as the largest equity peak to trough percentage loss.

NinjaTrader 7 includes a Strategy Analyzer for backtesting trading systems. The Max. Drawdown Percent value in the summary statistics is very different to the definition.

The Strategy Analyzer has no starting account size. Therefore by definition there can't a be maximum drawdown %. For example, if the largest drawdown in profits occurs immediately, the maximum drawdown % would be undefined due to dividing by zero.

Another consequence of no initial account size is that there is no equity curve. The closest thing is a graph of cumulative profit.

The maximum drawdown % value reported by the Strategy Analyzer appears to be the sum of percentage gains/losses for all the individual trades involved in the maximum cumulative profit drawdown. I can not think of any practical use for this number.

References. See the support articles here and here.

Tuesday, November 4, 2014

Daylight Savings And International Markets In Investor/RT

After my poor experience with Acme Market Analytics I am investigating Investor/RT as an alternative. I ran into a problem with session management here to, however unlike Rancho Dinero, support has been excellent.

The Problem

When the exchange time zone finishes daylight savings time (DST), but your local time zone doesn't change and before New York DST finishes your charts will be incorrect. I am using IQFeed as my data provider.

I am located in Brisbane, Australia and we have no DST. I trade the German DAX in the evenings and they finished DST about one week ago on Sunday, October 26. So from my perspective, last week the Eurex DAX futures market shifted an hour later to open at 17:00 Brisbane time. In Investor/RT this had the effect of leaving an empty gap of one hour from 16:00 and missing the last hour of trade.

The Solution

In Investor/RT session start and end times are specified in the local PC time zone. This is how Investor/RT is designed and so it cannot automatically handle this situation as it has no record of the exchange's time zone.

The only solution that should apparently work seamlessly through international DST changes is to set my Windows time zone to New York. I am not sure how specific the solution is to using IQFeed.

Customer Service

Support was excellent. They operate in US hours, but did respond sometimes after their normal business hours finished. They were also very open about current product design, limitations and how it could be improved in the future.

Tuesday, October 14, 2014

Poor Experience With Acme Market Analytics

This is my first post about trading financial markets. I would rather have not written it. Unfortunately I haven't been able to resolve a product issue and I found the customer service disappointing. So maybe someone else can help me or maybe this post will help others when evaluating these products.

The Product Problem

Acme Market Analytics by Rancho Dinero is a suite of indicators for NinjaTrader. It has a comprehensive set of features, satisfying most of my current requirements. They have put a lot of effort into the design and these are easily the most elegant and attractive NinjaTrader indicators I have seen.

One key part of the product suite is the Acme Volume Profile that includes a feature to split exchange sessions into RTH and ETH profiles. I have set these up for various markets and recently attempted to do so for the ASX SPI 200 Index Futures. This resulted in a strange situation where most days worked fine, except Mondays. It created an extra, small profile just for the first bar of Monday RTH.

My NinjaTrader sessions are configured as follows.



The reason the RTH sessions start at 09:45 is the first print seems to happen in the minute of 09:49, before the publicised open at 09:50. Even if I set the start times to 09:50 the problem still occurs.

The Customer Service Problem

It takes a few days to get through the usual customer service 101 kinds of things. Support recommends session template changes, advises on reloading historical data, etc. I am in Australia, support operates in US hours so communication is slow due to the timezone differences.

I am only new to this market and discover that Pre Open seems to start in the minute before the publicised open at 09:50. Some confusion ensues on my behalf while I am figuring out what is going on.

I end up mitigating this situation by starting the RTH sessions five minutes earlier and write a detailed email to support about this, how I've tried their suggestions and it still doesn't work.

This is where things start to deteriorate. Support throws their hands in the air and says they have no more suggestions, it must be a problem with the exchange.

We go back and forwards a few more times. No solution. I ask for my money back, they refuse.

Not once through this process did support indicate they actually tried to get this working themselves. In general a complete lack of interest in going above and beyond for customer satisfaction. I don't wish to deal with this kind of "support" further, so time to start looking for an alternative platform/product.

Saturday, June 22, 2013

Ripping Blu-rays for Mac OSX, the WD TV Live and everything else

I rip my Blu-rays to play on our WD TV Live (firmware 1.06.43_V), Macs and mobile devices (iPad, iPod, Samsung Galaxy Note II). There have been many issues over the last few years, with subtitles being the last one to solve.

I keep uncompressed mkv files to play on the WD TV Live (and as master copies) and transcode to m4v for all the other devices.

  1. Rip with Makemkv. I use an external Blu-ray drive on a MacBook Pro. Make sure all english subtitle tracks (forced only) are selected. VLC (2.0.6) plays subtitles correctly but the WD TV Live doesn't.
  2. Remux the mkv with MKVToolNix using the default settings - fixes the WD TV Live subtitles issue. 
  3. Transcode with Handbrake (0.9.9 x86_64). Use the iPad profile and on the Subtitles tab select Foreign Audio Search, Forced Only, Burned In.
Working well so far. Can't wait for a decent broadband network and an up to date movie/tv content streaming service in Australia!

Wednesday, November 24, 2010


Continuing on from my post about Optimal Layout I also tried out Divvy (version 1.2.3) for more efficient window management on Mac OS X. My work setup is a MacBook Pro with an external display and Spaces enabled. An important goal is to achieve keyboard only window control.

Divvy is a very simple app. It essentially enables you to divide the screen up into a virtual grid and snap the current window to a region within that grid. The other major feature is the ability to assign keyboard shortcuts to particular regions, enabling you to position and size the current window to one of your predefined regions with ease. There is also an option to use the keyboard shortcuts to move the current window to another display, which I find quite useful.

To tile all the windows on the screen in a particular layout requires shifting the focus to each window to position and size it. If your Divvy shortcuts correspond to where you want the windows than this whole process can be done fairly quickly, without touching the mouse/trackpad. Having said that, I would love to define a layout on the Divvy grid and with a keyboard shortcut arrange all windows on the current screen into that layout.

I have Windows XP running in a Parallels VM in Coherence mode and Divvy does not seem to work with the Windows windows. Some applications (such as Activity Monitor) also have restrictions on window size that Divvy can't change.

Over the days I was trialling Divvy on my work MacBook Pro, I found myself missing it on the Mac at home. For USD$14 and a license that supports use on multiple Mac's, it is good value.

Tuesday, November 23, 2010

Optimal Layout

Inspired by xmonad on linux, I tried out Optimal Layout (version 1.1.2) for more efficient window management on Mac OS X. My work setup is a MacBook Pro with an external display and Spaces enabled. An important goal is to achieve keyboard only window control.

In Optimal Layout, tiling windows in an arrangement requires

  1. explicitly selecting the windows in the Optimal Layout UI

  2. selecting a layout from a list

  3. selecting the target display

My most common use case is to arrange windows in the current space on the display with the focus, i.e. my current context. There are too many steps for this to feel efficient.

The available window layouts are predefined, including the window sizing. After arranging windows, sizing adjustments can be made using the sticky resizing feature, but this requires using the mouse. Furthermore, should you open one more window, you have to go through the whole process again.

I am disapointed with Optimal Layout and am trying out Divvy, which I will post about next.

Thursday, October 28, 2010

Installing XMonad on Ubuntu 10.10 Maverick Meerkat

I installed Ubuntu 10.10 Maverick Meerkat (in Parallels on my Mac) to try out XMonad, the tiling window manager. XMonad is a candidate if I move off the Mac. I am slowly increasing my keyboard use and relying less on the mouse and XMonad is a further step in that direction.

I have never installed or used Xmonad before and after too much time stuffing around with the usual linux problems, these are the steps I followed to get a simple, initial installation working on a fresh install of Ubuntu.

  1. Install Haskell, XMonad and dmenu.
    $ sudo apt-get install haskell-platform xmonad dwm-tools

    Originally, I installed Haskell and then tried to install XMonad via Cabal. Unfortunately the xmonad-contrib package failed to install due to dependency issues.

  2. Set XMonad to be the window manager for Gnome.
    $ gconftool-2 -s /desktop/gnome/session/required_components/windowmanager xmonad --type string

    Found this at Xmonad/Using xmonad in Gnome. Don't log out or restart X now. If you do, you will find XMonad workspace 1 broken. It seems to consist of two Gnome panels tiled to fill the screen but hidden behind the desktop and any further windows you create are also hidden. The next step fixes this.

  3. Create a simple Xmonad configuration file.
    $ mkdir ~/.xmonad
    $ touch ~/.xmonad/xmonad.hs

    Set the contents of xmonad.hs to
    import XMonad
    import XMonad.Hooks.ManageDocks

    main = xmonad $ defaultConfig {
    manageHook = manageDocks <+> manageHook defaultConfig,
    layoutHook = avoidStruts $ layoutHook defaultConfig

    Apply the configuration.
    $ xmonad --recompile

    This configuration was found at Xmonad/Config archive/John Goerzen's Configuration.

  4. Logout and back in again. You should see a standard looking Ubuntu desktop with the menubar across the top and the normal panel along the bottom. See the tour to get started with the XMonad commands.