QUESTION about hiring a programmer to automate your trading

Discussion in 'Automated Trading' started by Thunderdog, Nov 9, 2008.

  1. If i could offer some advice to someone who has had even the littlest briefing on programming or perhaps someone who has determination.

    __________________________________________________

    When I started, I started with tradestation and learned easy language. I began screwing around with different strategies until I eventually found something that worked (on paper) but, when I would run it with the tradestation automation platform I unfortuneately found that my cost of entering the mkt was just too high in order to achieve a profitable edge.

    So I began too look at other order automation software like Ninja Trader & Open Quant which are both based out of C#. I was able to improve my algorithms so I'd become more and more efficient. But as you dig deeper and deeper into the software and want to add more to your code you realize it's not feasable.

    And that's the problem with these automated softwares that are compatible with a wide variety of brokerages; all the functionalities of the programming interface can not be adapted into the software, hence they have to leave things out.

    So eventually I said I have to learn C++. I picked up a book, and Visual Studio C++ and dug into it. I use the brokerage's API, this API has the capibility that allows me to get in and out of the market efficiently so that my strategy has a positive expectancy.

    I have searched my ass off trying to find an edge and can say my edge is a near $0.03 (after slippage & comissions) on a $50 stock (that's holding the position for about 1/2 an hour), but it is certainly good enough to make $ at this game.

    If you do not have good executions, that $0.03 edge you have can be easily eaten away my inefficient methods of entering and exiting the mkt.
     
    #31     Nov 11, 2008
  2. The reason I asked the question is because most of the 'systems' that people trade manually have a lot of details missing as they remember the details but don't write them down because the trader remembers them. I strongly suspect that you can profitably trade your system, but I also bet there are a lot of details missing in what the system is. I know there are a lot of details missing in mine.

    Things like Position Limits you have, Conflicting signals, situations where it blows through your stop, Handling everything when your broker connection dies & re-connects, storing holidays & early closes etc. get messy very quickly, especially if you're trading frequently.

    Eric
     
    #32     Nov 12, 2008
  3. foible

    foible

    Perhaps the question should be "Have you yet written out you system in English to a level of detail that it could be followed by a total idiot <i>with absolutely no pattern recognition or intuition</i> for a week and not get screwed up"?

    For instance, let's say you say "wait for a pullback to the 9SMA" that's not adequate. Exactly what is a "pullback"? Does price have to be above the SMA first? Exactly how many bars are too many, how many are too few? Can price be "too high", and exactly how do you tell? Does it need to be "gradual" and exactly how is this measured? Exactly how do you measure whether the pullback is too far? What values do you look at and how do you quantify them? Everything, absolutely everything, must be quantified - the computer only looks at numbers. If there is a pattern, you must distil it down to a set of numbers with specific cut offs. If you look at many numbers, then you need to take a weighted average or linear regression to arrive at a single number which has its own cutoffs. If you can trade purely from indicators (even if they're custom) without ever looking at a chart then you have the basis of a working automated strategy.

    Everything, absolutely everything needs to be quantified.

    It's this part which still screws me up. I think it's the reason why so many automated systems use off-the-shelf indicators even though manual traders think they're worthless. They may be worthless but they're precise and have specific numerical values which can be easily manipulated.


    Getting back to your original question, how do you get programmers without losing your strategy?

    You could start by finding a professional programmer rather than a professional trader. On the plus side, experienced professional programmers have come into many businesses and been given access to proprietary data and systems but they do their job and move on. Theft of data, processes or software across the whole US is vanishingly small and when it does happen it's often by external attackers or by competitors. There is a risk yes, but it's probably a lot less than you imagine. Programmers want to write code and generally don't much care about trading or other jobs, as long as they can make a living doing what they like, they're happy. The down side is that a professional developer may have next to no experience with the markets and could require some training to get fully up to speed.

    You could try to find developers that have experience as a trader and as a programmer. These would have a lot more experience to bring, could speed up development but they're also the people that may have been thinking of doing automated trading on their own, increasing your risk. Talk to other people and look for recommendations. If you get any resumes from contractors, talk to references and see what they say. You want to find a professional who will respect your intellectual secrets. Often systems developers like NinjaTrader or TradeStation will have a list of developers who have done systems development in the past with good success. I've done some work with NinjaTrader in the past and I know that many (all?) of the developers of NT don't do any automated trading themselves. They enjoy the wages and security of their job and aren't looking to gamble in the markets. That's a big reason why EA can give programmers full access to their code, because they know the programmers want to program and not take the code to start a new business.


    I do think that learning how to develop your own strategy is something that can be learned and no matter what, there is a risk that your strategy gets leaked & stolen. If not by your hired developer but by your broker, your computer repair man, or by some hacker that breaks your firewall. You should look at the risk/reward of each path. How much time and effort will it take to learn to develop on your own? How many bugs or oversights will your first effort have? What will the extra time and bugs cost you? If your strategy could earn $2k/day and a contractor can implement it in 15 days where you would take 90 days; if you risk a couple $1k losses from bugs with your contractor but a dozen from your own code, maybe the risk of intellectual property theft becomes minor compared to the real costs & risks of the alternatives.

    How much is some extra confidence and time worth to you? What is the real cost if someone else is trading the exact same system as you are? If you're scalping illiquid stocks then maybe only a couple people can do it simultaneously but if you're trading liquid stocks or futures then you could have dozens or hundreds of people trading beside you without noticing it. If there is a high cost of development and the risk is low (just one more person trading beside you in a liquid market, worst case) then I'd say the choice is clear, take the risk.


    Question for you, when you go out for dinner, what do you do to prevent waiters from stealing your info? With most things in life there is a risk but with some precautions the risk is worthwhile. Some people refuse to ever use credit cards to avoid possible fraud and have a low tolerance for risk. If you're one of these people then you need to develop the strategy for yourself. If you're comfortable giving your credit card away to people that you barely know, I'm sure you'd be able to do enough background checks to evaluate contractors and deal with the fallout should anything go wrong.


    One thing to look for would be that you're hiring a professional who expects to earn their money through wages. This person won't be cheap, he won't cut deals. He will work by the hour or they will want detailed specs before quoting prices (that's not to steal your ideas, its to give you a better estimate). If this person talks partnerships, talks about giving you different rates if the strategy is profitable or acts like he's not in this for the long haul, run. Think of this like hiring an accountant - you will be sharing detailed, personal information with this person and most will be trustworthy but they should be in it because they really love accounting (development). Their passion should be development first and foremost. You do not want to hire a trader!


    And for a final note, as someone that's developed over a dozen different automated strategies only to watch them fail, remember that this is much harder than you may think. It's an entirely separate niche of trading and you should expect the same ramp-up time (months/years, not days/weeks). I do have a couple strategies which are running live now and are nicely profitable but they are nothing like what I first started out to write. Other people have said this already but it's worth repeating: most automated strategies fail, even those we're sure will succeed. Bear that in mind as you think about how much time/money to invest and about how likely people are to steal it from you. This idea may be worth less than you think.

    I hope it works though. It's a wonderful thing to get some profitable automated strategies running. It not only earns you money but time. I wish I'd started this years ago!

    Good luck.
     
    #33     Nov 22, 2008
  4. coolraz

    coolraz

    There's two part to creating an ATS and trading with it. I believe that they SHOULD be separate (in the sense they should be developed separately)

    1. The API interface. This is what essentially converts your strategy's enter signal into an actual order that is passed to your broker and executes and then reports this execution into your strategy. You should really NOT program this yourself. It is quite burdensome, requires EXTENSIVE testing.

    2. The actual strategy. Once you have an api setup in place, you should then LEARN and UNDERSTAND how to create a strategy to make actual orders on it. This is CRITICAL b/c you will be able to understand this and modify this according to your needs.

    Also, you really need a backtesting system so that you can quickly eliminate completely useless strategies.

    I have had good experience with TradeLink Suite. It's open-source (hosted on GoogleCode) and very well supported by its developer. It basically has a C++ broker server for Anvil and IB TWS
    and the actual strategies are written in C# which is fairly easy to work with if you give yourself some time to learn it. It's very flexible which I liked.

    If your system is fairly simple (i.e based on common indicators etc) then EasyLanguage is also excellent. I used it before and it was very "easy" : ) to work with.

    Good Luck and most importantly patience, it's a slow process but can be quite rewarding!!
     
    #34     Nov 22, 2008
  5. I am not a good computer person, yet do a huge volume of trading, I hired a guy to write software to handle my applications and analytics, I find it a waste of time to learn another field, when I can contract the work out. So far, everything has run seamlessly. I'm so bad with computers, that I even have guys set up my multiple trading stations, and program them for me, This allows me worry free data, display, analysis and execution, and is worth the considerable expense. I wrote about my software system on my blog,
    Having computer experts on call keeps me from worrying about fixing them myself. It's worth the price 100X over with the lack of worry.

    Jeff
     
    #35     Nov 22, 2008
  6. Pekelo

    Pekelo

    Hey Thunderdog, here is an idea:

    Can't you find a programmer in your extended family? A second cousin or a nephew? If so, that could be your solution, since my assumption is that a family member is less likely to piggyback you, or if so, at least it stays in the family.....
     
    #36     Nov 22, 2008
  7. what's your blog url?
     
    #37     Nov 22, 2008
  8. I have considered this as well.

    Bear this in mind:

    1) contracts aren't worth the paper they are written on.

    2) Anything coded can and will be cracked.

    Seriously look into trying to code it your-self or if you have acoder you would trust you model daughter with give him a go. But there are NO guarantees.
     
    #38     Nov 24, 2008
  9. Tdog,
    Sorry if you already had this response but I just saw the thread.

    I've had a few programmers working with me for over 5 years now and they (for the most part) are a pain in the a$$. Of course there are exceptions.

    If what you are programming is strictly objective it is a whole lot easier but I would suggest that only allow the automated portion to take the decision making process to the point of specific areas of trade entry or exit. It forces you to make that final decision and will improve your own trading. This works the best for Swing Trading.

    Trying to create an automated system for intraday trading is insane due to the noise naturally embedded inside all charts.
     
    #39     Nov 24, 2008
  10. as someone who has a software background, I say you have one of 2 choices - you can trust someone, or you can learn to program it yourself

    I also think perhaps one of your bigger risks, is a programming error as much or more than someone 'stealing your big secret'

    a program error could cost you way more than someone taking your secret

    for starters, if they were to market it in any way, it would be easy to sue them for breach of confidentiality agreementm if what they marketed was similar to what you gave them

    most (but not all) citizen programmers are liability paranoid enough that they're not going to risk getting sued. foreign ones are another matter, bugging out and going back to India or China is always an option for them, and frankly the culture of 'what you can get away with' is more prevalent in their technical ranks

    (it's prevalent in the citizen managerial ranks, but much less so in technical ranks)
     
    #40     Nov 24, 2008