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

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
등급
(336)
프로젝트
620
38%
중재
39
23% / 64%
기한 초과
93
15%
무료
2
개발자 2
등급
(62)
프로젝트
140
46%
중재
19
42% / 16%
기한 초과
32
23%
무료
비슷한 주문
Рассматриваю любые устойчивые системы с высоким KPI, от супер агрессивных с доходностью 50%-100% в месяц ( слив не чаще чем раз 12 месяцев ) , до супер консервативных с доходностью 15%-20% в год при просадке не более 2%-4% и наличием SL или Stop Out / С возможностью доработка под ТЗ или покупка готового решения
Нужен советник который можно установить на МТ5, функции которые требуются; 1) отключать возможность торговать если трейдер допустил просадку в -2% от депозита (уровень просадки админ может менять) 2) отключать возможность торговать если трейдер сделал тейк на более чем 10% от депозита (уровень тейка админ может менять) функция торговли автоматически отключается на 24 часа, также админ может включать функцию. Доп.инфу
#### Описание задачи: Необходимо разработать торгового бота на языке программирования MQL4 для работы в терминале MetaTrader 4. Бот должен использовать уровни, нанесенные на график с помощью объектов типа `trendline` и `rectangle`, и работать согласно заданным правилам. #### Правила работы бота: 1. **Определение уровней**: - Объекты `trendline` и `rectangle` имеют строку в поле `Имя`, содержащую команду для бота
Есть советник MT 5 для Мосбиржи с простой стратегией основанной на двух скользящих средних: на нижней МА покупка, на верхней МА продажа. Нужно исправить две вещи: 1. Сейчас на покупку выставляются лимитные ордера, а продажа набранной позиции осуществляется тейк-профитом. Нужно изменить советник, так, чтобы закрывалась позиция также лимитным ордером, а не тейк-профитом. Здесь нужно учесть что закрытие может быть
Есть советник, нужно только поменять название,описание, сделать привязку к счету, чтобы была защита,чтобы мы могли клиенту давать советник, и была привязка к 1-3 счетам только. Если возможно , сделать привязку к времени, чтобы была привязка лицензии еще на время, например на месяц, 2-3 по ценам договоримся отдельно
Нужен эксперт который будет проверять есть ли интернет соединение, есть ли связь с брокером, есть ли обновления котировок если нет то реконнект аккаунта через интервал времини. терминалов можеть быть дестяки открыто в каждом терминале свой реконнект MQL5 expert цена вопросы? конверт mql5 на mql5 смотреть файл
Нужен советник который может скачать файл с любым расширением (png, jpg, exe и т.д.) по заданной ссылке и сохранить в указанную папку. Без использования сторонних библиотек, только WinAPI. Файл советника нужен с открытым исходным кодом
Куплю Вашего прибыльного советника дорого Должна быть возможность протестировать его на истории и реальные статистические показатели РЕАЛЬНОГО счета Желательно не мартингейл, после тестирования и предоставления статистики счета предложу свою цену
Тех задания 1. Открывает сделки по сигналу индикатора. Перед открытием смотреть на фильтр и если фильтр тоже в этом направлении то открывает сделку если фильтр показывает тренд в противоположенную сторону то не открывает сделку. 2. Можно было выбирать торговлю но БООМ или КРАШ. 3. Стоплос 2 типа по пипсам и по кирпичикам. (при закрытие по кирпичикам если фильтр меняет тренд то задаем N кирпичиков после смени тренда
Необходимо разработать ПО для торговли на финансовых рынках с возможностью подключения к различным брокерам и управлением торговыми операциями по нашим сигналам. Сигналы поступают в табличку формата .csv, которая находится на удаленном сервере. Видим это примерно так: в нашу таблицу поступает сигнал negative (на продажу) или positive (на покупку) актива. Клиент получает этот сигнал и заданным количеством лотов

프로젝트 정보

예산
10 - 50 USD
개발자에게
9 - 45 USD
기한
에서 2  15 일