Automated Trading - FAQs

@eusdaiki that is some pretty good information. However, your overall answer brings me to a crossroad faster than I expected.

I entered this profession for the freedom it provides, both financially and of time. I am very comfortable in my intraday trading and wanted to find avenues to diversify. The two choices I had until now were indulging in options or increasing my activity in longer time frame trades. Basically, something that would generate more income. The option of algo trading seemed and even better idea (as it would fulfill both the criteria of financial gains and freeing up time), until the barriers that have been mentioned start popping up.

The two barriers are:

a) Learning to code: As you mentioned, everyone has a preference for their own language. Hence, learning multiple languages would consume a lot of my time. Additionally, once a preferred language is chosen, it would take even more time to be proficient at it, to be able to code competently. I understand the advantages it may bring with time, but I am not sure it is something that I will enjoy doing. Besides, I have a 0.5, 2 and 4 year old that I like spending time with. They grow ever so fast and I know that I will not get that time back, so time is a factor that can pinch a nerve or two on my side.

b) Outsourcing/hiring: I really don't mind paying up for the service, if I were to get what I wanted and could find someone trustworthy. Sometimes it doesn't matter how much you pay someone, if they think they can make more (or even a little extra on the side), it's all game. So I have an issue of trust at this end. The loss of a few successful strategies would be unkind.

Basically, it's a catch 22 here and it's something that I will have to find a solution to with time.


find the middle ground. :) on a) you don't have to learn enough to code your own version of the linux kernel... just enough so that when you go to b) you can speak the same language as the developer(s). you just need to know the ropes so that you have a clear vision of what computers can/cant do and you understand when the developer starts talking technical and he understands when you're telling him what the system must do. You don't even have to code the same language as he uses for the code, even if he writes the program in C, you can still communicate the ideas better by knowing R or Python... you can focus on building prototypes and let you teammate worry about optimizing it to production standards.
with time, you'll get sharper on a)... programming is a lot like learning a new language... at first you are worried and looking at the dictionary every 2 minutes... then one day it clicks and you start focusing on the message without thinking about the translation.
 
I think your apprehension to learn how to code is misplaced. It is simply a tool that allows you meet your goals. Its not hard to get a basic understanding of how to code, it would probably take you a weekend (read one of the teach yourself C++ books.... thats how I started).

@IAS_LLC I just read your post after posting the one above. It seems like you and @eusdaiki are both in agreement that coding is not rocket science. I'm assuming that if I put an hour a day into it, I should have a good grasp of it in 6 months. Also, a little "motivation" could take me a long ways ;)


index.php




Keep in mind, there is more to the task than just coding the strategy... You need to have a means of getting data to the strategy, managing risk, placing orders, monitoring open positions, etc. When I first started my journey into automated trading, I thought the majority of my time would be spent developing and testing strategies... but it turns out I have spend most of my time on the other things

You are so right on this! In discovering the algo world, most tend to forget that there are all the other bits on the side that are needed to get a system up and running.

So in rephrasing the question, how many month would it take to successfully launch a strategy, taking into account that I will be learning a new language AND also collecting and syncing "the other things" to the strategy.
 

Attachments

  • code.png
    code.png
    257.1 KB · Views: 308
find the middle ground. :) on a) you don't have to learn enough to code your own version of the linux kernel... just enough so that when you go to b) you can speak the same language as the developer(s). you just need to know the ropes so that you have a clear vision of what computers can/cant do and you understand when the developer starts talking technical and he understands when you're telling him what the system must do. You don't even have to code the same language as he uses for the code, even if he writes the program in C, you can still communicate the ideas better by knowing R or Python... you can focus on building prototypes and let you teammate worry about optimizing it to production standards.
with time, you'll get sharper on a)... programming is a lot like learning a new language... at first you are worried and looking at the dictionary every 2 minutes... then one day it clicks and you start focusing on the message without thinking about the translation.


Now this makes good sense and it is something I could take on without compromising the major aspects of my daily life. However, the issue of plagiarism is still very valid if I am going to be passing my work onto a developer to bring to par.

