MQL5Book/Scripts/p2/FuncCallback.mq5

48 lines
1.6 KiB
MQL5
Raw Permalink Normal View History

2025-05-30 16:09:41 +02:00
//+------------------------------------------------------------------+
//| 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);
}
//+------------------------------------------------------------------+