Защита паролем к советнику

 

привет ребята

какой код нужен для защиты советника паролем?

и возможно ли, чтобы наш советник работал на межбанковском валютном сервере?

любая помощь будет принята с благодарностью

пока

shwetha

 
shwetha:
привет, ребята

какой код нужен для защиты советника паролем?

и возможно ли, чтобы наш советник работал на межбанковском валютном сервере?

любая помощь будет принята с благодарностью

пока

shwetha

Привет, Швета,

очень просто, друг!

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

....

}

Затем скомпилируй советника и наслаждайся.

 
Mohammed:
Привет, Швета,

очень легко, друг!

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

....

}
Тогда скомпилируй советника и наслаждайся .

Кстати, почему ты хочешь защитить свой советник? Разве мы не делимся здесь знаниями?

 

отображение ошибок

привет, Мухаммед

спасибо за ответ, но когда я скомпилировал, он показывает следующие ошибки

'{' - выражение в глобальной области видимости недопустимо

'\end_of_program' - ожидается завершающая скобка '}'

жду вашего ответа

пока

shwetha

 
shwetha:
привет магомед

Спасибо за ответ, но когда я скомпилировал, он показывает следующие ошибки

'{' - выражение в глобальной области видимости недопустимо

'\end_of_program' - ожидается завершающая скобка '}'.

жду вашего ответа

пока

швета

Швета,

Это было лишь представление о том, как должен быть написан код.

Ну, код должен быть таким (Применяется к учебному советнику Coders Guru "Мой первый советник"):

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

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

}

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

Почему?

Вы еще не ответили мне ; что вы хотите защитить советника? Разве мы здесь не для того, чтобы делиться знаниями и помогать друг другу? (Помните, я использовал бесплатный советник Coders Guru, чтобы показать вам свой бесплатный код) ????

 

также возможна пробная версия советника с версией сборки Metatrader:

Советник работает только на MetaTrader Build Version 190 !

если MT Build != 190, то удалить советника !

--

 

Или если вы являетесь IB и предоставляете систему для новых счетов, вы можете привязать систему к вашему счету IB. Новый трейдер сможет использовать систему только на своем счете у вас. Это защитит вас от использования системы на счетах, которые не будут приносить вам комиссионных.

Я тоже спрашиваю, почему PassWord? Это будет иметь значение, как защитить код.

CockeyedCowboy

 

мой билд 191

моя версия meta trader - 4 build191

 

Ну, есть сотни методов защиты вашего эксперта:

1- Вы можете использовать код, который я представил (жестко закодированный пароль).

2- Вы можете сделать алгоритм, который будет собирать что-то и сравнивать это с паролем. (Например: маржа счета x дата покупки / 100).

3- Вы можете создать dll и отправить ее с советником, и эта dll будет обрабатывать пароль (она может подключиться к вашему веб-сайту и получить пароль).

4- Вы можете связать советника с номером счета пользователя. Вы просите его по электронной почте дать вам номер счета, затем вписываете его в советник, компилируете его и отправляете скомпилированную версию пользователю.

5- Вы можете сделать так, чтобы советник работал только с определенной версией MT.

6- Вы можете ограничить количество запусков советника.

7- Вы можете ограничить количество дней использования советника.

8- Вы можете распространять советник бесплатно и попросить пользователя, если он ему понравится, пожертвовать вам. РЕКОМЕНДОВАНО

 

привет

Mohammed:
Вы еще не ответили мне ; Что вы хотите защитить советник? Разве мы здесь не для того, чтобы делиться знаниями и помогать друг другу? (Помните, я использовал бесплатный советник Coders Guru, чтобы показать вам свой бесплатный код) ????

привет, магомед

мне нужна защита паролем, на случай если я захочу загрузить свой советник на сервер брокера. не то чтобы я не хотел делиться с форумом. надеюсь теперь все понятно.

пока

спасибо

shwetha

Причина обращения: