Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Twitter!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Visualizações:
35
Avaliação:
(4)
Publicado:
Atualizado:
\MQL5\Include\fxsaber\Memory\ \MQL5\Experts\
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

No Tester, durante a otimização, você pode encontrar falhas nas passagens devido à falta de memória.

Há um método para calcular essas passagens de emergência. No entanto, é difícil avaliar todas as muitas variantes de parâmetros de entrada para o consumo intenso de memória pelo Expert Advisor.


Você precisa encontrar configurações potencialmente problemáticas de parâmetros de entrada de um Expert Advisor existente. E então descobrir as causas.


Essa biblioteca simples permite que você acompanhe a dinâmica das alterações no consumo de memória de uma forma bastante simples.


Exemplo:

Para ilustrar, vamos pegar um EA lacônico e adicionar algumas linhas a ele (destacadas).

#property tester_no_cache

#define  MEMORY_TESTER_OPTIMIZATION   // Operação no modo de otimização do testador.
#include <fxsaber\Memory\Memory.mqh> // Monitoramento do consumo de memória.

input int inMaxMB = 10;

void OnTick()
{
  static MqlRates Rates[];
  
  const int SizeMB = (ArraySize(Rates) * sizeof(MqlRates)) >> 20;
  
  if (SizeMB < inMaxMB)
    ArrayResize(Rates, ((SizeMB + 2) << 20) / sizeof(MqlRates)); // Aumentar a matriz em ~megabytes.
}

double OnTester()
{
  return(gMemory.GetMax()); // Consumo máximo de memória durante a execução do programa.
}

O Expert Advisor simplesmente aumenta sua matriz.


Resultado.

A imagem mostra o resultado da otimização.

As medições de consumo de memória são semelhantes.


Uma única passagem do conjunto superior produzirá isso.

Core 1  OnTester result 102
Core 1  2026.02.10 23:58:58   MQL_MEMORY_USED: Min = 0 Max = 102 Last = 0
Core 1  EURUSD,M1: 80954 ticks, 1437 bars generated. Environment synchronized in 0:00:00.020. Test passed in 0:00:01.781.
Core 1  EURUSD,M1: total time from login to stop testing 0:00:01.801 (including 0:00:00.020 for history data synchronization)
Core 1  202 Mb memory used including 23 Mb of history data, 64 Mb of tick data


Cenários.

A biblioteca permite que você encontre o consumo excessivo de memória pelo Expert Advisor e investigue melhor as causas no modo de depuração.

Quanto menos recursos o Expert Advisor consumir, mais oportunidades de otimização haverá: aumento do número de agentes de teste, velocidade de otimização.

Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/69335

Temporizador de fechamento de velas - Indicador MT5 Temporizador de fechamento de velas - Indicador MT5

Descrição do indicador - Candle Close Timer Nome: Candle Close Timer Versão: 1.0 Autor: BENTRADE TRADING Link: https://www.mql5.com/en/users/dahmi_benali

Support and Resistance(SNR) Sentinel  Indicator Support and Resistance(SNR) Sentinel Indicator

Indicador adaptativo de suporte e resistência que detecta, rastreia e atualiza automaticamente os níveis de S/R válidos mais próximos usando barras de confirmação configuráveis. Os níveis mudam dinamicamente depois de rompimentos confirmados e se estendem para frente em tempo real.

Multi-timeframe RSI scanner with visual dashboard and alerts Multi-timeframe RSI scanner with visual dashboard and alerts

Scanner RSI multi-timeframe pronto para produção com sistema inteligente de repetição de alertas. Monitora até 7 períodos de tempo simultaneamente, destaca as zonas de convergência quando mais de 3 TFs se alinham e agora repete automaticamente as notificações de falha para garantir que você nunca perca configurações críticas de sobrecompra/sobrevenda.

Trend based on WPR Trend based on WPR

Esse indicador combina WPR e lucro/perda total. Não sei como falar mais sobre esse indicador, mas você pode experimentá-lo.