At the forefront of Regulation AT has been a discussion on CFTC access to source code. That issue has been fought with strong opinions on both side of the argument. Regardless of any regulations, what are the ethical constraints that we in the electronic trading community should hold ourselves to? What rules should we apply to our activities even if no rule changes come down from our global regulators?
Here are some of my simple thoughts:
- We should be disciplined in our changes. Use source code control and document when changes are happening to our code base.
- We should be disciplined in our testing. Our testing needs to be engineered too. We should document what testing was done and why. We should test the full range of parameters that can be set even if “no one would be crazy enough to set that value.”
- We should be educated in our markets. Use resources to understand what is a rule violation and what isn’t a rule violation in each market and each jurisdiction.
- We should understand what we are being asked to do. If you don’t understand it as a professional algo developer, then maybe you should take some more time.
- We should create detailed log files of our transactions. Log files are required by all exchanges.
- We shouldn’t chase the quick buck. Just because someone is demanding a change doesn’t mean it should be done. Our level of ethics needs to extend beyond a trader’s profit goals.
No one wants their algo to be the next application that causes a flash crash. No one wants other market participants to be manipulated into a loss on their end.
This post was prompted by a recent article in Business Insider entitled “Programmers are having a huge discussion about the unethical and illegal things they’ve been asked to do.” It is a good read.