Der Indikator wird mit dem falschen Parametersatz aufgerufen
Ja, der Indikator hat eine ganze Reihe von Parametern, gibt es eine Möglichkeit, um sicherzustellen, dass iCustom den Speicher füllt? Es dauert etwa 2 Stunden, den Speicher zu füllen, so dass das Testen eines leeren iCustom und das Hinzufügen eines Parameters nach dem anderen sehr lange dauern kann. Haben Sie einen Rat? P.S. Ich werde alle Parameter auch visuell durchgehen.
TheXpert: In den Protokollen wird es viele Indikatoren geben
Ja, ich weiß, was Sie meinen. Ich habe das auch im Strategietester gesehen, wenn viele Indikatoren nach einem Test erscheinen. Aber hier im Strategietester funktioniert alles einwandfrei. Und in den Protokollen wird alles korrekt angezeigt.
Ja, der Indikator hat eine ganze Reihe von Parametern, gibt es eine Möglichkeit, um sicherzustellen, dass iCustom den Speicher füllt? Es dauert etwa 2 Stunden, den Speicher zu füllen, so dass das Testen eines leeren iCustom und das Hinzufügen eines Parameters nach dem anderen sehr lange dauern kann. Haben Sie einen Rat? P.S. Ich werde alle Parameter auch visuell durchgehen.
Lassen Sie den Aufruf ohne Parameter (dann nehmen sie die Standardwerte), und beobachten Sie. Wenn das Leck verschwindet, ist das der Grund für das Problem.
Vielleicht ist es wirklich nur ein wenig, und es ist das Zitat Geschichte, die seit dem Start erschienen ist?
Ich starte MT4 mit mehreren EAs und aktiviere die Speicherprotokollierung. Dort, wo der Pfeil einen Absturz anzeigt, gibt es "nicht genug Speicher für EX4-Datei".
Lassen Sie den Aufruf ohne Parameter (dann nehmen sie die Standardwerte), und beobachten Sie. Wenn das Leck verschwindet, ist das der Grund für den Fehler.
Ich starte MT4 mit mehreren EAs, aktiviere die Speicheraufzeichnung. Dort, wo der Pfeil einen Absturz anzeigt, gibt es "nicht genug Speicher für EX4-Datei".
Wie viel 40 % von wie viel wird verwendet?
Wächst linear, sieht wie ein gekrümmter Indikator aus, ja.
Ab einem bestimmten Zeitpunkt verschwinden die Positionen. Eigenkapital und Saldo sind gleich N. In der Historie der Trades gibt es keine Informationen über die Position.
Das Zurücksetzen des Terminals hilft nicht.
Einige Stunden später erscheinen die Positionen in der Handelshistorie (sie wurden unter einer bestimmten Bedingung geschlossen). Der Saldo und das Eigenkapital werden entsprechend angepasst.
Dies ist eine sehr seltene Situation, die durch ein Zusammentreffen vieler Umstände verursacht wird. Aber es kann passieren, auch wenn die Wahrscheinlichkeit gleich Null ist.
Ich schlage vor, dass alle Kampfroboter einen Mechanismus zur Erkennung solcher Situationen haben müssen.
Zu diesem Zweck ist es notwendig, die Tickets der offenen Aufträge zu speichern und ihr Vorhandensein in der Handelshistorie zu überprüfen, falls sie verschwinden sollten. Wenn sie nicht in der Handelshistorie enthalten sind, Alertim!
Die Funktion eines solchen Schutzes.
#define TICKET_TYPE int// Получаем все текущие тикеты.int GetTickets( TICKET_TYPE &Tickets[] )
{
int Amount = ArraySize(Tickets);
for (int i = ArrayResize(Tickets, Amount + OrdersTotal()) - Amount - 1; i >= 0; i--)
if (OrderSelect(i, SELECT_BY_POS))
Tickets[Amount++] = OrderTicket();
return(ArrayResize(Tickets, Amount));
}
// Проверяет наличие потерянных тикетов.int CheckTickets( void )
{
staticconstbool IsTester = MQLInfoInteger(MQL_TESTER);
int Amount = 0;
if (!IsTester)
{
static TICKET_TYPE Tickets[];
TICKET_TYPE BadTickets[];
for (int i = ArrayResize(BadTickets, ArraySize(Tickets)) - 1; i >= 0; i--)
if (!OrderSelect(Tickets[i], SELECT_BY_TICKET))
{
BadTickets[Amount++] = Tickets[i];
Alert("Ticket " + (string)Tickets[i] + " is not found!");
}
ArrayResize(BadTickets, Amount);
#ifdef __MQL5__ArraySwap(Tickets, BadTickets);
#else // __MQL5__ArrayFree(Tickets);
ArrayCopy(Tickets, BadTickets);
#endif // __MQL5__
GetTickets(Tickets);
}
return(Amount);
}
Rufen Sie CheckTickets() am Anfang von OnTick auf.
Der Indikator wird mit dem falschen Parametersatz aufgerufen
Ja, der Indikator hat eine ganze Reihe von Parametern, gibt es eine Möglichkeit, um sicherzustellen, dass iCustom den Speicher füllt? Es dauert etwa 2 Stunden, den Speicher zu füllen, so dass das Testen eines leeren iCustom und das Hinzufügen eines Parameters nach dem anderen sehr lange dauern kann. Haben Sie einen Rat?
P.S. Ich werde alle Parameter auch visuell durchgehen.
Ja, der Indikator hat eine ganze Reihe von Parametern, aber gibt es eine Möglichkeit, um sicherzustellen, dass iCustom den Speicher genau füllt?
In den Protokollen wird es viele Indikatoren geben
Ja, ich weiß, was Sie meinen. Ich habe das auch im Strategietester gesehen, wenn viele Indikatoren nach einem Test erscheinen. Aber hier im Strategietester funktioniert alles einwandfrei. Und in den Protokollen wird alles korrekt angezeigt.
Ja, der Indikator hat eine ganze Reihe von Parametern, gibt es eine Möglichkeit, um sicherzustellen, dass iCustom den Speicher füllt? Es dauert etwa 2 Stunden, den Speicher zu füllen, so dass das Testen eines leeren iCustom und das Hinzufügen eines Parameters nach dem anderen sehr lange dauern kann. Haben Sie einen Rat?
P.S. Ich werde alle Parameter auch visuell durchgehen.
Lassen Sie den Aufruf ohne Parameter (dann nehmen sie die Standardwerte), und beobachten Sie. Wenn das Leck verschwindet, ist das der Grund für das Problem.
Der EA verbraucht Speicherplatz, der sich nach und nach aufbaut.
Wie viel ist "ein wenig"?
Vielleicht ist es wirklich ein bisschen, und dies ist das Zitat Geschichte, die seit dem Start erschienen ist?
"Nach und nach" - wie viel?
Vielleicht ist es wirklich nur ein wenig, und es ist das Zitat Geschichte, die seit dem Start erschienen ist?
Ich starte MT4 mit mehreren EAs und aktiviere die Speicherprotokollierung. Dort, wo der Pfeil einen Absturz anzeigt, gibt es "nicht genug Speicher für EX4-Datei".
Lassen Sie den Aufruf ohne Parameter (dann nehmen sie die Standardwerte), und beobachten Sie. Wenn das Leck verschwindet, ist das der Grund für den Fehler.
Okay, ich werde es so machen.
Ich starte MT4 mit mehreren EAs, aktiviere die Speicheraufzeichnung. Dort, wo der Pfeil einen Absturz anzeigt, gibt es "nicht genug Speicher für EX4-Datei".
Wie viel 40 % von wie viel wird verwendet?
Wächst linear, sieht wie ein gekrümmter Indikator aus, ja.
Wie viel wird zu 40 % genutzt?
Wächst linear, sieht wie ein Kurvenindikator aus, ja.
Offenbar gibt es ein Problem mit den Parametern. Ich danke Ihnen!
Auf MT4 ist diese Situation möglich (wir werden nicht über die Gründe sprechen):
Dies ist eine sehr seltene Situation, die durch ein Zusammentreffen vieler Umstände verursacht wird. Aber es kann passieren, auch wenn die Wahrscheinlichkeit gleich Null ist.
Ich schlage vor, dass alle Kampfroboter einen Mechanismus zur Erkennung solcher Situationen haben müssen.
Zu diesem Zweck ist es notwendig, die Tickets der offenen Aufträge zu speichern und ihr Vorhandensein in der Handelshistorie zu überprüfen, falls sie verschwinden sollten. Wenn sie nicht in der Handelshistorie enthalten sind, Alertim!
Die Funktion eines solchen Schutzes.