• Trading

    Posted on September 24th, 2007

    Written by Richard

    Tags

    I basically lived in front of Tradestation this weekend. I’m pretty sure it wasn’t healthy. I will need to eat extra vegetables to compensate, or something.

    The word for the weekend was “Adaptive.” I read Rocket Science for Traders: Digital Signal Processing Applications, which is a great book. It outlines algorithms for automagically estimating the dominant periodic component of price action. If it’s accurate enough to be useful, this is an important piece of information. For instance, if you know how fast price is cycling, then you know the correct period length to use for oscillators, so that they don’t suffer from horizon effects. I made like 17 adaptive indicators for TradeStation so far, and I’ll talk more about them if they turn out to be useful.

    On the stability front, I did manage to break the platform at least 5 times, but that’s not as bad as it sounds. Luckily, the program is very modular (multiple communicating processes), so it never completely crashed. Instead, it continued working in some hampered fashion, and all five times I was able to save/verify whatever I was working on. That was really great.

    3 out of 5 crashes happened when I changed some indicator code, while the indicator was also visible on a chart. Usually, this works without issues. The worst case is if the change introduces an error (like divide by zero, or if you rename a function that the indicator calls), and then the platform just tells you, and takes the indicator off the chart. No problem. Sometimes, though, it decides to die instead.

    The other two crashes are a complete mystery to me. I was just typing in some code, and I think the syntax hi-lighter got confused and messed up the editor. Because, I was unable to type anything else new in that window, though I could edit stuff that was already there, in a limited way. Weird.

    Some things I like:

    • You can tell it to only compute indicators at the end of each bar. This is nice because I think the wiggly lines on the far right in most charting platforms are distracting. I mentioned in the past that I try to use (H+L)/2 indicators in Quotetracker whenever I can, in part because it keeps the indicator value from changing so much on every tick.
    • You can “stack” indicators visually in the subgraphs, so that they don’t take up so much room. I’m not on the right computer to show you a screenshot, but if you’ve seen the EOTPro blog you’ve seen plenty of examples where multiple lines and dots share the same subgraph below the candles.
    • It’s very quick and easy to try random ideas… it encourages experimentation.
    • You can temporarily lock the matrix, so that clicking on it will not initiate orders. Until I found that feature, I was closing the window every time my cat got within 5 feet of the computer.
    • Lots of code available on the net already, for most every public indicator you’ve heard of.
    • The “Radar Screen” has great potential, in that you can compute random facts about the listed stocks via custom code. This is orders of magnitude better than quotetracker, where I had to have charts up for the paintbars to be “active”. So, one thing I’ve done already is applied a “signal-to-noise ratio” computation from that Ehlers book to the radar screen. This tells me at a glance which stocks are too noisy to bother trading at any given moment. I won’t need to waste time looking at charts that aren’t tradeable. (That SNR indicator is pretty sweet, based on my 48 hours of experience with it.)

    Some things I don’t like:

    • Their forum’s search feature doesn’t seem to work with Firefox. Neither do some of their account maintenance pages.
    • No simulation/demo mode to practice in. This also means no simulated forward testing of strategies…. only backtesting.
    • No namespaces or package management for code. You just have to give everything a name you don’t think anyone else will use. And, if you import 100’s of functions from the net, good luck remembering which is which if you decide you don’t need them later.
    • It sure would be nice if they would get rid of the length restriction on function/indicator names, given that I have to make them globally unique. There are other annoying length restrictions. Most frustrating is that they impose a length on the example use you can provide as documentation. Sometimes I was unable to provide an example, becuase no sane example would fit within their length limits.

    I have a number of nit-picky things to say about the language itself, but that’s to be expected because I am a programming language nut. Overall, despite some annoyances, I’m very pleased with the platform so far. I haven’t come across anything yet where I couldn’t figure out how to do it. Of course, now the question is whether all the technology will make me more profitable, or if it’s just a fun distraction.

    This entry was posted on Monday, September 24th, 2007 at 1:03 am and is filed under Trading. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
  • 5 Comments

    Take a look at some of the responses we've had to this article.

    1. David
      Sep 24th
      Reply

      @Richard: I have heard a rumor that TS will – at some point – adopt the full Visual Basic programming engine in lieu of its Easy Language scripting engine. That should hopefully address some (if not all) of the limitations you have experienced with the platform so far.

    2. David
      Sep 24th
      Reply

      @All: I wonder if the group could suggest a list of ‘must read’ books for someone, like me, who is just getting into day trading. This list may require different categories (e.g. psychology, general, technical, tools/platforms, etc.) and maybe even different levels (e.g. beginner, advanced, expert)… But in any case I would appreciate your insights so I can better structure and prioritize my study plan. I don’t know if this is relevand or not but my background is in software engineering (consumer electronics and automotive industry). Thanks in advance for your help.

    3. Teresa Lo
      Sep 25th
      Reply

      RE: Trade Simulation

      I think TS works with NinjaTrader.

      “You can test your system for free with NinjaTrader Simulation Edition…

      You can use the FREE NinjaTrader™ Simulation Edition with real-time market data, market replay data or NinjaTrader’s internally generated simulated data feed to develop and test the integration between your trade system and NinjaTrader™. Why pay during the testing and development phase? With NinjaTrader™ you don’t, allowing you to optimize your trading system prior to deployment without any cost to you.”

      See http://www.ninjatrader.com/webnew/support_TradeStation.htm
      and
      http://www.ninjatrader.com/web/trade_station_automated_trading.htm

      Teresa

    4. Teresa Lo
      Sep 25th
      Reply

      I just posted a comment, but I guess it has links in it, so it disappeared.

      You can do simulation with TradeStation via NinjaTrader:

      “You can test your system for free with NinjaTrader Simulation Edition…

      You can use the FREE NinjaTrader™ Simulation Edition with real-time market data, market replay data or NinjaTrader’s internally generated simulated data feed to develop and test the integration between your trade system and NinjaTrader™. Why pay during the testing and development phase? With NinjaTrader™ you don’t, allowing you to optimize your trading system prior to deployment without any cost to you.”

      Teresa

    5. Sep 25th
      Reply

      Hi Teresa. Comments with links go into a moderation queue, so they take longer to show up. Sorry about the delay, and thanks for the info.

  • Leave a Reply

    Let us know what you thought.

  • Name (required):

    Email (required):

    Website:

    Message:

