Published on

Welcome to Quanti Frutti!

Authors

Hi there and welcome to Quanti Frutti!

What is this?

Quanti Frutti is a blog about Algorithmic Trading, Quantitative Finance and Financial Engineering in general.

Why this?

I decided to start this blog for multiple reasons, the main being my wish to share the few things I know, connect with other enthusiasts and eventually consolidate and expand my knowledge about this fascinating topic. Whilst I was studying and building my knowledge of quant stuff, I found the content available on the internet very helpful and so I decided to do the same, with the hope that someone else might find my content valuable for their journey in this field.

What's different on Quanti Frutti compared to other quant blogs?

Not very much. But being a rock and roll fanatical, I decided to bring in a small treat: in each post I will include a nice tune of my choice. As simple as that. Hopefully you will enjoy it, but if you're not into it it's OK, you can skip the track listening and just read the posts. They should anyhow (hopefully) make sense.

And by the way, here's the song for this post:

Something familiar, right? Keep reading...

What does Quanti Frutti mean?

"Quanti" is the Italian word for "how many" and "frutti" is the Italian word for "fruits". Fruits in Italian as well as in English, is used to express the good results of work, or of an investment. The Italian verb "fruttare" sometimes is used in place of "make" or "earn" in financial contexts. "Quanti" is also similar to "quant", short for "quantitative". Lastly, "Tutti Frutti" is a famous 50s rock and roll tune by the great Little Richard. You hear me now, right? Quanti Frutti!

"Too much fantasy!" or "No fantasy at all, Renato!" you may be thinking now. I liked the sound, so I went for it!

Yeah, all cool, but what does rock and roll have to do with nerd stuff and trading?

Nothing. Or everything.

Rock and roll for me is a state of mind and an attitude. It's David against Goliath. It's the never ending struggle against something bigger than you. It is getting up again after you have fallen. It is stubbornness. It is facing your fears and staying focused on your goal no matter how hard it is and how much the world around is working against you. But rock and roll is also fun and lightheartedness, and the ability not to take yourself and what happens to you too much seriously, to see everything with a wise coolness and take action again and again to put things right. Now think of trading against the unpredictable and mighty financial markets. Think of writing that challenging and performant program to backtest or implement your trading strategy. Think of taking a loss and being emotionally ready to understand what went wrong and work something up to repair.

Can you see some similitude? I hope you can.

Obviously, I don't expect anyone else to share the same feeling. This was just to tell something more about the blog and me, about my personality and how my tastes relate to this business. On the other hand, in this industry it's not rare to find people with peculiar traits, as the intellectual challenges to overcome are significant, and I believe that people who decide to face these challenges often have their own strong opinions, personalities and tastes, which sometimes can be uncommon.

And indeed, the common intellectual background in the world of algorithmic trading brings another weapon on our side: science, in the form of statistics mainly, leveraged to make informed decisions, aiming to maximise the profits and limit the financial risks. Science and rock and roll, who would have thought.

Well, at this point you should have a clearer idea about the character of (and behind) this blog, and hopefully you are not thinking that I am a weird one.

OK, algorithmic trading, what is it all about?

If you are already into quantitative stuff, you can end reading this post here. Otherwise, keep reading.

Let's start with what is trading in the financial markets first, and let's do it with a picture:

buylowsellhigh

Yes, you got it right.

You buy something at a certain price to sell it at a higher price. The difference between what you earned by selling and what you paid is your profit.

You can trade several financial products and their derivatives (equities, commodities, currencies, options et cetera) in their own dedicated markets.

Some also say "buy high and sell higher", but essentially the trick is the same: you try to buy something that you think will appreciate in price to sell it later and take the profit.

Without going too deep, it's worth to know that there is another way to make a profit. It is called short selling: you sell something you don't own by borrowing it and then you buy it again to give it back ("covering"). Now, in this type of trade your view is that the price will decrease, so when you buy later at a lower price, the difference between the price you sold initially at and the price you paid to buy and give it back is your profit. Short selling, however, is highly risky and should be done by experienced traders.

