Initial commit: MQL5 Scripts Collection (MetaTrader 5)

This commit is contained in:
GeneralTradingSarl
2025-06-24 00:33:04 +01:00
commit 60a549d89c
1959 changed files with 31907 additions and 0 deletions
@@ -0,0 +1,20 @@
# 🚀 Unlock the Power of Trading!
Welcome to this open-source trading project. Here you will find powerful tools to enhance your trading journey. If you find this project useful, please consider starring ⭐, sharing, or donating to support further development!
---
**Support the project:**
- Star this repository on GitHub
- Share it with your trading friends
- [Donate here](https://www.paypal.com/donate/?hosted_button_id=YOUR_BUTTON_ID) to help us grow!
---
![Screenshot](script.png)
![Screenshot](wininet-tst2.gif)
## Source Files
- `wininet_test.mq5`
---
> Made with ❤️ for the trading community.
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@@ -0,0 +1,159 @@
//+------------------------------------------------------------------+
//| WININET_TEST.mq5 |
//| Copyright 2010, MetaQuotes Software Corp. |
//| http://www.mql5.com |
//+------------------------------------------------------------------+
// Here is an example that shows how to download file from Internet
// using the Windows library wininet.dll
// It's a modified version of code, published by Integer
// in MQL4.CodeBase: http://codebase.mql4.com/ru/1064
//+------------------------------------------------------------------+
#property copyright "2010, MetaQuotes Software Corp."
#property link "http://www.mql5.com"
#property version "1.00"
//+------------------------------------------------------------------+
//| Imported functions description |
//+------------------------------------------------------------------+
#import "wininet.dll"
int InternetAttemptConnect(int x);
int InternetOpenW(string sAgent,int lAccessType,
string sProxyName="",string sProxyBypass="",
int lFlags=0);
int InternetOpenUrlW(int hInternetSession,string sUrl,
string sHeaders="",int lHeadersLength=0,
int lFlags=0,int lContext=0);
int InternetReadFile(int hFile,uchar &sBuffer[],int lNumBytesToRead,
int &lNumberOfBytesRead[]);
int HttpQueryInfoW(int hRequest,int dwInfoLevel,
uchar &lpvBuffer[],int &lpdwBufferLength,int &lpdwIndex);
int InternetCloseHandle(int hInet);
#import
#define HTTP_QUERY_CONTENT_LENGTH 5
//+------------------------------------------------------------------+
//| Script input parameters |
//+------------------------------------------------------------------+
#property script_show_inputs
input string URL="http://google.com"; // URL
input string FileToSave="google.htm"; // File name
//+------------------------------------------------------------------+
//| The function loads file from URL specified in parameter addr |
//| and saves it in subfolder \MQL5\Files of the client terminal |
//+------------------------------------------------------------------+
int FileLoadFromInternet(string addr,string filename)
{
int rv = InternetAttemptConnect(0);
if(rv != 0)
{
Print("Error in call of InternetAttemptConnect()");
return(-1);
}
int hInternetSession=InternetOpenW("Microsoft Internet Explorer",0,"","",0);
if(hInternetSession<=0)
{
Print("Error in call of InternetOpenW()");
return(-2);
}
int hURL=InternetOpenUrlW(hInternetSession,addr,"",0,0,0);
if(hURL<=0)
{
Print("Error in call of InternetOpenUrlW()");
InternetCloseHandle(hInternetSession);
return(-3);
}
//---- Here we are trying to get information about size of file,
//---- that we will download using the function InternetReadFile.
//---- To get Content length we use the function HttpQueryInfo
//---- and store result in variable ContentSize_HttpQueryInfoW
//---- If it's equal to zero, it means that content length
//---- hasn't been reported by server
int BufLen=2048;
int ind=0;
uchar buf0[2048];
string s="";
int ContentSize_HttpQueryInfoW=0;
int iRes;
iRes=HttpQueryInfoW(hURL,HTTP_QUERY_CONTENT_LENGTH,buf0,BufLen,ind);
if(iRes<=0)
{
Print("Error in call of HttpQueryInfoW()");
}
else
{
s="";
for(int k=0;k<BufLen;k++) { s=s+CharToString(buf0[k]);}
if(StringLen(s)>0) ContentSize_HttpQueryInfoW=(int)StringToInteger(s);
}
if(ContentSize_HttpQueryInfoW>0)
{
Print("Content length=",ContentSize_HttpQueryInfoW);
}
else
{
Print("Content length is unknown");
}
int dwBytesRead[1];
bool flagret=true;
uchar buffer[1024];
int cnt=0;
int h=FileOpen(filename,FILE_BIN|FILE_WRITE);
if(h<=0)
{
Print("Error in call of FileOpen(), file name",filename,"error=",GetLastError());
InternetCloseHandle(hInternetSession);
return(-4);
}
while(!IsStopped())
{
bool bResult=InternetReadFile(hURL,buffer,1024,dwBytesRead);
cnt+=dwBytesRead[0];
if(dwBytesRead[0]==0) break;
FileWriteArray(h,buffer,0,dwBytesRead[0]);
}
if(h>0) FileClose(h);
if(cnt==0) FileDelete(filename);
if(cnt==0)
{
Print("There isn't any data from url:",addr);
InternetCloseHandle(hInternetSession);
return(-5);
}
InternetCloseHandle(hInternetSession);
return(0);
}
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
int OnStart()
{
//---
if(TerminalInfoInteger(TERMINAL_DLLS_ALLOWED)==false)
{
Alert("Allow DLL import in options of the client terminal.");
return(-1);
}
int iRes=FileLoadFromInternet(URL,FileToSave);
if(iRes==0)
{
Alert("The page from URL",URL,"has been saved to file",FileToSave);
}
else
{
Alert("Download error. See details in tab Experts.");
}
return(0);
}
//+------------------------------------------------------------------+