[ Home Page ] [ Eiffel Archive ] [ Eiffel Classes and Clusters ]

Arc de Triomphe clipart (2486 bytes)

TAL: Technical Analysis Library

Written by Jim Cochrane.

tal_b1.tar.gz (109,663 bytes) — source code
tal_app_b1.tar.gz (295,984 bytes) — binary for Linux
tal_diagrams.tar.gz (110,637 bytes) — BON design diagrams
ftp://ftp.dimensional.com/users/jtc/ (TAL FTP site)

This is to announce the first beta release of the Technical Analysis* Library (TAL). TAL is an object-oriented library, written in Eiffel, that provides facilities for the construction of technical analysis applications. For example, the library can be used to write a GUI-based stock charting application similar to commercial charting programs.

TAL is now available (via anonymous ftp) at: ftp://ftp.dimensional.com/users/jtc/. tal_b1.tar.gz contains the source code for TAL and the application that uses it. tal_app_b1.tar.gz contains the runnable binary of the application.

In addition to the library, a basic, but useful, command-line-driven application is provided that includes several common technical indicators, such as moving average, moving average convergence/divergence (MACD), momentum, and stochastic. (The data from these indicators can be fed into a graphing program, such as gnuplot, for a visual representation.) This application also makes use of what I consider the most powerful aspect of the library: the analysis of market data based on specified technical indicators in order to generate buy and sell signals for markets that meet specified criteria. For example, it can be used to generate a buy signal for a market whose MACD difference line crosses above the MACD signal line within a specified time frame. I have been using this facility for the past few weeks to greatly reduce the time I spend analyzing stock data in order to make trading decisions.

TAL was written using ISE's Eiffel 4.2f compiler on a Linux system on Intel hardware. You will need this compiler to compile the library. However, a binary of the application for Linux/Intel systems is available if you want to try the program out. (At least a Pentium CPU is recommended - the application runs on my old 486-33 computer, but it's rather slow.) Porting the system to any platform for which an ISE compiler is available (including other UNIXes and Windows) should be straightforward.

I am calling this a beta release because, although I have done a fair amount of testing of the library and application that uses it, I have not had time to test it thoroughly. There are likely to be some bugs still lurking within the code. However, since it was written in Eiffel - which provides excellent support for assertions that assist a developer in designing and writing correct code - and since I have taken pretty extensive advantage of this facility, I don't expect the bug count to be large - at least in the library itself. Since the application that uses the library is an extenstion of a test application (and thus not as carefully constructed as the library), it is somewhat fragile at this point and may have a few bugs. For example, if you specify on the command line the name of a file that doesn't exist, when it tries to read the file it will terminate with an "Operating system error." This could probably be considered a bug.

My hope is that others will find the library useful and will use it to write powerful, robust applications and that at least some of these applications are made available, like TAL, to anyone who has a need for them. The most compelling potential application at this point is, of course, a GUI that provides charting facilities and that provides a convenient interface to the library's market analysis facilities.

Also, for developers using object-oriented methods, even if you don't use Eiffel, I think you will find the design of the library very interesting - rich in use of design patterns and pattern combinations, and, for the most part, well-architected. (Any feedback or criticism, by the way, on the design or implementation of the library is welcome.) And, of course, since this is free software, anyone is welcome to use all or any part of TAL (code, design or architectural ideas, etc.) one likes in whatever way one wishes.

This library and the application that uses it are copyrighted, free software released under the Eiffel Forum Freeware License, which essentially allows unrestricted use of the package with the only condition that, if a binary program that uses a modified version of the software is distributed, the modified version of this software must be made available.

If you have any questions about TAL, feel free to send them to me, and I'll do my best to respond. My email address is: jtc@dimensional.com

*For those not familiar with technical analysis, it is a set of techniques for analyzing market data, using indicators such as trend lines, moving averages, price momentum, oscillators, etc. to identify changes in market trends. It is based on the observation that "prices move in trends which are determined by the changing attitudes of investors toward a variety of economic, monetary, political, and psychological forces." ["Technical Analysis Explained," by Martin J. Pring] For those interested in looking further into the subject of technical analysis, I would recommend the book quoted from above, as well as "Trading for a Living," by Dr. Alexander Elder.

[ Home Page ] [ Eiffel Archive ] [ Eiffel Classes and Clusters ]