Нужно переписать две функции на mql5

Работа завершена

Время выполнения 13 часов
Отзыв от заказчика
Работа выполнена быстро и качественно. Рекомендую!

Техническое задание

Добрый день! Нужно переписать две функции с mql4 на mql5.

 

Первая функция для отправки данных на сайт: 

//+------------------------------------------------------------------+
//|                                                 InetFunction.mq4 |
//|                                 Copyright © 2011, XrustSolution. |
//|                                           mail: [email]xrustx@gmail.com[/email] |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//|     Defines                                                      |
//+------------------------------------------------------------------+
#define HTTP_QUERY_CONTENT_LENGTH 0x00000005
#define HTTP_QUERY_FLAG_NUMBER    0x20000000
//----
#define INTERNET_OPEN_TYPE_DIRECT       0
#define INTERNET_OPEN_TYPE_PRECONFIG    0x00000000   // use registry configuration
#define INTERNET_FLAG_RELOAD            0x80000000
#define INTERNET_FLAG_NO_CACHE_WRITE    0x04000000
#define INTERNET_FLAG_PRAGMA_NOCACHE    0x00000100
//----
#define AGENT "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461)"
//+------------------------------------------------------------------+
//|     Export Function from WINAPI                                    |
//+------------------------------------------------------------------+
#import "wininet.dll"
        int InternetAttemptConnect (int x);
        int InternetOpenA                                       ( string sAgent, int lAccessType, string sProxyName, string sProxyBypass, int lFlags );
        int InternetOpenUrlA                            ( int hInternetSession, string sUrl, string sHeaders, int lHeadersLength, int lFlags, int lContext );
        int InternetReadFile                            ( int hFile, int& lpvBuffer[], int lNumBytesToRead, int& lNumberOfBytesRead[] );
        int InternetCloseHandle                 ( int hInet );
        int InternetQueryDataAvailable  ( int hFile, int& lpdwNumberOfBytesAvailable[], int dwFlags, int dwContext );
        int HttpQueryInfoA                                      ( int hRequest, int dwInfoLevel, int& lpvBuffer[], int& lpdwBufferLength[], int& lpdwReserved[] );


//+------------------------------------------------------------------+
//|                                 Function  :         InetToString |
//|                                 Copyright © 2010, XrustSolution. |
//|                                           mail: xrustx@gmail.com |
//+------------------------------------------------------------------+
int InetToString(string fUrl, string &out)
{
Print("URL :",fUrl);
Print("IN DATA",out);
   if(!IsDllsAllowed()){
     Alert("Must be configured to allow the use of DLL");
     return(1001);
   }
   int rv = InternetAttemptConnect(0);
   if(rv != 0){
     Print("Error when calling InternetAttemptConnect ()");
     return(1002);
   }
   int hSession = InternetOpenA(AGENT, INTERNET_OPEN_TYPE_DIRECT, "0", "0", 0);
   if(hSession <= 0){
     Print("Error when calling InternetOpenA()");
     return(1003);         
   }    
        int hReq = InternetOpenUrlA(hSession, fUrl, "0", 0,
                                                                        INTERNET_FLAG_NO_CACHE_WRITE |
                                                                        INTERNET_FLAG_PRAGMA_NOCACHE |
                                                                        INTERNET_FLAG_RELOAD, 0
                                                                        );
   if(hReq <= 0){
     Print("Error when calling InternetOpenUrlA()");
     InternetCloseHandle(hSession);
     return(1004);
   }
   int cBuffer[256];
   ArrayInitialize(cBuffer,0);
   int dwBytesRead[1]; 
   ArrayInitialize(dwBytesRead,0);
   string TXT = "";
   while(!IsStopped()){
        bool bResult = InternetReadFile(hReq, cBuffer, 1024, dwBytesRead);
        if(dwBytesRead[0] == 0)break;
        string text = "";   
        for(int i = 0; i < 256; i++){
                text = text + CharToStr(cBuffer[i] & 0x000000FF);
                        if(StringLen(text) == dwBytesRead[0])break;
                        text = text + CharToStr(cBuffer[i] >> 8 & 0x000000FF);
                        if(StringLen(text) == dwBytesRead[0])break;
                text = text + CharToStr(cBuffer[i] >> 16 & 0x000000FF);
                if(StringLen(text) == dwBytesRead[0])break;
                text = text + CharToStr(cBuffer[i] >> 24 & 0x000000FF);
                if(StringLen(text) == dwBytesRead[0])break;
                }
        TXT = TXT + text;
        Sleep(1);
        }
   if(StringFind(TXT,"<html>",0)>=0||StringFind(TXT,"<HTML>",0)>=0||StringFind(TXT,"<title>",0)>=0||StringFind(TXT,"<head>",0)>=0){
        if(StringFind(TXT,">404",0)>=0){return(404);}
   }  
   out = TXT;  
        InternetCloseHandle(hReq);
        InternetCloseHandle(hSession);  
        //Print("ServerAnswer:",out);                                                                           
        return(0);         
}

И вторая функция для перелогина счетов в МТ4, ее тоже нужно переписать на MQL5, если это возможно.

#import "user32.dll"
  int GetParent( int hWnd );
  int GetDlgItem( int hDlg, int nIDDlgItem );
  int GetLastActivePopup( int hWnd );
#import
 
#define VK_HOME 0x24
#define VK_DOWN 0x28
#define VK_ENTER 0x0D

extern int Amount = 64; // Количество счетов в закладке Избранное окна Навигатор
extern int Pause  = 30; // Пауза между переключениями торговых счетов

int start()
{  
 int i;
  
  Pause *= 1000;
 
  for (i = 1; i <= Amount; i++)
  {
    Login(i);
    Sleep(Pause);

//здесь остальной код
  }
   return(0);
}

