Fork me on GitHub

financeta

App::financeta is a GUI to perform Technical Analysis for stocks using the Perl Data Language (PDL)

Table of Contents

Introduction

History

There are many proprietary and some open source software systems that help an individual learn and perform Technical Analysis on stock prices. Some of these you may have heard of - TradeStation®, MetaStock® and countless brokerage houses providing their own analysis software and tools which you can buy or get for free if you open an account and put some money in it.

However, I just wanted to do research on stocks without having to purchase any of these software systems, nor did I want to tie myself to a specific brokerage account before doing any research. A majority of these software systems have their own domain specific languages (DSLs) that are obtuse, unwieldy and just ugly to use. Sure they have many thousands of customers who are using them and are making money. My aim was to use ta-lib, which is a great open source library that works on various operating systems and has about 132 technical analysis indicators. I felt that with access to these many indicators I could achieve what the other software systems provide without having to pay a penny, and then when I was ready with possibly working strategies, I could pick and choose the appropriate brokerage account and do some trading.

Hence came about App::financeta. I initially tried to write this in C++ but spending time on the GUI seemed like a waste, when I could have been spending time on learning the indicators and trying out various strategies. So I switched to using Perl (using the Prima package) to build the GUI and using the Perl Data Language aka PDL to perform a variety of mathematical work. I also looked at R before I looked at Perl, but R does not have a decent GUI making library. Moreover, I would have to create a variety of scripts for each combination of indicators I wanted to try out and various other idiosyncrasies of the available libraries would need to be dealt with. This seemed cumbersome, and I wanted to be able to automatically perform tasks like picking indicators, adding them to the data sets and looking at the plots in a couple of seconds without having to type anything. Some of you may wonder why I did not use Python and NumPy to write this application, and all I can say is that I wanted application development to be fun for me!

So in essence, I wanted to trade my own money (not like those hedge funds and banks who are trading with someone else’s money) with my own software, and with the freedom of choice of picking a brokerage account with the least commission at a later date. I also did not want to do any day trading or high frequency trading, since I wanted to learn how to do investing like a normal person and not worry about having a super high speed internet connection and other facilities that cost too much and give too little.

What will this software do ?

The aim of App::financeta is to do the following in no order of importance:

What will this software not do ?

This software will not do the following, although as time progresses this list may change:

What kind of users does the software cater to ?

Initially the software will be catered to those who know what they are trying to do but as time progresses, the software will be able to help those who just want to analyse stocks and make decisions on whether to trade or not. We will get there as time progresses and I believe that great documentation and easy workflow will be a necessary requirement for this software to progress in that regard.

How much does this software cost ?

This software is free to use and you can look at the license here. We are however not responsible for any profits or losses or emotional trauma caused by using this software. Use at your own risk and with your own intelligence.

What next ?

Get started with installing the software as given here, read the FAQ and then start learning how to use it.

Hope you have fun using the software as much as I enjoyed writing it!

Table of Contents Next