Was sagen die Profis: Wie erhält man Maus-Scrollwerte in MQL? [Wiederveröffentlichung aus dem fünften Forum]. - Seite 8

 

Danke, ein bisschen spät, aber immerhin.

 
Ihor Herasko:

Zunächst wäre es sinnvoll zu entscheiden, in welcher Form die Informationen über das Eintreten eines Ereignisses empfangen werden sollen: direkt oder indirekt?

Angenommen, das Schreiben einer eigenen DLL ist keine Option, warum dann nicht auch die API abschaffen? Wenn die indirekte Methode geeignet ist:

Wir sollten ein Skript in einer Schleife ausführen, das den Index des ersten sichtbaren Balkens in einem Fenster prüft - WindowFirstVisibleBar (Sie können dies zusammen mit der Anzahl der Balken im Fenster tun - WindowBarsPerChart). Weichen sie vom vorherigen Wert ab, wurde das Diagramm überprüft. Stimmt, in diesem Fall könnte nicht nur das Mausrad die Ursache sein (Zoomen in der Zeit - "+", "-", Klicken auf Start oder Ende, direkter Sprung zum gewünschten Datum).

Auf jeden Fall gibt es noch nicht genügend Informationen, um zu wissen, was genau für die Erkennung eines Mausrad-Dreh-Ereignisses erforderlich ist. Dann können Sie Methoden vorschlagen.

P.S. Und wenn Sie Zugriff auf die Fensterbehandlungsfunktion benötigen, ist es SetWindowLongPtr (siehe msdn). Aber Sie können nicht auf die DLL verzichten, denn Sie können keine neue Prozedur zur Nachrichtenverarbeitung zuweisen, die sich im MQL-Code befindet.


Hinweis: Dieser Beitrag enthält praktisch die Lösung. Aus irgendeinem Grund geriet das Ganze ein wenig außer Kontrolle. Der Autor hat zunächst eine einfache und richtige Idee aufgegriffen und sie dann verloren, nachdem er zusammen mit den anderen auf der Suche nach einer globalen Lösung war. Das ist schade...


P.S. Ich habe gerne geholfen).

 
Реter Konow:

Hinweis: Dieser Beitrag enthält praktisch die Lösung. Aus irgendeinem Grund ist er nicht so überzeugend. Der Autor hat zunächst eine einfache und richtige Idee aufgegriffen, dann aber den Faden verloren und sich mit dem Rest von uns auf die Suche nach einer globalen Lösung gemacht. Das ist schade...


P.S. Ich habe gerne geholfen).


Das waren noch Zeiten, alte Sprache, begrenzte Möglichkeiten... ... also musste ich etwas jonglieren ... Der Autor, also ich, löste dieses Problem erfolgreich und verlor dann das Interesse )))

 
Реter Konow:

Am besten wäre es, Ihnen die Lösung in allgemeiner Form zu geben, aber nicht mit dem Ziel, etwas zu beweisen, sondern auf der Basis von Freundschaft.

Natürlich ist diese Erkenntnis ein Versuch, einen Ausweg aus einer aussichtslosen Situation zu finden. Da das Scrollen mit dem Rad komplett entfällt, ist dies die einfachste und "nativste" Lösung. Für eine vollwertige Lösung habe ich mich bereits an servicedesk gewandt. Ob das der Fall ist oder nicht, hängt von den Entwicklern ab.

Ich bin davon ausgegangen, dass die Umsetzung mit einem springenden Zeitplan erfolgen würde. Ich stimme zu, dass die beste Lösung darin besteht, den Entwicklern zu Füßen zu fallen und sie zu bitten, ein Ereignis zum Scrollen und Klicken mit dem Mausrad hinzuzufügen sowie die Möglichkeit, das Scrollen des Diagramms mit dem Mausrad vorübergehend zu deaktivieren. Schließlich ist es für sie gar nicht so schwer - nur ein paar Zeilen Code. Ich verstehe nicht, warum sie plötzlich beschlossen haben, dass niemand mehr das Mausrad braucht... Aber wenn wir es wirklich brauchen, dann Lösung von Bouncing Chart, als eine Option, könnte Chart selbst zu deaktivieren ( ChartSetInteger(0,CHART_SHOW,false); ) und erstellen Sie seine Doppel über CCanvas, aber es ist natürlich alle Tamburine, zu Fuß zu einem Nachbarn über den Nordpol.

