Protección con contraseña para EA

Mohammed  
shwetha:
hola chicos

¿cuál es el código para tener una contraseña de protección a la EA

y es posible tener nuestro EA trabajando en el servidor de interbank fx

cualquier ayuda reg esto es apreciado

bye

shwetha

Hola shwetha,

¡muy fácil amigo!

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);

....

}

Entonces compila el EA y DISFRUTA

Mohammed  
Mohammed:
Hola shwetha,

¡muy fácil amigo!

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);

....

}
Entonces compila el EA y DISFRUTA

Por cierto, ¿por qué quieres proteger tu EA? ¿No compartimos el conocimiento aquí?

shwetha  

mostrando errores

hola mohammed

Gracias por la respuesta, pero cuando compilé me dio los siguientes errores

{' - expresión en el ámbito global no se permite

\N-fin_de_programa' - se espera el corchete final '}

esperando su respuesta

bye

shwetha

Mohammed  
shwetha:
hola mohammed

Gracias por la respuesta, pero cuando compilo me muestra los siguientes errores

{' - expresión en el ámbito global no se permite

\N - corchete final '}' esperado

esperando su respuesta

bye

shwetha

shwetha,

Era sólo una idea de cómo tiene que estar escrito el código.

Bueno, el código debe ser así (Aplicado a la EA educativa de Coders Guru "Mi primer 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);

}

//+------------------------------------------------------------------+
AlexPiechFinGeR  

también es posible EA de prueba con Metatrader Build Version :

El EA se ejecuta sólo en la versión 190 de MetaTrader.

si MT Build != 190 entonces borre el EA !

--

cockeyedcowboy  

O si eres un IB y das un sistema para nuevas cuentas, puedes vincular el sistema a tu cuenta de IB. El nuevo comerciante será capaz de utilizar el sistema en su cuenta con usted solamente. Protegiéndolo a usted de que lo use en cuentas que no le generarán ninguna comisión.

Yo también pregunto por qué PassWord? Se hará la diferencia de cómo proteger el código.

El CockeyedCowboy

shwetha  

mi build 191

mi versión de meta trader es 4 build191

Mohammed  

Bueno, hay cientos de métodos para proteger tu EA:

1- Puedes usar el código que presenté (contraseña dura).

2- Puedes hacer un algoritmo que recoja algo y lo compare con la contraseña. (Por ejemplo: el margen de la cuenta x la fecha de compra / 100).

3- Puedes crear una dll y enviarla con el EA y la dll se encargará de la contraseña (puede conectarse a tu web y obtener la contraseña).

4- Puedes vincular el EA con el número de cuenta del usuario. Le pides por correo electrónico que te dé el número de cuenta y luego lo metes en el EA y lo compilas y luego envías la versión compilada al usuario.

5- Usted puede el EA trabaja con una versión de MT especificada solamente.

6- Puede limitar el número de ejecuciones del EA.

7- Puede limitar los días de uso del EA.

8- Puede compartir el EA de forma gratuita y pedir al usuario si le gusta que le done. REOMENDADO

shwetha  

hola

Mohammed:
Todavía no me has contestado ; ¿para qué quieres proteger el EA? ¿No estamos aquí para compartir el conocimiento y ayudarnos unos a otros? (Recuerda que usé un EA gratuito de Coders Guru para mostrarte mi código gratuito) ?

hola mohammed

necesito protección con contraseña, en caso de que quiera cargar mi EA con el servidor del broker. no es que no quiera compartir con el foro. espero que ahora esté claro.

adiós

gracias

shwetha

Razón de la queja: