Jump to content

Welcome to the new Traders Laboratory! Please bear with us as we finish the migration over the next few days. If you find any issues, want to leave feedback, get in touch with us, or offer suggestions please post to the Support forum here.

  • Welcome Guests

    Welcome. You are currently viewing the forum as a guest which does not give you access to all the great features at Traders Laboratory such as interacting with members, access to all forums, downloading attachments, and eligibility to win free giveaways. Registration is fast, simple and absolutely free. Create a FREE Traders Laboratory account here.

Frank

C#

Recommended Posts

I am in process of learning some programming -- starting with VBA to get feel for object oriented programming and then thinking about moving on. I have settled on going with Microsoft technologies but trying to understand C#'s role in the world. Is C# a good place to focus or should I try to continue by extending VBA into Visual Basic? I am uneducated on this but it seems to me that C# may be the future general programming language and perhaps I should just learn that. (Microsoft positioned C# as less complex C++ and as better structured than Java).

 

FWIW, I am an Open Ecry user and they are offering support for Easylanguage and C#. I already know some decent level of Easylanguage so I am covered for indicators etc... but long-term, I may want to dabble also with web applications and if C# works for both -- hey, why not just go that direction??

 

comments?

Share this post


Link to post
Share on other sites

Hi Frank,

 

In all honesty, a move away from VB/VBA will server you well in the long term. It is a simple language of terms of getting something done quickly, but is highly procedural in it's general approach, and tends to not promote separate of data/visuals/logic through its design. It is also somewhat less powerful than C#.

 

The question about which language to learn is of course dependent on what you want to do. It is hard to go wrong with C# and .NET, especially if you want move into the web space later. If it's primarily file processing or scripting frameworks, Python or Ruby might be better bets (especially if you want to do something with R).

 

As always, consider the right tool for the right job. My general rule of thumb is that if I can do it in a non-compiled fast-development language (like Python or Ruby), then I will - they are just so easy to work with. With IronPython and IronRuby (I believe that's the names), you can even use those languages in .NET. And of course, with Django and Ruby on Rails, they allow very fast web development.

 

But in general, people who prefer UNIX environments for real work (as opposed to a desktop) will like Python or Ruby, and people who prefer Windows environments and point-and-click drag-and-drop visual programming will be better suited to VB or (preferably) C#.

 

Hope this helps..

Cheers

Share this post


Link to post
Share on other sites

Of course, I just read that you've settled on Microsoft technologies. If you'd prefer to be pure in that sense, then C# is much more powerful than VB for most intents and purposes. Of course, IronRuby or IronPython are still good lighter-weight options.

Share this post


Link to post
Share on other sites

It will have a long lifespan, similar to what Java is enjoying and C++ has enjoyed for a long time. And compared with VB/VBA, it actually has a good reputation amongst industry and a huge community. So really, can't go wrong with C#.

Share this post


Link to post
Share on other sites

In all seriousness, C# is a powerful language, with lots of "accessories", bells and whistles.

There are lots of free resources on the web, and a large and supportive community.

 

Most importantly, C# is supported by more trading/charting software than any other languages, your investment in learning this language will not go unused.

 

If you feel you are at the limit of EasyLanguage, I think C# is the obvious choice for the next level of trading programming.

Share this post


Link to post
Share on other sites

I fully have to agree with that. C# is pretty much a great langauge and it is done by really great people pushing it forward - a lot of stuff in now wihth 3.5 and coming with 4.0 is pretty revolutionary for a mainstream langauge - things like LINQ etc. have all more or less been there as side-things, but C# and .NET put them into mainstream. Finally.

 

You can do a LOT with C# - contrary to (old) VB it is designed as a main langauge - powerfull runtime, feature rich. I have been working with it for about 10 years now, and only sometimes do I see the need to do some C++ (MOSTLY in the form of C++/CLI, which is the form emitting classes compatible with .NET/C# - like now wrapping up the Rithmic API for use from within C#, as it comes as C++ lib files).

 

If you are serious about programming (not just for trading or so), make sure you learn MORE - some more language with different concepts. Real assembler may be interesting for a summer, as should be SMalltalk (the original object language), F# (functional .NET language) and maybe something else. Make sure you do not see all things from the point of view of C# ONLY.

 

For trading, though, C# will be more than enough. Heck, one can write serious trading software in C#, and contrary to what the (not too intelligent, it seems) people at NinjaTrader did... it does not have to be slow and crash all the time ;) This is a lot more bad programming than a .NET fault - as can be seen in the tremendous speedups they get for Ninja 7... by redoing broken architecture.

Share this post


Link to post
Share on other sites
like now wrapping up the Rithmic API for use from within C#, as it comes as C++ lib files).

 

Interesting point that - I'm using the Zen-Fire API directly through C# .NET and the 'test app' that I was given was Rithmic Trader - so I don't know if Rithmic wraps Zen-Fire or vice versa or neither (Rithmic may be able to use different data streams).

Share this post


Link to post
Share on other sites

Zen-Fire is a resell of the Rithmic API. It exposes only a small subset (interesting enough) of what RIthmic is capable of... and as the RIthmic API works on Zen-Fire and the Rithmic operations team know about Zen-Fire ;) Guess who is the real deal.

 

Capabilities of the Rithmic API missing in Zen-Fire:

* Historical data ;) Limited, but there.

* Cross-Instrument-Triggers (stop on future triggered by forex price move, or by bid/ask move)

* Subscribe to complete exchange data (HEAVY on bandwidth - CME has around 400.000 symbols alone)

* Time based orders. I actually CAN put in an order to enter to the exchange at a specific time.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.