Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Facebook!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Ansichten:
21
Rating:
(4)
Veröffentlicht:
Aktualisiert:
\MQL5\Include\fxsaber\Memory\
Memory.mqh (25.5 KB) ansehen
\MQL5\Experts\
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Im Tester kann es während der Optimierung vorkommen, dass Durchläufe aufgrund von Speichermangel abstürzen.

Es gibt eine Methode zur Berechnung solcher Notfalldurchläufe. Es ist jedoch schwierig, all die vielen Varianten von Eingabeparametern für den hohen Speicherverbrauch des Expert Advisors zu bewerten.


Sie müssen potenziell problematische Konfigurationen von Eingabeparametern eines bestehenden Expert Advisors finden. Und dann die Ursachen herausfinden.


Diese einfache Bibliothek ermöglicht es Ihnen, die Dynamik von Änderungen des Speicherverbrauchs auf recht einfache Weise zu verfolgen.


Beispiel.

Zur Veranschaulichung nehmen wir einen lakonischen EA und fügen ihm ein paar Zeilen hinzu (hervorgehoben).

#property tester_no_cache

#define  MEMORY_TESTER_OPTIMIZATION   // Betrieb im Optimierungsmodus des Testers.
#include <fxsaber\Memory\Memory.mqh> // Überwachung des Speicherverbrauchs.

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)); // Vergrößern Sie das Array um ~ Megabytes.
}

double OnTester()
{
  return(gMemory.GetMax()); // Maximaler Speicherverbrauch während der Programmausführung.
}

Der Expert Advisor vergrößert einfach sein Array.


Ergebnis.

Das Bild zeigt das Ergebnis der Optimierung.

Die Messungen des Speicherverbrauchs sind ähnlich.


Ein einziger Durchlauf des Top-Sets führt zu diesem Ergebnis.

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


Szenarien.

Die Bibliothek ermöglicht es Ihnen, den übermäßigen Speicherverbrauch des Expert Advisors zu ermitteln und die Ursachen im Debug-Modus weiter zu untersuchen.

Je weniger Ressourcen der Expert Advisor verbraucht, desto mehr Optimierungsmöglichkeiten gibt es: Erhöhung der Anzahl der Testagenten - Geschwindigkeit der Optimierung.

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/69335

RSI Price Action Breakout-Indikator RSI Price Action Breakout-Indikator

Ein hochpräziser Trendumkehrindikator, der RSI-Erschöpfungszonen mit Candlestick-Ausbruchsmustern kombiniert.

Kerzenschluss-Timer - MT5-Indikator Kerzenschluss-Timer - MT5-Indikator

Beschreibung des Indikators - Candle Close Timer Name: Candle Close Timer Version: 1.0 Autor: BENTRADE TRADING Link: https://www.mql5.com/en/users/dahmi_benali

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

Produktionsfähiger Multi-Timeframe-RSI-Scanner mit intelligentem System zur Wiederholung von Warnungen. Überwacht bis zu 7 Zeitrahmen gleichzeitig, hebt Konvergenzzonen hervor, wenn 3+ TFs übereinstimmen, und wiederholt jetzt automatisch fehlgeschlagene Benachrichtigungen, um sicherzustellen, dass Sie keine kritischen überkauften/überverkauften Setups verpassen.

Trend based on WPR Trend based on WPR

Dieser Indikator kombiniert WPR und Gesamtgewinn/-verlust. Ich weiß nicht, wie ich Ihnen mehr über diesen Indikator sagen kann, aber Sie können ihn ausprobieren.