Language comparison

Discussion in 'App Development' started by Sergio77, Oct 17, 2014.

  1. Sergio77

    Sergio77

    A 50/200 long/short crossover system buying 100 shares at a time with a 5% MM stop. I would like to compare the programming of this in four languages, in compete form:

    Amibroker AFL
    Easylanguage
    Python
    Ninjatrader
     
  2. Python stands out in that list as it is the only one that doesn't tie you up to 1 provider.

    as for the pros and cons of each language... that's a long discussion that can easily turn into a flamewar... which is best depends a lot of your personal background & which languages you're already familiar with... for example if you're familiar with .net then ninjatrader may be the way to go, while if you're familiar with java then easylanguage would be a closer match. (if my memory doesn't fail me)
    in terms of performance they should all work fine as long as you stay in timeframes >5minutes and dont try to trade all the sp500 stocks at once...
     
    cjbuckley4 likes this.
  3. dom993

    dom993

    IMO, profitable trading strategies are far more complex than the example you want to use for comparison purpose.

    I can clearly articulate the merits of using C# (NinjaTrader) ... C# is one of the best OO languages, it is relatively easy to create trading software components reusable across a variety of trading strategies (beyond NinjaTrader Indicators, which are one form of reusable trading software components). With access to the .NET library, there are off-the-shelf components available for all sort of things which might become necessary in your developments, from containers to cryptography, & more with 3rd-party libraries.

    If I am not mistaken, Amibroker AFL is based on C, which lacks the OO paradigm, and invites for many undetected programming errors.

    EasyLanguage is easy for simple things, but probably not a wise choice for complex trading systems.

    I have no experience of Python.
     
    cjbuckley4 and eusdaiki like this.
  4. M.ST.

    M.ST.

    Python ties you to Python in the first place. So why does it stand out?
    If you mean bridging to other languages then you are wrong.

    Huh? It is pretty obvious that you only talk about Python.
     
  5. Actually you can use python to interface to multiple brokers that offer a REST API (the same is true of Java, C#, or any other language that isn't tied to a single platform)
     
  6. M.ST.

    M.ST.

    And your point is ....?
    Which platforms can not interface to multiple brokers?

    And why staying >5min time frame? Because of python not being able to handle it otherwise?

    What I meant here was that other languages let your bridge to different languages also.
     
    Last edited: Oct 23, 2014
  7. You are correct the >5 minutes is an exaggeration.
    What I meant to say is that these are languages for retail platforms (and a high level language that is not known for its speed) and are not meant to high frequency.
     
  8. cjbuckley4

    cjbuckley4

    I generally err on the side of rolling your own/open source stuff, so it's not surprise that I'm gonna recommend Python just because I think it's an awesome language with great libraries for trading.

    Pythons pros:
    Supports a number of useful APIs, fast enough for computationally intensive stuff (on a reasonable scale), scipy and numpy are awesome, great for machine learning , easy to learn, plays very nice in a linux environment, and very useful for scripting.

    Bear in mind that this is a plug for Python, not necessarily a knock to any of the other alternatives. Python is going to be a different experience; the others you mentioned are attached to platforms that handle Backtesting, data management, order entry, etc. where as youll have to do a lot of that yourself in Python. That may be a pro or a con, depending on your perspective. Again, view this post as just (easily availed) information about python's utility, not necessarily a recommendation for Python over the alternatives because a recommendation is probably dependent on a lot more variables that you didn't disclose. I'm by no means a python expert, but I'd be happy to share more of my experiences if you'd like. Best of luck.
     
    d08 and eusdaiki like this.
  9. ronblack

    ronblack

    EL or AFL is the most anyone here would ever need. If there is something more complex they cannot handle, then it would probably not work.
     
  10. M.ST.

    M.ST.

    I'm sorry to say but you still don't know. If you don't know then why stating something that is not true or why generalizing? It simply insults the intellect of readers.

    For example out of few other softwares (two others not listed in post #1) I've been using Amibroker for quite some time. Now I can assure that you don't no much about the speed for example. You just assume. That's all. Secondly AmiBroker is not tied to one language since it is open architecture.
    So what does it mean? It means you a free to use languages like C/C++, NET, Delphi, even Python (I think) etc besides AFL. And in AFL you can bridge to other languages too. Again you first two guys don't know much but you talk about your language and transport some assumptions about other languages or softwares as a whole that are simply wrong. Post #3 is quite a joke at parts too. So as you can see reading horsesh.. like "tied to this and tied to that" or "this is not possible or that is not possible" written by people who just post something for the sake of posting something out of the blue without being sure at all can tear reader's hair out (like mine). And I'm asking myself "why even reading it" since I want to keep my hair.
     
    #10     Oct 24, 2014