Still confused, which language i should start learn to design my ATS?

Discussion in 'Automated Trading' started by mcgene4xpro, Feb 5, 2011.

  1. LeeD

    LeeD

    I received a private message indicating what I wrote here isn't totally clear. Just to clarify...

    MQL and EasyLanguage may be easy to learn are NOT "general purpouse" laguages. They exist only as a part of the respective charting/backtesting/trading platform(s).

    If you learn C++, Delphi or C# you can use these to develop stand-alone applications. You can write you own text editor or even your own trading platform. You also wouldn't need a vendor's trading platfrom installed to run such an application.

    With C++, Delphi or C# you can write your own strategies for nearly any platform around (usually by creating a DLL): TradeStation, NeoTicker, NinjaTrader, AmiBroker, MultiCharts etc.

    With MQL or EasyLanguage you are stuck with 1 or 2 platfroms that support each language.

    MQL5 is not "identical" to C++ in any way. Yes, it has similar basic syntax, but so do C# and Java. MQL5 lacks features that define C++ as a different laguage: pointers and memory management, not to mention templates. As a result, porting any code that contains a few classes or an array will not be trivial (unless the person who does the porting is sufficiently fluent at C++).
     
    #11     Feb 7, 2011
  2. LeeD

    LeeD

    AmiBroker is great for backtesting but I don't recommend it for automated trading. It has trading interface only with IB and even that is in very rudimentary form. (Also AmiBroker has one of those proprietary programming languages I mentioned earlier... though you can connect DLLs to it.)

    I don't know enough about TradeLink to clearly recommend it. From a brief look the advanatges are:
    1) It's open-source. If you have a problem and skill you can fix a problem yourslef. If you need a feature you can add it yourself too. No need to wait for developers who may never honor your request.
    2) It can be linked to any broker API. If the broker connection is unsupported, you can implement it yourself. That's a consequence of open source. A minority fo commercial platforms (such as NeoTicker) allow users to implement theur own broker interfaces. However, majority of commercial platforms don't. If this is something important to you, choose carefully.
    3) Trading strategies don't have to be applied to a chart. So, you can comfortably run a large number fo them.

    Disadvanatges:
    1) It's open-source. So, like most open-source projects it may have a solid core but lacks bells and whistles.
    2) It seems to lack in the charting department. It is not a charting platform per se. So, the charts are just for convenience. However, I personally like visualizing ideas.
    3) Support... I understand you can purchase support if you want someone to help you resolve issues with the platfrom. So, it's whatever you pay for... like with commercial platforms.
     
    #12     Feb 7, 2011
  3. Thanks LeaD,

    So, if i choose amibroker, it will be great for developing/backtesting and when i need actual automated trading, i will convert my code to the code of interest to trade, right?.. If it works like this, It will be Ok for me.

    MQL4 is very limited for what i need.
    MQL5 is not yet inclined to use it
    EasyLanguage, i heard that it is not that Easy.
    C++, GREAT but need much skill and time devoting
    C#, great, easier to understand, still need skill and time


    My trading system now, it could be traded away from charts. During development and early research, i wanted the charts just to create the system and to observe. Now, roles could be implemented without any need of charting. The core ideas of my system now is more quantitative not visually dependable.

    Still need help.. to decide..

    Please share even if you feel it is well-known..
     
    #13     Feb 7, 2011
  4. Lee asked us to comment on his understandings about tradelink above.


    > I don't know enough about TradeLink to clearly recommend it. > > From a brief look the advanatges are:
    > 1) It's open-source. If you have a problem and skill you can fix a > problem yourslef. If you need a feature you can add it yourself > > too. No need to wait for developers who may never honor your > request.

    This is an advantage of open source. The other advantage is that you are starting out with a proven platform that is used by many people over many years. So your turn-up time should be around the same as with a commercial closed source system for trading, except that with open source you retain the option to evolve the platform in a different direction at any point.

    from oholho.net you can see the estimate cost to recreate a project like tradelink in developer time (not including test/qa/real money tests) :

    http://code.google.com/p/tradelink/wiki/ProjectStats

    > 2) It can be linked to any broker API. If the broker connection is > unsupported, you can implement it yourself. That's a
    > consequence of open source.

    Yes. To the original posters question this also makes it easier to add new connectors for any broker to the platform. Several of the connectors in our platform were developed by users and contributed back to the community.


    > 3) Trading strategies don't have to be applied to a chart. So,
    > you can comfortably run a large number fo them.

    Yes.

    Disadvanatges:
    > 1) It's open-source. So, like most open-source projects it may
    > have a solid core but lacks bells and whistles.

    Every software platform differentiates itself on what features it chooses to include and which ones it doesn't. So I'm not sure this has much to do with whether it's open source or not. Tradelink has features not available in closed source applications, and vicea verca.

    > 2) It seems to lack in the charting department. It is not a
    > charting platform per se. So, the charts are just for convenience. > However, I personally like visualizing ideas.

    TradeLink is not a charting platform. It does have charts though, which allow you to view bars on different time intervals, draw lines and text labels on the chart (both from the strategy and manually)

    [​IMG]

    http://code.google.com/p/tradelink/wiki/TradeLinkSuite?tm=6#Kadina

    > 3) Support... I understand you can purchase support if you want > someone to help you resolve issues with the platfrom. So, it's
    > whatever you pay for... like with commercial platforms.

    Yes. You can also get support for most issues from 200+ other tradelink users :

    http://groups.google.com/group/tradelink-users
     
    #14     Feb 7, 2011
  5. LeeD

    LeeD

    Thanks for a prompt reply!

    You are welcome! I woudl strongly recommend to avoid C++ unless you are already experienced with other programming languages. C++ requires greater understanding of how computers work. Further, in C++ there are a few types of difficult-to-track-down bugs (such as memory leaks, pointers to already deleted objects etc) which are impossible in C#, Java and most other popular languages.
     
    #15     Feb 7, 2011
  6. Thank you LeeD for helping mcgene4xpro.

    The thing that worries me is the money management/risk/trade management.

    I don't know the mathematics/indicators involved. Converting some hefty econometrics to something like EZLanguage or AFL might be a huge, wasteful effort, but we are all assuming that your calculations are simple. Thus simplicity of coding correlates strongly with likelihood of success. There are lots of packages that can do a good job with this.

    The money management/risk/trade management worries me. Most of the retail packages have only very crude features: 2% risk at entry, trailing stop. Is that the right level, or are we talking about value-at-risk and flattening accounts when markets get to correlated?

    The fact that you can trade on a 1 minute time frame helps enormously.

    As far as TradeLink goes, take a look at their offering. They have a nice video that will give you the flavor right-away.
    http://www.youtube.com/watch?v=tw87K349Cuw

    I agree with LeeD that learning C# is probably the right, future-oriented direction, but I don't have a real suggestion of platform without knowing better what you are doing.
     
    #16     Feb 7, 2011
  7. LeeD

    LeeD

    Steven.Davis. all good points!

    There is one I disagree with though:
    I believe when you take time and effort to code the whole trading systems yourself, a fair number of platforms allow setting stop to an arbitrary vulue on every bar or placing exit-at-market order. This is about as much flexibility as you can squeeze from a bar-based approach.

    Maybe I am not up-to-date with what "most of the retail packages" is like... I would apprecieate if you mention a few that strictly don't allow the strategy developer to code his or her arbitrary trade exit rules.

    I appreciate coding an entry signal and then sticking with pre-defined trade management rules may be tempting (as an easy way) but I don't think advanced trade management is something you expect to find in a platform. If a platform allows using your own rules, that's usually good enough.
     
    #17     Feb 7, 2011
  8. position sizing in amibroker is easy BTW....

    positionsize = -5; (5% allocation)

    or positionsize = 5 (allocates up to 5 positions (20% each)

    Or positionsize = -C/(3*ATR(10))

    this position allocated based on volatility

    You can augment stuff further positionsize = -Min(C/(3*ATR(10)),5)

    this allocates up to 5% in the positions, but is limited by the volatility calculation..

    Even more complicated scale in functions are possible, but that becomes difficult.
     
    #18     Feb 7, 2011
  9. I am thinking about things like non-trade specific circuit-breakers. Something like, if this managed account goes down 5% in a week, flatten all positions and take a two week time-out. If the S&P drops 200 points in a day, flatten all bullish positions. If your ten-minute value-at-risk doubles from the beginning of the day, close most liquid positions until value-at-risk is down to X% risk allowance.

    I don't know the Original Poster, but he says "complicated." I have seen circuit breakers on fairly modest CTA accounts. It can be a much of rotten cherry-picking, but I don't know what he has in mind.
     
    #19     Feb 7, 2011
  10. LeeD

    LeeD

    Aha. So, what you are saying is platforms may let diligent strategy developers code these "circuit-breakers" but retail platfroms don't offer "circuit-breakers" as a readily available overlay.
     
    #20     Feb 7, 2011