Any C# devs working on automated systems?

scottz1

Newbie
Messages
5
Likes
1
I'm in a v-team building a fully automated program for forex, stocks, and options. We're using .Net 4.5, WPF, SQL 2012. Wanted to see if anyone is doing something similar who might want to share notes. Reply scottz1 Hotmail.
 
Doing similar - pretty much 2 people full time on infrastructure, 2 on strategies. .NET 4.5, ASP.NET though - we do automatic development, a lot runs in the browser. Easier to roll otu and watch from a tablet etc., I don't need fast real time to get stuff like backtest results. Grid capable backtest and Optimization.
 
I'm writing a C# .NET 4.5 Winforms program for Forex, though it's not finished yet and I'm working on it.
 
I'm writing a C# .NET 4.5 Winforms program for Forex, though it's not finished yet and I'm working on it.

If you think it will ever be finished, get rid of that idea. It will get working, functional, whatever, but finished - never. You will always have things to work on, improove, make better.
 
Hello,
I've wanted to join a team like this for some time. I know C# very well and would like to work together to build a real trading application. scottz1, I'll reply to you separately...

Santi
 
Hello,
I've wanted to join a team like this for some time. I know C# very well and would like to work together to build a real trading application. scottz1, I'll reply to you separately...

Santi

Can you define "very well" and what you think you can contribute? I have seen too many people knowing C# "very well" that are on a "well, not really" level, even in companies.
 
NetTecture, I agree with you that building a good trading program is a life-long journey because there are endless ways to improve the performance, but certainly the journey includes milestones where the code and the strategy is well enough tested and ready to run live so we can profit even as we work on the next release.

I've been working on this system for 4 years. I wish there was a way we could work together, but the ASP.NET vs. WPF might be tricky. Let me know your thoughts.

Thanks
 
Well, the reason I am mostly ASP.NET is that WPF is stupid in most scenarios. We have SOME WPF (actually with Direct3d for chart) stuff, but most of the UI is not "trade" but "see and analyze". And I really prefer - a lot - to be able to also have my control on my phone, on my tablet. So far our ASP.NET elements include:

* System Portal to control the backtest calculation infrastructure
* System Portal for Backtest Analyze. VERY nice to be able to send URL's around in the team to have people look at some specific series.

Planned are:
* Trading Portal for the trading agent (the part that runs the strategies - right now a command line tool) to see where the strats are, have a history of trades etc.

The one component we have in WPF is a real time price update, but only one person uses that ;)

WPF has tons of disadvantages when it coems to "just pull up the tablet and see what happens in the office" ;)
 
Currently I am building my application to work with Lightspeed Trader in native Cpp. Over the past twelve years I have built systems in java, php, c, and I must say finally Cpp. I utilize the L2 data as best I can and hit my data base for pattern recognition. The best thing I've ever done is the move to Cpp. All calculations are as fast as possible and much faster than with anything else I have encountered. Ten years ago I was fine to sit back and wait 10 secs for a java SQL hit and calc but now there is so much more data I use and windows native is definitely the way to go. If you are serious about making your life easier while trading, make the switch to Cpp and spend the time now. You will be amazed what is possible when you realize the number of executions that you can do between each trade event no longer is an issue.

Cheers
 
Let me counter that - if you take 10 seconds to do calcualtions in C#, then either you better run CUDA and blow C*+ away, or you are an incompetent programmer. Seriously. We do full level 2 analysis and I backtest about 1 year of futures data in 1 minute on the ES, with full L2 analysis. Real data feed does does not come close. It obviously means not doing really nasty slow SQL in trading times only before (start of day phase etc.) but hey, if you need SQL, then even CPP will not help. CPP does not magically make the database faster and seriously, I have been known to hit more than a million SQL statements to a Oracle Exadata from C# per minute.

I found the C# calculations to be no speed problem. Maybe we do not do 1 million element recalculations on every book update?
 
Let me counter that - if you take 10 seconds to do calcualtions in C#, then either you better run CUDA and blow C*+ away, or you are an incompetent programmer. Seriously. We do full level 2 analysis and I backtest about 1 year of futures data in 1 minute on the ES, with full L2 analysis. Real data feed does does not come close. It obviously means not doing really nasty slow SQL in trading times only before (start of day phase etc.) but hey, if you need SQL, then even CPP will not help. CPP does not magically make the database faster and seriously, I have been known to hit more than a million SQL statements to a Oracle Exadata from C# per minute.

I found the C# calculations to be no speed problem. Maybe we do not do 1 million element recalculations on every book update?

I wouldn't rush to call the OP an incompetent programmer (even with the "either") - that's rude and insulting - maybe he/she has a slow computer.
 
With a fast enough computer I might consider using php with XML type pattern storage but that would be insulting myself. I have created my framework to consider a large amount of data and speed is important everywhere in my processes. Many windows processes on my computer are disabled for reasons of speeding up all necessary calculations. My multiprocessor board isn't the fastest thing out there but it isn't too bad either. I definitely am not a proficient programmer and must constantly reference the web for examples, but my background is from many languages, machine code for 8, 16, and 32 bit processors for routing automation systems and so I realize the differences between recursive programming with redundant memory location referencing (like the current C# VS will create) and stream lined linear recursive referencing as I can accomplish easily even with MS's VS editor. I regurgitate through close to a million cell pattern index with each tick. That includes searching and crossing the available feed for 40 instruments with allocation to a GUI. I am not saying you can't do it in C#, I'm just saying that it has all already been done by others in Cpp and finding your way to make your system faster if need be is easier when you learn Cpp. I apologize if I am wrong in that statement.

Cheers
 
I purchased a few portfolio strategies and before trading them, I needed to makesure they were working. I therefore developed a multithreaded portfolio backtesting system in c# which supports optimization.
I can run a simple backtest of the US stock markets with all historical daily stock data (w/survivorship bias) to date in approx 20 mins (on I7 box @2.7GHz). Running an optimization can take a LOT longer depending on the strategy, optimization parameters and number of stocks.
 
Last edited:
Top