• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

How to Learn VBA

Joined
2/26/11
Messages
1
Points
13
Hi Guys,

New here:)

Im from a finance background and am currently pursuing a master's in the same field. My professional interests lie on the trading side of banking, and most every job app for trading requires perfect knowledge of excel with VBA.

Im just decent with excel, but know zero VBA. Can someone recommend whats the best way to learn some basic stuff with VBA or any sort of tools/sites which could be be useful? Thanks!
 
Hi. You can search for Deitel How to program VBA books since they are all perfect but for quantitative field (trading in your case) I don't think VBA is a perfect language. If you want to interact with excel you can easily manage your C++ code since they are easily translatable into VBA. I personally wouldn't recommend VBA for computational purposes. The fastest and best language is C++ to embark on. As for its materials, you can search on this site there are perfect recommendations and list of books you can read. Basically, if you want the specifics of VBA for excel you can search for some tutorials since they are perfect but will not contain much information. You should first learn general VBA and then move to VBA for excel which will be easily recognizable after. I personally dislike VBA since it's like an "anti-mathematical" language. You have to write codes that look much like a poem with so long words and sentences. Also take into account that if you want to build GUI, Web-apps, work with ASP.NET, use the ADO.NET and the richest .NET library then you should also consider C#. The basic differences between C++ and C# are provided here. You might be interested.

http://www.thinkingparallel.com/2007/03/06/c-vs-c-a-checklist-from-a-c-programmers-point-of-view/

Best

Tsotne
 
@deltahedge

Basically I'm also in search for perfect language. I am considering building an application that involves GUI, SQL, Web programming, XTML, etc. So I have this kind of trade-off: Fast algorithms in C++ or better overall performance in C# in exchange of algorithms speed. So it depends. As for VBA I had special courses and have quite enough experience with VBA, but it's like "getting old" language. Programmers consider it as object oriented but it's being debated since it doesn't fully satisfy the requirements of OOP language. Also it is component poor on its own and there are some codes which are hard to maintain and create. Simplest things, like it doesn't support method overloading so you have to write a whole poem to get the function work for all numerical parameters. And many others. But it is still being used. All in all, one of the greatest quantitative book "Paul Willmot on quantitative finance" involves the third part (numerical methods) programmed in VBA.

Good luck with it
 
I have a copy of Advanced modelling in finance using Excel and VBA in my bookshelf. If you're already comfortable with excel and have some experience with macros its a pretty quick read at 250 pages and gives a quick rundown on basic equity, fixed income and option calculations. It wont turn you into an advanced VBA programmer but it should be enough to get you started, and small enough to keep as a reference.

C++ is widely recognized as the gold standard, if only for legacy reasons, but it is a beast to tackle without prior programming exposure. Python would be a gentler progression to OOP and is a lot more intuitive (read: less frustrating) to pick up. Learning C before C++ will help you to better understand memory management and ease you into the syntax outside the scope of OOP. I'd steer clear of C#/.Net for the time being, Coming from a M.Fin its unlikely that you'd find yourself applying for developer positions.
 
C++ is widely recognized as the gold standard, if only for legacy reasons, but it is a beast to tackle without prior programming exposure. Python would be a gentler progression to OOP and is a lot more intuitive (read: less frustrating) to pick up. Learning C before C++ will help you to better understand memory management and ease you into the syntax outside the scope of OOP. I'd steer clear of C#/.Net for the time being, Coming from a M.Fin its unlikely that you'd find yourself applying for developer positions.

I agree that Python is a good first language to pick up OOP concepts from. And I agree that C is a good place to start before tackling C++.
 
@ deltahedge: all the advises you got so far are pretty good ..................for a quant or for a high frequency trader.....so my suggestion is: ignore them!!!

As you said, you come from a finance background and you are doing a master in the same field, it means that you are not going to be offered positions such as quant,developer,high frequency trader, model validator,etc.

I have never seen a quant coming from a finance background and there will never be.....purely and simply because that's not your job and there are no banks/hedge funds willing to hire a finance guy for the aforementioned roles.
It would be a waste of time for both you and them.

VBA for a trader is enough because you need to run practical analysis and statistical examination. You won't be asked to create an algorithm and then code in C++

Just look on amazon for a book but "Advanced modelling in finance using Excel and VBA" seems pretty cool to me.

In addition, once you master VBA go for Python. Do not bother with C++, C, C# or .NET ................you are not a programmer and given your background none would ever expect you to know those languages.

Perhaps SQL could be useful to manage a large database. Summarysing:
1)VBA
2)Python
3)SQL

ps I come from a finance background like you
 
As you said, you come from a finance background and you are doing a master in the same field, it means that you are not going to be offered positions such as quant,developer,high frequency trader, model validator,etc.

