You’re a trader with serious ambitions to use algorithmic methods. You already have an idea to be converted to an algorithm. The problem: You do not know to read or write code. So you hire a contract coder. A guy who’s paid for delivering a script that you can drop in your MT4, Ninja, TradeStation, or Zorro platform. Congratulations, now you’re an algorithmic trader. Just start the script and wait for the money to roll in. – Does this really work? Answer: it depends.
Coding contracts can work out well or fail miserably. It depends on you and on the coder. But mostly on you. As a contract coder* who often hires other contract coders, I got meanwhile some experiences with both sides of the medal. So here are some coder hiring suggestions for increasing the chance to get something useful back for your money.
Find the coder
There are three Internet places where you can look for strategy coders: trader forums, freelancer websites, and tool vendors. The latter is my preferred way to acquire coding manpower. I check out advertised indicators, trading systems, or software tools that have some relation to the project at hand. If I like what I see, I contact the developer and ask if she or he does contract work. Most do. This way I know that the new coder has knowledge about the subject, can bring in her experience, and can do commercial quality work.
When contracting on trader forums or freelancer websites, be aware that coding abilities are not equally distributed among the population. Speed and code quality by freelancers differ by factors up to 10. So you need some means to judge the coding beforehand. Check out example projects (obviously, don’t hire someone who has nothing to show). If you can’t decide among five coders, hire all five. Give them all a small task, a little script, something that can be done in about 3 hours. Pay all five for the small task, then select the one with the best work for the real project. The invested money is well spent. A connection to a good coder is a very valuable asset.
Grill the coder
Before hiring, interrogate the freelancer about his skills and his approach to the project. And put attention on clear and prompt answers. Many issues arise from misunderstanding. Freelance coders must be able to express themselves not only in script, but also in plain English. As you’ll most likely communicate by email, test the promptness. If it takes your aspiring coder three days to respond on an email even in the negotiating phase, he’ll likely need three weeks to react on an issue after delivery and payment – if at all.
One important thing to ask is how the coder tests his scripts. In software development, proper test procedures are more important than writing code. A good coder has some test framework for putting his code under stress. This is twice important when the coder, as I sometimes do, sub-contracts parts of the task to other coders. Understanding and testing other people’s scripts is an additional effort that pays back in better code quality.
Naturally you should also make sure that the coder has basic understanding of trading, and knowledge in math and statistics – or can at least quickly come to grips with a new field of knowledge. A degree in math, physics, engineering, or computer science is of advantage, even if it pushes up the coder’s fees. But understanding the algorithm on a deep level can be essential for coding a serious trade system. My favorite way to grill a coder was giving her a sheet of paper and asking her for a quick proof of Pythagoras’ theorem. Unfortunately, this only works in a face to face interview, not by email.
Feed the coder
An essential part of cooperation with coders is your project description. Know your goals precisely, but not too precisely. Some clients are able to describe clearly what they want. Others send long and utterly confused project specifications that leave you completely in the dark of what you have to code. From some clients I got laconic flow diagrams like this: “Analyze price curve with neural network – open position when profitable – close position at price maximum – repeat”. Others have 22-page concepts with a complex strategy described up to the finest detail of the user interface button colors. And as they felt that all this could somehow limit the flexibility, they usually require any detail to be adjustable with many different parameters and modes.
A trading strategy is no iPhone app. No one knows beforehand if your idea will work or not. If not, any implemented additional details are wasted money. So split your project into milestones. Or let the coder do it. The first milestone is always the proof of concept: a script of just your trade idea, with no stops, extra filters, money management, user interface, or other gimmicks. This should be coded at first, and carefully tested in all possible variants. If this script turns out to be profitable, go on with the next step. Otherwise you won’t need all the rest.
If your trade idea or algorithm is very secret, the coder should offer you a non-disclosure agreement. This way he accepts the responsibility to keep your trade method for himself. Which he should do anyway, of course.
Don’t listen to the coder
At least not to me. I used to advise clients about the success chances of their concept – even before coding and testing it. For instance I declared a certain strategy doomed to fail since it seemed just a complex hodgepodge of conventional indicators. The client was unimpressed. He told me to code it nevertheless. Now, 18 months later, he’s still living from the returns of that system. Since then I refrain from unsolicited advising.
But you should very well listen to the coder when he suggests different methods of implementing your system, or modifications for simplifying the algorithm or making it more effective. The coder possibly knows your algorithm better than you.
Pay the coder
I will be frank: For almost all coders (I’m no exception), coding is one of the greatest things on earth. For some, it’s better than sex. We all would code for free if there were no alternative. However, professional ethics and our bank account require that we demand payment.
Since coding speed can be very different, it’s normally not advised to pay a coder by hour, unless you’ve worked with her a long time and know her well. Normally the coder will quote the project at a fixed price. The price should include not only the coding, but also a support and warranty period after delivery. It usually does not include training the script or adjusting the parameters. This is your task, as it’s very time consuming and thus would be expensive, but requires no code knowledge.
Just as coding speed and quality, coding prices vary strongly among freelancers. Obviously the cheap price is not always the best. On the other hand, if the project is really interesting and the coder would really like to get the job, you can often negotiate a discount. Some ballpark figures: My own contracts start at EUR 170 per strategy, which is my employer’s required minimum for a simple script. Contracts for complex projects with options trading or machine learning algorithms are in the EUR 1000-2000 range; individual user interfaces, and special analysis or input / output methods can raise the contract to EUR 10,000 or more. My largest contract so far was 1.5 million EUR. Sadly, the small contracts are much more frequent than the large ones…
Coders usually demand advance payment. How much depends on your prominence in relation to the coder. If you are Warren Buffett and the coder is an unknown guy from India, you’ll be able to negotiate payment after delivery. If you’re a nondescript retail trader and the coder is employed by a large company, he’ll likely ask you for 100% advance payment. In most cases the terms will be 50% in advance and 50% after delivery.
If the script works, pay the rest immediately. This won’t cost you much, but makes a good impression on the coder. I only ever had one single case where the contract price was not paid at all. This is always a bad idea: We coders talk to each other. Not paying a contract might get you in trouble to ever find a coder again. Or worse: You might find one who implements a little surprise in your trading script…
Be independent of the coder
Even when you hire a coder, it makes sense when you acquire a basic understanding of coding – for instance through the Zorro tutorial. It will take a day or two. But it will allow you not only to better judge the code quality, but also to modify the script beyond just setting parameters. Then you don’t need to always wait for a new quote by the coder. And you save money. Remember, I have to charge EUR 170 (at least) no matter if I re-write the script completely or only modify a single line.
Be very, very meticulous in selecting a coder and working with her or him, and try to understand as much of the code and its structure as possible. This can be the deciding factor for the success of your project. – In case you’re curious about my above mentioned one point five million contract, or about the single case when a contract was not paid, or about my most bizarre experience as a hired coder so far: You can read that story here. But it is not suited for minors. So if you’re below 18, please do not click on that link. Thank you.
* Some coders prefer to be referred to as ‘programmers’. The rationale is that a coder just converts an algorithm in code, while a programmer develops the algorithm. This distinction is not really useful: You can not code a trading strategy when you’re illiterate in algorithms. Thus, I don’t care if I’m a coder or a programmer as long as I’m paid.
23 thoughts on “I Hired a Contract Coder”
Great post – I’ve hired coders in the past using Elance and a now acquired site that was called rent-a-coder. The costs and quality diverged widely.
I am a beginner Python coder myself but I’m not good enough to get the most out of the fantastic resource that Quantopian offers. Have you looked into them? I am contemplating hiring some help to get more out of their high quality database and code libraries. Any suggestions would be welcome.
Frank you can reach me at twitter.com/hedgefair
Quantopian has a great tutorial. And Python has good libraries for data analysis, but it has one problem. It is not the fastest language. When you develop systems, you’re spending 90% of the time with testing, training, data mining. We have a room full of PCs just doing that. It’s a big difference if you have to wait 2 hours for a training run, as with C/C++, or 12 hours, as with Python or C#. But for introduction into algo trading it is certainly great.
AlphaModus.com is another firm that will offer traders coding solutions as well as coders a market place for their strategies. The QAQC at AlphaModus.com is extremely stringent and dwarfs anything Quantopian is putting on the table.
If you’re interested in hiring a professional here’s what I have built:
And my work history:
Reach out if you are interested…I am always looking for a challenge 🙂
Amazing! Its genuinely amazing article, I have got
much clear idea concerning from this piece of writing.
Great article! Thank you for the post
I offer myself as a MT4 coder with hundreds of EAs and Indicators developed. Please feel free yo contact me for your future projects.
Thanks for the great article.
Haha, your Utopia story is super funny!
Mr. Mathias N. definitely was a very good con artist, and I am sure he achieved his real goals to the fullest extent. Namely, I strongly suspect that his assignment indeed was to incapacitate a competitor. Except, the competitor was not Utherverse but you. You obviously were kept busy with his bullshit to allow some other firm of similar profile in the meantime to secure a very lucrative actual contract. The funds they invested to keep you out of the game for this short time period probably were dwarfed in orders of magnitude by the contract they eventually signed.
This is a good theory, but it was not so. I got later some details about the background and N.’s further fate. He was no competitor and not hired by a competitor.
I’m surprise that someone from the same company zorro made this write up. Actually i was a victim @zorro. i had a very very bad experience with them. I mailed their support after a friend referred me to them as they claim to give money to the poor(marketing strategy), i stated clearly what i wanted and what my budget was. Ok then they gave me a quote for a whooping EUR 2250 (2647USD) for fix adaption of my mq4l code to zorro. Then in the second mail I informed the support that my budget was $250 so maybe i forgo the fix API adaption,and just convert the EA to C-lite,she kept pushing me to send over the code, but i still insisted to get price quote or a price range, because i have several bad experiences with codes that just want to get your code and give you a scary price to scare you away.
Now in her/he mail she/he stated that ”the conversion of 200 lines MT4 code to C will most likely already exceed the $250 budget”. That sounded fair to me as a trader from 2007 and old member of several forex forum forexfactory.com/mecman, forexpeacearmy,TSD forum,Mq4l forum,Worldwideinvestment forum, indo-investasi,forex systems.ru,soehoe.id etc So i sent my code. Expecting to get a price range slightly higher that $250 and maximum $499……..
Later i got a mail from their coder, and i sent him me details on what i expected in the conversion, i wanted him to understand that i wanted the backtest and demo to be identical.
By then it was my 7th email to them, Then i got exacted what i was trying to avoid, the agent then slammed with a 850EUR fee !!! I was so shocked 850eur(1000usd) for my own 200lines of code. Because they are in possession of code, That is 4x my budget. I replied him and told him to consult the agent i spoke with because she said ”will most likely already exceed the $250 budget”, so i assumed max $499 because if not she would have said, it will likely exceed twice your budget.
I got so upset because they now have my code, we exchanged a total of 30 emails, but it was all a waste. A huge regret, the agent even told me he have 100s of similar EAs and i told him, if you had 100s of similar EAs then it should take you up to 4 days which was the duration you gave. The agent told me that i can go and freelance the job if i want, I defiantly know a lot of freelancing web site
I don’t want anyone to ever experience same issue, after 30 emails between I and zorro support,I gave up. Since I cant withdraw my EA all i can do is to pass this message around and to every forum i’m registered with. God bless you
I’m not sure that I understand your problem. Fixing a long and confused EA and replicating it on a different platform can indeed be expensive, but certainly not EUR 2250. And if you asked for a quote and it was too expensive – what’s the problem to just look elsewhere for a cheaper offer?
I will answer your question one by one.
My problem was that i followed what you posted here and your support does not do what you preach because i was fooled by your support, and your support is not credible.I worked with Canadian travel agency for 7yrs and handle escalated customer, you reply is obvious that you have taken sides with your company instead of looking for how to de-escalate an issue.
Please don’t make me sound like a lair , I was quoted eur2250 for fix adaptation email was dated 21st Nov. That was why i requested an alternative quote to fix the code, confirm the current backtest and demo will be identical after its converted to C-lite. And was told”the conversion of 200 lines MT4 code to C will most likely already exceed the $250 budget” email was dated Nov 22nd. So based on that email $250-$499 sounded ok for me.
I did not go to other places I already knew because i trusted the company i sent it to, and i used 3 different programmers to develop 3 different parts of the code, so as to make sure they never had an idea of what the final code will look like. I actually took most of those early steps you posted here to prevent conflict of interest before sending my code over, since it’s irreversible after i send my code.
If I hadn’t sent my code over, I would not even post here. I know how customer service works, false advertising or inaccurate information by a customer service agent is very expensive. And just to let you know that was part of my job for 7yrs, I handled payouts to customers based on inaccurate information/solutions given by customer service agent which requires doing deep investigations, reading documentations and listening to calls accurately before replying to a customer. So its obvious you did not read my mails before replying or you just acted blind to say”but certainly not EUR 2250”makes me look like I’m lying and that is an insult.
If you do not understand the reason i posted this was have the issue resolved and to prevent other people from running into the same mistake then I will go to every financial trading community to post my experience review so that no one falls in similar circumstance.
Just to make sure: This is my blog, no support desk. I do not know your case and have no ambition to “handle escalated customers”. I cannot help here with particular issues, I can only comment on general questions.
If you ask a freelancer for the price of converting code, he will natually need that code for calculating the time and cost. No one would give you a price before seeing the code. If your code is top secret, sign an NDA. If you don’t like the price, don’t place the order. That’s how it works everywhere in the industry, and I fail to see the problem. Do you not trust the NDA and fear that your code will be disclosed or what is it?
Not to side any party. I am making general statements which may not apply here. It is a fair market practice to see the code before quoting and NDA is legal binding. I think only price negotiation is a tricky thing which may cause unhappiness. Price too low, coder unhappy. Price too high, customer unhappy. So it may end up a no deal situation and every party has to accept it.
This is your blog but your post is not credible. Because i adhered to your post and its a part of what got me into this issue, now you are making look like I came here to lie where you work for the same company or even own it. This is totally outrageous !!!
1. If you do not know my case how comes you knew that my code was confusing ?
2. how comes did you know that i did not to sign ?
3. how comes you are the Chief Engineer in zorro forum with the same alias jcl and the number 3 registered member of that forum Registered on : 07/22/00 21:00 ?
4. Who is financial-hacker.com/services/
5.And the you make me look like I’m telling lies by saying, i quote you ” but certainly not EUR 2250”
6. You quote again ”No one would give you a price before seeing the code”. That is not true, coders can give quotes and a maximum fee which depends on the type of job request, the language use and how many lines the code contains.
As much as a coder will need a code every firm i have done biz with several firms gives similar quotes and a maximum quote, and on that maximum its left for the client to proceed or go some where else. Now you just trying to blame me for reading your post and adhering to post. I’m completely disappointed with your response.
Ok. May I now kindly ask you to stop trolling my blog? I don’t know who you are and why you are agitated, but I did my best to answer your questions. And that’s all I can do for you. You can see under Contact where I work, what I do, and what I don’t do. I’m a programmer, no psychologist. Thank you for understanding.
hirehackersandprogrammers.com would be where to find handpicked hackers and programmers just for you .
‘From some clients I got laconic flow diagrams like this: “Analyze price curve with neural network – open position when profitable – close position at price maximum – repeat”.’
Do most of your clients give you too little information like this? What do you do in this case?
Working with the client for getting a concept that we can program.
Thank you Ben Brittain , I was able to get two hackers from the website you suggested . they are expensive but they are really good .
Jamesharden @ programmer . net was the programmer I loved working with .