What is the most suitable technology for algo trading if one needs to work on real time market data.Does Esper serve the purpose.I mean i am literally confused as to when to use a cep engine like esper and when to use python… Kindly guide
Python and esper are not exactly one-to-one comparison. Python is a general purpose langage. Esper is open source software (written in java) for event processing that includes a processing engine + a domain specific language similar to sql.
A fair comparison of Esper would be with other CEP/ stream analytics softwares. I have never used esper, but going by the popularity of github repos (vs. apache flink/storm or siddhi) it is not among the top contenders it appears. But you should take that with a pinch of salt, github repo popularity is not the final word on the merit of any software. According to my understanding, your dilemma should be more like:
- shall I lean java and try out esper myself, or (assuming you already know python)
- shall I try to adapt an existing cep with Python api (e.g. apache flink) for my purpose or
- shall I write my own cep in python.
If you do not already know java (or very good with stream sql), you might as well choose 2 or 3. In general you would need to adapt a full scale CEP only if you are building a software (for other users, not just for you). For running strategies which are not high frequency, you might as well develop your own. Python has plenty of flavours for event driven programming. Or you can consider third party platform (like blueshift) that already offers such CEP. If you are building a CEP for high-freq, then Python will not do, and nor esper. You would probably need to write your own, and optimize it till it bleeds.