Interview with Ivan, Winner of the Q15 Quantiacs Contest

Quantiacs
Geek Culture
Published in
7 min readJan 24, 2022

--

Ivan joined Quantiacs in 2021 and won the Q15 futures contest. His system has got an allocation of 1M USD. Here you can read more about Ivan and his thoughts on Quantiacs.

Hi Ivan, can you tell us more about yourself and your background?

Hi, my name is Ivan and I am in my middle thirties. I got a Master Degree in Financial Mathematics and currently I am Head of Department in an international corporation. In my position I lead a group of programmers and IT specialists. I write mainly in .NET on a daily basis.

In my free time I like traveling, reading philosophy books, playing computer games and table tennis and watching videos from the Galkovskyland YouTube channel. So far I visited 30 different countries, and I want to visit many more!

Why did you step into quantitative trading?

I considered three options for my Master studies in Russia.

The first option was software development, but this career path was not too interesting for me at that time. I did not want to develop a career as a pure software developer. I should have started with basic tasks like implementing web forms and connecting databases. I wanted to learn more.

The second option was mathematics. I was interested in probability theory. I also found appealing abstract mathematics. Probably I would have chosen abstract algebra.

The third option was financial mathematics. I chose it as it combined both programming and mathematics. I liked to work with the data and I had the opportunity to work with wonderful teachers, like my supervisor Viktor Konev. He was nominated Professor of the Year in Russia and performed his research at Stanford University. At that time I also started writing my first trading strategies.

Then, after graduation, I worked as a programmer. In parallel I studied the books by Hull and Wilmott and worked for several months for a top investment bank in London.

What was your role at the investment bank?

I was dealing with risk calculation. The task was to calculate the amount of money that should be set aside in connection with some specific risk, for example Interest Rate Volatility risk. For evaluating risks I was using Value-at-Risk and Expected Shortfall.

For this job, it was important to know differential equations, probability theory and basic financial mathematics, such as the Heston model. But knowledge in programming was not so important. A basic programming knowledge was sufficient.

Is your current programming job related to finance?

Not at all. My team develops and supports several projects based on the .NET stack and other frameworks. I take part to meetings, write code and run technical .NET interviews.

Running interviews is a big task for me. In principle, I can give an approximate evaluation of a candidate after two or three questions. However, recruiting is crucial for our company, and it is mandatory to accurately evaluate candidates.

One thing I noticed, after working in different teams for more than 10 years, is that there are serious inefficiencies in the software development area.

Which inefficiencies are you talking about?

Take for example the implementation of a web form using modern front-end frameworks: building it can take more than a minute. Compare it now with the time taken by other tasks and you realize that something is wrong. A neural network can be programmed in about 10 Python lines, and a game on a smartphone with a complicated graphics runs at lightning speed.

I believe that there is something wrong with modern front-end development. In my experience, often some of the stages of a framework like Scrum are transformed into a Cargo Cult and their efficiency is not really properly assessed.

Which methods do you use in your own team?

We tried to work using different frameworks and ended up with our own one, which we call “Reactive Scrum”. This is basically the format which is most convenient for me and my team. It amounts to using Scrum and doing the minimum number of iterations to get the final result.

A common task for programmers is to rewrite the code by strictly following the usual SOLID, DRY, KISS and YAGNI principles when some requirements are changed. This in my opinion is not always necessary and it depends on the boundary conditions. Will it be the last change? Is it a priority?

Many times I met experienced programmers who were categorical on these issues and refused to take a different approach respect to the one they were used to, claiming that the code would have turned into a “big ball of dirt”.

I think that rules should not be blindly followed. Sometimes you have to break them to increase efficiency.

Do you consider yourself more a programmer or a trader?

I am first of all a gamer who plays programming, trading and other games. I think about my programming job as playing a programming game.

I also like to work remotely from different places. Today I am in Belgrade having breakfast at a hotel, tomorrow in Amsterdam, three days later in Paris, a week later in Budapest.

Your winning strategy is called “Duckling PentaKill.” Do you play video games?

Yes. For example, I reached the 85th level in Lineage 2 on rate x1. It took me 1.5 years. Now, of course, I don’t have so much time to play anymore.

