Take the 2-minute tour ×
Quantitative Finance Stack Exchange is a question and answer site for finance professionals and academics. It's 100% free, no registration required.

I am a one-man operation, and would like to hire a quant for around 4 weeks or work. I am worried that the person I hire might copy my data or the indicators that I have him work on.

What have others done to protect their assets from re-use by employees and contractors?

Additional info:

  • I work from home, so not able to provide a locked-down PC/environment.
  • I don't need to give them access to code, but to very particular historical data that can't be acquired anywhere else, in which I've identified opportunities that need further refinement.

Maybe my only option is to use the quant to educate me... "if I have X and Y, how would I produce Z?" Painful for both me and the quant.

share|improve this question
    
At least one strategy is to hire a non-quant and dumb down your work orders. Another strategy you might consider is to hire a retired or otherwise independently wealthy quant who is not particularly interested in your stuff. Just some alternatives... –  Garry Vass Jan 17 '13 at 11:05
    
you could offer who ever you hire a virtual machine (VPS) to work on that is 'locked down', this would not stop them stealing ideas but would stop them stelling code or data. –  user1810626 Jan 17 '13 at 21:19
    
Thanks guys. @Gary, yeah maybe hiring a non-finance mathematician would work. Not sure how I could find a retired/wealthy quant as I have zero finance connections. @ user, VPS is a great idea, thanks. –  Paul Jan 18 '13 at 6:27
add comment

7 Answers 7

up vote 9 down vote accepted
  • Non-disclosure agreements work on the legal side but not in reality, no agreement prevents someone with intent to still steal code or ideas.

  • Protect core code in obfuscated code bases, through APIs installed on the local machine or have it on a server that others do not have access to to and provide access through function calls.

  • Make sure the local machine does not have any hardware access to the hard drive, other storage media, and no open USB ports

  • Install monitoring software to gauge what the user is doing

  • Install web surfing web site blocking service in order to prevent users from uploading things (though this only works in well capitalized IT and compliance departments where there is staff that constantly updates the filters. Better to just disable internet access.

Some are in my opinion radical measures, I recommend you pay more attention to whom you actually hire. And above all, only expose the resources to someone that this person really needs. No access to other drive folders, no access to code bases unless that person really needs it for his/her core work.

Edit: What often works for me (for coding projects) is to hire people with zero knowledge of financial markets. This obviously only applies to projects where such domain knowledge is not needed. Someone without knowledge nor motivation to lay praying eyes on your strategy code or ideas has much less incentive to steal than someone who is closely connected to this industry and may know people who could potentially capitalize on your ideas and code.

share|improve this answer
    
Agree NDA is useless, as I would have no way of knowing whether the IP was being used. Thanks for suggestions. –  Paul Jan 17 '13 at 5:48
3  
No worries, I deal with very similar issues just on the opposite side of the fence. You can't imagine how many hedge funds are out there to harvest ideas and code from whom they consider "prospective PM hires". I stay miles away from any hedge fund that asks me to bring on board my current strategies and disallows me to run the code in a black box type of fashion with obfuscated dll code. A "no" and I immediately know what is going on...The "big M" is especially ruthless in that regards. –  Matt Wolf Jan 17 '13 at 7:50
    
NDA may not prevent the theft, but it can provide recourse (though they are more effectively used by larger organizations that can afford to pay lawyers for an extended period than a one-man shop likely would). Nevertheless, I'm still impressed by how much you(@Freddy) had thought it through. –  John Jan 17 '13 at 16:07
    
@John, agree with your points, though oftentimes one never actually finds out code or strategy approaches have been stolen. That is why the landmark cases such as the GS code steal were so fun to follow and watch (entertaining only because nothing was taken from me. Unless a strategy capitalizes on market inefficiencies on highly illiquid assets the strategy could even be employed elsewhere and run and you would not know. –  Matt Wolf Jan 17 '13 at 16:11
    
I added another point at the bottom which came to mind and which I have successfully employed in the past. –  Matt Wolf Jan 17 '13 at 16:15
show 2 more comments

Non-Disclousre agreement?

if your really paranoid you can try

  • Using a computer with no internet access?
  • not allowing use of a personal computer?
  • Using a modified compiler and or proprietary libraries/API?
share|improve this answer
    
Thanks. Yes I'm extremely paranoid! –  Paul Jan 17 '13 at 5:51
add comment

Hire someone you know (family / a close friend).

Sounds silly, but what works for the mafia should work for you. If you trust someone you don't need to take many precautions. Sometimes it's even worth compromising on skill.

share|improve this answer
add comment
  1. Break the code into parts. (unit tests, error checking, algo)

  2. Decide what code is sensitive and what code can be shared.

  3. Create a "fake" version of the sensitive code for testing.

  4. Have the programmer work on the part that is not sensitive.

  5. Code the sensitive part (the algo) yourself.

(Example: There is no reason a programmer cannot work on the part of the code that calculates and tracks slippage. Put that in the part of the code that is 'public'.)

Note: The same concept works with data . . . for example: You could loop through the data and have it altered. The altered data can be used for testing purposes. Then, YOU can run the code on the real data once the system works.

The key is simply not to expose anything significantly sensitive.

share|improve this answer
add comment

For algorithms/strategies/indicators, the way this is normally done is you describe the general algorithm, but leave out the parameters. They are then taken from an settings file. So we do all the testing, including acceptance tests using x=12, y=18. But then you run it yourself using your secret numbers, x=10.56 and y=21.22.

That is in the context of coding an existing trading strategy. If you want the person to find the optimal values of x and y, you could give them the algorithm as a pre-compiled black-box function.

Your case of historical data is harder; unless there is some way you can sanitize it without making it useless. But if it is hard to obtain, maybe anything they learn will not be useful, going forward, anyway?

Above all, you do need to feel trust in the person you work with. The NDAs and other paperwork are just to make it clear to each other what the agreement is; legally enforcing anything there is unlikely to work. It is the person's sense of ethics that enforces it.

share|improve this answer
    
P.S. If you want to talk more about your project, off-line, I'd be happy to. My email is in my profile. –  Darren Cook Jan 22 '13 at 23:48
add comment

You have a choice of approach, trust or distrust.

If you can find someone you can trust, then you can focus on getting the right result. One way to induce such a trustful partnership is to include stock or options as incentive, a la Apple.

If you will only distrust your quant, then your best bet is to hire an office space that you can both travel to, and sit together with him/her to work.

I think you need to work out whether you need the quant for their financial knowledge or their development ability. A generic developer can do development given the requirements and unit tests. A quant can work with synthetic/fuzzed data as long as it is reasonable, and could spend time explaining things to you rather than necessarily doing it all by themselves.

If you are paranoid (as in, overly distrustful), then don't give them access to the data. The cheapest and simplest option is to find someone you can trust.

share|improve this answer
add comment

Have you thought about using one of the cloud service providers? For example for data you can setup a free MongoDB instance with https://mongolab.com/products/pricing/.

You can also setup a free (or relatively cheap) Linux/Windows virtual machine with Amazon http://aws.amazon.com/ec2/pricing/

Just few options to isolate your home environment (with sensitive information) from the development ...

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.