Java is an all-purpose language. Check out jQuantlib and Marketcetera to get started.
All quant code in banks is in C++ , you will have better chances of a getting a
job if you do. Why software technicians keep asking the same question and always the answering the same things.
Quant job = C++ mastered. Most quants use Python for tools development & C++ for core apps don't kid yourself. Primary focus on performance is applicable to high frequency trading and market making systems.C++ is not always the fastest, in fact its predecessor C wins almost always hands down. Even there the bottle neck is networking and messaging not computation.
C++ code tends to be harder to understand and to express a mathematical problem in. Quants will find it that functional languages such as Haskell let them think about the problem rather than about language syntax.
Not that Java is that much better in this department as it yields verbose code. Java however has a huge advantage existing libraries and of a very robust software development toolbox for unit testing, continuous integration, refactoring and build process. The last one in my particular issue with C/C++. Fighting linker errors and dealing with messy makefiles create so much noise that performance gains pale in comparison.
If anyone here has a proven "system" for working with large code base of C/C++ code including third party libraries please post.
I must be in a bad dream? Or many of you are just confused in general about how things work on Wall St. Many sophisticated quantitative and computational finance work done today by the top buy side firms who are trading proprietary capital use C++ for core systems development. C++ will usually make up a bulk of the code base at these shops. Think stat/arb desks and market making firms. I can't think of any arb desk or MM firms today who has built their core systems on Java that is actually profitable.
Many algos developed at many firms for client facing order flow like DMA, dark pools, smart order routing etc.. Are usually developed in Java, C#, .NET etc.. and many of the tools and GUi around these systems. There are many reasons for this like better interoperability between GUI and back-end systems, larger pool of lower quality developers, client facing tools usually require much more customizations and rapid changes for client needs speed usually isn't the #1 priority compared to feature set.
Many firms today employ the same people an everyone is using very similar models in the end it's all about speed.
Plain and simple C++ allows a skilled programmer to squeeze much more optomizations out of his code than he could if using Java or C#.
Rodrick what you say is correct but is biased toward electronic markets like equities, futures etc. If you venture a little bit out of there into OTC traded fixed income and fixed income derivatives speed does not matter nearly as much. Sweet dreams.
Definition (wiki): "A quantitative analyst is a person who works in finance using numerical or quantitative techniques."
There is life outside Wall St(US) ;-). Also, there is front end, back end, trading, risk management, quants working for hedge funds, for trader, for rating agencies, for insurance companies, from high frequency to macro-economics, from research to day-to-day business and so on.
I don't understand this quant == trading (front end) + C++
Besides, all the statements without facts make discussion complicated. (E.g. Java is faster than C++, ok but the actual questions is how much).
Rodrick, again, if performance is the 'Key' for making money why you don't use assembler ? why C++ ?
In reality, JAVA or C# has capable to substitute C/C++, but since on Wall St. many sophisticated quantitative and computational finance application were written by C/C++(as Rodrick mentioned as well), therefore, it isn't necessary to spend money to convert all codes into JAVA or C#. JAVA is essential designed for web-application, C# inherited lots of new feature both of C++ and JAVA have(Initially for MSFT want to give a capability for all other type code converted into) . Look into JAVA & C#, they are just similar as C/C++ but adding some more features only.
If you pay attention to today's financial application, you might be able to find out certain new financial application's baseline code is done through C#.
Answering various questions:
David, you are right to ask the % difference, and as someone who used to review programming language implementations for PC Magazine, I can tell you with some authority that you cant get a good simple number.
The problem is that it's a differential equation with boundary conditions, and subjective.
In almost all cases, Java could be faster than C++
It isn't because the people who build the compilers and JVMs don't really take performance all that seriously.
This is unintuitive I believe ?
Fact is that C++ compilers waste a lot of clock cycles because they cannot know the nature of the machine they will run on. In fact you have to tell it what processor at compilation, and subtleties down to various numbers and cores / CPU cache can only be expressed by unpleasant code.
JVMs *could* do this because they know the machine they are running on.
But they don't.
The maths comes in because we have two time terms here.
Time to develop the code and time to run it.
Most code is simply irrelevant to the execution time, so if you free up the programmer from certain tasks which consume his effort, he has time to write faster code.
That I think answers the assembler vs C++ question, I believe the CQF is the only finance course that covers x86 assembler at all, and even we don't do al that much.
But.of course I can stick bits of assembler into my C++, which is something I do very sparingly, and if you find that a headhunter is writing code that goes several times faster than yours, consider despair or more education :)
So to test Java vs C++ properly you'd have to apply a time constraint to the development teams. Also you'd need to have equivalent skill in the teams.
Although Java has some features that some feel make it easier to develop, there is a surprising lack of objective evidence.
Partly I think this is because most of Java's "easier" features can seriously get in the way when you really care about speed. When I delete an object, I want the fucker dead *now*. At the limit I want to be able to tell the compiler how to translate my code, and if necessary I want to access useful operating system features.
Another factor is of course that hardware is typically cheaper than programmer time, meaning that a few cores can do more for you than changing language.
Back when I had the chance to get input into the new version of Excel, I fumbled the case for making VBA multi threaded, sorry. The reason I cared is that VBA is the 2nd most important quant language after C++, and although Excel >= 2007 is threaded, you only have one VBA instance :(
I believe the fact that VBA is #2 supports my case rather well. One can quickly knock together some code that mostly does what you want in an acceptable time. It interfaces nicely with spreadsheets (something Java doesn't), and can talk to every data source on the planet.
But Java programmers are cheaper, hard to quantify this is precisely, since on average they are less skilled and experienced, but a three year experienced Java programmer may easily be on 1/4 that of the C++ guy.
If anything, that ratio is increasing
This alters the economics. Tasks that do not require advanced techniques or high performance can be done as well in Java / C# as in C++, but more cheaply.
This is why banks use packs of cheap Indian programmers for housekeeping IT.
I didn't mention I used to be a CIO did I ?
I mention this because there is a clear division in the advice I give here.
Firstly, if you are a CIO, using Java allows you to buy cheap, medium quality programming time overseas. It also provides a good blame sink for the inevitable screw ups.
As a CIO you have no interest whatever in providing efficient reliable systems, indeed the techniques necessary to do so will hurt your political position.
But if you are writing code, Java is your enemy.
The function (supply, demand, substitability) = bad.price
Showing posts with label Finance. Show all posts
Showing posts with label Finance. Show all posts
Sunday, December 27, 2009
Friday, November 6, 2009
Top 10 careers in finance
Finance -- the sector most battered by the global meltdown -- is making a comeback. News streaming in from top B-school campuses such as the IIMs talks of finance positions once again claiming their place in the sun. Financial heavyweights are flexing their muscles once again on Day Zero. Names currently doing the rounds are Morgan Stanley, JP Morgan Chase, Credit Suisse, UBS, HSBC, RBS, Barclays, Bank of America -- Merrill Lynch, Nomura and many more.
Although a lot of us may want to take advantage of this, a lot of questions may also arise in our mind.
What are the roles these financial companies offer? What is the meaning of all the perplexing finance positions in these companies? What does one do exactly? What is the skill set required? How much does one get paid?
Finance as a career option is a very wide term. In a survey by an education portal, it was pointed out that over 75 per cent students took finance purely because they felt that it paid the most. That shows one thing: mostly students and job-seekers find who opt for this specialisation do not know what they are getting into.
This is an attempt to simplify some of the financial career options students should look at when contemplating a career in finance.
1. Private equity: The role of private equity is to raise funds from large investors and invest the money directly into businesses. The usual manner is to raise money from overseas investors and then find businesses in the growth stage. Most private equity funds 'exit' the investment after a period of time by selling their holding in the business to some other investors or doing an initial public offering of the shares of the business.
Investment banking comprises two major businesses. One is the advisory/ corporate finance role which entails mergers and acquisitions. This would entail understanding valuations, finding targets, negotiation and compliance with legal regulations. The second role is what is more popularly called equity capital markets role. This entails helping corporates raise funds from investors or the public. So it may entail working on IPOs or Institutional Offerings.
3. Fund Management: As a fund manager, one is an important decision-maker typically at a mutual fund. The fund manager has a good overall understanding of the macro factors which affect the markets as well as the micro factors about which company to invest in. He invests money in stock market, debt market, directly into companies, etc depending upon his fund mandate.
4. Equity Research & Sales: The role of equity research is to find out the correct value of the stock which is trading on the stock exchange doing various types of research namely fundamental and technical analysis. There are two types of ERs though. One is the sell-side research which belongs to a brokerage, the aim is to do research and sell investment ideas to investors so as to earn commission on trading by the investor. The second is buy-side research, which is a part of usually a buy side fund like a mutual fund. They analyse the research results of various brokerages in addition to their own research on investment ideas for the fund manager.
This role entails arranging for long-term finance for infrastructure and industrial projects which will take a long time to pay back. The first step is to understand the project, conduct a feasibility study, risk assessment and a detailed financial model. This is done with the purpose to rope in equity partners (known as sponsors) and lenders. Generally the lending part is done by multiple banks under leadership of the syndicate bank.
6. Financial Risk Management: Financial risk management is the practice of creating economic value in a firm by using financial instruments to manage exposure to risk, particularly credit risk and market risk. Similar to general risk management, financial risk management requires identifying its sources, measuring it, and plans to address them. Financial risk management can be qualitative and quantitative. As a specialisation of risk management, financial risk management focuses on when and how to hedge using financial instruments to manage costly exposures to risk. In the banking sector worldwide, the Basel Accords are generally adopted by internationally active banks for tracking, reporting and exposing operational, credit and market risks.
This role entails the entire plethora of banking services required by corporates. Corporate can be divided into largely two sections Large Corporates and MSME which is Medium and Small enterprises. A corporate banker would thus have companies as his clients and service them. Within corporate banking some of the departments are:
• Credit Borrowing to companies for their expansion and working capital requirements. Would entail doing a credit evaluation on the company and sanctioning the loan
• Treasury Help companies manage various types of risks such as foreign exchange, interest rate fluctuations. Treasuries also take proprietary positions to make profit in the 'forex' and bond markets.
• Cash Management Solutions: As most companies have a large number of customers, distributors or branch offices across the country it becomes a huge challenge to deal in money. Banks offer cash management solutions to help streamline this entire operation for its corporate customers.
8. Wealth Management: Wealth management is an investment advisory discipline that incorporates financial planning, investment portfolio management and a number of aggregated financial services. High net worth individuals, small business owners and families who desire the assistance of a credentialed financial advisory specialist call upon wealth managers to coordinate retail banking, estate planning, legal resources, tax professionals and investment management.
Wealth managers can be independent, certified financial planners. One must already have accumulated a significant amount of wealth for wealth management strategies to be effective. Wealth management can be provided by banks, brokerages, independent financial advisers or multi-licensed portfolio managers whose services are designed to focus on high-net worth customers.
The fallout of the events of 2008 has produced a high level of skepticism and distrust among investors, and they will demand greater transparency from their providers to understand what they own, the value of their investments and associated risks.
Also known as consumer banking, it entails dealing with products / services for individual customers. So the scope encompasses getting business for products such as credit cards, savings accounts, personal loans and auto loans. Operational roles would entail teller, authorising, clearing, remittances and customer service.
10. Corporate Finance: A career in corporate finance means you would work for a company to help it find money to run the business, grow the business, make acquisitions, plan for its financial future and manage any cash on hand. You might work for a large multinational company or a smaller player with high growth prospects.
The job of the financial officer is to create value for a company. As a corporate finance professional one is typicall involved in four main activities to meet its objectives: 1) designing, implementing and monitoring financial policies, 2) planning and executing the financing programme, 3) managing cash resources, and 4) interfacing with the financial community and investors.
Jobs in corporate finance are also relatively stable. Performance in these jobs counts, but your job is not going to depend on whether you're selling enough this week or getting good deals finished this quarter. Rather the key to performing well in corporate finance is to work with a long view of what's going to make your company successful. Many would argue that corporate finance jobs are the most desirable in the entire field of finance. Some of the benefits of working in corporate finance are:
• You generally work in teams which help you work with people
• It's a lot of fun to tackle business problems that really matter
• You'll have many opportunities to travel and meet people and
• The pay in corporate finance is generally quite good
Thus, a budding financial wiz should look at understanding which area interests him/her the most and build skill sets which can help take the leap into financial sector.
Although a lot of us may want to take advantage of this, a lot of questions may also arise in our mind.
What are the roles these financial companies offer? What is the meaning of all the perplexing finance positions in these companies? What does one do exactly? What is the skill set required? How much does one get paid?
Finance as a career option is a very wide term. In a survey by an education portal, it was pointed out that over 75 per cent students took finance purely because they felt that it paid the most. That shows one thing: mostly students and job-seekers find who opt for this specialisation do not know what they are getting into.
This is an attempt to simplify some of the financial career options students should look at when contemplating a career in finance.
1. Private equity: The role of private equity is to raise funds from large investors and invest the money directly into businesses. The usual manner is to raise money from overseas investors and then find businesses in the growth stage. Most private equity funds 'exit' the investment after a period of time by selling their holding in the business to some other investors or doing an initial public offering of the shares of the business.
Investment banking comprises two major businesses. One is the advisory/ corporate finance role which entails mergers and acquisitions. This would entail understanding valuations, finding targets, negotiation and compliance with legal regulations. The second role is what is more popularly called equity capital markets role. This entails helping corporates raise funds from investors or the public. So it may entail working on IPOs or Institutional Offerings.
3. Fund Management: As a fund manager, one is an important decision-maker typically at a mutual fund. The fund manager has a good overall understanding of the macro factors which affect the markets as well as the micro factors about which company to invest in. He invests money in stock market, debt market, directly into companies, etc depending upon his fund mandate.
4. Equity Research & Sales: The role of equity research is to find out the correct value of the stock which is trading on the stock exchange doing various types of research namely fundamental and technical analysis. There are two types of ERs though. One is the sell-side research which belongs to a brokerage, the aim is to do research and sell investment ideas to investors so as to earn commission on trading by the investor. The second is buy-side research, which is a part of usually a buy side fund like a mutual fund. They analyse the research results of various brokerages in addition to their own research on investment ideas for the fund manager.
This role entails arranging for long-term finance for infrastructure and industrial projects which will take a long time to pay back. The first step is to understand the project, conduct a feasibility study, risk assessment and a detailed financial model. This is done with the purpose to rope in equity partners (known as sponsors) and lenders. Generally the lending part is done by multiple banks under leadership of the syndicate bank.
6. Financial Risk Management: Financial risk management is the practice of creating economic value in a firm by using financial instruments to manage exposure to risk, particularly credit risk and market risk. Similar to general risk management, financial risk management requires identifying its sources, measuring it, and plans to address them. Financial risk management can be qualitative and quantitative. As a specialisation of risk management, financial risk management focuses on when and how to hedge using financial instruments to manage costly exposures to risk. In the banking sector worldwide, the Basel Accords are generally adopted by internationally active banks for tracking, reporting and exposing operational, credit and market risks.
This role entails the entire plethora of banking services required by corporates. Corporate can be divided into largely two sections Large Corporates and MSME which is Medium and Small enterprises. A corporate banker would thus have companies as his clients and service them. Within corporate banking some of the departments are:
• Credit Borrowing to companies for their expansion and working capital requirements. Would entail doing a credit evaluation on the company and sanctioning the loan
• Treasury Help companies manage various types of risks such as foreign exchange, interest rate fluctuations. Treasuries also take proprietary positions to make profit in the 'forex' and bond markets.
• Cash Management Solutions: As most companies have a large number of customers, distributors or branch offices across the country it becomes a huge challenge to deal in money. Banks offer cash management solutions to help streamline this entire operation for its corporate customers.
8. Wealth Management: Wealth management is an investment advisory discipline that incorporates financial planning, investment portfolio management and a number of aggregated financial services. High net worth individuals, small business owners and families who desire the assistance of a credentialed financial advisory specialist call upon wealth managers to coordinate retail banking, estate planning, legal resources, tax professionals and investment management.
Wealth managers can be independent, certified financial planners. One must already have accumulated a significant amount of wealth for wealth management strategies to be effective. Wealth management can be provided by banks, brokerages, independent financial advisers or multi-licensed portfolio managers whose services are designed to focus on high-net worth customers.
The fallout of the events of 2008 has produced a high level of skepticism and distrust among investors, and they will demand greater transparency from their providers to understand what they own, the value of their investments and associated risks.
Also known as consumer banking, it entails dealing with products / services for individual customers. So the scope encompasses getting business for products such as credit cards, savings accounts, personal loans and auto loans. Operational roles would entail teller, authorising, clearing, remittances and customer service.
10. Corporate Finance: A career in corporate finance means you would work for a company to help it find money to run the business, grow the business, make acquisitions, plan for its financial future and manage any cash on hand. You might work for a large multinational company or a smaller player with high growth prospects.
The job of the financial officer is to create value for a company. As a corporate finance professional one is typicall involved in four main activities to meet its objectives: 1) designing, implementing and monitoring financial policies, 2) planning and executing the financing programme, 3) managing cash resources, and 4) interfacing with the financial community and investors.
Jobs in corporate finance are also relatively stable. Performance in these jobs counts, but your job is not going to depend on whether you're selling enough this week or getting good deals finished this quarter. Rather the key to performing well in corporate finance is to work with a long view of what's going to make your company successful. Many would argue that corporate finance jobs are the most desirable in the entire field of finance. Some of the benefits of working in corporate finance are:
• You generally work in teams which help you work with people
• It's a lot of fun to tackle business problems that really matter
• You'll have many opportunities to travel and meet people and
• The pay in corporate finance is generally quite good
Thus, a budding financial wiz should look at understanding which area interests him/her the most and build skill sets which can help take the leap into financial sector.
Labels:
Careers,
Credit,
Finance,
hedgefunds,
Investment Banking,
Treasury
Subscribe to:
Posts (Atom)