Zach Doty Photograph DSC_0018

Getting Started With Algorithmic Trading

One Introduction to Quantitative Finance, via Algorithmic Trading

Before we begin, you’ll notice this post deals with finance and investing, both of which are highly risky. This site and this post is strictly educational. Nothing in this post or on this website is intended as, nor should be construed as investment advice. Kindly first visit the Disclaimers page before you proceed, taking careful note of CFTC Rule 4.41 regarding hypothetical performance. Further, investing and trading is extremely risky, to the point that 90% of participants rapidly fail. As such, your participation in investing and trading could lead to loss of principal, and even further losses beyond that in some cases. Neither this site in its entirety, nor this post, nor any portion thereof, nor any resulting discussion or correspondence related to this site and post, is intended to be a recommendation to invest or trade mutual funds, stocks, commodities, options, or any other financial instrument. I will not accept any responsibility for any losses which might result from applications of ideas expressed on this site or in this post from the techniques or systems mentioned on this site or in this post. Nothing shown is the result of an actual trade. Neither past actual performance, not simulations of performance assure future results, profitable or otherwise.

Why Am I Writing This?

Similar to my Absolute Beginning Steps for Learning SQL, I’m embarking on a number of education journeys in 2017. Another journey, seen here, is algorithmic trading. Loosely known by several monikers (below), this is an intensive field that may be both challenging and rewarding. As self-accountability and sharing, I’m posting what I learn as I progress.

 

What is Algorithmic Trading? (AKA Automated, Quantitative or Systematic Trading)

Put simply, algorithmic trading (quantitative trading) is trading financial instruments via computers, through logic, programs and preset conditions.

 

Types of Algorithmic Trading

For the purposes of this post, there are two types of algorithmic (algo) trading. 1) High frequency trading (HFT), and, 2) Low frequency trading.

High Frequency Trading (HFT): Speed is the absolute and expensive edge. Co-located servers in New York and Chicago run proprietary code on custom computer hardware, relying on fiber and microwave communications for trading movements that happen in less than a second. Having tried a variant of HFT in 2016, saying HFT is difficult is probably the understatement of the decade.

Low Frequency Algorithmic Trading: What my educational journey is going to focus on. For low frequency algorithmic trading, the trader is the edge, further demonstrated by the trading model(s) and strategy or strategies he/she designs, executes and manages.

Taking a step back, if algorithmic trading is computerized via programs and preset conditions, what main kinds of algo trading logic are out there?

Types of Algorithmic Trading Logic

  1. Macroeconomic news (Examples: Non-Farm payroll reports, FOMC policy minutes, Federal Reserve Beige Book releases)
  2. Fundamental analysis of a financial instrument (Revenues, Earnings releases, Inventory reports, Supply/demand reports, Free cash flow)
  3. Statistical Functions (Correlation, Cointegration, Mean reversion)
  4. Technical analysis of a financial instrument (Moving averages, Stochastics, Relative Strength Index (RSI))
  5. Market Microstructure (Order flow, volume profiling)

3 Core Values for Developing Algorithmic Trading Robots

  1. Market-Prudency (Ideas are fundamentally sound from a market and economic perspective.)
  2. Mathematical Models (Models and strategies are based on sound statistical methods, to maintain positive expectancy and reduce risk of drawdown and loss of capital as able.)
  3. Low Frequency (Trading frequency of the models and strategies are less than one trade per minute. Thus, the strategies do not depend on the speed or computing capacity of computer hardware and/or software.)

Goal: design and execute algorithmic trading models (robots/strategies) using basic software and hardware that average retail traders can afford.

3 Crucial Tranches of Knowledge for Successful Algorithmic Trading

  1. Tools (Trading software platforms, Brokers and execution infrastructure, Coding languages and skills, Performance analysis)
  2. Data (How to access sources, manage, cleanse and use data for algorithmic trading strategies.)
  3. Design Theory (Combining statistics, finance into focused tasks of product development and management.)

Starting Tools

As I start out on this educational journey, I’ll definitely be using the tools below, of which I have no commercial interest in. There may be more tools down the road, but that’s it for now.

  • MetaTrader 4
    • MQL4 language
  • Microsoft Excel
