Looking for seasoned advice on where to begin - API programming

Discussion in 'App Development' started by wlnd, Feb 13, 2017.

  1. I'm probably the wrong guy to ask since I've been writing in C/C++ almost exclusively for the last 35 years.
    Lately I've been using Python for simpler things that don't need a full-blown application. More and more employers are wanting Python so it's good employment insurance.
    I'd say don't start with a weird, arcane language like Go or Haskell. Find languages with tons of examples, tons of community support, tons of support libraries. For general programming Python is near the top of that list. For automated trading MT4 is high on the list.
     
    #11     Feb 13, 2017
    wlnd likes this.
  2. Zzzz1

    Zzzz1

    Yes and I never fully comprehended the question behind such post as OP put it. Is the question whether someone can play in a philharmonic orchestra after only 1 year of practicing an instrument? Or whether one can participate without knowing how to play at all? Or whether there is a magic pill that speeds up the learning process? There is no way around the hard and long learning process. Why do people not get that?

    But would I have to pick a language for OP then yes, Python or C# (C# because it's the overwhelmingly most supported language for APIs in financial space, aside Java, and it is very easy to pick up)

     
    #12     Feb 13, 2017
    wlnd likes this.
  3. To be very fair tho:

    The biggest challenge is not going to be the language or picking up the language. The biggest challenge will be writing code *correctly* (so the right results are displayed, no hidden bugs that give wrong information or take too long to execute).

    That is why it would be best to take an approach with a language that minimizes the potential for logical bugs. I suspect some of the platform scripting languages do some serious hand holding and really help you here (Esp. if they include libraries).

    If you take the C/C++ route you will spend most of your time trying to fix logic bugs, rather than work on functionality :)
     
    #13     Feb 13, 2017
    wlnd likes this.
  4. Zzzz1

    Zzzz1

    So will you with a non strongly typed language like Python. It's fast to code and very slow in execution and even slower to debug and remove all the runtime errors because of variable type mismatches. Hence my C# recommendation which strikes a very good balance imho.

     
    #14     Feb 13, 2017
  5. wlnd

    wlnd

    Maybe from a programmer's standpoint, this is asking the obvious.

    With the music analogy- a greenhorn-music player asking guitar veterans in the field of music, which guitar shld he swing with. a newbie for eg might not see that jazz is on the rise, n hence the demand for bass guitar players. bass may also have been durable given that most genres of modern music may require it.

    Thanks Steve, I will swing with python. Thanks HappyTrader, I will skip c for now n look at lingos with libs. these r exactly the insights I was looking for.
     
    #15     Feb 13, 2017
  6. Zzzz1

    Zzzz1

    To stay for one more second with the music analogy because you will get the precisely same answer there than you get here: Even if you are ultimately interested in jazz guitar any guitar veteran will still recommend you to start with a basic acoustic or electric guitar to learn the basics, basic chords. Same here: Most programming veterans will most likely recommend you to start with an OOP language because it teaches and enforces the usage of many important coding principles. Python does not do that, in many regards Python is similar to R: A very basic set of features and instructions and everything else is added onto via packages/libraries. You can probably with Python do 1-2% the amount of work than you can do with Java/C#/C++ when ignoring any third party libraries/packages. That is great to get you started quick but you will not learn much, you will mostly spend time reading documentations of libraries/packages and play around to get something basic working. But that does not mean you really learn a language. I have seen this for years, many quants claim they know R or Python. In effect they do not know R or Python, they just know how to apply Pandas or Numpy in a very specific scope of problems they had to previously solve.

    So, it all comes down to what you really want. Get up and running quickly? Then hire a programmer. Get up and running quickly but on your own? Then go with Python. Learn a programming language to build something in depth and be able to debug and add onto later on and to potentially build a base from which to expand into other languages later on? Then go with Java or C#. Just my 2 cents.

     
    #16     Feb 13, 2017
    wlnd likes this.
  7. wlnd

    wlnd

    Thanks Zzzz1.. nice insights here! I would love to get dirty with the basics, but time is a very limited resource. I know with better clarity what my next steps should be.

    Thank you all!
     
    #17     Feb 14, 2017

  8. I've been programming since 1965 (Fortran IV) and trading since 1969. Since you are not already a programmer, I suggest you forget it if you are more than 30 years old. The road is too long. Both skills are reasonably time-consuming to acquire.

    That said, if you simply must go ahead, you might look into TradeStation and Easy Language. The platform is robust, and the language can be learned in a reasonable time. There are many helpful videos available on Youtube.
     
    #18     Feb 18, 2017
    wlnd likes this.
  9. Mike O

    Mike O

    I'm a professional software developer with a computer science degree, experienced with Java, Scala, Python, C#, C++. First you need to learn the basics of Data Structures and Algorithms (computer science). There are free online courses. This is fundamental knowledge that you must know before you can properly deal with ANY programming language. It only takes a few weeks of study to learn the essentials. Besides that, you should find a course to learn C#. That is by far the best language for this application (in my opinion). Very similar to Java. Once you have some proficiency with C# then you can easily pick up any other mainstream language as they are all quite similar.
     
    #19     Feb 18, 2017
    wlnd likes this.
  10. yabz

    yabz

    I am doing something very similar. I am using Oanda's api and Python to develop alerts and to execute the trades as part of an automated trading system.

    I would suggest Python for a variety of reasons.
    • It fairly easy to learn.
    • It forces you to write well structured programs.
    • It is open source.
    The last point is very important. Avoid getting locked into a propriety system at all costs.

    Python is slow but with financial programs this is not a factor unless you are doing HFT.

    I would also suggest accessing the API using shell scripts rather than Oanda's wrapper. This gives you language independence. I found the wrapper difficult to use and buggy....
     
    #20     Feb 20, 2017
    wlnd likes this.