Fehler, Irrtümer, Fragen - Seite 594

 
Interesting:

Die Entwickler werden auf jeden Fall darum bitten, alles zu lokalisieren, einen Antrag an die SR zu stellen, einen Experten beizuziehen und alles so detailliert wie möglich zu beschreiben.

Sie sind die Entwickler (Sie kennen sie) und die Telepathen machen heute eine Pause. :)

Das ist in Ordnung.)) Jetzt werde ich es lokalisieren.))

Telepathie hat damit nichts zu tun. Der Punkt ist, dass ein solcher Fehler habe ich zum ersten Mal, und ich dachte, es tritt in einigen bestimmten Fällen, und ich kann zumindest beraten, auf dem Forum, in welchen Fällen es sein kann, und dann werde ich selbst sortieren Sie es aus.

Das heißt, ich möchte wissen, Zugriffsverletzung schreiben (0x-code) und Zugriffsverletzung lesen (0x-code) in welchen Fällen auftritt? Ich habe dieses Programm seit etwa einem Monat nicht mehr angefasst. Das bedeutet, dass dieses Problem möglicherweise erst nach einem bestimmten Build aufgetreten ist. Vielleicht haben die Entwickler die Kontrollen verschärft und müssen nun den Code korrekter schreiben. Nur wo soll man in ~20 000 Codezeilen nach einem Fehler suchen? )))

 
tol64:

Es ist okay.)) Ich werde es jetzt lokalisieren.))

Telepathie hat damit nichts zu tun. Die Sache ist, dass diese Art von Fehler habe ich das erste Mal, und ich dachte, dass es in einigen bestimmten Fällen auftritt, und ich kann zumindest vorschlagen, auf dem Forum, in welchen Fällen es sein kann, und dann werde ich mich mit ihm selbst.

Das heißt, ich würde gerne wissen, wann eine Zugriffsverletzung beim Schreiben (0xcode) und Lesen (0xcode ) auftritt? Ich habe dieses Programm seit etwa einem Monat nicht mehr angefasst. Das bedeutet, dass dieses Problem erst nach einem bestimmten Build aufgetreten ist. Vielleicht haben die Entwickler die Kontrollen verschärft und müssen nun den Code korrekter schreiben. Nur wo soll man in ~20 000 Codezeilen nach einem Fehler suchen? )))

Versuchen Sie, es in C zu konvertieren, und der Fehler wird von selbst gefunden. Und überhaupt - bei solchen Projekten ist das die einzige Möglichkeit zu schreiben, wenn man in Zukunft keine Probleme haben will. Leider habe ich es selbst zu spät verstanden und schreibe es jetzt um :)
 

Meine Herren, was ist ein kompakter Weg (vielleicht gibt es Funktionen), um den größten/kleinsten Wert eines der vorhandenen Puffer zu ermitteln? Es geht nicht nur um die Identifizierung, sondern auch um die Bestimmung des Puffers mit dem größten/kleinsten Wert.

