fyords: Drucken Sie die ObjectCreate-Ergebnisse aus, vielleicht liegt dort ein Fehler vor.
Ich danke Ihnen. Ich werde das auf jeden Fall überprüfen, aber erst nachdem ich das neue Problem behoben habe. Der EA hat eine Zeit lang funktioniert und wurde jetzt automatisch aus dem Chart entfernt. Ich kann sie nicht zurücklegen, weil das Feld voll ist.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Drucken Sie die ObjectCreate-Ergebnisse aus, vielleicht liegt dort ein Fehler vor.
Ich danke Ihnen. Ich werde das auf jeden Fall überprüfen, aber erst nachdem ich das neue Problem behoben habe. Der EA hat eine Zeit lang funktioniert und wurde jetzt automatisch aus dem Chart entfernt. Ich kann sie nicht zurücklegen, weil das Feld voll ist.
Kerze=1000. Der Compiler flucht nicht, im Debugger erscheint nichts. Bitte schlagen Sie eine Lösung für dieses Problem vor
Dies wurde bereits korrigiert.
Der nächste Build wird sehr selten nach Signalen fragen, wenn Sie sie nicht verwenden.
Dies wurde bereits korrigiert.
Warum ArrayResize=0?
Und es sieht so aus, als ob ArrayInitialize davor hinzugefügt werden sollte.
И
double HWird sie jedes Mal in der Schleife initialisiert?
Deklarieren Sie sie vor der Funktion.
Aktualisieren und überprüfen Sie die Klammern, ich vermisse ein } in
Warum ArrayResize=0?
Nullstellung Array High[]
Nein, Sie setzen seine Größe auf 0.
Bleibt die Information auf Größe 0? Wie wird der Nullabgleich korrekt durchgeführt?
Sie setzen die Größe auf Null und kopieren dann das Array dorthin.
Versuchen Sie das.
void CreateLevels() { double High[]; ArrayResize(High,Candle); // размер = Candle ArrayInitialize(High,NULL); // инициализация нулем ArraySetAsSeries(High,true); CopyHigh(_Symbol,_Period,0,Candle,High); double H; // вынес int j; // вынес for(j=Nachalo;j<=Candle;j++) { //--- поиск макс ----------------------------------- if(iHighest(Symbol(),0,10,MN*2,j-MN)==j) { H=High[j]; } } } // скобки сразу парами ставьте, искать не прийдётсяUpd hat den Code korrigiert, auch int jUnd bei Größe 0 bleibt die Information erhalten?
Und wenn Sie es töten, könnten Sie wahrscheinlich ArrayResize zweimal aufrufen, mit 0, dann mit der richtigen Array-Größe.
Es könnte sogar schneller sein... Ich weiß allerdings nicht, wie es mit der Speicherzuweisung aussehen würde.