Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 894

 
rapid_minus:

Aua! Guru! Haben Sie sich den Finger in der Handfläche gebrochen?

Dachtest du, ich hätte nichts anderes zu tun? Ich bin überrascht, das zu hören...

Niemand außer Ihnen kann einen logischen Fehler finden, denn niemand weiß, was Sie vorhaben. Außerdem hat jeder einen anderen Schreibstil, und für mich persönlich ist es schwer, Ihren Code zu lesen, da ich die Klammerpaare nicht erkennen kann. Jede schließende Klammer befindet sich unterhalb der öffnenden Klammer und jedes Klammerpaar ist nicht gleich weit vom linken Rand entfernt. Dies wurde erreicht, als die Klammern noch nicht hervorgehoben waren, und sie sind auch jetzt im Forum nicht hervorgehoben.

Was ist (Bedingung A, B, C, D, D, E)? Offenbar liegt hier ein Fehler vor, aber das ist nicht sicher. Und Sie sind sicher, dass die Aufträge mit den aufgeführten Zauberern eröffnet werden? Verstehen Sie die Methoden zum Auffinden logischer Fehler? Man hat Ihnen wiederholt geraten, den Code auszudrucken und zu sehen, wo die Ausführung beginnt und wo nicht, und Sie bitten weiterhin um Hilfe.

 
tuner:
Wahrscheinlich... Es gibt in MQl4 eingebaute Funktionen zum Speichern und Laden von Vorlagen: ChartSaveTemplate, ChartApplyTemplate
Verstanden, danke!
 

Ich wollte ein einfaches Skript schreiben, um ein Segment(Trendlinie) auf einem Diagramm mit dem Anfang an der Stelle, wo das Skript geworfen wird (kein Problem mit, dass) und das Ende an den Koordinaten, wo der linke Mausklick gemacht werden wird... Hier bin ich gestolpert... Wie man es in einem Indikator oder Experten zu tun, um dieses Ereignis zu fangen ist elementar, WIE man es in SCRIPT zu tun? Wie mache ich das in Script?

 
Batman:

Ich wollte ein einfaches Skript schreiben, um ein Segment (Trendlinie) auf einem Diagramm mit dem Anfang an der Stelle, wo das Skript geworfen wird (kein Problem mit, dass) und das Ende an den Koordinaten, wo der linke Mausklick gemacht werden wird... Hier bin ich gestolpert... Wie man dieses Ereignis in einem Indikator oder Experten auffängt, ist elementar, aber wie macht man es in einem Skript? Wie mache ich das in Script?

Durch Schleifen des Skripts.
 
tara:
Durch eine Schleife im Skript.

Ich habe versucht, sagen wir, eine Schleife in OnStart dreht sich von selbst, aberOnChartEvent ist nicht mehr zu diesem Zeitpunkt ausgeführt...

Gibt es ein praktisches Beispiel dafür, wie man verhindern kann, dass das Skript beendet wird, bis es auf ein Mausklick-Ereignis wartet?

 
Batman:

Ich habe versucht, sagen wir, eine Schleife in OnStart dreht sich von selbst, aber OnChartEvent ist nicht mehr zu diesem Zeitpunkt ausgeführt...

Gibt es ein praktisches Beispiel für ein Skript, das nicht beendet wird, bevor es auf ein Mausklick-Ereignis wartet?

Wie wäre es mit einer Schleife durch eine benutzerdefinierte Funktion, die von OnChartEvent abhängt, um zurückzukehren?

Dies ist ein Stegreifspiel. Ich weiß nicht, ob es funktioniert, aber wenn ich das tun müsste, würde ich genau diese Lösung ausprobieren.


zy. Ich glaube, ich war mit meiner Meinung zu voreilig. Das Ereignis OnChartEvent scheint in den Skripten nicht verfügbar zu sein
 
AlexeyVik:

Und wenn eine Schleife durch eine benutzerdefinierte Funktion läuft, deren Rückgabe von OnChartEvent abhängt

Dies ist ein Stegreifspiel. Ich bin mir nicht sicher, ob es funktionieren wird, aber wenn ich es tun müsste, würde ich genau diese Lösung ausprobieren.

Und wie würde das aussehen?)).

Irgendwie habe ich den Verdacht, dass beim Organisieren einer Schleife im Skript die Ereignisverarbeitung nicht mehr stattfindet... Wenn es überhaupt geschieht, wenn Skripte laufen - ich bezweifle es bereits...

