I use Java. I was a C++ programmer for many years. I would choose Java/Kotlin or C# but C++ or Python are fine depending on various factors.Hello,
I'm learning to code in JAVA with the plan to create an algo trading system using JAVA + Interactive Brokers API. I would like to know if anyone used JAVA to code there automated trading systems? I mainly hear of people using Python for algo trading. Anyone have experience with JAVA and could point out the pro's/con's of coding a trading system using JAVA vs. Python?
Fewer lines of code should not be your goal. Readability, maintainability, extensibility, etc. should be.
Python was designed to be mainly a quick language for smaller (whatever that is) projects. There are many libraries to help you achieve your goals. There are many books and online resources with examples of how to do trading apps, etc. (I have some books by Howard Bandy). Unless you have a need to watch every tick of thousands of symbols with lots of calculations on each tick you may not notice the difference between Python and Java (you would have to do a lot to care).
Java is very much used in the industry of trading. Usually for larger projects or for when there is a need for speed and no compromise (when those standard libraries don't do what you want or in the way you want). You will notice the difference in speed, between Python and Java, when doing backtesting/optimization of large amounts of data.
I do think Java/Kotlin, C#, and Python are by far the best choices for most traders.
There are lots of things to consider. One is, are the available libraries sufficient for your needs?
Ex. If you find a library (or code) to buy/sell with IBs API. Does it track the trade? What does that mean?
When you buy you send a message to IB. Asynchronously you (may) receive massages of failure, partial fills, buy complete, etc. What happens if your machine crashes in the middle of these messages? What happens when IB disconnects in the middle of these messages. What happens when you short and IB can't find shares to borrow? Then, fifteen minutes later, they find the shares that you need, and they short. There is much more... How do you handle these scenarios?
What about when the power supply in your machine pops in a cloud of smoke in the middle of a transaction? Can you start a new machine and access your trades state and recover what has happened?
The libraries in Python (and Java) are enough, but few of them do what I want for high-performance robust trading systems.
I still don't have a suggestion for you, but you are correct to do some research so that you don't regret your decision.

). But in the end it's similar to data structures and algorithms like implement a quicksearch or a hashtree, apart from job interviews you're better off just using some library implementation and concentrate on business logic, coze that's what makes the money. Time spent on implementing a message broker is time not spent on experimenting / implementing some algorithmic trading strategy and it's the latter not the former that will make you money.