C# vs Easy language

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

  1. Hi,

    I am looking for a language to learn so i could develop my ATS.

    I am now considering C# for the following reasons:

    1- many platforms are using C# such as Tradelink, NinjaTrader and strategy trader " FXCM"
    2-it is a general purpose language so it has unlimited usages
    3-It can bridged to Dukascopy
    4-very close to Java and it has some C++ components
    5-I have many nice resources to learn from

    6-many forums to support with codes
    And it is easier than C++

    Also, Easylanguage

    Easylanguage is good for development/backtesting
    more brokers than Amibrker
    you can connect MC to Dukascpy but only " for now " through the FIX expesive API
    charting is wonderful in MC
    But still i think easy language is not that easy

    My needs:

    To design highly scalper ATS" puts 1000-5000 trades per day"
    Depends mainly on Limit order " puts/modify/delete hundreds of orders every minute.
    Use many calculations every tick
    Use only one time frame and it can work even without charting.
    Complicated MM, Risk, and trade management techniques.

    Any feedback would be highly appreciated.

    Thanks
    McGene
     
  2. @mc...

    perhaps you can ease your selection pain, if you first select the trading platform.

    If this platform has an easy but enough powerful script language (like Easy Language, Metastock Formula Language or others) that's a first step. If the platform uses not only a script language but a higher language like C# (as Ninjatrader) that may be the choice.

    The problem is, that you have some dependencies using languages like Java, COM or .NET C#/VB etc. because of their use of special runtime environments.

    So the total independency (based on OS Windows, which has a market share of > 95%) you should take a product/language which generates pure Windows 32bit DLLs (without runtime or registry dependencies)!

    So Java, COM and any .NET language etc. may be not the first choice. Instead pure C or C++ (unmanaged), Delphi or Powerbasic can serve these requirements and you are free... :)

    Only my two cents,
    zentrader

    www.zentrader.de
     
  3. I think that we had this discussion just recently in a different thread. I can't imagine an application where Easy Language, NinjaTrader, and FIX would be comparable bases.

    If you want hundreds of limit order puts/modifies/deletes without getting into trouble with the Exchanges, we are taking about many, many trades. Doing 5000 trades per day with reconciliation, risk and trade management is serious programming in a collocated environment. I really don't think any retail product is going to be a good place to start with that.

    You can shell-out $100K for an institutional platform like Apama, Rithmic, Streambase, Deltix, Aleri, ... Or, as seems your inclination, you can write your own.

    When working with a general purpose language such as C#. You have choices about what broker/API you wish to use. IB TWS API and Blackwood API are popular. Products like TradeLink offer a buffer between your code and the broker's interface. They say that they support IB, Genesis, Assent, Sterling, GrayBox, Blacwood, TD Ameritrade, MB Trading, REDI/Goldman, RealTick, DBFX, and FIX. (I thought that TD Ameritrade was restricting their API going forward, but I don't know.)

    You have a long road ahead of you. Many expensive learning experiences. To get just a taste, remember that you have thousands of quotes per second, and it is your job as the programmer to keep the machine from jamming using asynchronous programming.
     
  4. Maybe someone knows of a 5000 order a day ATS/OMS platform that isn't institutionally priced.

    Supposing so, there is still the question of the Money Management/ Risk/ Trade Management side. Would you care to elaborate? 2% of balance? Value-At-Risk? Circuit-Breakers?
     
  5. there are tradelink users who send 5000 orders per day.

    technically you can do a lot more than that. people who run tradelink in a colo environment and process high frequency data do much larger volumes.

    did I mention tradelink is free and open source? :)

    http://tradelink.googlecode.com
     
  6. Here is OpenQuant, but I don't see anything to support complex money management/risk management.

    TradeLink's Automated Strategy Tester isn't even smart enough to close positions on close.
    [​IMG]
     
  7. Not everyone closes positions out on the close.

    TradeLink users include
    * people who trade high frequency
    * prop trading firms who trade intra day but also hold positions
    * hedge funds who only hold positions over longer durations

    You can enable a close out function using a component in tradelink, but this is turned off by default for the reason mentioned above.

    Note the screenshots provided immediately above are for discretionary trading applications rather than fully automated strategies.
     


  8. I am not sure what you call complex money and risk management, but you have full control over your orders, fills, portfolio, positions, etc. in OpenQuant. You can scale your positions in and out, introduce risk limits, etc. For something more complex (for example if you want to run a backtest or paper trading and then use some logic to decide if you want to go live based on backtest risk / performance analysis) you can take a look at the new Scenario feature of OpenQuant 3.0.

    Cheers,
    Anton
     
  9. I have a problem with text_delete in easy language.
    I need to update a text so I check for its existence, then delete it by text_delete and finally write the new text by text_new.
    The problem is text_delete fails sometimes and from that point on all text disappears.

    Any thoughts?
     
  10. LeeD

    LeeD

    I thought AmiBroker didn't even support EasyLanguage. Are you confusing it with Tradestation or MultiCharts?

    P.S. AmiBroker is a charting/backtesting platform, not a broker despite the name.

    You need a platform with realisting simulated execution on tick data.

    If you trade this often for realistic simulated execution you may need tracking order poisition in the order queue and historical market depth. I am not aware of any "retail" platform that does this.
     
    #10     Aug 3, 2011