Aber trotzdem - Lob und du, Peter - cool und ein guter Programmierer. Das habe ich schon immer gesagt, aber ich habe auch gesagt, dass Sie Ihre Kreativität für den "Tomatenanbau in der Türkei" verschwenden, wo sie verdammt noch mal niemand braucht.

 
Nikolai Semko:

...sagte aber auch, dass Sie Ihre Kreativität für den "Tomatenanbau in der Türkei" verschwenden , wo niemand sie haben will.

Ich werde meinen Standpunkt darlegen.

Im Moment hat die MT5-Plattform viel Potenzial. Viele Möglichkeiten und Bibliotheken. Aber gleichzeitig ist die Entwicklung von MQL-Programmen in eine Sackgasse geraten.

Das Hindernis für die weitere Entwicklung ist der Mangel an Möglichkeiten, die Programme innerhalb der Plattform zu erweitern.

Ohne die Möglichkeit, die Steuermodule auf eine grafische Oberfläche zu bringen, können die Benutzer ihre Softwarefunktionalität nicht weiter ausbauen.

Das Fehlen einer grafischen Benutzeroberfläche in MQL-Programmen ist ein globales Hindernis für ihre weitere Entwicklung. Renat sagte, dass die Zeit der "kindischen" einseitigen Programme vorbei sein muss. Ich stimme mit ihm völlig überein. Aber wie kann es vorbei sein, wenn die Händler keine physische Möglichkeit haben, aus den "kurzen Hosen" herauszukommen?

Lassen Sie uns die Folgen des Fehlens einer grafischen Benutzeroberfläche in MQL-Programmen aufzählen:

  • Unmöglichkeit, weitere Programmbausteine zu kombinieren, die das Benutzererlebnis verbessern würden.
  • Er hat den Umfang der Benutzerinteraktion mit seinem Programm auf ein Minimum reduziert.
  • Fehlen eines seriösen halbautomatischen Handels an sich. Viele würden den halbautomatischen Handel dem vollautomatischen vorziehen.
  • Die Unannehmlichkeiten der Marktforschung, die es den Fachleuten nicht erlauben, mit voller Kraft zu arbeiten.
  • Keine eigene Führung von Statistiken.
  • Die Notwendigkeit, mit Anwendungen von Drittanbietern über Krücken zu arbeiten, deren Prämisse das Fehlen einer grafischen Benutzeroberfläche ist. Denn wenn sie verfügbar wäre, könnte die Forschung in MQL-Programmen durchgeführt werden.

Alle nützlichen Informationen des MT5 sind sozusagen "eingesperrt" und nicht wirklich zugänglich.

Sobald die GUI erscheint, verschwinden die Krücken und es werden Möglichkeiten in MT5 eröffnet. Es wird auch viele neue Funktionen geben.

//-----------------------------------------------------------------------------------------------------------

Mein Grundsatz: BETRIEBSPROGRAMME KÖNNEN NICHT VOLLSTÄNDIG SEIN, WENN SIE KEINE GRAFISCHE SCHNITTSTELLE ALS BENUTZERINTERAKTIONSSOFTWARE HABEN. Er wird abgenommen und in der Maschine eingeschlossen, was immer unangenehm ist. Wenn es sich um ein primitives und einfaches Programm handelt, ist eine grafische Benutzeroberfläche unnötig, aber in einem Bereich wie dem Handel sollte sich das Programm ständig weiterentwickeln und mit dem Benutzer interagieren. Ohne diese wird der gesamte Algotrading-Zweig an eine Grenze stoßen und sich nicht weiterentwickeln.

 
Реter Konow:

Ich werde meinen Standpunkt darlegen.

Jetzt hat die MT5-Plattform ein riesiges Potenzial. Es gibt viele Möglichkeiten und Bibliotheken. Gleichzeitig ist die Entwicklung von MMS-Programmen aber auch in eine Sackgasse geraten.

Der Mangel an Möglichkeiten, Programme innerhalb der Plattform zu erweitern, ist ein Hindernis für die weitere Entwicklung.

Die Benutzer können die Funktionalität ihrer Software nicht weiter ausbauen, ohne dass sie Module zur Steuerung in einer grafischen Benutzeroberfläche unterbringen können.

Das Fehlen einer grafischen Benutzeroberfläche in MQL-Programmen ist ein globales Hindernis für ihre weitere Entwicklung. Renat sagte, dass die Zeit der "kindischen" einseitigen Programme vorbei sein muss. Ich stimme mit ihm völlig überein. Aber wie kann es vorbei sein, wenn die Händler keine physische Möglichkeit haben, aus den "kurzen Hosen" herauszukommen?

Lassen Sie uns die Folgen des Fehlens einer grafischen Benutzeroberfläche in MQL-Programmen aufzählen:

  • Die Unmöglichkeit, weitere Programmbausteine zu integrieren, die das Benutzererlebnis verbessern würden.
  • Der eingeschränkte Umfang der Interaktion des Benutzers mit seinem Programm.
  • Fehlen eines seriösen halbautomatischen Handels an sich. Viele würden den halbautomatischen Handel dem vollautomatischen vorziehen.
  • Die Unannehmlichkeiten der Marktforschung, die es den Fachleuten nicht erlauben, mit voller Kraft zu arbeiten.
  • Keine interne Statistikführung.
  • Die Notwendigkeit, mit Anwendungen von Drittanbietern über Krücken zu arbeiten, deren Prämisse das Fehlen einer grafischen Benutzeroberfläche ist. Denn wenn es eine gäbe, könnte die Forschung in MQL-Programmen durchgeführt werden.

Das ganze nützliche Material von MT5 ist irgendwie "eingesperrt" und nicht verfügbar.

Sobald die GUI erscheint, werden die Krücken verschwinden und die Möglichkeiten von MT5 werden offen sein. Außerdem wird es viele neue Funktionen geben.

//-----------------------------------------------------------------------------------------------------------

Mein Axiom: Ein komplexes Programm kann nicht vollständig sein, wenn es keine grafische Schnittstelle als Reaktion auf den Benutzer hat. Es wird abgetrennt und in der Maschine eingeschlossen. Es ist immer unangenehm, damit zu arbeiten. Wenn es sich um ein primitives und einfaches Programm handelt, ist eine grafische Benutzeroberfläche unnötig, aber in einem Bereich wie dem Handel sollte sich das Programm ständig weiterentwickeln und mit dem Benutzer interagieren. Ohne dies wird der gesamte Algotrading-Zweig an eine Grenze stoßen und sich nicht weiterentwickeln.


Ich verstehe, was Renat gemeint hat, ich habe mehr als hundert Indikatoren und Dutzende von Robotern erstellt und am Ende habe ich erkannt, dass es nichts war, aber ich habe einige Erfahrung und Verständnis. Jetzt arbeite ich seit mehreren Jahren an einem Roboter, bei dem die Schnittstelle das Letzte ist und die künstliche Intelligenz alles ist. Renat meinte nicht, dass Sie eine mehrseitige Schnittstelle brauchen, sondern die Anzahl der Codeseiten bzw. den Aufwand und die Kreativität, die darin stecken, während die meisten Produkte auf dem Markt kindischer, nutzloser Schnickschnack sind. Was hat das mit GUIs zu tun? GUIs können den potenziellen Käufer nur verwirren, ihm Staub in die Augen treiben oder ihn mit ihrer Komplexität erschrecken. Alles, woran Sie jetzt arbeiten - und Anatoly übrigens auch, entschuldigen Sie - ist alles a la Windows 95. Die Menschen sind heute an ein völlig anderes Schnittstellenparadigma gewöhnt und verwöhnt. Sehen Sie sich die Schnittstelle Ihres Android-Telefons oder iPhones an. Einfachheit, Minimalismus, Intuitivität. Das ist es, wonach man streben muss.

Peter, nehmen Sie zum Beispiel Google.com: Was für eine Schnittstelle sehen Sie dort? Und dieses Unternehmen ist mit einer halben Billion USD kapitalisiert. Im Gegenteil, sie neigen dazu, die Schnittstelle zu minimieren, weil ihre Schnittstelle vor 15 Jahren anspruchsvoller war, und ich denke, in einigen Jahren wird ihre Schnittstelle noch bescheidener sein. Und sie sind die wichtigsten Trendsetter in Sachen GUI-Mode. Alle Ihre Aufzählungen über die Notwendigkeit einer grafischen Benutzeroberfläche sind deklarativ und übertrieben, oder besser gesagt, die grafische Benutzeroberfläche hat nichts damit zu tun (gut, man kann sie nur für den halbautomatischen Handel verwenden). Sehen Sie sich die neueste Technologie von Google an - TensorFlow. Dabei handelt es sich um eine Technologie des maschinellen Lernens, der KI-Technologie und der Mustererkennung, deren Beherrschung für Programmierer des automatisierten Handels sehr nützlich wäre, aber diese Technologie benötigt keine grafische Benutzeroberfläche. Wirklich - wovon spreche ich, wenn für Sie die OOP-Technologie ein nutzloses Werkzeug ist!

 
Nikolai Semko:

Ich verstehe sehr gut, was Renat meinte, da ich selbst mehr als hundert Indikatoren und Dutzende von Robotern erstellt habe, aber schließlich erkannte, dass das alles nichts war, aber ich gewann einige Erfahrung und Verständnis. Jetzt arbeite ich seit mehreren Jahren an einem Roboter, bei dem die Schnittstelle das Letzte ist und die künstliche Intelligenz alles ist. Renat meinte nicht, dass Sie eine mehrseitige Schnittstelle brauchen, sondern die Anzahl der Codeseiten bzw. den Aufwand und die Kreativität, die darin stecken, während die meisten Produkte auf dem Markt ein Kinderspiel sind. Was hat die GUI damit zu tun? GUIs können den potenziellen Käufer nur verwirren, ihm Staub in die Augen treiben oder ihn mit ihrer Komplexität erschrecken. Alles, woran Sie jetzt arbeiten - und Anatoly übrigens auch, entschuldigen Sie - ist alles ala Windows 95. Die Menschen sind heute an ein völlig anderes Schnittstellenparadigma gewöhnt und verwöhnt. Sehen Sie sich die Schnittstelle Ihres Android-Telefons oder iPhones an. Einfachheit, Minimalismus, Intuitivität. Das ist es, wonach man streben muss.

Peter, nehmen Sie zum Beispiel Google.com: Was für eine Schnittstelle sehen Sie dort? Und dieses Unternehmen ist mit einer halben Billion USD kapitalisiert. Im Gegenteil, sie neigen dazu, die Schnittstelle zu minimieren, weil ihre Schnittstelle vor 15 Jahren anspruchsvoller war, und ich denke, in einigen Jahren wird ihre Schnittstelle noch bescheidener sein. Und sie sind die wichtigsten Trendsetter in Sachen GUI-Mode. Alle Ihre Aufzählungen über die Notwendigkeit einer grafischen Benutzeroberfläche sind deklarativ und übertrieben, oder besser gesagt, die grafische Benutzeroberfläche hat nichts damit zu tun (gut, man kann sie nur für den halbautomatischen Handel verwenden). Sehen Sie sich die neueste Technologie von Google an - TensorFlow. Dabei handelt es sich um eine Technologie des maschinellen Lernens, der KI und der Mustererkennung, deren Beherrschung für Programmierer des automatisierten Handels sehr nützlich wäre, aber diese Technologie benötigt keine grafische Benutzeroberfläche. Wirklich - wovon spreche ich, wenn für Sie die OOP-Technologie ein nutzloses Werkzeug ist!

Nikolay, wir verstehen uns nicht).

OOP ist für mich persönlich wirklich nutzlos , aber ich bestreite nicht, dass es für andere nützlich ist. Sie sollen es zu ihrem Besten nutzen.

GUI ist eine praktische Notwendigkeit. Die grafische Benutzeroberfläche schafft Raum für komplexere Programme. Sie wird das derzeit knappe Umfeld für die Umsetzung kreativer Ideen bereichern. Sie wird den Programmen ein eigenes Gesicht geben.

MO (maschinelles Lernen) hingegen wird den Algotrading in eine hoffnungslose Sackgasse führen. Ein automatisiertes Ratespiel ohne jegliches Verständnis der Marktprozesse. Eine Blackbox, die statistischen Brei recycelt. Sie unterdrückt den Wunsch der Händler, den Markt zu verstehen und ihre eigenen Strategien zu entwickeln. Eine Ausbildung in technischer Analyse und Artikel darüber sind irrelevant. Die Zeit des Todes der Gedanken des Händlers wird kommen. Die Blackbox wird sie auslöschen.

Nikolai, unser Ökosystem muss ein vielfältiges und reichhaltiges Umfeld sein. Wir müssen expandieren. Algotrader brauchen neue Software-Möglichkeiten. Ich möchte ihnen einfach eine weitere eröffnen).


Übrigens, auch Sie sollten endlich ein größeres Projekt in Angriff nehmen und Ihre Fähigkeiten ausleben. Ich spüre, dass du es selbst willst, aber es geht nicht. Das ist schade, denn Sie haben ein großes kreatives Potenzial. Ich warte also auf die Vorführung Ihrer Entwürfe. Ich hoffe, ich werde sie sicher sehen).

 

Реter Konow:

...Sie wird das derzeit knappe Umfeld für die Umsetzung kreativer Ideen bereichern. Sie wird den Programmen ein eigenes Gesicht geben.

Ich sollte klarstellen, was ich mit "knappen Rahmenbedingungen für kreativen Ausdruck" meine. Ich fürchte, ich werde missverstanden werden. MT5 ist ein potenziell sehr reichhaltiges Umfeld für kreative Ideen im algorithmischen Handel. Aber sein Potenzial wird derzeit von Händlern genutzt, ich denke, von 20 bis 30 %.

Es ist der gegenwärtige Bereich der praktischen Nutzung, den ich als "karge Umwelt" bezeichnet habe, nicht der potenzielle. Vielleicht habe ich mich nicht richtig ausgedrückt.

Es gibt einen Ausdruck: "Die Existenz bestimmt das Bewusstsein".

Unsere derzeitige Genesis sind Programme ohne grafische Benutzeroberfläche, die angesichts der hohen intellektuellen Hürden erstellt wurden. Diese Genesis hat unser Bewusstsein definiert, und wir wollen keine grafischen Benutzeroberflächen und keinen halbautomatischen Handel. Wir glauben an die Bedeutung der Anpassung von Parametern an die Geschichte als Mittel zur Optimierung von Strategien. Das heißt, wir versuchen nicht, die Strategie zu verbessern, indem wir unser Verständnis für den Markt vertiefen, sondern indem wir uns der Geschichte anpassen. Mit anderen Worten: Selbstbetrug. So wird unser Bewusstsein seit Jahren definiert. Und aus irgendeinem Grund betrachtet niemand die Optimierung als eklatanten Staub in den Augen. Aber nur dank ihm werden Tester Griffe erhalten.

Für die geistige Gymnastik sind alle Schranken nützlich, aber für die freie Kreativität gibt es jetzt zu viele Schranken. Manche Wesenheiten helfen uns bei der Verwirklichung einer Idee, andere behindern uns. Übrigens brauchte ich nur einen Bruchteil der Möglichkeiten einer Programmiersprache, um meine eigene grafische "Maschine" mit einer Auszeichnungssprache zu bauen. Und dabei geht es überhaupt nicht um Programmiertalent, sondern nur um die Fähigkeit, Dinge nach ihrem Wesen zu unterscheiden. Wenn ein Mensch diese Fähigkeit nicht hat, wird er/sie hoffnungslos verwirrt sein und sein/ihr Potenzial nicht ausschöpfen. Das Prisma, mit dem wir die Dinge betrachten, bestimmt die Effizienz unserer Arbeit und den Umfang der praktischen Umsetzung von Talenten.

Ich möchte nur anderen mit meiner eigenen Selbstverwirklichung helfen und MT5 zum weltweiten Durchbruch verhelfen. Wie könnte man es sonst machen? Wenn talentierte Leute wie Sie, Nikolay oder Anatoly mir helfen, werden wir sicherlich Berge versetzen.)

 
Реter Konow:

...wenn talentierte Leute wie du, Nikolai, oder Anatoly mir helfen, werden wir bestimmt Berge versetzen).

Nein, tut mir leid, Pjotr, aber du versuchst deine eigenen Berge zu versetzen. Und ich werde meine eigenen Berge versetzen. ))
 
Nikolai Semko:
Nein, Peter, es tut mir leid, aber du versuchst deine eigenen Berge zu versetzen. Und ich werde meine Berge versetzen. ))

Ich sagte"wie Sie", nicht Sie.) Ich hatte nicht vor, Ihnen meinen "Berg" aufzubürden.)