Fast Scanner. Possible?

 
I would need a scanner for MT5 that scans 4000 symbols in MarketWatch and return the ones which have a signal given by an indicator using iCustom function. Would it be possible to make the scanner run fast even if iCustom is used and there are 4000 symbols? If it's not possible I would not even post the job in Freelance.
 

The question is, what is fast?

 
amando #:

The question is, what is fast?

the scanner
 
Jox90:
I would need a scanner for MT5 that scans 4000 symbols in MarketWatch and return the ones which have a signal given by an indicator using iCustom function. Would it be possible to make the scanner run fast even if iCustom is used and there are 4000 symbols? If it's not possible I would not even post the job in Freelance.
It all depends on the machine (CPU, kernels, RAM,..) the terminal with the EAs is running.
 
Jox90:
I would need a scanner for MT5 that scans 4000 symbols in MarketWatch and return the ones which have a signal given by an indicator using iCustom function. Would it be possible to make the scanner run fast even if iCustom is used and there are 4000 symbols? If it's not possible I would not even post the job in Freelance.

iCustom would not be a good idea even if it were 28 symbols

Documentation on MQL5: Technical Indicators / iCustom
Documentation on MQL5: Technical Indicators / iCustom
  • www.mql5.com
iCustom - Technical Indicators - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 
It seems possible until 500 symbols but not 4000, because ram and disk get overloaded, and there is no way to release them, except restarting the platform.
 

You would really need to trim everything for that to be even possible, and even then it would depend on how well mt5 can load data from such an amount of symbols...

-no iCustom/indicators, use a class that replicates an "indicator" and update it manually (preferably save only the minimal amount of data needed, that's usually the period of the indicator but that may vary, some methods like EMAs are influenced by data that's further back)

-preferably, update everything sequentially (have a timer of 50 ms, update like 100 symbols each call for example) to avoid bottlenecks if there's interaction involved (and use isStopped() in every loop, you wouldn't want to wait for 4k symbols to update)

-almost surely, you will need to use services to run parallel calculations (for the indicators), coordinate and communicate them with the EA

-it's almost impossible that you can get real time signals with this, so consider those possible delays in your trading (and how much would be too much)


And with all this, and even more considerations that I may have forgotten, I don't still know if MT5 would be able to handle that amount of data and calculations. Going even further, you may need to delete data from all symbols to avoid the terminal from loading everything (that's just an idea, I haven't tried). Everything would still depend on your PC (in theory services run in separate cores, so having more could boost the performance).

It may be possible, but it really is no simple stuff

 

if you really need 4000+ symbols to be profitable than you should think about your trading style. 

if you not profitable with 40 symbols, you will not be profitable with 4000

 
Manuel Alejandro Cercos Perez #:

You would really need to trim everything for that to be even possible, and even then it would depend on how well mt5 can load data from such an amount of symbols...

-no iCustom/indicators, use a class that replicates an "indicator" and update it manually (preferably save only the minimal amount of data needed, that's usually the period of the indicator but that may vary, some methods like EMAs are influenced by data that's further back)

-preferably, update everything sequentially (have a timer of 50 ms, update like 100 symbols each call for example) to avoid bottlenecks if there's interaction involved (and use isStopped() in every loop, you wouldn't want to wait for 4k symbols to update)

-almost surely, you will need to use services to run parallel calculations (for the indicators), coordinate and communicate them with the EA

-it's almost impossible that you can get real time signals with this, so consider those possible delays in your trading (and how much would be too much)


And with all this, and even more considerations that I may have forgotten, I don't still know if MT5 would be able to handle that amount of data and calculations. Going even further, you may need to delete data from all symbols to avoid the terminal from loading everything (that's just an idea, I haven't tried). Everything would still depend on your PC (in theory services run in separate cores, so having more could boost the performance).

It may be possible, but it really is no simple stuff

Updating sequentially has already been tried and it doesn't improve. I sent you a PM.
Fast Scanner. Possible?
Fast Scanner. Possible?
  • 2021.09.26
  • www.mql5.com
I would need a scanner for MT5 that scans 4000 symbols in MarketWatch and return the ones which have a signal given by an indicator using iCustom f...
 
amando #:

if you really need 4000+ symbols to be profitable than you should think about your trading style. 

if you not profitable with 40 symbols, you will not be profitable with 4000

You cannot say this because you don't know anything about my trading style. Simply.
 

I  just checked out my scanner, it tooks 4m 35s to scan all 1760 broker's symbols and less than 1G memory.  So it does not takes that much resources to find opportunities, the stress would be on the broker side should scanning become large scale practice.

It takes also analytic and coding skills, needless to say.

Reason: