Welcome to the Traders Laboratory Forums.
Automated Trading Black box systems, strategy automation, algorithmic trading, etc...

Reply
Old 07-05-2011, 11:30 PM   #1

Join Date: Jul 2011
Posts: 12
Ignore this user

Thanks: 6
Thanked 3 Times in 3 Posts

Newbie Desperate for Advice

Hi, Im interested in getting into automated trading system development. I've been trading a demo account for a little under a year and I’ve begun to study C# a few months ago. I still consider myself a beginner programmer but I’d like to start applying what I learn directly to my cause. The problem is I don’t know where to start.

I understand I will be using .NET but I’m not sure how exactly and I have many questions. I’m currently on the chapter on LINQ so I look forward to learning how to work with data better soon but where do I get the data to begin with? And how do I start my own live, updating data collection (in Excel or something). I’ve heard of socket programming and FIX protocol, will I need to learn how to “socket program”? If so, how do I got about that (is that its own language)?

I’ve looked into (open source) TradeLink and (expensive) RightEdge. In terms of actually coding the strategy, I noticed RightEdge has a code library that I could make use off. I’m not in the position to purchase their expensive software ATM but can I still use that library to author C# code in TradeLink?

What about QuantLib? Can I use that library too ( or instead of ) the RE library . Are there any other code libraries?

Also, is there a popular charting/backtesting software that I could use to backtest the data (once I figure out how to get it) using my algorithm (once I figure out how to build it lol) ? ( kind of like you can do with MQL in MetaTrader where it draws out historical data visually tick my tick and showing were trades would have been made).

I’m currently reading “Pro C# and the .NET Platform”, about to begin the part of the book on .NET soon and was hoping someone can visit the link and go to “Look Inside” the book’s table of contents and let me know if there are any chapters/topics I will be using extensively, others rarely, or other perhaps not at all so I can safely skip them temporarily until I start doing more advanced things. I mean the book is 1500 pages for cryin out loud and I'm really trying to get up to pace and understand how all these things go together to build a trading system using C#.

http://www.amazon.com/2010-NET-Platf...9922819&sr=8-1

Thank you so much in advances, I would really appreciate the advice.
parliament718 is offline  
Reply With Quote
Old 07-06-2011, 07:10 AM   #2

Tams's Avatar

Join Date: Sep 2008
Location: Geelong
Posts: 3,777
Ignore this user

Thanks: 2,084
Thanked 1,474 Times in 912 Posts

Re: Newbie Desperate for Advice

Quote:
Originally Posted by parliament718 »
Hi, Im interested in getting into automated trading system development. I've been trading a demo account for a little under a year and I’ve begun to study C# a few months ago. I still consider myself a beginner programmer but I’d like to start applying what I learn directly to my cause. The problem is I don’t know where to start.

I understand I will be using .NET but I’m not sure how exactly and I have many questions. I’m currently on the chapter on LINQ so I look forward to learning how to work with data better soon but where do I get the data to begin with? And how do I start my own live, updating data collection (in Excel or something). I’ve heard of socket programming and FIX protocol, will I need to learn how to “socket program”? If so, how do I got about that (is that its own language)?

I’ve looked into (open source) TradeLink and (expensive) RightEdge. In terms of actually coding the strategy, I noticed RightEdge has a code library that I could make use off. I’m not in the position to purchase their expensive software ATM but can I still use that library to author C# code in TradeLink?

What about QuantLib? Can I use that library too ( or instead of ) the RE library . Are there any other code libraries?

Also, is there a popular charting/backtesting software that I could use to backtest the data (once I figure out how to get it) using my algorithm (once I figure out how to build it lol) ? ( kind of like you can do with MQL in MetaTrader where it draws out historical data visually tick my tick and showing were trades would have been made).

I’m currently reading “Pro C# and the .NET Platform”, about to begin the part of the book on .NET soon and was hoping someone can visit the link and go to “Look Inside” the book’s table of contents and let me know if there are any chapters/topics I will be using extensively, others rarely, or other perhaps not at all so I can safely skip them temporarily until I start doing more advanced things. I mean the book is 1500 pages for cryin out loud and I'm really trying to get up to pace and understand how all these things go together to build a trading system using C#.

Amazon.com: Pro C# 2010 and the .NET 4 Platform (9781430225492): Andrew Troelsen: Books

Thank you so much in advances, I would really appreciate the advice.
you sound familiar... have you asked this question before?

take a look at Ninjatrader. (free download)

all the things you mentioned is already done...
no use re-inventing the wheel.
you should focus on the trading logic, not housekeeping.
__________________



Only an idiot would reply to a stupid post
Tams is offline  
Reply With Quote
Old 07-06-2011, 11:44 AM   #3