Which platform for quantitative trading did you use first?

I started coding in C++ for a company I worked for. The algorithms which were implemented resembled those from “Financial Modeling using C++” by Chandan Sengupta. My first major platform was Quantiacs and I was surprised by how easy and convenient it is to write algorithms compared to other projects in C++/C#.

Why did you join Quantiacs?

Since I started school I liked participating in different science and technical competitions. I reached the top spots in my area in Mathematics, Informatics, Chemistry, Geography, Physics, History and Literature.

As a Master student I won the Potanin’s Scholarship. I was among the 300 winners selected from a base of 8 000 students from top Russian universities. The winners met in Moscow and we formed 50 teams. My team was among the seven winners.

One year ago I participated in “The Best Private Investor — 2020” on the Moscow Stock Exchange and ranked 67th (33rd if we consider only the stock market) out of more than 15 000 participants.

At the end of December 2020 I was looking for information on quantitative trading on YouTube and I found a video talking about Quantiacs. I read about the project and got very interested in it, so I signed up.

What is your impression about the platform?

In my opinion Quantiacs is a very convenient and simple platform for developing trading strategies. I remember how hard it was when I started to work on the optimization of trading algorithms around 15 years ago, and I am really happy that I can easily implement my ideas with Quantiacs.

With Quantiacs it is easier to develop as a Quant for those who aspire to do that. Moreover, it is possible to earn money on the platform. As Dmitry Galkovsky writes, “the man of the future is a gamer”, and the platform users are also gamers who can earn money playing a game.

Which methods do you use for developing?

I try to use all methods available, taking my inspiration from mathematics, software development and trading. For example I wrote an internal library in С++ to create optimal solutions using a special Software Development Kit for an in-memory database. I planned to use also the CUDA SDK for videochipset computations, but it turned out to be not really relevant. Throughout my life I used Fortran, F#, Mathcad and MATLAB.

I believe that the asset type (futures, stocks, etc.), the volatility, the political environment, the market phases and the latency of the algorithm are the key parameters for choosing the optimal strategy. I do not have a specific favorite method. The best method is to consider different methods.

Take neural networks for instance. There are several types of them and each network has a certain set of parameters: the number of layers, the number of inputs, the number of outputs, the activation function and so on.

You can apply them to the problem of developing trading strategies in different ways: for determining the values of the stock prices at the next step or for assessing trends.

Data can be also used in different ways: you can start from raw data, processed data (e.g. with a Kalman filter), and so on.

Which tools should we add to Quantiacs for helping you with system development?

It would be great to have the opportunity to have at our disposal some really difficult and interesting algorithm. For example I would like to see some example based on neural networks, other machine learning methods, or some other relatively complex mathematical theories, like martingale theory.

Which datasets would you like to have at your disposal?

I would like to have data about the cryptocurrency trading volume. In addition, data on American Treasury Bonds and Notes could be added for developing algorithms forstock trading.

Also data from other stock exchanges (London, Nikkei, Hong Kong, Euro Stoxx) would be interesting, with the equivalent of the Treasury Bonds and Notes for the corresponding countries.

What advice do you have for aspiring quantitative reserchers?

I can answer to this question from different perspectives.

From the point of view of a software developer, one should write and test as many strategies as possible. The more strategies you write, the faster you get in writing them and getting the results. You should learn Python, which is a powerful language for analyzing data.

As far as mathematics is concerned, knowledge of probability theory and differential calculus is important. Ideally, you should read a lot of articles and be able to apply the strategies which are described there.

From the perspective of data analysis, it is important to know how basic data analysis algorithms work: regression, neural networks, decision trees, bagging, boosting, Support Vector Machines, stacking.

It is important to join informal meetings on software development, data science and trading as you can get valuable advice there.

But please:

1. Don’t trust anyone.

2. Remember: “Barzini will try to strike first, they will try to make an appointment for you through someone you trust, he will guarantee your safety, but at this meeting they will kill you… Whoever offers to meet with Barzini is the traitor.”

Stay safe.

Thank you Ivan and good luck with the new Quantiacs contests!

--

--

Quantiacs
Geek Culture

Quantiacs is building a crowdsourced quant fund and provides quants worldwide with free data, software and computational resources.