Скачать MetaTrader 5

Скрипты: s_wininet

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Интересует заработок в MQL5 Cloud Network? Загляни в профиль!
MetaQuotes Software Corp.
Модератор
181080
MetaQuotes Software Corp. 2007.04.17 09:15 

s_wininet:

Пример использования wininet.dll для загрузки веб-страницы.

Author: Dmitry Fedoseev

Nefedov Kirill
405
Nefedov Kirill 2007.04.17 14:12  

А про запись на удаленный FTP с помощью этой-же библиотеки поподробней не расскажите?

Dmitry Fedoseev
42886
Dmitry Fedoseev 2007.04.17 15:35  
HIDDEN:

А про запись на удаленный FTP с помощью этой-же библиотеки поподробней не расскажите?

Пока не приходилось делать. Может быть в вашем случае лучше сделать php или cgi скрипт, из советника вызвать ссылку и передать в ней параметры, затем скрипт  разложит сигналы по каталогам пользователей.
Mykola Bilak
620
Mykola Bilak 2007.04.19 15:47  
А про запись на удаленный FTP с помощью этой-же библиотеки поподробней не расскажите?

если фтп один, то достаточно встроенной функции SendFTP()
Sergey Gustaytis
503
Sergey Gustaytis 2007.04.24 00:18  
Не подскажите, для чего Вы писали этот скрипт?

Вот пример, что было бы полезно, и лучше конечно, в качестве индикатора.
Например, это считывание в файл уровней поддержки-сопротивления от Акслеля http://4-x.by.ru/dj.shtml, которые можно бы было потом записать в файл с последующем считыванием уровней (Levels_RS_gbpusd.csv) и т.п и использовать в индикаторе от KimIV, к сожалению, ссылку не помню ( давно это было), но код примерно такой ( я добавил только еще одну строку - "Точка разворота. ...! и за сколько дней выводить информацию и сделал это в виде индикатора, но необходимые фалы корректирую каждый день, что конечно весьма неудобно...):

#property indicator_chart_window
#property indicator_buffers 7
#property indicator_color1 DarkViolet
#property indicator_color2 RoyalBlue
#property indicator_color3 SkyBlue
#property indicator_color4 White
#property indicator_color5 Orange
#property indicator_color6 Red
#property indicator_color7 MediumVioletRed
 
//------- input parameters
extern int  NumberOfDay = 2;     // Количество дней
extern bool StrongOnly  = false;  // Показывать только сильные уровни
//------- Глобальные переменные --------------------------------------
datetime Data[];
double   R3[], PR3[];
double   R2[], PR2[];
double   R1[], PR1[];
double   P[],  PP[]; 
double   S1[], PS1[];
double   S2[], PS2[];
double   S3[], PS3[];
 
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void init()
{
  // Установка размерности массивов
  ArrayResize(Data, NumberOfDay);
  ArrayResize(R3, NumberOfDay); ArrayResize(PR3, NumberOfDay);
  ArrayResize(R2, NumberOfDay); ArrayResize(PR2, NumberOfDay);
  ArrayResize(R1, NumberOfDay); ArrayResize(PR1, NumberOfDay);
  ArrayResize(P, NumberOfDay);  ArrayResize(PP, NumberOfDay);
  ArrayResize(S1, NumberOfDay); ArrayResize(PS1, NumberOfDay);
  ArrayResize(S2, NumberOfDay); ArrayResize(PS2, NumberOfDay);
  ArrayResize(S3, NumberOfDay); ArrayResize(PS3, NumberOfDay);
  
  // Загрузка уровней из файла в массивы
  int fh = FileOpen("Levels_RS_"+Symbol()+".csv", FILE_CSV|FILE_READ, ";");
  if (fh > 0)
  {
    for (int i = 0; i < NumberOfDay; i++)
    {
      Data[i] = StrToTime(FileReadString(fh));
 
      R3 [i] = StrToDouble(FileReadString(fh));
      PR3[i] = StrToInteger(FileReadString(fh));
      
      R2 [i] = StrToDouble(FileReadString(fh));
      PR2[i] = StrToInteger(FileReadString(fh));
      
      R1 [i] = StrToDouble(FileReadString(fh));
      PR1[i] = StrToInteger(FileReadString(fh));
      
      P [i] = StrToDouble(FileReadString(fh));
      PP[i] = StrToInteger(FileReadString(fh));
      
      S1 [i] = StrToDouble(FileReadString(fh));
      PS1[i] = StrToInteger(FileReadString(fh));
      
      S2 [i] = StrToDouble(FileReadString(fh));
      PS2[i] = StrToInteger(FileReadString(fh));
      
      S3 [i] = StrToDouble(FileReadString(fh));
      PS3[i] = StrToInteger(FileReadString(fh));
      
      
    }
    FileClose(fh);
  }
  Comment("");
}
 
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
void deinit()
{
  // Удаление объектов
  for (int i = 0; i < NumberOfDay; i++)
  {
    ObjectDelete("R3"+i);
    ObjectDelete("R2"+i);
    ObjectDelete("R1"+i);
    ObjectDelete("Piv"+i);
    ObjectDelete("S1"+i);
    ObjectDelete("S2"+i);
    ObjectDelete("S3"+i);
  }
  Comment("");
}
 
