If you have created an Expert Advisor that you want to commercialize, before doing so, a very important thing you must do is to protect it. So, why is the protection important? By adding the protection you will prevent your forex robot from unwanted use. Your users will not be able to distribute it further without your knowledge or permission. You will be able to control how many installations they can have. They will not be able to see the code, so your trading algorithm (and your ideas) will be kept secret for the users.
So what are available protection mechanisms and how secure they are?
- The simplest and weakest mechanism is password protection. In the input mask (or during the installation) the user will enter the password that will enable full usage of the robot. It will not prevent an unwanted distribution because the password can be distributed in the same way as the robot. It will only restrict the users that get your EA by accident.
- A key generator is another protective mechanism it is a set of passwords that are generated on predefined rules. As in password protection, the user will enter the key into the input mask. Using the key generator you will be able to create a different password for different users. A good key generating mechanism is checking account name or account number (or both). So, in that manner, you can protect it from any unwanted distribution.
- Account number or account name protection is limiting the usage only on certain account number or account name. The account number is automatically generated by the broker when the user opens the account and it cannot be picked or changed by the user. On the other hand, account name matches user name and surname on live accounts while on demo accounts users can set any name. A variable that is checking the account data is a part of the program code. The expert can only work if data matches the data stored in the code. Additionally, you may also restrict the usage to a certain broker, usage only to a demo account and usage only for testing in the strategy tester. This kind of protection is very strong and it will stop unwanted sharing of the software. The only disadvantage of this approach is when you want to enable it to a different user you will have to add his data to the code and you will need to compile it again.
- Time limit protection is a mechanism when you allow some or all expert features for a limited period. The expiry time is stored in the code similarly as account number protection. This functionality is useful if you want to create a trial version for your EA. Changing the expiry time or disabling the time protection requires a change in the programming code and recompilation.
- The best and strongest protective mechanism is web request protection. It requires a connection to the predefined web server. It will allow you to exchange the data with an already distributed expert advisor. So, you will be able to enable, disable or limit functionality in already distributed EA. It gives you control over unwanted distribution and you can check how many installations each user has.
When we talk about the protection we must address the possibility of decompilation or reverse engineering. It is the process of creating the source code file form the executable file. Though Metaquotes (the producer of MetaTrader platform) is trying hard to completely remove its prospect and it is impossible to find MQL decompiler on the Internet, the process is still possible to a limited number of users. It can remove all your implemented protective mechanisms in the expert advisor. Your trading ideas and algorithms will be available to the users.
Thus, it important to protect the Expert advisor that you want to commercialize. Protection can allow you to control unwanted distribution and protect your trading ideas. It can be implemented by a password or by a key generator. You can tie your EA to a predefined account number or account name. The software features can be available for a certain period. The best possible mechanism is web request protection. However, distributed robots will be vulnerable to decompilation.