Join Date: Mar 2011
Location: NC, USA
Posts: 33
Ignore this user

Thanks: 14
Thanked 14 Times in 10 Posts

Re: Newbie Desperate for Advice

I agree with Tams. And came to the same conclusion after researching available options.

For ANY newbs:

Get your feet wet with NinjaTrader, look at the examples they provide (and GomiPackage v1.3b available at NinjaTrader forum). Don't worry about using .NET or other libraries, focus on using NinjaScript which is based on C#. NinjaTrader is easy to use for the average newbie compared to other common trading tools, which means you won't get frustrated early on trying to do something simple.

NinjaTrader v7 Help Guide

I'm going to use the Simulated Data Feed and recording E-mini S&P via Zen-Fire (free trial) data feed for replaying.

Good luck!
Mr_You is offline  
Reply With Quote
The Following User Says Thank You to Mr_You For This Useful Post:
Tams (07-06-2011)
Old 07-06-2011, 02:29 PM   #4

Join Date: Jul 2011
Posts: 12
Ignore this user

Thanks: 6
Thanked 3 Times in 3 Posts

Re: Newbie Desperate for Advice

No, tams this is the first time im posting here.

Thanks for the advice guys but so many of my questions were left unanswered. Regarding continous real time data collection (not simulated), the role of socket programming & FIX, and if those external libraries have their own individual limitations. I'm not looking for an easy, temporary solution which will pose limitations for me when i enter a quantitative finance program in school where I will eventually be programming more complex mathematical models. I will check out ninjascript sincee its based on c# thank you for that advice but can somebody please elaborate on any more of my questions?
parliament718 is offline  
Reply With Quote
Old 07-06-2011, 04:04 PM   #5

Tams's Avatar

Join Date: Sep 2008
Location: Geelong
Posts: 3,777
Ignore this user

Thanks: 2,084
Thanked 1,474 Times in 912 Posts

Re: Newbie Desperate for Advice

Quote:
Originally Posted by parliament718 »
No, tams this is the first time im posting here.

Thanks for the advice guys but so many of my questions were left unanswered. Regarding continous real time data collection (not simulated), the role of socket programming & FIX, and if those external libraries have their own individual limitations. I'm not looking for an easy, temporary solution which will pose limitations for me when i enter a quantitative finance program in school where I will eventually be programming more complex mathematical models. I will check out ninjascript sincee its based on c# thank you for that advice but can somebody please elaborate on any more of my questions?
if you have to ask these questions,
you shouldn't be attempting it.
you are not in the league.
__________________



Only an idiot would reply to a stupid post
Tams is offline  
Reply With Quote
Old 07-06-2011, 05:24 PM   #6

Join Date: Nov 2007
Posts: 90
Ignore this user

Thanks: 13
Thanked 32 Times in 21 Posts

Re: Newbie Desperate for Advice

@parliament718
Obviously you are making serious efforts to dig deeper.
Unfortunately most people shy away from bigger efforts.

Certainly there are many ways to make money in the markets but it seems quite straightforward that in order to find more subtle edges you need specialized instruments.
C# is a good tool for that.

Quote:
Originally Posted by parliament718 »
Regarding continous real time data collection (not simulated), the role of socket programming & FIX, and if those external libraries have their own individual limitations. I'm not looking for an easy, temporary solution which will pose limitations for me when i enter a quantitative finance program in school where I will eventually be programming more complex mathematical models. I will check out ninjascript sincee its based on c# thank you for that advice but can somebody please elaborate on any more of my questions?
- real time data collection
Write all the real time data you can get into files (plain binary format).
One file for one day.
At some point in time you will need it.

- socket programming & FIX
To interface to retail brokers you will have to write programs that connect to their proprietary APIs.
You wont have to bother about socket programming.
FIX isn't needed for retail (only institutional).

- limitations of libraries
Not sure what you mean. Please specify if further information needed.


Quote:
Originally Posted by parliament718 »
I'm not looking for an easy, temporary solution which will pose limitations
That's a very good idea.

Following the advice given before in this thread (limiting oneself to NinjaTrader / NinjaScript) is not compatible with this idea.

Writing programs for a trading platform like Ninja means to exclude a whole universe of possibilities and introduce many limitations.

Therefore:
Writing programs for broker APIs (as you apparently planned in the first place) is the way to go.
uexkuell is offline  
Reply With Quote
The Following User Says Thank You to uexkuell For This Useful Post:
parliament718 (07-06-2011)
Old 07-06-2011, 05:31 PM   #7

Join Date: Jan 2011
Posts: 56
Ignore this user

Thanks: 10
Thanked 20 Times in 14 Posts

