I think for most of us, we all are searching for that elusive Holy Grail, the trading strategy that allows us to spend less hours in front of the screen and more with the important ones in our lives or just maybe kicking up our feet and fulfilling our bucket list knowing that we have made sure our loved ones are taken of.
In this journal I will discuss my trials and tribulations of developing several high precision back testing tools, what I consider are important points and features to build in and the architecture design, code wise to support such said features.
As I am sure most here are not fully fledged developers, I will provide high level overviews to my design decisions and my arguments to support the choices I've made.
Let me start off by saying that I am sure, for anyone who has also tried to build and develop trading platforms or back testing tools, I commend you, because it's not an easy task and a lot of the time, I have spent many hours doing R&D to know how best to solve a problem.
Of course, in building a custom platform, I have been told that I could never do it, why don't you just use something like Ninja Trader, Meta Trader, Trade Station etc? And with my programming skills, why don't you just expand upon what they have already done for you?
My answer would be this. If the framework or the foundation of a house is not structurally solid & reliable, then no matter if you are trying to build the most beautiful castle on top of it, you will be severely limited and may even be forced to rebuild the foundation later down the line.
There is also another argument. Building upon the framework of someone else, especially where there are foreseeable limitations, you are relying on this vendor to patch up or repair these holes at their convenience and on their time scale. Unfortunately, like for most of us, patience is a virtue and I am a strong believer in if you want something done properly and at your time scale, do it yourself, because it will be you who will have to live with it in the end and it might only be you who have the passion and vision to see it a feature or project through to the end.
And indeed, I have put my money where my mouth is and I left my day job as a high paying IT consultant, helping Banks, businesses and corporations stream line their business processes for almost 2 years now to follow my passion, helping others, trading and programming.
I am bless that the ability to see the building blocks necessary to build something amazing has always been a skill of mine which is essential for a project such as this. :D
So here is me, paying it forward and hoping to make a few more friends and to hear your opinions.
Programming Language: C# 5.0 & F#
Framework: .NET 4.5.1
IDE: Visual Studio 2013
Database Server: MS SQL 2012 Express (It's free)
UX: WPF (Windows Presentation Foundation)
Best Practices and Patterns: Microsoft PRISM with Unity
Architectural framework: MVVM Pattern (Model View ViewModel)
Database connection: Entity Framework
Other tools and frameworks used: Event Aggregator, Rx, Signal R, ZeroMQ.
WPF Controls: Telerik WPF Controls & Infragistics WPF Charts
Right, so this introduction has taken me longer than expected! lol I will go to the gym now and when I get back, I'll continue.
Please feel free to join in, ask questions etc... I'll be more than happy to respond :D
For those who may ask who I am I to write a journal such as this, here is a screen shot of one of the platforms that I am currently putting together.