Monthly Article
Topics for February

This Issue
February 2001

Various Topics
Page 1

Tech Talk
Page 2

Market Statistics 
Update &  IPO's
Page 3 

  The views and information expressed in this document reflect the opinions and experience of the author Robert C. Pelletier.  Neither CSI nor the author undertake or intend to provide tax advice or trading advice in any market or endorse any outside individual or firm.  All recommendations are provided for their informational value only.  Readers should consult competent financial advisors or outside counsel before making any software purchase or investment decision.  CSI does not stand behind or endorse the products of any outside firms.

Copyright (c) 2001 Commodity Systems Inc. (CSI).  All rights are reserved.


Topics discussed in this month's journal.
Engaging Unfair Advantage's® MarketScannerT to Find Solid Trading Opportunities

Engaging Unfair Advantage's® MarketScannerT to Find Solid Trading Opportunities

    Over the last few months, we have introduced readers of the CSI Technical Journal to Unfair Advantage's new MarketScanner software. Through examples of programming code written in Perl,T and specific scanning and filtering instructions, we've tried to demonstrate this software's capabilities in helping you convert market opportunities into solid profits. CSI's Steven Davis developed MarketScanner, but I have become its number one fan and user here at our office.

    I spent several hours during the past couple of weeks developing an original Perl trading system, intending it as another example program for inclusion in Unfair Advantage (UA). Whether or not I will actually publish my results will depend upon my progress with this new study. Yes, there is substantial value in UA's MarketScanner, especially when used with that fussy language known as Perl. I'm sharing this anecdote to demonstrate that you, too, can use MarketScanner to uncover your own little trading gems. We hope you will look into the Perl system, as it is a major goal here at CSI to offer tools or ways to implement tools that will help you be a successful trader.

    Although I may choose not to give up the details of my new system, I will say that it is a modified version of the Emerging Market study that we reported upon in the 12/2000 CTJ. My analysis focused upon the last year of market activity (from the middle of January 2000 to the middle of January 2001) because this was a time when the market experienced serious volatility and very notably choppy behavior. As an Unfair Advantage user, you could do likewise with your own studies. My results were derived from a study of the entire NASDAQ (OTC) market, about 7,000 to 8,000 stocks. The study simulated any number of trades in each stock, keeping records on the past performance and recommending new opportunities for the day following the last day on file. In other words, MarketScanner supplied the results over the past year to build confidence that the trades planned for tomorrow would be worthy of the risk. In this case, the results were outstanding.

    I had a second objective in my recent programming exercises, and these results I will share with you now. After developing my new trading system, I set out to see if it would be possible to duplicate my experience with other data services. I wanted to find out if MarketScanner is truly distinctive among systems available to traders. Although we developed our program independently and designed it to take advantage of UA's unique data warehousing features, we had not, up to that point, compared its capabilities with those of other data retrieval/analysis systems. 

The MarketScanner Experience

    MarketScanner had no problem accommodating the scope of my study because it can view daily data on about 30,000 stocks at once, covering several years of trading with varying levels of specified precision. The NASDAQ study took about 15 minutes to run because it involved a full year of historical data on such an extensive list of stocks. I did not feel limited or hampered by the software in performing the analysis I had envisioned. In fact, I plan to expand the study to cover commodities utilizing MarketScanner's recent enhancement that allows analysis of nearly 1,000 world futures markets with Perpetual Contract® data. To scan 1,000 futures markets is quite quick with Market Scanner because of the few markets involved.  With such a capability, few world opportunities should escape detection.   MarketScanner can scan every stock and futures market every day to produce a snapshot of selected opportunities from among all possible opportunities. The programming interface I used was Perl, a very fast and capable (though somewhat quirky) language that comes with Unfair Advantage through a paid redistribution agreement with ActiveState. We paid so you won't have to.

