Vasiliy Pushkaryov: Und wie können Sie die Daten kopieren? Nun, abgesehen von Element für Element?
Ich weiß nicht, ob das richtig ist, aber der zusätzliche Konstruktor hat das Problem gelöst. Vielleicht ist es für jemand anderen nützlich.
#include <Arrays\ArrayObj.mqh>
CArrayObj ArrCur; // массив с объектами, каждый объект содержит структуру с полями ордеров и его id
CArrayObj ArrPrev; // массив с объектами, каждый объект содержит структуру с полями ордеров и его idclass CID : public CObject
{
public: int id;
CID() {}
CID(CID* pt) {this = pt;}
};
voidOnStart()
{
// -----------------------------------------------------------------
CID* pCur = new CID; // создаем объект для текущих параметров
pCur.id = 25; // вносим текущие данные
ArrCur.Add(pCur); // помещаем в массив объектов CID* pTemp = ArrCur.At(0); // вытягиваем объект по указателю
CID* pPrev = new CID(pTemp); // в дин.объект копируем в конструкторе данные с предыд.указателя
ArrPrev.Add(pPrev); // помещаем в массив объектов
ArrCur.Clear(); // чистим текущий массив// -----------------------------------------------------------------// --- для вывода в журналint sizeCur = ArrCur.Total(); // размер = 0int sizePrev = ArrPrev.Total(); // размер = 1ENUM_POINTER_TYPE pTypeCur = CheckPointer(ArrCur.At(0)); // POINTER_INVALIDENUM_POINTER_TYPE pTypePrev = CheckPointer(ArrPrev.At(0)); // POINTER_DINAMYCPrint(__FUNCTION__, " sizeCur=", sizeCur, " pTypeCur=", EnumToString(pTypeCur));
Print(__FUNCTION__, " sizePrev=", sizePrev, " pTypePrev=", EnumToString(pTypePrev));
ArrPrev.Clear(); // чистим массив
}
Guten Abend, ich habe da eine Frage? Installiert Agent Manager zum Verkauf, aber die Wolke Spalte sagt deaktiviert und den ganzen Tag auf sechs Prozessoren nicht eine einzige Bewegung. Im Konto werden die Verarbeiter angezeigt. Ist das normal?
Zuvor war Debug nicht vollständig nutzbar, aber das Ausführen von Skripten mit F5 ist manchmal praktisch (obwohl es nicht klar ist, warum es auf einem neuen Diagramm und nicht auf dem aktuellen Diagramm läuft).
Und ich habe zufällig solche Einträge im Protokoll gefunden:
Gleichzeitig wird das Skript selbst ausgeführt. Ich habe versucht, die folgende Zeile in den Code einzufügen:
{ DebugBreak(); Print( "DebugBreak" ); }
Die Zeile "DebugBreak" wird gedruckt, aber nicht gestoppt.
(obwohl es nicht klar ist, warum es auf der neuen Karte läuft und nicht auf der aktuellen).
Im Editor Service->Einstellungen->Debugging/Profiling können Sie einstellen, welches Symbol für das Debugging verwendet werden soll, aber es läuft immer noch auf einem separaten Diagramm. Wenn dort kein Symbol angegeben ist, wird das allererste (oberste) Symbol von Market Watch verwendet.
Ich habe immer Haltepunkte. Ich setze die Punkte auf Build 2875 , klicke auf Debugging mit echten Daten, und das Programm springt durch, ohne anzuhalten, nachdem es das Debugging beendet hat. Ich starte das Terminal mit dem Editor neu, und dann fängt es an, Haltepunkte zu sehen, bis einige andere Start/Stopp-Debugging, dann beginnt es wieder zu überspringen. Beim Debuggen von historischen Daten wird überhaupt ein Tester-Fenster aufgerufen, und Haltepunkte werden übersprungen, sobald das Debuggen beendet ist. Er hat nie an einem Haltepunkt bei historischen Daten angehalten, sondern überspringt die ganze Zeit, um die Fehlersuche abzuschließen. Aber warum der Tester auf historischen Daten aufgerufen wird und die gespeicherten Parameter daraus entnommen werden, weiß ich nicht, ist das so vorgesehen oder ist das eine Schieflage.
Im Editor Service->Einstellungen->Debugging/Profiling können Sie einstellen, welches Symbol für das Debugging verwendet werden soll, aber es läuft immer noch auf einem separaten Diagramm. Wenn das Symbol dort nicht angegeben wird, wird das erste (oberste) Symbol von Market Watch verwendet.
Meiner Meinung nach ist dies äußerst ungünstig. Das aktuelle Diagramm enthält Indikatoren, grafische Objekte, mit denen das Programm interagieren soll, Einstellungen usw. Es wird ein neues "leeres" Diagramm begonnen. Außerdem wird das Programm im normalen Modus (nicht bei der Fehlersuche) vom Navigator aus auf der aktuellen Karte gestartet, nicht auf der neuen - das ist eine offensichtliche Inkonsistenz
Dort kopiert der Zeiger
Und wie können Sie die Daten kopieren? Nun, abgesehen von Element für Element?
Ich weiß nicht, ob das richtig ist, aber der zusätzliche Konstruktor hat das Problem gelöst. Vielleicht ist es für jemand anderen nützlich.
ChartScreenShot funktioniert im visuellen Testmodus nicht korrekt.
Hallo, liebe Entwickler. Darf ich fragen, wann ChartScreenShot() in der Testversion funktionieren wird?
Können Sie mir sagen, wie ich die Eingabeparameter (F7) oder den Wert der globalen Variablen (F3) in dieser Art von EA ändern kann?
Selbst die Herausnahme aus der Tabelle ist problematisch.
Zuvor war Debug nicht vollständig nutzbar, aber das Ausführen von Skripten mit F5 ist manchmal praktisch (obwohl es nicht klar ist, warum es auf einem neuen Diagramm und nicht auf dem aktuellen Diagramm läuft).
Und ich habe zufällig solche Einträge im Protokoll gefunden:
Gleichzeitig wird das Skript selbst ausgeführt. Ich habe versucht, die folgende Zeile in den Code einzufügen:
{ DebugBreak(); Print( "DebugBreak" ); }Die Zeile "DebugBreak" wird gedruckt, aber nicht gestoppt.
(obwohl es nicht klar ist, warum es auf der neuen Karte läuft und nicht auf der aktuellen).
Im Editor Service->Einstellungen->Debugging/Profiling
können Sie einstellen, welches Symbol für das Debugging verwendet werden soll, aber es läuft immer noch auf einem separaten Diagramm.
Wenn dort kein Symbol angegeben ist, wird das allererste (oberste) Symbol von Market Watch verwendet.
Ich habe immer Haltepunkte. Ich setze die Punkte auf Build 2875
, klicke auf Debugging mit echten Daten, und das Programm springt durch, ohne anzuhalten, nachdem es das Debugging beendet hat.
Ich starte das Terminal mit dem Editor neu, und dann fängt es an, Haltepunkte zu sehen, bis einige andere Start/Stopp-Debugging, dann beginnt es wieder zu überspringen.
Beim Debuggen von historischen Daten wird überhaupt ein Tester-Fenster aufgerufen, und Haltepunkte werden übersprungen, sobald das Debuggen beendet ist.
Er hat nie an einem Haltepunkt bei historischen Daten angehalten, sondern überspringt die ganze Zeit, um die Fehlersuche abzuschließen.
Aber warum der Tester auf historischen Daten aufgerufen wird und die gespeicherten Parameter daraus entnommen werden, weiß ich nicht, ist das so vorgesehen oder ist das eine Schieflage.
Im Editor Service->Einstellungen->Debugging/Profiling
können Sie einstellen, welches Symbol für das Debugging verwendet werden soll, aber es läuft immer noch auf einem separaten Diagramm.
Wenn das Symbol dort nicht angegeben wird, wird das erste (oberste) Symbol von Market Watch verwendet.
Meiner Meinung nach ist dies äußerst ungünstig. Das aktuelle Diagramm enthält Indikatoren, grafische Objekte, mit denen das Programm interagieren soll, Einstellungen usw. Es wird ein neues "leeres" Diagramm begonnen. Außerdem wird das Programm im normalen Modus (nicht bei der Fehlersuche) vom Navigator aus auf der aktuellen Karte gestartet, nicht auf der neuen - das ist eine offensichtliche Inkonsistenz
https://www.mql5.com/ru/forum/368597
Ergebnis: 2
Erwartetes Ergebnis: 0