Angenommen, wir haben 4 Puffer, dann ist das einfachste, was uns einfällt, zuerst den ersten mit den anderen zu vergleichen (z.B. if(one[0]<two[0] && one[0]<three[0]&& ...etc.). Wenn sie falsch ist, vergleichen Sie die zweite auf die gleiche Weise und so weiter. Aber das ist ein bisschen umständlich.

 
Cmu4:

Meine Herren, was ist ein kompakter Weg (vielleicht gibt es Funktionen), um den größten/kleinsten Wert eines der vorhandenen Puffer zu ermitteln? Es geht nicht nur um die Identifizierung, sondern auch um die Bestimmung des Puffers mit dem größten/kleinsten Wert.

Angenommen, wir haben 4 Puffer, dann ist die einfachste Sache, die in den Sinn kommt, zuerst den ersten mit den anderen zu vergleichen (wie if(one[0]<two[0] && one[0]<three[0]&& ...etc.), dann den zweiten auf die gleiche Weise zu vergleichen und so weiter. Aber das ist ein bisschen umständlich.

ArrayMinimum gibt den Index des kleinsten Array-Wertes zurück; dasselbe gilt für ArrayMaximum.

Wenn Sie mehrere Puffer vergleichen wollen, können Sie die Extremwerte ermitteln und sie dann mit if oder fmin, fmax vergleichen.

 
Cmu4:
Glauben Sie, dass diese Methode weniger Ressourcen benötigt als die einfache Brute-Force-Methode, die ich oben beschrieben habe?

Niemals,

obwohl nein, wenn die zu durchsuchenden Felder 3-4 Takte lang sind und die Felder 2-3 sind, wird es schneller sein.

 
Urain:

ArrayMinimum gibt den Index des kleinsten Wertes des Arrays zurück, und ArrayMaximum funktioniert auf ähnliche Weise.

Wenn Sie mehrere Puffer vergleichen wollen, können Sie Extremwerte ermitteln und diese dann mit if oder fmin, fmax vergleichen.

Ich habe gerade die Funktionsbeschreibungen gelesen...

ArrayMinimum ist ein weiteres Beispiel, da ich den Wert von 0 bar vergleichen muss und keine Suche im Arrayverlauf benötige.

fmin vergleicht nur zwei Puffer, was ist der Sinn davon? Ich kann genauso gut den Standard "wenn" verwenden. Aber dann bekommt man eine Menge Bedingungen... 4 komplexe für das Minimum und die gleiche Anzahl für das Maximum...

 
Cmu4:

Jetzt habe ich die Funktionsbeschreibung gelesen...

ArrayMinimum ist aus einer anderen Richtung - wie ich brauche, um Wert von 0 bar zu vergleichen, und ich brauche nicht Array Geschichte Suche.

fmin vergleicht nur zwei Puffer, was ist der Sinn davon? Ich kann genauso gut den Standard "wenn" verwenden. Aber dann bekommt man eine Menge Bedingungen... 4 komplexe für das Minimum und die gleiche Anzahl für das Maximum...

fmin vergleicht keine Puffer, sondern zwei Werte.

Jetzt ist Ihre Aufgabe klar: Sie müssen ein Extremum unter den parallelen Werten verschiedener Puffer finden.

Nun die Frage: Brauchen Sie dies nur für Nullwerte oder müssen Sie diese Aktion für viele parallele Werte wiederholen?

 
Urain:

fmin vergleicht keine Puffer, sondern zwei Werte.

Jetzt ist Ihre Aufgabe klar: Sie müssen das Extremum zwischen den parallelen Werten der verschiedenen Puffer finden.

Wird dies nur für Nullwerte benötigt oder muss diese Aktion für viele parallele Werte wiederholt werden?

Sie ist für einen Expert Advisor erforderlich, der vom Markt aus handelt. Wir müssen also die Werte aller Puffer des aktuellen Balkens vergleichen.

Hier ist ein Screenshot des Indikators, auf dessen Nullleiste Sie den maximalen und minimalen Puffer finden müssen:

 
Cmu4:

Dies ist notwendig für einen EA, der vom Markt aus handelt. Dementsprechend sollten die Werte aller Puffer auf dem aktuellen Balken verglichen werden.

Hier ist ein Screenshot des Indikators, auf dessen Nullleiste Sie den maximalen und minimalen Puffer finden müssen:

Einfacher ist es dann, wenn man alle Nullwerte der Puffer in ein Array einträgt (das kann man sogar statisch definieren, da die Anzahl der Puffer im Voraus bekannt ist) und die Funktionen ArrayMinimum ArrayMaximum auf dieses zusammenfassende Array anwendet, das Ergebnis ist die Seriennummer des Puffers in der Reihenfolge der Eintragung.
 
Urain:
Dann ist es einfach, weisen Sie in der Reihenfolge alle Null-Werte von Puffern in ein Array (Sie können es sogar statisch, da die Anzahl der Puffer ist vorher bekannt) und gelten ArrayMinimum ArrayMaximum-Funktionen auf diese Zusammenfassung Array, als Ergebnis erhalten Sie die Reihenfolge Anzahl der Puffer in der Reihenfolge der Zuordnung.
Danke, das wird reichen! :)
Grund der Beschwerde: