Простая проверка — разрешение на работу советника через сторонний сайт.
Нужны базовые знания MQL4 и PHP.
Для начала разрешаем ему работу со сторонним сайтом, добавляем URL.
Сервис ->
Настройки ->
Советники.
Далее на готовом сервере(например
LAMP) размещаем PHP скрипт примерного содержания.
После этого пишем MQL4 советник, который перед запуском проверяет наличие лицензии по Email.
//+------------------------------------------------------------------+
//| access.mq4 |
//| idarvel |
//| http://idarvel.opentraders.ru/bio/ |
//+------------------------------------------------------------------+
#property copyright "idarvel"
#property link "http://idarvel.opentraders.ru/bio/"
#property version "1.00"
#property strict
extern string EmailLicense = "demo@demo.com";
string urldata = ""; // URL вида http://google.com/checklicense/
bool license = false;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
string resp = GetLicense();
if(resp == "ok")
{
license = true;
Print("License successfully accepted.");
}
else
Print("License incorrect.");
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason) {}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
if(license == true)
{
}
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
string GetLicense()
{
char post[];
char result[];
string headers;
int res;
StringToCharArray("email="+EmailLicense,post);
ResetLastError();
res=WebRequest("POST",urldata,NULL,NULL,50,post,ArraySize(post),result,headers);
if(res==-1)
{
Print("Error code =",GetLastError());
}
else
{
return CharArrayToString(result, 0);
}
return("");
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
В следующий раз попробуем усложнить советник — разберем чуть больше PHP команды, добавим проверку по логину/паролю и сигналы на открытие/закрытие сделок будем принимать с нашего стороннего сервера.
Комментарии (1)
8 Miha Сообщений: 485 - Михаил
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий