Old-Style EAs and Manual Mode
Licensing EAs written with init() and start(), and adding the calls by hand when needed.
Old-style MT4 EAs
Older MT4 EAs use init() and start() instead of OnInit() and OnTick(). Tick Old-style code on the download page. It is still one include line – the file renames init and start the same way the normal file renames OnInit and OnTick.
Old-style mode renames the words init and start everywhere in your code. If you have a variable called start or init, the compile stops with “identifier already used”. Rename that variable, or use Manual mode.
Old-style code only exists in MT4, so the option is only offered for MT4 products.
Manual mode
For code the automatic method cannot compile. Nothing is renamed, and the include line alone does nothing – you add two calls yourself.
First thing inside OnInit(), or init() in an old EA:
FXNookStart();
if(!fxnook_ok) return(INIT_SUCCEEDED); // stays on chart, badge says whyFirst thing inside OnTick(), or start() in an old EA:
if(!FXNookHeartbeat()) return; // use return(0); if start() returns int- If your OnInit()/init() returns void, write
return;instead. - If you also have an OnTimer(), start it with the same heartbeat line.
- Anything that trades must be behind that check.
Test it
Attach the EA with an empty key. You must see the red FXNook badge. A smiley and no badge means a call is missing and your EA is unprotected.