Things don't go always the way you predicted. If you'd like to learn more about short selling, read this interesting fact about the GameStop short squeeze happened in January 2021.

And if you would like to learn more about the basics of trading, you can read this short guide by Investopedia.

OK, let's see what is algorithmic trading now. Let me explain it to you with a sentence: algorithmic trading or quantitative trading is teaching computers how to trade in the financial markets.

You start with a trading strategy idea and you develop some computer programs to implement that strategy systematically so that the computers can place buy and sell orders through your broker (or directly at the exchange, by direct access to the market). The orders are triggered by signals, which represent the strategy implementation, the decision making like if you were trading manually. But in algorithmic trading the signals are generated by the computer, based on some data about the prices of the product you are trading. You keep constant access to the prices' data, which the computer takes as input, producing the signals and placing orders as output.

Now, this is a brutal simplification of the whole process, but it's enough to have a basic idea of how algorithmic trading works.

As mentioned before, algorithmic trading heavily leverages science branches such as statistics and probability to research whether a strategy can be profitable and to optimise its implementation. And this is the great advantage of algorithmic trading compared to manual trading. Further to the fact that humans cannot operate with the same speed of a computer, they cannot either process data and make decisions with the same frequency as a computer. Algorithmic trading is backed by science, and it's "statistically" more likely to produce profit as opposed to discretionary trading. This is because by the time an algorithmic trading strategy goes live, it has been tested and optimised on an amount of data that a trader cannot even just read during her/his entire life.

Usually there are some steps between a trading strategy idea and its deployment it in the market. These involve:

  • Defining the trading strategy
  • Risk management
  • Backtesting the strategy
  • Paper trading the strategy
  • Trading the strategy live

The list above is not exhaustive, but it summarises well the process at a high level.

Apart from the self-explanatory steps, risk management consists of evaluating the potential losses implied within the strategy and the measures to limit and prevent them. This usually consists of trades exit strategies in case of adverse market conditions, evaluation of capital allocation to maximise the profit and limit the value at risk, evaluation of the volatility (change over time) of the product price to forecast the potential losses. Risk management may also involve the measures to prevent risk associated with technical failures of the trading system and infrastructure.

The trading strategy backtesting is the process of evaluating whether the strategy is profitable and worth to be optimised, translated in a computer program and eventually deployed in the real environment. The backtesting is computed by feeding into the algorithm the historical prices of the product meant to be traded.

Paper trading consists of deploying the trading strategy in the financial markets using live data, which the algorithm has never seen before, as opposed to backtesting where historical prices are used. What makes paper trading peculiar, though, is the fact that the money used is virtual, so there is no real risk of losses. It is essentially the deployment of the strategy with a demo account, for the purpose of testing the strategy in the real environment and without financial risk.

The last thing I want to mention is the classification based on the trading frequency, that is, how often signals are produced and orders placed in the market. There are essentially three categories:

  • Low frequency trading
  • Medium frequency trading
  • High frequency trading

The classification has no strict rules, but can be generalised in the following way:

Daily or even less frequent trades for low frequency trading. Intraday trades for medium frequency (all the way down to 5-15 minutes intervals). Anything below 5 minutes is high frequency trading, where signals and orders can be produced even in a very small fraction of a second.

As you may imagine, the higher the frequency the more complex and expensive becomes the technology used to deploy the strategy. It is a war on speed. High frequency trading firms usually have their servers colocated within the exchange to minimise the transfer time of data. This increases costs and complexity further, but becomes necessary for the strategy to be profitable.

The frequency rate lays also some constraints on the programming language used to develop the trading software. High frequency trading requires a fast and performant language. The most used language in these applications is C++, whereas for medium and low frequency trading a common one is Python, slower but simpler, hence faster to develop.

OK, I think it's enough for this introductory post. If you made it until here, congratulations!

Thank you for reading, and see you in the next post!