PHVsPjxsaT48c3Ryb25nPndvb19hYm91dDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cubW92ZXRoZW1hcmtldHMuY29tL2Jsb2cvcmljaGFyZC88L2xpPjxsaT48c3Ryb25nPndvb19hZF9mb290ZXI8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2Zvb3Rlcl9hZHNlbnNlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfZm9vdGVyX2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtNDY4eDYwLTIuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfZm9vdGVyX3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzE8L3N0cm9uZz4gLSAvaW1hZ2VzL2FkLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzI8L3N0cm9uZz4gLSAvaW1hZ2VzL2FkLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8xPC9zdHJvbmc+IC0gaHR0cDovL2V4YW1wbGUuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzI8L3N0cm9uZz4gLSBodHRwOi8vZXhhbXBsZS5jb208L2xpPjxsaT48c3Ryb25nPndvb19hbHRfc3R5bGVzaGVldDwvc3Ryb25nPiAtIGZyZXNoLmNzczwvbGk+PGxpPjxzdHJvbmc+d29vX2FyY2hpdmVzPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5tb3ZldGhlbWFya2V0cy5jb20vYmxvZy9hcmNoaXZlcy88L2xpPjxsaT48c3Ryb25nPndvb19hdXRvX2ltZzwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19iaW88L3N0cm9uZz4gLSA8cD5NeSBuYW1lIGlzIFJpY2hhcmQsIGFuZCB0aGlzIGlzIGEgcGxhY2UgZm9yIG1lIHRvIHNoYXJlIG15IHRob3VnaHRzIG9uIHRyYWRpbmcgZnV0dXJlcywgcHJvZ3JhbW1pbmcsIG1hdGhlbWF0aWNzLCBhbmQgYmFzaWNhbGx5IGFueXRoaW5nIHRoYXQgaW50ZXJlc3RzIG1lLjwvcD4NCg0KPHA+SSBhbHNvIHJ1biB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5tb3ZldGhlbWFya2V0cy5jb20vYmxvZy90ZWFtIj5NdE0gVGVhbTwvYT4gZm9yIHRlY2huaWNhbCBhbmFseXNpcyBzdHVkeSwgYW5kIG9mZmVyIDxhIGhyZWY9Imh0dHA6Ly93d3cubW92ZXRoZW1hcmtldHMuY29tL2Jsb2cvdGFnL2ZyZWUtc3R1ZmYiPmZyZWUgaW5kaWNhdG9yczwvYT4gYXQgdGltZXMuPC9wPg0KPC9saT48bGk+PHN0cm9uZz53b29fY2F0X2NvbG9yXzE0MzE8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfY29sb3JfMTQzMjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9jb2xvcl8xNTQzPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY2F0X2NvbG9yXzE1NDQ8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfY29sb3JfMjwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9jb2xvcl8zPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY2F0X21pZF8xNDMxPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfbWlkXzE0MzI8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9taWRfMTU0Mzwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY2F0X21pZF8xNTQ0PC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfbWlkXzE1ODk8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9taWRfMjwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY2F0X21pZF8zPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfbmF2XzE0MzE8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9uYXZfMTQzMjwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY2F0X25hdl8xNTQzPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfbmF2XzE1NDQ8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NhdF9uYXZfMjwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY2F0X25hdl8zPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfdGh1bWJfaGVpZ2h0PC9zdHJvbmc+IC0gNzY8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfdGh1bWJfd2lkdGg8L3N0cm9uZz4gLSAyMDc8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fY3NzPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY3VzdG9tX2Zhdmljb248L3N0cm9uZz4gLSBodHRwOi8vd3d3Lm1vdmV0aGVtYXJrZXRzLmNvbS9mYXZpY29uLmljbzwvbGk+PGxpPjxzdHJvbmc+d29vX2N1c3RvbV91cGxvYWRfdHJhY2tpbmc8L3N0cm9uZz4gLSBhOjA6e308L2xpPjxsaT48c3Ryb25nPndvb19lbWFpbDwvc3Ryb25nPiAtIHJpY2hhcmRAbW92ZXRoZW1hcmtldHMuY29tPC9saT48bGk+PHN0cm9uZz53b29fZXhjbHVkZV9jYXRzPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19mZWF0dXJlZF9jYXRlZ29yeTwvc3Ryb25nPiAtIFNlbGVjdCBhIGNhdGVnb3J5OjwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlZWRidXJuZXJfdXJsPC9zdHJvbmc+IC0gaHR0cDovL2ZlZWRzLmZlZWRidXJuZXIuY29tL01vdmVUaGVNYXJrZXRzPC9saT48bGk+PHN0cm9uZz53b29fZmxpY2tyX2VudHJpZXM8L3N0cm9uZz4gLSBTZWxlY3QgYSBudW1iZXI6PC9saT48bGk+PHN0cm9uZz53b29fZmxpY2tyX2lkPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZ29vZ2xlX2FuYWx5dGljczwvc3Ryb25nPiAtIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCnZhciBnYUpzSG9zdCA9ICgoImh0dHBzOiIgPT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wpID8gImh0dHBzOi8vc3NsLiIgOiAiaHR0cDovL3d3dy4iKTsNCmRvY3VtZW50LndyaXRlKHVuZXNjYXBlKCIlM0NzY3JpcHQgc3JjPSciICsgZ2FKc0hvc3QgKyAiZ29vZ2xlLWFuYWx5dGljcy5jb20vZ2EuanMnIHR5cGU9J3RleHQvamF2YXNjcmlwdCclM0UlM0Mvc2NyaXB0JTNFIikpOw0KPC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQp2YXIgcGFnZVRyYWNrZXIgPSBfZ2F0Ll9nZXRUcmFja2VyKCJVQS0yMDE4OTcxLTEiKTsNCnBhZ2VUcmFja2VyLl9pbml0RGF0YSgpOw0KcGFnZVRyYWNrZXIuX3RyYWNrUGFnZXZpZXcoKTsNCjwvc2NyaXB0PjwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfcG9zdHM8L3N0cm9uZz4gLSA4PC9saT48bGk+PHN0cm9uZz53b29faW1hZ2VfZGlzYWJsZTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19pbWFnZV9oZWlnaHQ8L3N0cm9uZz4gLSAxNzM8L2xpPjxsaT48c3Ryb25nPndvb19pbWFnZV93aWR0aDwvc3Ryb25nPiAtIDIzMDwvbGk+PGxpPjxzdHJvbmc+d29vX2xvZ288L3N0cm9uZz4gLSBodHRwOi8vd3d3Lm1vdmV0aGVtYXJrZXRzLmNvbS9ibG9nL3dwLWNvbnRlbnQvd29vX3VwbG9hZHMvMy1jb29sdGV4dDQzMzc3MjE3Ni5wbmc8L2xpPjxsaT48c3Ryb25nPndvb19tYW51YWw8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vc3VwcG9ydC90aGVtZS1kb2N1bWVudGF0aW9uL29wZW4tYWlyLzwvbGk+PGxpPjxzdHJvbmc+d29vX3Bvc3Rfc2l6ZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fcmVzaXplPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3J0bmFtZTwvc3Ryb25nPiAtIHdvbzwvbGk+PGxpPjxzdHJvbmc+d29vX3Nob3dfYmxvZzwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19zaWRlYmFyX2FkX2hyZWZfMTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX3NpZGViYXJfYWRfaHJlZl8yPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fc2lkZWJhcl9hZF9ocmVmXzM8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19zaWRlYmFyX2FkX2hyZWZfNDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX3NpZGViYXJfYWRfaW1nXzE8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTEuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fc2lkZWJhcl9hZF9pbWdfMjwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtMi5naWY8L2xpPjxsaT48c3Ryb25nPndvb19zaWRlYmFyX2FkX2ltZ18zPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS0zLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX3NpZGViYXJfYWRfaW1nXzQ8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTQuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fc2luZ2xlX3RodW1iPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb190aGVtZW5hbWU8L3N0cm9uZz4gLSBPcGVuIEFpcjwvbGk+PGxpPjxzdHJvbmc+d29vX3RoZV9jb250ZW50PC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb190aHVtYl9oZWlnaHQ8L3N0cm9uZz4gLSAxNDU8L2xpPjxsaT48c3Ryb25nPndvb190aHVtYl93aWR0aDwvc3Ryb25nPiAtIDIxODwvbGk+PGxpPjxzdHJvbmc+d29vX3R3aXR0ZXI8L3N0cm9uZz4gLSByaWNoYXJkLndlc2xleS50b2RkPC9saT48bGk+PHN0cm9uZz53b29fdXBsb2Fkczwvc3Ryb25nPiAtIGh0dHA6Ly93d3cubW92ZXRoZW1hcmtldHMuY29tL2Jsb2cvd3AtY29udGVudC93b29fdXBsb2Fkcy8zLWNvb2x0ZXh0NDMzNzcyMTc2LnBuZzwvbGk+PGxpPjxzdHJvbmc+d29vX3ZpZGVvX3Bvc3RzPC9zdHJvbmc+IC0gU2VsZWN0IGEgbnVtYmVyOjwvbGk+PGxpPjxzdHJvbmc+d29vX3ZpZHBhZ2U8L3N0cm9uZz4gLSBTZWxlY3QgYSBwYWdlOjwvbGk+PC91bD4=