Is there a simple solution to this?
 
I would back everything rwk says, except .NET pretty much just works on Mac and Linux through mono.
The coding and debugging tools for .NET are the most productive, esp. for a beginner.
But, in the end, coding is going to be the least of your problems.
 
If you really think your strategy is that unique, than you should go slow and protect it. But the odds are it is simply a slight variation of what other people are already doing. That doesn't make it any less profitable, but it is good to keep that in perspective.

I've been working on my c++ trading system for better than 2 years in my spare time (I'm not a professional trader, I am an aero engineer). It would have been much quicker if I could work on it full time. Probably a couple months. I have coded everything from scratch, algo, oms, data feed handler, etc. You could use a 3rd party for this if you'd like. I chose not to because I wanted my system to behave exactly they way I want....and I'm stubborn.

The hardest part of learning to code, in my opinion, is teaching yourself to think very very logically and methodically. You must have an exact plan for every detail. The syntax is easy, and all answers are a google search away.

I think you could probably stand up a strategy in a couple months if you used third party software that has a scripting language for trading algos (I think ninja trader does?). That would be the quickest route

 
Now this makes good sense and it is something I could take on without compromising the major aspects of my daily life. However, the issue of plagiarism is still very valid if I am going to be passing my work onto a developer to bring to par.

Is there a simple solution to this?

you'll learn a lot from your developer, and he would learn a lot from you. the best way to minimize the risk of him running off is if you both bring a lot to the table.
If you keep working out new strategies, monitoring the trading risk, etc... this is not something that would be easy to just pickup and take somewhere else, if you add on top a partnership in terms that get money to not be a problem... then the incentive to leave is a lot smaller than the incentive to stay. :)
 
But the odds are it is simply a slight variation of what other people are already doing. That doesn't make it any less profitable, but it is good to keep that in perspective.

That is exactly correct. Some of my high probability setups tend to work well due to this and I like getting into trades where I know either I am on the opposite side of where the majority is trapped or on the side of where everyone will be getting into shortly. The edge that I may posses here is my entries, which allow for a very skewed r:r on my side.

Besides that, I use another instrument which helps me select the very best of directional trades (not setups). As of now, utilizing it is a very tedious process, but I only persist due to the profitability it brings along with the low risk aspect. I also cannot use it to it's fullest ability as it would not be humanly possible to sift through that much data. I am only pushing it to about 40% of what it can do/provide and if I could get that automated, things could really take off to another level.
 
if you add on top a partnership in terms that get money to not be a problem... then the incentive to leave is a lot smaller than the incentive to stay. :)

@eusdaiki this is exactly what my buddy has done (as mentioned previously). However, without taking anything away from a programmer, do you really think a partnership is a good idea for a trader to have? We are talking about this from a financial aspect ONLY.

For instance, programmers pay rate in NYC for writing trading algos is between $150-200K; and these are the best ones around. The firms they work for make that amount in a day! That gives a ratio of 1:252 (trading days/year). Considering this ratio, if I were to go into a partnership, it would not make sense to do a 50:50 split. Do you think a 10:90 split would attract someone, if we ASSUME that the strategies can bring in $500/ year? On this account, the programmer would get a split of $50K/year.

If you're wondering why the split is so skewed, look at it from this angel. 8% is about the average number that is designated to traders that can attain a healthy and consistent income year after year. I'm assuming that you have to qualify in this category to be able to create successful strategies. If so, then that supply of good traders is extremely low. On the other hand, there are a huge number (higher %) of seasoned coders out there. Also, if one puts their mind to it, one can learn how to code with time, where as there are no guarantees to making it in the trading business. Adding to all this, is the risk a trader takes in "sharing" his "secret sauce", which could all be lost in a matter no time should the partnership lack integrity.

To anyone that is a programmer or has a bias on that side, the above paragraph is not intended to take away anything from you or your profession. I actually have a huge admiration for your field, as without it the world would be a different place. The point I was trying to get across was based on the aspect of supply/demand.
 
Back
Top