Automated Trading - FAQs

Hey autotraders,

The Q for those who experienced.

If,for e.g, i`ll want to trade several different strategies and in the same instrument,do i need several accounts/brokers for that.How do i sort the issue out?

Thanks in advance.
 
Easiest way is to request a block of sub accounts. It's not a real account from your broker's perspective - more like just a number to tag your strategies with for accounting purposes.
 
Easiest way is to request a block of sub accounts. It's not a real account from your broker's perspective - more like just a number to tag your strategies with for accounting purposes.

Thanks for your reply.

Should i contact someone special?The support,normally,is not that techie savvy.
 
Thanks for your reply.

Should i contact someone special?The support,normally,is not that techie savvy.

Depends on who you clear through. When I used to do this method I contacted my sales guy and he gave me a block of about 100 sub accounts. I'm not positive that someone like IB would do it. But it's pretty standard elsewhere as a decent way to isolate strategies and their PNL.
 
Lol, that is NOT what Bjarne Stroustrup said. There is a series that is titled "The 5 Programming Languages You Need to Know". They ask many different developers and visionaries. But if you listen to the webcast then you notice Bjarne does not say you need to know 5 languages, though he said focusing on 1-2 languages inevitably leads to delving into other languages. Interestingly he explicitly pointed out C# as well...

1) depends a lot on your needs. If I had to pic a general language, I would go with Python since it is a great all rounder, good for doing many different tasks but not really the best at any of them. Focuses on readability of the code and quick development times. A good approach to this problem is starting from the other end. If you have a broker or system where you want to write trading scripts (say, MT, esignal, tradestation) then start learning their scripting language... then find out which language is the base for the one you are using and learn that language. For example, esignal's language is based on javascript, so if you trade on esignal, learning javascript would be a natural move. Same goes from MT's scripting language and C...

2) Specializing on one language has the advantage that it lets you get very fluent on that one language, but it also has a few short commings.
a. it blinds you from that languages strenghs and weaknesses. you cant compare if you only know 1.
b. how do you choose which one to learn? word of mouth? if you ask 10 developers you'll get 8 opinions on which is the best language, based on their own needs and perceptions... so learning a little of many languages is the only way to find the one where you really want to specialize.
c. it puts you at risk of obsolesence. there is more than a few languages that have fallen out of fashion and didn't incorporate new programming features that later became common on modern languages. Think of the poor souls that spend their time coding Fortran or COBOL (yes, there are people that still use those languages day in day out!!!)
Bjarne Stroustrup, the creator of C++, says that one should learn at least 5 languages. (Not saying that he is an oracle or something, but the guy knows a thing of 2). Why? because no language is perfect for all tasks, so knowing several helps you to know which one to use for which task. It also makes it easier for you to adapt to new languages and deepen your understanding of computer science as a whole.
3) depends on the language. you can pickup languages like python, or R and be proficient at them in a matter of months... other languages like C++ are notorious for being expert friendly and can take a while to learn.
this free class from GATech can take you from almost 0 to writting a basic automated investment system on python in 8 weeks.
https://www.coursera.org/course/compinvesting1

4) as complicated as you want and a little more! :D there is no such thing as small details when it comes to computers... remember that you are teaching a piece of sillicon to trade. that piece of sillicon has absolutely no intuition. If anything, putting together the system will push you to see small mundane details that you pay no attention to when you are trading, since you consider them intuitively without thinking about it.

5) this depends. if you know 0 about computer systems, then the developer will know 100% of how everything works in your trading system. meaning that he will have a very strong incentive, and very few obstacles to trade the system himself! in this case you would need to pay him a good cut of the profits and provide other incentives to keep him from going solo... the more you know about computer systems the more you can slice the work into smaller pieces for many more developers, and this allows you to hold more leverage on them. If you know enough, you can even make it into granular pieces where you can even outsource much of the work without giving away the secret sauce...

6) as in #5 depends on your side, how small can you cut the problem for them. the smaller the pieces, the less they need domain specific knowledge, and the less they can just take your secret sauce with them.

7) on the contrary. the computer will NEVER forgo of ANY detail that you didn't specifically code for. It is a stupid piece of silicon that has 0 intuition, but has pefect logic and follows instructions in EXACTLY the same manner every time. No detail is too small. The machine needs you to pull out the microscope and let it know every tiny little detail, any detail you miss simply won't exist as far as the machine is concerned.

8) trading more setups simultaneously is a normal objective for automation.
you can't just let the system trade and go drink from colorful glasses with umbrella straws while the system makes money, you need to keep an eye on them and continuously work on new strategies.

9) depends on the algo.

10) that's a nice and very realistic movie.

11) depends on the algo.

12) depends on the algo :)
 
3 reasons:
moving trades between accounts - to net or flatten - required a phone call or email to the broker
one exchange (minor one) decided to stop aggregating volume for rebates
I add strategies at a rate of about 5 per day

So it became necessary to implement my own tracking system. There are lots of reasons why this is extremely difficult. It added about 20,000 lines of code. So don't go there if you aren't forced to.
 
I add strategies at a rate of about 5 per day

i) Would I be correct in saying that these are simple strategies if you are coming up with so many?

ii) How many strategies do you operate?

iii) How successful (% wise) are these strategies when implemented via an algo. Do they perform better or worse as opposed to trading these strategies manually?

iv) Do you back-test these strategies before putting them out or do you forward test them and then tweak as required?
 
Also, I believe that new or retail traders GREATLY overestimate the value of their trading idea and underestimate the value of execution, programming, fees, relationships, capital, experience, etc. Everyone goes through this process and then eventually comes out the other side as their career progresses.


Thanks for the insightful posts on this thread.

Considering most people on this site are retail traders, I was wondering what your gut feel is on algo trading for typical retail traders who trade through a broker such as IB. Earlier on in the thread you emphasized the value of execution/fees/relationships and I assume some of this would be very difficult for a retail trader to improve upon unless they were doing a lot more volume and had access to better execution/clearing options. Just wondering if you can quantify how big of a factor you think this is. What percentage of profitable algos have you come across where executing on IB just wouldn't cut it?
 
i) Would I be correct in saying that these are simple strategies if you are coming up with so many?

ii) How many strategies do you operate?

iii) How successful (% wise) are these strategies when implemented via an algo. Do they perform better or worse as opposed to trading these strategies manually?

iv) Do you back-test these strategies before putting them out or do you forward test them and then tweak as required?

The idea of the strategy is usually simple. The implementation is fairly complicated. New strategies are generally variations on a theme or different parameters applied to a new market.

I run about 20 strategy types (out of about 100 programed). Total implementation of 1,600 running strats.

Most of them cannot be traded manually. Some could but with difficulty. They look at market microstructure events that you can't necessarily see. Manual trading is better for different scenarios. On average, they (total) trade about 1 contract per sec. for 24 hours. Can't really do that manually.

Both back and forward testing.
 
Back
Top