Sunday, January 29, 2012

Elements of Systematic Trading System

According to Irene Aldridge (High Frequency Trading)

the ideal HFT system in production should include the following steps in run-time:
  1. Receive and archive real time data
  2. Create buy and sell signals
  3. Keep track of open positions and P&L
  4. Manage risk positions
and these two task in post-execution time:
  1. Evaluate performance
  2. Cost estimation

In my Juant system, post-execution tasks are not currently present (at least in an explicit way). But, in my opinion, Irene has missed a backtesting module: without it, strategies cannot be tested in a similar environment to runtime.

In the other way, the Signal Generation module is, with Risk Management one, the ideal candidate to have links with Matlab, R and other external mathematical tools...

Thursday, January 12, 2012

Wednesday, November 9, 2011

Why High Frequency Trading cannot be backtested

The reason is simple: as far as HFT impacts on the first price (the highest one for selling operations, the lowest for buying), in a real environment HFT changes the market.

The impact could be minimal for FX markets, where high volumes of transactions are placed, but exists and has effects. Or the impact could be enormous in local stock markets, for instance, where a "touch" to bid/offer prices changes them, modifying market prices and behavior of other actors.

Market impact could be simulated, but, in this case, we have to backtest the simulation.... an impossible fact by definition.

Saturday, November 5, 2011

What is Algorithmic Trading

My previous post, trying to define Systematic Trading, mentions Algorithmic Trading.

As it's described in wikipedia, use of computer programs to materialize trading orders using an algorithm which decides when and how should be traded.

For instance, an algorithmic trading algorithm may be "try to follow VWAP". Traders may use this algorithm to buy (or sell) 1Mill euro of TEF.MC, fixing a level of aggressive, maximum and minimum prices and time to place all stock orders.

Algorithms used in algorithmic trading are well-known. In a future post I will enumerate some of them.

As examples of Algorithmic Trading Systems are (both two commercial) Sungard GLStream, Progress and (opensource -under development-) AlgoTrading.

Algorithmic Trad. is, in fact, a particular case of Systematic Trad. necessary when not enough liquidity and/or high market impacts are expected when trading.

Tuesday, November 1, 2011

What is Systematic Trading

Systematic trading is a way of defining trade goals, risk controls and rules that can execute trade orders in a methodically way.

Thanks to the methodically approach, rules can be tested using past data.

It does not need to include the use of computers, but is almost impossible to achieve trading goals without using a computer and a systematic trading system in which rules are programmed. Systematic traders employ technology to capture profit opportunities.

The opposite is discretionary trading. Compared to systematic trading, discretionary trading has more influence from emotions, no easy possibilities of backtesting and a limited risk control

Similar ideas are algorithmic trading and quantitative trading. But algorithmic trading is more related to how to trade an order or a set of orders, using a set of well-known algorithms. Quantitative trading includes all those kind of trading (systematic, discretionary, algorithmic, HFT...) which uses too quantitative techniques to decide trading options and executions.



Monday, October 10, 2011

Mutual cointegration, single correlation

To clarify concepts; let X and Y two vectors (series datorum)
  • Cointegration between two data series:
X and Y are 1-cointegrated if exists a, ut such that: xt = a·yt + ut

with u stationary in average and variance.
Cointegration tries to capture historical trends and dynamics between two series.
  • Single correlation between two data series:
Correlation captures any kind of relationship between two series
Does not include any kind of historical trends, considering only how one variable explain point by point the other one.


More information on:


Thursday, May 5, 2011

QuantLib

14 hours to compile QuantLib in C++ and the Python wrapper..... 14 hours!

At least it looks interesting.