Equihack is a special purpose language to analyse stocks. It has the goodies you’d hope to find: arithmetic, logical operators, counts, ranks, if/then, logarithm, standard deviation, and more. It also has variables and the ability to group code into tabs, and into a code library. It also has automatic completion, tooltips, a function reference, a tools menu to find the properties (fields) you are looking for, as well as the functions and bits of pre-built code. It is powerful enough that you can read an academic paper or book, and encode the system it proposes easily into Equities Lab and give it a spin.
The editor also makes it easy to explore existing content, and change it. From just changing a few numbers to clicking on an operator and changing it into another one, to see if that works better, or replacing a number with an expression, it’s easy and fun to adapt existing content to make it your own. When you change it, if it’s built-in, you get a new copy in your library that you can keep adding on to. All of our exotic formulas such as the Piotroski score or Beneish score are easy for you to import and modify. Adding a 10th criteria to the Piotroski score is as easy to do as it is to describe.
We allow you to nest expressions to any depth. Humans think recursively, and without limits, and we figured we should too. Our autocomplete and templates expand and adapt to the contents, so that it is easy to read and modify the expressions you are working with no matter how complicated they get. Our variables and tabs make it easy to break the anything into managable blocks. Drag and drop and advanced cut/paste allows you to restructure your term easily without retyping anything.
Our autosave combined with our cloud saves mean that losing work is very difficult. You can scan across previous work to find the version that worked better, compare past results to current ones, and group and organize your work. Our search facilities let you search through our work or yours to find the right tool for the job.
Here you can see a partial list of operators:
|+,-,/,*||hard to go far without arithmetic|
|and, or, not, count, odds||These let you combine true false values, and make sense of subconditions|
|average_within, ema, count_within, stddev_within, etc||These reach back into the past and compare, average, or take the standard deviation over time|
|average_across, rank_across, stddev_across, etc||These let you compare across a peer group, and see the average, standard deviation, etc of the entire group, after excluding some, and collating them into subgroups|
|if/then, greater than, less than, ==||You need these to generate true or false expressions from the data|
|et cetera||A list like this will never be complete; see the current and complete list here|