Re: Newbie Desperate for Advice

I myself am a ninjatrader developer as well. APA Zones is my product. Ninjatrader is what you are really looking for based on your post.
Data:
I would go with a free AMP futures trading account for 30 days. To get your data. Plus, you can grab 10 years of back data from kinetic.

Backtesting and Database:
Under tools options you can have control of all your data for backtest as well as something ninjatrader calls: Market Replay. This is usually in simming/ backtesting your system.
Ninjatrader has to connect to each of these features through server like connects by going to File > connect > "real datafeed", "back data" Kinetic, or market replay.

Programming in ninjatrader:
basically, ninjatrader gives you a namespace: indicator to program your system in their software. To create a strategy you have the namespace of : strategy to use. *note: you indicator/strat. and all other indicators that you have must compile in the their given code editor for your indicator to work on your charts. It's annoying sometimes. You can also take your code out of ninjatrader to visual studio if you want to debug or program in there. Ninjatrader however add it's own self generating code to the bottom of all your code. If you plan to distribute your system through ninjatrader, contact support directly and they have a person that will help you lock down your code and provide you with a vendor license.

Once you are in programming in their editor. you can do a " this." to see all the functions and methods that you can use. "F1" is also very good on showing you examples of their methods. You can link up external dlls to your indicator as well. So that gives you the power to use C# or C++ libraries. Note: Chartcontrol commands can really execute orders. Ninjatrader forums are also another great resource.

Once you get your code in ninjatrader, you will find that porting it to other platforms to be pretty easy in concept and most work will be done for you; that's where I am right now.

Please look me up if you need help.
doubletop11 is offline  
Reply With Quote
The Following 2 Users Say Thank You to doubletop11 For This Useful Post:
parliament718 (07-06-2011), Tams (07-06-2011)
Old 07-06-2011, 06:12 PM   #8

Join Date: Mar 2011
Location: NC, USA
Posts: 33
Ignore this user

Thanks: 14
Thanked 14 Times in 10 Posts

Re: Newbie Desperate for Advice

As already pointed out.... If you are a beginner programmer then there is absolutely no reason (or logic) to "reinvent the wheel" and build an entire trading AND backtesting platform when they already exist. Only institutions or proprietary trading companies do this. And even then most quantitative traders have traditionally used Matlab in addition to a broker connector (interactive brokers) and/or data feed connector (IQFeed) at a minimum for prototyping/backtesting but often for live trading.

The answer to most of your questions is: Yes you could use ______, but you're a beginner programmer so there is a very high learning curve and you would be better off using tools which already implement ______ for you. You want to implement socket code without even knowing what is involved! Imagine the disaster that could occur from a bug when live trading!

What you want are tools that give you the details you need in order to analyze those details against a mathematical model (which is quantitative trading vs standard automated/algorithmic trading). So using NinjaTrader or NeoTicker, you would access other mathematical libraries or tools (such as quantlib or R) from within your strategy code. How you access these will depend, but most likely you'll be making DLL calls if you're using C#. Beware of slippage!!

Keep this in mind.... Over and over again, I've read how most quantitative traders agree that the simple strategies are the most successful.

My advice is to start with Ninja Trader and evolve to other tools and/or integrate tools/code as your strategies require. As mentioned, its relatively easy to port your strategies and you can almost always call external code. What can be the most important issue is whether your tool of choice can give you access to the details your strategies need: true sub-second tick data from IQFeed. From what I can tell, NeoTicker does and NinjaTrader should, but I need to confirm this for myself.

BTW, I have investigated all opensource solutions and they are either buggy or have poor release cycles (TradeLink) or their development has stagnated or lagged (IBrokers for R and Marketcetera).

Last edited by Mr_You; 07-06-2011 at 06:40 PM.
Mr_You is offline  
Reply With Quote
The Following User Says Thank You to Mr_You For This Useful Post:
parliament718 (07-06-2011)

Reply

Tags
autotrade

Thread Tools
Display Modes Help Others By Rating This Thread
Help Others By Rating This Thread:


Similar Threads
Thread Thread Starter Forum Replies Last Post
Looking for Advice feng2088 Automated Trading 12 06-29-2011 04:57 PM
Advice matinthehat Beginners Forum 18 10-10-2008 11:23 AM
Fed Day Advice. Nvesta81 Beginners Forum 18 06-27-2008 01:53 PM
Need Advice cmc Beginners Forum 6 02-12-2008 07:28 AM
Newbie. Some advice needed about brokers Connected Beginners Forum 3 08-25-2006 11:46 PM

All times are GMT -4. The time now is 05:08 AM.
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
CS to VB integration by DeskLancer
©2006-2011 Traders Laboratory, All Rights Reserved.