Password protection to EA

 

hi guys

whats the code to have a password protection to EA

and is it possible to have our EA working in interbank fx server

any help reg this is appreciated

bye

shwetha

 
shwetha:
hi guys

whats the code to have a password protection to EA

and is it possible to have our EA working in interbank fx server

any help reg this is appreciated

bye

shwetha

Hi shwetha,

very easy friend!

extern string password = "000000";

....

int start()

{

if (password != 123456) //change the 123456 to the password you will give to the user!

{

Alert ("Wrong password! Do you want to cheat my system which I spent my life developing!");

return (0);

....

}

Then compile the EA and ENJOY

 
Mohammed:
Hi shwetha,

very easy friend!

extern string password = "000000";

....

int start()

{

if (password != 123456) //change the 123456 to the password you will give to the user!

{

Alert ("Wrong password! Do you want to cheat my system which I spent my life developing!");

return (0);

....

}
Then compile the EA and ENJOY

By the way, Why do you want to protect your EA? Aren't we share the knowledge here?

 

showing errors

hi mohammed

thank you for the reply.but when i compiled its showing the following errors

'{' - expression on global scope not allowed

'\end_of_program' - ending bracket '}' expected

waiting for your response

bye

shwetha

 
shwetha:
hi mohammed

thank you for the reply.but when i compiled its showing the following errors

'{' - expression on global scope not allowed

'\end_of_program' - ending bracket '}' expected

waiting for your response

bye

shwetha

shwetha,

It was only an idea of how the code has to be written.

Well, the code should be like that (Applied to the educational EA of Coders Guru "My First EA" :

//+------------------------------------------------------------------+

//| My_First_EA.mq4 |

//| Coders Guru |

//| https://www.forex-tsd.com |

//+------------------------------------------------------------------+

#property copyright "Coders Guru"

#property link "https://www.forex-tsd.com"

//---- input parameters

extern double TakeProfit=250.0;

extern double Lots=0.1;

extern double TrailingStop=35.0;

extern string password = "000000";

//+------------------------------------------------------------------+

//| expert initialization function |

//+------------------------------------------------------------------+

int init()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| expert deinitialization function |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

int Crossed (double line1 , double line2)

{

static int last_direction = 0;

static int current_dirction = 0;

if(line1>line2)current_dirction = 1; //up

if(line1<line2)current_dirction = 2; //down

if(current_dirction != last_direction) //changed

{

last_direction = current_dirction;

return (last_direction);

}

else

{

return (0);

}

}

//+------------------------------------------------------------------+

//| expert start function |

//+------------------------------------------------------------------+

int start()

{

//----

if(StringFind(password, "123456", 0) == -1) //change the 123456 to the password you will give to the user!

{

Alert ("Wrong password! Do you want to cheat my system which I spent my life developing!");

return (0);

}

int cnt, ticket, total;

double shortEma, longEma;

if(Bars<100)

{

Print("bars less than 100");

return(0);

}

if(TakeProfit<10)

{

Print("TakeProfit less than 10");

return(0); // check TakeProfit

}

shortEma = iMA(NULL,0,8,0,MODE_EMA,PRICE_CLOSE,0);

longEma = iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,0);

int isCrossed = Crossed (shortEma,longEma);

total = OrdersTotal();

if(total < 1)

{

if(isCrossed == 1)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point,"My EA",12345,0,Green);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());

}

else Print("Error opening BUY order : ",GetLastError());

return(0);

}

if(isCrossed == 2)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point,"My EA",12345,0,Red);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());

}

else Print("Error opening SELL order : ",GetLastError());

return(0);

}

return(0);

}

for(cnt=0;cnt<total;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())

{

if(OrderType()==OP_BUY) // long position is opened

{

// should it be closed?

if(isCrossed == 2)

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position

return(0); // exit

}

// check for trailing stop

if(TrailingStop>0)

{

if(Bid-OrderOpenPrice()>Point*TrailingStop)

{

if(OrderStopLoss()<Bid-Point*TrailingStop)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);

return(0);

}

}

}

}

else // go to short position

{

// should it be closed?

if(isCrossed == 1)

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position

return(0); // exit

}

// check for trailing stop

if(TrailingStop>0)

{

if((OrderOpenPrice()-Ask)>(Point*TrailingStop))

{

if((OrderStopLoss()>(Ask+Point*TrailingStop)) || (OrderStopLoss()==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);

return(0);

}

}

}

}

}

}

return(0);

}

//+------------------------------------------------------------------+
 

Why?

You didn't reply me yet ; what do you want to protect the EA? Aren't we here to share the knowledge and help each others? (Remember that I used a free EA of Coders Guru to show you my free code) ???

 

is also possible Trial EA with Metatrader Build Version :

EA run only on MetaTrader Build Version 190 !

if MT Build != 190 then erase EA !

--

 

Or if your an IB and giving a system for new accounts, you can tie the system to your IB account. The new trader will be abile to use the system on his account with you only. Protecting you from him using it on accounts that will not generate any commissions to you.

I ask too why PassWord? It will make difference how to protect the code.

The CockeyedCowboy

 

mine build 191

my meta trader version is 4 build191

 

Well, there are hundreds of methods to protect you EA:

1- You can use the code I submitted (hard coded password).

2- You can make an algorism to collect something and compare it to the password. (For example: the account margin x date of purchase / 100).

3- You can create a dll and ship it with the EA and the dll will handle the password (it can connect to your web site and get the password).

4- You can tie the EA with the account number of the user. You ask him by email to give you the account number then you but it in the EA and compile it then send the compiled version to the user.

5- You can the EA works with a specified MT version only.

6- You can limit the numbers of running of the EA.

7- You can limit the days of using the EA.

8- You can share the EA for free and ask the user if he like it to donate you. REOMMENDED

 

hi

Mohammed:
You didn't reply me yet ; what do you want to protect the EA? Aren't we here to share the knowledge and help each others? (Remember that I used a free EA of Coders Guru to show you my free code) ???

hi mohammed

i require password protection, in case i want to load my EA with the broker's server. not that i dont want to share with the forum. i hope now it is clear.

bye

thanks

shwetha

Reason: