А про запись на удаленный FTP с помощью этой-же библиотеки поподробней не расскажите?
А про запись на удаленный FTP с помощью этой-же библиотеки поподробней не расскажите?
Вот пример, что было бы полезно, и лучше конечно, в качестве индикатора.
Например, это считывание в файл уровней поддержки-сопротивления от Акслеля 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); } } } //+------------------------------------------------------------------+
Не подскажите, для чего Вы писали этот скрипт?
Пример использования wininet.dll для загрузки веб-страницы
В срипте демонстрируется использование функций библиотеки Windows wininet.dll
Будьте внимательней!
не достаточно
>>...лучше сделать 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
Здравствуйте. В описании этого скрипта есть одна неточность: в описании прописан адрес, начинающийся с https (https://www.mql4.com/ru/users/Intege), а в самом скрипте прописан адрес, начинающийся с http (https://www.mql4.com/ru/users/Integer). В действительности адрес соответствтует адресу, прописанному в описании (начинается с https). При запуске скрипта в терминале МТ4 Build 1090 появляется ошибка: "Ошибка при вызове InternetOpenUrlW()". Если же в данном скрипте прописать адрес, который и в действительности, и в самом скрипте начинается с http (http://www.fxpro.ru/), то скрипт работает правильно, страницу скачивает в файл SavedFromInternet.htm.
Как же скачивать файлы по защищенному соединению https? Что нужно изменить в предлагаемом коде?
Здравствуйте. В описании этого скрипта есть одна неточность: в описании прописан адрес, начинающийся с https (https://www.mql4.com/ru/users/Intege), а в самом скрипте прописан адрес, начинающийся с http (https://www.mql4.com/ru/users/Integer). В действительности адрес соответствтует адресу, прописанному в описании (начинается с https). При запуске скрипта в терминале МТ4 Build 1090 появляется ошибка: "Ошибка при вызове InternetOpenUrlW()". Если же в данном скрипте прописать адрес, который и в действительности, и в самом скрипте начинается с http (http://www.fxpro.ru/), то скрипт работает правильно, страницу скачивает в файл SavedFromInternet.htm.
Как же скачивать файлы по защищенному соединению https? Что нужно изменить в предлагаемом коде?
Все нормально с https работает, так же как с http (все точно так же). Просто страница с https находится на mql5.com, а не mql4.com, то есть вы пробуете с неправильным адресом.

Все нормально с https работает, так же как с http (все точно так же). Просто страница с https находится на mql5.com, а не mql4.com, то есть вы пробуете с неправильным адресом.
Этот адрес (https://www.mql4.com/ru/users/Integer/) указан в прикрепленном файле s_wininet.mq4. Однако если этот адрес в данном скрипте заменить на адрес https://www.mql5.com/ru/users/Integer/ и запустить в терминале МТ4 Build 1090, то появится ошибка "Ошибка при вызове InternetOpenUrlW()". Номер этой ошибки из библиотеки kernel32.dll - 12157 (ERROR_INTERNET_SECURITY_CHANNEL_ERROR - The application experienced an internal error loading the SSL libraries.) То же происходит при загрузке некоторых других страниц, начинающейся с https. Проверял следующие сайты: https://msdn.microsoft.com/en-us/ - загрузка есть, https://www.mql5.com/ru/articles/1391 - ошибка 12157, https://fortrader.org/ - ошибка 12038 (ERROR_INTERNET_SEC_CERT_CN_INVALID - SSL certificate common name (host name field) is incorrect—for example, if you entered www.server.com and the common name on the certificate says www.different.com), https://sgr-tradeinvest.ru/mql4-bonus/ - ошибка 12157.

...Однако если этот адрес в данном скрипте заменить на адрес https://www.mql5.com/ru/users/Integer/ и запустить в терминале МТ4 Build 1090, то появится ошибка "Ошибка при вызове InternetOpenUrlW()"
Неправда

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
s_wininet:
Author: Dmitry Fedoseev