привет, ребята
какой код нужен для защиты советника паролем?
и возможно ли, чтобы наш советник работал на межбанковском валютном сервере?
любая помощь будет принята с благодарностью
пока
shwethaПривет, Швета,
очень просто, друг!
....
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);
....
}Затем скомпилируй советника и наслаждайся.
Привет, Швета,
очень легко, друг!
....
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
привет магомед
Спасибо за ответ, но когда я скомпилировал, он показывает следующие ошибки
'{' - выражение в глобальной области видимости недопустимо
'\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- Вы можете распространять советник бесплатно и попросить пользователя, если он ему понравится, пожертвовать вам. РЕКОМЕНДОВАНО
привет
Вы еще не ответили мне ; Что вы хотите защитить советник? Разве мы здесь не для того, чтобы делиться знаниями и помогать друг другу? (Помните, я использовал бесплатный советник Coders Guru, чтобы показать вам свой бесплатный код) ????
привет, магомед
мне нужна защита паролем, на случай если я захочу загрузить свой советник на сервер брокера. не то чтобы я не хотел делиться с форумом. надеюсь теперь все понятно.
пока
спасибо
shwetha
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
привет ребята
какой код нужен для защиты советника паролем?
и возможно ли, чтобы наш советник работал на межбанковском валютном сервере?
любая помощь будет принята с благодарностью
пока
shwetha