New MetaTrader 5 platform build 4755: General improvements - page 3

 
Fernando Carreiro #:

The "entry point" issue is a Bitdefender false-positive problem that blocks certain functionality. It is not with MetaTrader itself which is a signed executable.

As far as I could understand from the various posts, no other anti-virus has a problem with the current MetaTrader executable. Only Bitdefender is causing the issue.

I wrote it to them and the told me to inspect the quarantine where a false positive would be moved to - but there is nothing, so I am still not really convinced about that.

 
Carl Schreiber #:

I wrote it to them and the told me to inspect the quarantine where a false positive would be moved to - but there is nothing, so I am still not really convinced about that.

  • "procedure entry point" issue - (incl post and post ), fixed - and  
  • there are 2 places to add exceptions to in Bitdefender -
procedure entry point
procedure entry point
  • 2024.12.14
  • Szymon Palczynski
  • www.mql5.com
Always use a meaningful title when you create a topic, so it can be found. “Some drama” is not. Now the platform doesn't even start...
 
@Carl Schreiber #: I wrote it to them and the told me to inspect the quarantine where a false positive would be moved to - but there is nothing, so I am still not really convinced about that.

As far as I can tell, it is not quarantining the executable. It is just blocking certain functionality which then prevents it from starting up.

I think that the MetaTrader executable is an encrypted executable, which then unencrypts itself on startup, in a similar way as a UPX packed executable uncompresses itself at startup.

It is probably during this unencrypting/unpacking phase that Bitdefender is blocking the execution which causes the error to be thrown.

 

Major Problem - OnTick() is dead!

In that build, OnTick() is not executed at all anymore. Even not in a tiny test EA.

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  Print("Tick");
//---
   
  }
 
Doerk Hilger #:

Major Problem - OnTick() is dead!

In that build, OnTick() is not executed at all anymore. Even not in a tiny test EA.

You need rest.



 
When changed the input StopLoss :
1. EA did not take the new value

2. EA did not execute OnInit and OnDeinit 


//+------------------------------------------------------------------+
//|                                                     test1222.mq5 |
//|                                           Copyright 2024,fxMeter |
//|                            https://www.mql5.com/en/users/fxmeter |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024,fxMeter"
#property link      "https://www.mql5.com/en/users/fxmeter"
#property version   "1.00"

input int StopLoss = 1000;
int cnt = 0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
//---
   printf("cnt = %d,OnInit,StopLoss = %d",cnt,StopLoss);
//---
   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
   printf("cnt = %d,OnDeinit,StopLoss = %d",cnt,StopLoss);
}
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
//---
   while(!IsStopped())
   {
      Comment(cnt++,"  StopLoss = ",StopLoss);
      Sleep(1000);
   }
}
//+------------------------------------------------------------------+

==

test1222d

===

Files:
test1222.zip  1159 kb
 
Ziheng Zhuang #:
When changed the input StopLoss :
1. EA did not take the new value

2. EA did not execute OnInit and OnDeinit 

b4772 - no problem.

 
Alain Verleyen #:
You need rest.



In general I need a rest, true, but it is not triggered. I dont say, its everywhere the case, but that build does not create an OnTick() on my system. When I roll back to 4620, the OnTick() works again.

Its not only OnTick(), the charts (without any EA or indicator) are frozen too. 

The firewall stuff is also not happening on every system.

 

Debugger is bugged. 

01 - m_classname is automatically set and the value is obviously invalid since the datatype is already wrongly displayed

ab - m_classname had to be set manually, to show the value which is a string, not an int

Parameters which come from pointers are always NULL, no matter if they are not. 

---------

Furthermore some lines are simply skipped. Like 

if (true)
        return;

in some occations the function is left already at the if (true), return is then not selected in the debugger. 

 
Ziheng Zhuang #:
When changed the input StopLoss :
1. EA did not take the new value

2. EA did not execute OnInit and OnDeinit 


==

===

Who sets a while (!IsStopped()) plus a Sleep() within OnTick(). Seriously, why would anyone do that!?!?! Of course nothing is executed since you freeze the EA with your absurd code. 
Sorry, but I find it annoying that you waste the space of this thread with such nonsense.