• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

Trading Systems - Putting it all together

Hi, I want to build a trading system but am having a hard time understand how all these different technologies fit together. I've done some research and the following is what I have come to understand, please let me know if I'm looking at it the wrong way, if there are other alternatives to any of the steps, or if I skipped any steps.

So to build a trading system I will have to:
1. Learn to use FIX to get financial data
2. Create and maintain a database of this data (using what? Access? Excel?)
3. Access the database in my code using something like LINQ2SQL (is this the best option if speed is not of immediate concern?)
4. Manipulate data in code and create trading logic using quant libraries
5. Use a broker API to send orders.

Is this all correct? Am I leaving out any steps? I've heard the term "socket programming" being thrown around when researching FIX, where does that come in? I've also done some research into code libraries like quantLIB to help create trading logic, are there others? Which is the best/recommended?

Also I've considered learning the c# based Ninjascript but I think I would rather learn how to do it the "real deal" way with FIX and API programming like actual trading firms do it so I can have direct experience with that, even if it will take longer to learn. Im aware that NinjaTrader is an integrated TSD environment that allows you to backtest directly inside it, but how can I backtest a strategy if do direct API programming instead of ninjascript?

Furthermore, what parts of the .NET framework should I learn? Should I learn ADO.NET? WCF? Where do they come in (if at all)?

As you can see I have lots of question I would greatly appreciate if someone cleared it up for me in as simple a way as possible, preferably in steps like I did =] Gosh i love forums.

Thanks in advance!!
 
I will def read that, it seems like it will answer many of my questions but not all. A quick scan of the document for terms like ".net" "c#" "socket programming" "fix", etc. had no results. Can anybody elaborate on those topics? Meanwhile I'll read that document, thank you Kairu
 
Marina, I know what FIX is. Thank you but I was hoping for a reply that will explain how to pull all these aspects together to create a trading system in the context of the .NET framework. Mainly I would just like someone to take the 5 steps wrote and expand on them. Perhaps I'm missing a step, or maybe I have an extra step that isnt neccesary, or maybe theres a better alternative to one of the steps. I would like to know what exactly I will have to learn (ADO.net? WCF? any recommended trading logic libraries? socket programming?) in order to build a trading system from the ground up. I mentioned that Ive considered ninjascript because it has the advantage of an integrating development environment with backtesting etc built in but I feel like if I go with that I will be limited somehow in what I can do compared to using FIX, existing class libraries, broker API's etc. I would really appreciate for someone to pull it all together for me in a "step by step" manner like I originally did, adding whatever I may have missed.

Thanks
 
It depends on broker what sort of API they offer. Retail brokers usually do not offer FIX because it is complicated to program, most of the time they offer some kind of proprietary API. Which broker do you have in mind?
 
hi, I was trying to do more or less the same thing, all this stuff you mentioned is relatively easy to do/use ... the problem is the rules by which you are going to trade ... So I suggest that you first take some data (f.e. from http://www.truefx.com/ ) and implement "winning" rules in any programming language ... after that i'll be happy to help ;)
 
hi, I was trying to do more or less the same thing, all this stuff you mentioned is relatively easy to do/use ... the problem is the rules by which you are going to trade ... So I suggest that you first take some data (f.e. from http://www.truefx.com/ ) and implement "winning" rules in any programming language ... after that i'll be happy to help ;)

haha ok will do :) I found a script to export MT4 tick data so I decided to rebuild my desktop computer from 2001 into a server to collect the data 24/7. Ill check out truefx though, seems legit! I've also decided to purchase the RightEdge IDE once the 45 day trial is up. I really like their platform its exactly what I was looking for. I can code directly in C# and compile my systems to standards .NET dlls. I wish I found this earlier!
 
haha ok will do :) I found a script to export MT4 tick data so I decided to rebuild my desktop computer from 2001 into a server to collect the data 24/7. Ill check out truefx though, seems legit! I've also decided to purchase the RightEdge IDE once the 45 day trial is up. I really like their platform its exactly what I was looking for. I can code directly in C# and compile my systems to standards .NET dlls. I wish I found this earlier!
Another option would be to use TradeLink, it's an .NET open source trading platform.
 
Why not just just write an MT4 script and run it in ur MT4 client to trade? A lot of clients I work with do that....it seems pretty simple to set up. Downside is that you'll need to port ur stuff to other languages if you want to move away from the MT4 platform.

The company I work for has an RESTapi for trading FX. It's not open to public though...if your interested PM me. The interface is state-less, so much easier to deal with compared to FIXS. You can writing something in Python to get rates/trade in < 1 hr.
 
hi, are you still trying to do that ? I was recently thinking of creating some community around such project. The aim of the project would be to create a platform for financial data analytics and modeling AND for model execution and monitoring. The main parts would be: logical/physical data model, tools for managing analytical variables, tools for modeling, software for model execution (probably event driven) and model management and montioring (based on results on real markets). Probably the first and most conceptual work would be to model "financial" world and to find data sources that could feed data into this model ... - this would end up as financial data warehouse.

Any thoughts on such idea ?
 
Top