David Dungay: Tell me first of all - how did you get into this line of work?
Yang Wang: I did my doctorate in artificial intelligence and robotics. When I was looking for a job I found out that there was more demand for my skill set in finance than any other area. So that was why I began to get interested, and after I did some research I thought it would be an interesting direction for me to follow. I studied at the University of Hertfordshire.
David Dungay: What motivated you as a programmer?
Yang Wang: The challenge. It's a very creative job too. You can create a piece of work on a computer that, initially, is formed entirely in your imagination and that's why I like doing this. Programmers are taught to be delivery-driven and do a lot of quantitative analysis.
While I was at uni I was using my quantitative analysis to help control the artificial intelligence part of the robot. Now I am collecting the traders' ideas, of which there are normally many, and I make them into a practical tool or trading system depending on what we are looking for.
Some programmers automate whatever the traders need, or they might go the other way and automate signal and do pattern-recognition programming.
David Dungay: Is there an ideal when it comes to programmer/trader relationships and is there a skill transfer process?
Yang Wang: There is a skill transfer process and that is very important. There is a huge knowledge gap between traders and developers. Traders always want various things and quite often something they want seems like it would be straightforward to them. In actual fact it quite often isn't at all. That is because they don't do the development side of things so they don't know how the life cycle of a project runs, how much it costs and all the other aspects of it.
Most of the time the initial request is vague and they want a certain job done but they don't always know what kind of end product to expect. It is very important to have a good communication link all through the process. I find that, especially in the development part, you have to explain why you are doing certain things and what they are going to expect after a certain piece of work.
In terms of the coding, we are the professionals and we have to let them know at what point they will start to see the deliveries of their product.
David Dungay: What is the quality of traders' hunches?
Yang Wang: Most of them are very helpful because they do understand that programming is something they don't understand very well. Most of the time they recognise this and they realise it takes the two parts to work together to accomplish the outcome.
David Dungay: Where and how do you have your best ideas - I mean, you individually but also you and your colleagues around you?
Yang Wang: We never really have those light bulb moments. It's quite a gradual process and the same goes for analysis or coding. The more time you spend with a project the better ideas you get and little by little it develops from there.
David Dungay: Yes, but how do you normally come up with the best ideas?
Yang Wang: It normally happens when we sit down together. The ideas come from either side, traders or developers, because the two sides tend to look at the same problem from a different angle. It happens more when we sit down together and can talk each other through what we want.
I've had brilliant ideas from traders and I have thought of some myself, so it really takes both sides. You have to make sure the traders and developers have an understanding of where the ideas are leading to, and either side shouldn't take anything for granted.
David Dungay: Could you talk me through the life cycle of an idea?
Yang Wang: First of all someone comes up with the idea. So before we start coding or anything we sit down and talk about what we want at this point. This could be very brief because it could resemble the outcome of another project in development. We agree on the idea and discuss whether both sides think it could work.
We then draw out all the math work and analysis before the coding starts. We also have to agree on the period of time we want this project to be going on, the budget, and so on. Then we can decide on the systems to use and the team to develop that.
After that we start coding. The coding is divided into small chunks and every chunk repeats the same process. The chunk of code is written over a few days or a week and then we issue the delivery, or what we have achieved in that small chunk to the team.
One important thing is that all your development is delivery-driven. You have to constantly deliver something to keep the project going. We do this until the delivery is successful enough, hopefully within the time set out. Then we deliver that to the client or we start a period of test-running to try and encourage the expected errors that might happen. The time of this process can be as short as a couple of weeks or even as long as years.
This process is very textbook for commercial development. The product is not necessarily usable at the end of the project, but rather, while it is being developed so there is not always a definitive end. At the point where the project reaches expectation they may put it into use while the development keeps going.
David Dungay: Given what you've said, I'm not sure whether the word 'outcome' is appropriate, but my question is: does the outcome ever resemble the initial brief?
Yang Wang: First of all, people have different definitions of expectation and outcome. If you have a trading system and all you want to do is interpret the signals and put orders in various places and then treat that in a basic way then this level of automation is quite easy and the expectation is just the process.
If you go further beyond this and try and make the system reach a level of profit expectation, or back-testing expectation, that will be a different story.
When a trader has an initial idea it is difficult for them to have an idea of what kind of final outcome they are expecting. Most of the time it's me telling them what sort of outcome they can expect. After the testing part I can give them all the stats and I can tell them if the idea can work.
David Dungay: Again, I'm not sure if this is a term with a useful meaning, but does it get easier or more difficult to maintain your 'edge' as time goes by?
Yang Wang: It depends. It doesn't feel easier as you get more experienced, because you start to deal with more complex problems, or you perceive the same problem in a more professional way. To do things properly, it is actually more difficult. If I'm coding something simple, something that I would have been doing five or six years ago, it would probably take me more time to do it now. That is because I think it should be done differently now that I am more experienced and capable.
David Dungay: Is there any realistic answer to this question: what actually works?
Yang Wang: Anything can work. What actually works depends on what works for you. Whatever you are going for depends a lot on the circumstances of the project. The budget, time period, your team, what kind of professionals you have, what framework or peripherals you have, and then you try and make the best of it.
I've done things for automated trading which just needed Excel and complicated things that required a whole framework. Different projects, and clients, have different demands. Some want it short and quick and simple and some it want it sophisticated and comprehensive. Some projects demand the best of the best in terms of software and need tailored operating systems.
Everyone wants the lifespan of a project to be very short and the cost to be low, which is doable but you have to sacrifice total success from the final product. Then you have to see if the product can tolerate that diminished success.
David Dungay: Would you say that you have a distinctive programming style?
Yang Wang: Yes there is definitely a style. Different programmers have different styles because there are different tools and directions one will follow in order to complete a project.
David Dungay: If you had a technology wish list what would be on it?
Yang Wang: I hear this request a lot from people I'm talking to, or clients. MATLAB is a great tool for quantitative analysis and it is used in areas outside finance too. It was originally created for quantitative analysis for engineering, I think. People come to me and they want to make a trading system from MATLAB because we already do lots of analysis there.
They can do this, but being an analysis tool it's not a good coding tool for Windows and this can be a problem. When programming you are either doing it for Windows or Linux or another operating system.
MATLAB is not a coding language as such for operating systems so it is such a pain to make it into an application you can use in Windows. When you are on Windows all your developments are tied up with Microsoft-type products and so you are stuck.
Most of us can work with it, though. You can trade with MATLAB but I always advise against it. I know MATLAB is improving and they are working on ways to bridge this gap. This would be great for many of us that use it rather than having to use other peripherals. It would certainly make my life easier when they fix that. Microsoft may hate it though!
Despite this it is a wonderful tool. I have been using it for eight years and I love it. It is very powerful because it was created for scientific analysis and so it can cover all areas of other industries as well.
David Dungay: Tell me - how do you feel about the future?
Yang Wang: I hope it will go well! I think it will. The point of building a tool is to savemanpower or to do something a human is not able to do. It is a useful skill and I think it is going to be more and more important not just in finance but through other aspects of our lives too.
Python is another thing in the programming world gathering speed. I used it at uni. Firstly, like Java, it's free. Python is owned by a charity foundation, it is very popular and it has been upgraded a great deal. I used it and was very happy with it back then. I don't think anyone I know in the business is actually using Python a great deal but I know in areas outside finance they love it.
David Dungay: Thank you very much.