A scenic shot of Palo Duro Canyon from a hiking trail.

Starting SQL from the Absolute Beginning

What is this?

To be honest, I haven’t done much blogging or writing lately. Life (read: work) happens, and it gets busy. However, I’m feeling invigorated with a strong desire to expand my horizons. One such manifestation (snooze, I know) of this is to learn a bunch of new things, for where technology and industry are headed.

Thus, I present to you, learnings on SQL from a course I’m taking! Frankly, this should be boring to a majority of people. However, this is a way of self-accountability, and sharing what I learn along the way about Structured Query Language (SQL) programming, and hopefully how it applies to a bunch of awesome things! If you haven’t bounced already, here we go.

Square 0: What are Databases?

As the title/URL describes, I’m starting from an absolute beginning. While I have a range of experience (or lack thereof in some cases) with HTML, CSS, JavaScript, PHP, Regex, etc., I am completely new to SQL. That said, this isn’t square 1, but square 0.

Databases are systems that allow users to organize and store large amounts of data. Databases can have a wide variety of users and use cases. Potential database / SQL users include analysts in marketing, business or sales. Additionally, technically-focused personnel such as data scientists, software engineers and web developers may also use databases for a range of purposes.

Discussing the Transition from Spreadsheets to Databases

Many practitioners in business have some familiarity with a spreadsheet program, such as Microsoft Excel, Google Sheets or Open Office.

Spreadsheets are often useful for a one-time analysis piece or quick charting, particularly with small data set sizes. Additionally, usage of a spreadsheet program ensures that a wide range of folks with varying expertise can access, use and manage the spreadsheet data.

So where do databases come in? Databases are great for ensuring data integrity and/or handling large & robust data sets/ Databases are also great for use cases where you need to quickly merge different data sets or automate actions with your data for frequent usage or re-use. Additionally, databases are widely used in powering websites and other applications.

In summary, the transition from spreadsheet to data comes when you bring massive amounts of data to life! The hope of the educational materials are that institutional knowledge in spreadsheets can be leveraged to help understand and master SQL database usage.

What are some quick hacks to translating spreadsheets to databases? The first is that tabs of a spreadsheet can be set equal in your mind to tables. Within each table is contained a set of rows, and a set of columns.

What are some of the top SQL database / data warehouse platforms options?

For your enlightenment and education, below are some common SQL database and data warehouse platforms.

  • Postgre SQL (Preferred for example use: free and open source, widely used on the internet, multi-OS)
  • Amazon Redshift data warehouse
  • MariaSQL
  • Microsoft Access
  • Microsoft SQL Server (MS SQL Server Express)
  • MySQL
  • Oracle Database
  • SQLite

 

In addition to straight database programs and data warehouses, there a range of other programs that utilize the SQL programming language for core functions. Below is a short (and rather incomplete list) of other popular SQL applications and uses.

Other Applications of SQL

  • Looker
  • MemSQL
  • Periscope Data
  • Hive (On top of Hadoop)
  • Google BigQuery
  • Facebook Presto

 

A Bit More About SQL

SQL stands for Structured Query Language. It can be applied in a wide range of manners, including PostGreSQL that will be used in these examples. Further, SQL is the programming language that will be used to communicate with databases in this experience.

To start, a sample SQL statement:

SELECT customer_id, first_name, last_name

FROM sales

ORDER BY first_name

 

Review

Here’s a quick overview of what I learned, and have consequently shared.

  • What’s a database?
  • How is a database different from a spreadsheet?
  • Why should a database be used?
  • What are some database / data warehouse platforms that operate with SQL?

If you’re just arriving at this article, here’s my running list of articles that detail how to learn SQL.

Upcoming Educational Material on SQL

  • PostgreSQL Installation
  • Databases and Tables Basics
  • SQL Syntax and Statement Fundamentals
  • GROUP BY Clause

 

  • JOINS
  • Advanced SQL
  • Additional SQL Commands

 

  • Create Databases and Tables through SQL
  • Views
  • PostgreSQL with Python