Counterpoint: Omega's Radar ScreenT and TC-2000T

    Both Omega Research'sT product known as Radar Screen and TC-2000 can only view about 2,000 stocks. These services just can't keep up with UA because their software cannot efficiently handle large stock inventories with much more than a month of history. In the case of TC-2000 and Omega, the number of days of history one might review with their respective scanners was said to be about 30 days. Technically, the limit may be longer, but at a very, very, serious penalty in waiting time. Indeed, speed is a very noticeable difference, particularly between MarketScanner and RadarScreen. With the latter, the process is slow. Very, very, results-after-a-lunch-break slow, even with the limited number of stocks allowed. 

    The engine behind Omega's RadarScreen software is the user-friendly, but comparatively slow Easy Language® coding system. Although it is fairly simple to understand, it has no printed manual to help you troubleshoot your application. TC-2000's coding scheme is limited to very brief one-line expressions, not the full language capability of Perl or Visual Basic, two seasoned MarketScanner-supported languages with extensive reference materials readily available. Another limitation of CSI's competitors is the total lack of any capability to manage an extended level of precision in summary calculations.

    All in all, I hate to imagine scanning years of data with either RadarScreen or TC-2000. In my experience, if you can't view a large number of stocks, then you really won't get much out of a scanning application. When scanning for opportunities in the equities market, you should not be limited to a small subset of stocks, and you should not have to trade off between quantities of stocks or historical depth. There are thousands of stocks to consider each day. Only UA can review every one of them against your set of criteria, allowing you to make an informed decision on the best ones to trade. 

    Unfortunately for users of other data systems, the enormous data reserves available to UA users dwarf those of our competition, which typically offer only a subset of CSI's vast historical reserves. Fortunately for CSI customers, MarketScanner is provided at no extra charge as part of the Unfair Advantage data retrieval, warehousing and analysis system. Compare CSI's FREE MarketScanner with Omega's $2,419.39 (inclusive of P&H) for their RadarScreen program. What's wrong with this picture?

    We are glad to learn that some customers have already begun exploring MarketScanner and modifying our Perl language Emerging Market study for their own purposes. More good things are on the horizon. A new feature destined for a forthcoming UA release is the ability to add custom-programmed studies to charts. The studies you might add are more than the one-line expressions offered by TC-2000 and MetaStock®, and can make full use of either the Perl or the Visual Basic programming languages. This work concentrates on speed of application, flexibility of programmed code, and the superimposition of color coordinated study results on basic bar charts. Next month we hope to offer some study result examples using the above UA tools.

    [Below] are a number of "Perl Tips" to help you along your way. They highlight some of the complexities of programming with Perl, but they are not intended to imply that learning Perl is not worth the effort. To the contrary, Perl is arguably one of the most versatile, efficient languages available, and it makes our MarketScanner unquestionably the most efficient scanning tool a trader could hope for. Consider the cost of acquiring data and scanning programs from our competitors versus the cost of getting data and market scanning software from CSI. Since MarketScanner is free with Unfair Advantage and CSI provides both commodities and stocks for very modest license and update fees, you could pay a programmer to write your algorithms in Perl with the money you would save at CSI -- and still have money left over to invest in the markets.

Bob Pelletier

Perl Tips

    In Perl, all scalar values must be preceded with a '$' sign, and all Perl variables are assumed to be floating point unless otherwise denoted as an integer.

    The value of 0 implies false.  For example, "if($i) {  do this  ;}" would require $i to be 1 before evaluating the expression "do this." On the other hand, the expression "if(!$i) {do this; }" would only process the 'do this' expression if $i were zero. 

    Perl honors 'GO TO' statements such as 'if($i<0) {goto done;}." This would return control to the section of the calling program where 'done:' had been specified.  A label in Perl requires a name and a colon to qualify as a label. That semicolon before the right curly bracket is a required end of statement sentinel demanded by Perl.

    You can also assign a label and test for it.  For example you would define a label as follows:
         mylabel = 'fnext'; 
if($i<0) { $mylabel = 'done';}   where done: is positioned at the left side 
of a line where control might be transferred.
if($i>0) { $mylabel = 'start';}
goto $mylabel;   would take you to done: or start: depending upon the value of $i

    Perl does not allow for displaying a progress bar while processing data, so we recommend testing any new algorithm on a limited data set before running a potentially lengthy scan.