Gibt es für eine so einfache Aufgabe keine Lösung, zumindest "ohne mit Tamburinen zu tanzen"?

 
Batman:

Und wie würde das aussehen?))

Irgendwie habe ich den Verdacht, dass die Ereignisverarbeitung nicht mehr stattfindet, wenn in einem Skript eine Schleife eingerichtet wird... Wenn dies bei der Ausführung von Skripten überhaupt geschieht - ich bezweifle es bereits...

Gibt es für eine so einfache Aufgabe keine Lösung, zumindest "ohne mit Tamburinen zu tanzen"?

Nun, die Schleife durch eine benutzerdefinierte Funktion ist einfach. Diese Funktion wird durch die while-Schleife aufgerufen und je nach zurückgegebenem Wert wiederholt oder unterbrochen

Aber das Vorhandensein von OnChartEvent in Skripten ist... ist fraglich.

Offensichtlich müssen wir verstehen, was in den Skripten möglich ist und was teurer ist, um es dort unterzubringen. Ich habe den Eindruck, dass das Ergebnis unvorhersehbar sein kann und vom Benutzer und nicht vom Programmierer abhängt. Stellen Sie sich vor, was passiert, wenn Sie in einem solchen Skript nicht auf die "Ratte" drücken... die Schleife wird nicht beendet. Und was kann der Nutzer als nächstes tun? Wie ein Affe mit einer Granate.

 
AlexeyVik:

Nun, die Schleife über eine benutzerdefinierte Funktion ist einfach. Die while-Schleife ruft diese Funktion auf und je nach dem zurückgegebenen Wert wird die Funktion wiederholt oder unterbrochen

Aber das Vorhandensein von OnChartEvent in den Skripten... ist fraglich.

Offensichtlich müssen wir verstehen, was in den Skripten möglich ist und was teurer ist, um es dort unterzubringen. Ich habe den Eindruck, dass das Ergebnis unvorhersehbar sein kann und vom Benutzer und nicht vom Programmierer abhängt. Stellen Sie sich vor, was passiert, wenn Sie in einem solchen Skript nicht auf die "Ratte" drücken... die Schleife wird nicht beendet. Und was kann der Nutzer als nächstes tun? Wie ein Affe mit einer Granate.

Irgendein Blödsinn über einen Affen mit einer Granate...))) Das Skript wird mit der Maus auf das Diagramm gezogen, dann klickt der Benutzer an der richtigen Stelle des Diagramms (anstehende und abzufangende Ereignisse müssen irgendwie organisiert sein...), ein grafisches Objekt wird erstellt, das Skript vollendet seine Arbeit. Für die "Vergesslichen" besteht die Möglichkeit, das Warten nach einer gewissen Zeit zu beenden. Auch ein "hängendes", schiefes Skript wird mit einem Rechtsklick auf "Skript entfernen" aus dem Diagramm entfernt.

Frage - warum ist es nicht möglich, Tastendruck-Ereignisse o.ä. im Skript zu verarbeiten? Was ist hier verboten?

 
Batman:

Irgendein Blödsinn über einen Affen mit einer Granate...)) Das Skript wird mit der Maus auf das Diagramm gezogen, dann ein ganz natürlicher Klick an der richtigen Stelle des Diagramms (vorausgesetzt, das Warten und Erfassen von Ereignissen wurde irgendwie geregelt...), ein grafisches Objekt wird erstellt, das Skript wird beendet. Für die "Vergesslichen" besteht die Möglichkeit, das Warten nach einer gewissen Zeit zu beenden. Auch ein "hängendes", schiefes Skript wird mit einem Rechtsklick auf "Skript entfernen" aus dem Diagramm entfernt.

Frage - warum ist es nicht möglich, Tastendruck-Ereignisse o.ä. im Skript zu verarbeiten? Was ist hier verboten?

Sie werden es nicht glauben. Ich habe einen Freund, zu dem ich "Endstation" sage... Was denken Sie, was er tut? ER TUT ES... Das nenne ich einen Affen mit einer Granate. Man weiß nie, wohin er ihn werfen wird. Sie werden nie erraten, was ein solcher Benutzer mit Ihrem Programm anstellen wird.

Warum die Ereignisverarbeitung nicht möglich ist, ist eine Frage für MQ.

Versuchen Sie, das Problem mit dem Expert Advisor zu lösen, der den Expert Advisor mit der Funktion ExpertRemove() aus dem Diagramm löscht.