//+------------------------------------------------------------------+
//| Создание объектов ЛИНИЯ и их отрисовка на графике                |
//+------------------------------------------------------------------+
// nv - Наименование уровня
// nd - Номер дня от 0 (текущий) и дальше в глубь истории
// zl - Значение уровня
// sl - Сила уровня (0-слабый, 1-сильный)
// cl - Цвет линии
void DrawLine(string nv, int nd, double zl, bool sl, color cl)
{
  datetime dd1 = Data[nd];
  datetime dd2 = StrToTime(TimeToStr(dd1, TIME_DATE)+" 23:59");
 
  if (!StrongOnly || sl)
  {
    ObjectCreate(nv+nd, OBJ_TREND, 0, dd1, zl, dd2, zl);
 
    ObjectSet(nv+nd, OBJPROP_RAY  , False);
    ObjectSet(nv+nd, OBJPROP_COLOR, cl);
    ObjectSet(nv+nd, OBJPROP_STYLE, STYLE_SOLID);      
    ObjectSet(nv+nd, OBJPROP_WIDTH, 1);//(sl + 1) * 2);
  }
}
 
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
void start()
{
  if (Period() > 240) Comment("Индикатор Levels_RS ТФ больше Н4 не поддерживает!");
  else
  {
    // Отображение уровней на графике
    for (int i = 0; i < NumberOfDay; i++)
    {
      if (R3[i]>0) DrawLine("R3", i, R3[i], PR3[i], indicator_color1);
      if (R2[i]>0) DrawLine("R2", i, R2[i], PR2[i], indicator_color2);
      if (R1[i]>0) DrawLine("R1", i, R1[i], PR1[i], indicator_color3);
      if (P[i]>0) DrawLine("Piv", i, P[i],  PP[i], indicator_color4);
      if (S1[i]>0) DrawLine("S1", i, S1[i], PS1[i], indicator_color5);
      if (S2[i]>0) DrawLine("S2", i, S2[i], PS2[i], indicator_color6);
      if (S3[i]>0) DrawLine("S3", i, S3[i], PS3[i], indicator_color7);
    }
  }
}
//+------------------------------------------------------------------+
Dmitry Fedoseev
42886
Dmitry Fedoseev 2007.04.24 13:12  
GSB:
Не подскажите, для чего Вы писали этот скрипт?
Ответ на ваш вопрос уже давно находится в описании этого срипта:

Пример использования wininet.dll для загрузки веб-страницы


В срипте демонстрируется использование функций библиотеки Windows wininet.dll


Будьте внимательней!
MQL4 Comments
16319
MQL4 Comments 2007.07.23 20:36  
>>если фтп один, то достаточно встроенной функции SendFTP()
не достаточно
>>...лучше сделать php или cgi скрипт...
...не верно
>>А про запись на удаленный FTP с помощью этой-же библиотеки. ..
#import "wininet.dll"
int InternetOpenA(string sAgent, int lAccessType, string sProxyName = "", string sProxyBypass = "", int lFlags = 0);
int InternetConnectA(int hInternetSession, string FTPURL, int port, string login, string password, int FTPflag, int lFlags = 0, int lFlags = 0);
int FtpGetFileA(int hSession, string FileNameServer, string FileNameLocal, bool Boolean, int lFlags =0, int lFlags =1, int lFlags = 0);
int FtpPutFileA(int hSession, string FileNameLocal, string FileNameServer, int lFlags =1, int lFlags =0);
int FtpDeleteFileA(int hSession, string FileNameServer);
int InternetCloseHandle(int hInet);
#import
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий