forked from rosh/MQL5Book
47 lines
1.6 KiB
MQL5
47 lines
1.6 KiB
MQL5
//+------------------------------------------------------------------+
| |
//| FuncCallback.mq5 |
| |
//| Copyright 2021, MetaQuotes Ltd. |
| |
//| https://www.mql5.com |
| |
//+------------------------------------------------------------------+
| |
| |
#property copyright "Copyright 2021, MetaQuotes Ltd."
| |
#property link "https://www.mql5.com"
| |
#property version "1.00"
| |
| |
typedef void (*ProgressCallback)(const float percent);
| |
| |
//+------------------------------------------------------------------+
| |
//| Heavy computations demo |
| |
//+------------------------------------------------------------------+
| |
void DoMath(double &bigdata[], ProgressCallback callback)
| |
{
| |
const int N = 1000000;
| |
for(int i = 0; i < N; ++i)
| |
{
| |
if(i % 10000 == 0 && callback != NULL)
| |
{
| |
callback(i * 100.0f / N);
| |
}
| |
| |
// ... lot of calculations
| |
}
| |
}
| |
| |
//+------------------------------------------------------------------+
| |
//| Callback for progress indication |
| |
//+------------------------------------------------------------------+
| |
void MyCallback(const float percent)
| |
{
| |
Print(percent);
| |
}
| |
| |
//+------------------------------------------------------------------+
| |
//| Script program start function |
| |
//+------------------------------------------------------------------+
| |
void OnStart()
| |
{
| |
double data[] = {0};
| |
DoMath(data, MyCallback);
| |
}
| |
| |
//+------------------------------------------------------------------+
|