I have never seen a quant coming from a finance background and there will never be.....purely and simply because that's not your job and there are no banks/hedge funds willing to hire a finance guy for the aforementioned roles.
It would be a waste of time for both you and them.

I intend to prove you wrong
smile.png
 
I intend to prove you wrong :)

Hi Amanda.Thank you very much for proving me wrong....ahahahah.......but the guy is mainly an academic which is a different story

I had a look at the links that both you and Andy posted and the guy is clearly a very good quant ............however I tend to think in terms of probability and therefore the question I ask myself is: how many of them are around?How many banks/funds would be willing to hire a guy like him for a quant position?

Being a financial engineer is surely a fascinating job but if you talk to a headhunter about getting a quant position with an MSc in finance you would be immediately told that you have not the right qualification.

A quant / financial engineer usually has a background in physics, computer science,math/applied math or neuroscience and I think it is smart to go where your skills are appreciated in order to use them at the fullest. Obviously, if you are willing to study on your own...sky is the limit!!! Nothing is impossible but it is going to take time.

On the other hand, if your short-term goal is getting a job, I strongly suggest you concentrate on something that is feasable.
I come from a finance background, I'm a trader but I keep on studying statistics,econometrics, probability calculus and I'm learning Python.
I love studying and I trade using econometrics models but I cannot really apply for a HFT position. They would not even consider my application form. That is precisely why I suggested to ignore complicated programming codes and focusing on languages that are more useful to trading (not HFT).

I keep on saying that the best languages for a finance person who wants to work in trading are: VBA, Python and SQL

Exceptions are there to remember us that anything is possible if you work hard enough but those are sigma3 events........the majority of the observations (~ 89%) are within a sigma oscillating between -2 and 2.
 
I keep on saying that the best languages for a finance person who wants to work in trading are: VBA, Python and SQL.

I agree 100% :)

@deltahedge didn't specify which type of trading position they are considering, I imagine the VBA roles to fall more under fundamental (prop, day, swing) than hi-fre (quant,algo) and believe we derailed at this point.

That said, I personally enjoy playing in that 3rd sigma field :D
 
Last edited by a moderator:
I keep on saying that the best languages for a finance person who wants to work in trading are: VBA, Python and SQL.

Could you provide features making VBA advantageous over other languages??? For example C++.
 
I don't like VBA although it was my first programming language. There is no any aspect why you can say VBA is more powerful than C++ or C#.
 
It will always be debated which language is better and why. In some aspect one is suitable and in some aspect another. Sometimes the language selection is a matter of personal preference but sometimes there are sharp expressions why one is better over other. For example for computational purposes you may choose C++ over C# and for rich .NET library C# might be preferable. The reason why I dislike VBA is that it is not fully object oriented (not as flexible as C++ and C#). And its code looks like a poem. You have to write sentences which I have hated since childhood.

There is no any aspect why you can say VBA is more powerful than C++ or C#.
No one made this claim.

I understand, I read the previous posts.

I only emphasized that for finance and mathematical purpose VBA is not as powerful as others. Not even in graphics, Web-programming, etc.
 
The only advantage I can think of is the direct interaction with excel with no any add-in problems and some code translation needed.
 
@ Amanda: Congratulations for being an example of a sigma3 event........lol ( I love your profile picture)

@ Deltahedge:

1) Nobody ever said that VBA is more powerful than C++ but since you did not specify which type of trader you wanna be it's not really clear what you want to do (do your homework and a bit of research...it will help)

2)Amanda gave a pretty good advise: VBA is good if you are a TRADER not a HIGH FREQUENCY TRADER (go checking the difference)......a HFT needs C++,C#,C,Python, SQL, .NET ..................you must be a great programmer in order to be a HFT

3) A normal trader does not need to know C++ because it is something you need to code hundreds and hundreds of lines and complicated algorithms. Do you think a normal trader would have all this time? A trader knows trading strategies, it is not an expert in stochastic calculus,programming,etc

4) A HFT and a trader are not the same thing so the final advise is you want to be a TRADER you gotta learn VBA,Python and SQL but if you want to be a HFT (where code optimisation and execution speed are crucial) you gotta study C++, C#, .NET, Python, etc

5) Since you come from a finance background it will take quite a lot of time to catch up with all those languages,hence, get back to the uni and study computer science

You can't do everything at the same time. You'd be better off doing some research because it is clear you don't even know what the basic difference between a trader,a HFT, a quant, a financial engineer is.

Keep in mind that you can't do everything. Knowing a lot of things means that you do not really master any.
 
Lots of useful information in this thread, thanks. I too am in the same position as deltahedge. Any other book recommendation sources for a trader, not HFT?
 
Back
Top