How to Become NinjaTrader Vendor and Start Releasing Licensed & Protected Products
NinjaTrader offers and amazing opportunity for all of us! It has a wide community and you are free to make products and grow together with the platform.
I decided to make a quick guide on how this works in this post since I do get this asked quite often and honestly it was a bit confusing right from the start on how this actually works.
So step 1 is make your product, indicator, strategy, addon, course, consulting whatever to do with NinjaTrader and design yourself a fancy website after which contact NinjaTrader support to get registered as a NinjaTrader vendor.
Support team will check your website and send over recommendations. You will most probably have to place NinjaTrader platform and Kinetick data provider marketing materials and risk disclaimers somewhere and that would be it.
Whilst registering you will be asked about your desired VendorName. Now this one is important so note that somewhere. You will get sent your Vendor Key and a Vendor AddOn that you will need to import into NinjaTrader. It will then come up in the tools menu under Vendor Licensing. This is the tool that you will need to use for releasing products.
NinjaTrader offers quite a few bonuses to their Vendors and I think this is amazing. Along with a free enterprise edition of NinjaTrader itself they give you a lifetime Kinetick data subscription and an opportunity to use their licensing server. Now I have done a server like that and that is about 100 hours of work and thought and is not an easy solution so very grateful about this option!
So basically that addon is a place where you input your vendor name, vendor key and control your licenses. You have to create a product, give it a trial period if you want and activate any users for it by simply assigning the date span for each one and attaching their machine ID that they will have to send you.
So what is next? Yes the product side. Once you have created the product inside the AddOn you have the product name that you will need to insert into the code of your product inside the State.Configure bit so when the user initializes the indicator or strategy or whatever it checks the NinjaTrader server for their license.
This is what the line looks like:
VendorLicense("VendorName", "ProductName", "website", "email");
Now next step is to make the product from a CS open source file into a protected or as we say obfuscated DLL or installer that you can distribute.
The easiest and most convenient way to export your source code into a DLL that can be then used is to use NinjaTrader export option. You just need to check the box where is says export as assembly. Now, it will also give you an option to export as protected assembly and yes that is what you need however you will need to buy a 1 year 100USD aginel.net obfuscator license for that. As a result you will get a zip file that is obfuscated and ready for your users to import.
That was the easiest path. So what can go wrong with that one? Well not too much unless you want to compile extra resources together with your dll like a png or something. If you wish to do that you will need to compile outside NinjaTrader using Visual Studio and this is a far more complex process but is not rocket science. You will need to create a separate project just for this product. A work around could be an installer that would actually put the png you need into the required directory, that is if you don't want to make a separate project, still use NinjaTrader exporter but want to ease up your user life.
Another issue that might occur is you might want to use a free obfuscator. In this case you just need to export the DLL using NinjaTrader and then run the DLL through a free obfuscator like the Confuser which is publicly available on github. This is tricky but can be accomplished with some effort and work just as fine.
Overall this was the process of creating product so just to overview:
1) Create the product and website.
2) Contact NinjaTrader and register as vendor
3) Get your vendor name and key
4) Initialize the addon
5) Create the product inside the addon
6) Paste the line of code into the product source code with the product name you created
7) Export using NinjaTrader into protected compiled assembly (you will need to buy the obfuscator license for this step)
Done! Hope this helped!