//+------------------------------------------------------------------+
//| Подключается к счету, расположенному в строчке номер Num         |
//| в закладке Избранное окна Навигатор                              |
//+------------------------------------------------------------------+
void Login( int Num )
{
   int hwnd = WindowHandle(Symbol(), Period());
   int hwnd_parent = 0;
 
   while (!IsStopped())
   {
      hwnd = GetParent(hwnd);
      
      if (hwnd == 0)
        break;
        
      hwnd_parent = hwnd;
   }
   
   if (hwnd_parent != 0)  // нашли главное окно
   {
     hwnd = GetDlgItem(hwnd_parent, 0xE81C); // нашли Избранное окна Навигатор
     hwnd = GetDlgItem(hwnd, 0x52);
     hwnd = GetDlgItem(hwnd, 0x8A70);
     
     PostMessageA(hwnd, WM_KEYDOWN, VK_HOME,0); // верхняя строчка закладки Избранное окна Навигатор
     
     while (Num > 1)  
     {
       PostMessageA(hwnd, WM_KEYDOWN,VK_DOWN, 0); // сместились на нужную строчку
       Num--;
     }
 
     PostMessageA(hwnd, WM_KEYDOWN, VK_ENTER, 0);  // логин
     Sleep(1000);                                  // выждали
     
     hwnd = GetLastActivePopup(hwnd_parent);  // нашли форму логина
     PostMessageA(hwnd, WM_KEYDOWN, VK_ENTER, 0); // залогинились
   }
 
  return;
}

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

Откликнулись

1
Разработчик 1
Оценка
(337)
Проекты
624
38%
Арбитраж
40
23% / 65%
Просрочено
93
15%
Свободен
Опубликовал: 4 статьи, 19 примеров
2
Разработчик 2
Оценка
(64)
Проекты
144
46%
Арбитраж
19
42% / 16%
Просрочено
32
22%
Свободен
Похожие заказы
Доброго дня. Нужен советник на основе индикатора, либо скрипт Trading View. Лучше это оформит в качестве программы на Python. Но если код легче будет через PineScript, то можно и скриптом. Главное чтобы последовательность соблюдалась с первого по четвертый пункты из ТЗ (во вложении). Индикатор есть, предоставлю, хотелось бы понять примерную стоимость, создания советника. Спасибо. В индикаторе много параметров, но
Нужен разработчик с опытом реализации советников для ММВБ. Брокер Финам если это важно. Мне нужен алгоритм, который я смогу на исторических данных погонять, оценить. И этот же советник должен без допиливания полноценно выводить ордера на биржу, видеть статистику сделок, учитывать и считать то, что мне требуется. Полностью рабочий бот для ММВБ. Это рамочно. Сам алгоритм не сложный, сеточный. Параметры: 1. Размер
Подобные решения уже есть в интернете, написаны в виде советника. Из их минусов - разработчики советника предоставляют котировки около 50 торговых пар. Мне необходимо, чтобы в мт5 поступали котировки абсолютно всех торговых пар. Ссылку на подобный советник могу предоставить, как на ориентир, образец
Нужен советник открывающий ордер сразу после образования свечи с телом от например 10 до 20 пунктов.(задаваемый в настройках параметр). Ордер открывается по направлению движения самой свечи. И два варианта настроек. Один когда ордер открывается сразу по закрытию свечи. Второй когда открывается отложенный ордер по направлению движения свечи с некоторым отступом от тени. Отступ, размер тейкпрофита и стоплосса ордера
Вем добрый день. Разработка простого бота копира для биржи криптовалют, необходимо копировать сделки с одного аккаунта на другой. Биржа предоставляет api. Если есть специалисты в способные осилить такую работу, жуду адекватного предложения
Необходимо открыть сделку в установленное время на расстояние в процентах от текущей цены,ордера создаются как buy и sell. Входные параметры: 1.Символ 2.Время открытия(GMT-0) 2.Размер лота 3.Расстояние(процент) от текущей цены 3. Stop loss 4.Время действия ордеров 5.Время действия ордеров после срабатывания Мне необходимо открывать до 10 сделок в день,я должен иметь возможность корректировать их.Каждая сделка должна
Здравствуйте! Мне нужен надёжный и умелый программист, который сможет быстро и аккуратно создать простой торговый советник для MetaTrader. Стратегия полностью готова — ничего сложного. Ищу именно тех, кто работает честно, качественно и не требует больших денег за простые задачи. Если всё пройдёт гладко, есть ещё несколько проектов. Пишите — обсудим детали
Создать робота по мотивам индикатора , которую я предоставлю вам , оптимизировать полностью для работы, открытие сделок , выставление тейк профитов и стоп лосов , полная автоматизация торговой стратегии. пишите в телеграм @lexus999123 обсудим все детали
Техническое задание (ТЗ) на разработку ручного тестера стратегий для MetaTrader 5 Аналог Soft4FX Forex Simulator 1. Назначение Создать инструмент (советник или скрипт — на усмотрение разработчика), который позволит вручную тестировать торговые стратегии на исторических данных напрямую в графике MetaTrader 5. 2. Основные функции 2.1. Управление скоростью прокрутки графика Возможность запускать/останавливать прокрутку
Есть простой индикатор в PineScript на основе пересечения 2-х линий EMA и MOST Cross, сделать из него советника для MT5. Сложного ничего нет, стрелочка показывает вверх открываем Buy, стрелочка показывает вниз, закрываем Buy и открываем Sell и т.д P.S цены за работу не знаю, установил ориентировочно

Информация о проекте

Бюджет
10 - 50 USD
Сроки выполнения
от 2 до 15 дн.