Ungültige Anfrage - habe gerade angefangen und kann es nicht herausfinden... - Seite 6

 
-Alexey-:

Ich habe ja eine für mich selbst geschrieben, aber für vier.

Sie persönlich haben also eine universelle Bibliothek geschrieben, die von der Geschäftslogik des EA losgelöst ist und in jedem EA verwendet werden kann?

Daran glaube ich auch nicht. Natürlich war der Code für den Server Response Handler vorhanden, aber nur innerhalb der Geschäftslogik und nicht als Universalbibliothek.

 
Renat:

Sie haben also persönlich eine universelle Bibliothek geschrieben, die von der Geschäftslogik des EA losgelöst ist und die in jedem EA verwendet werden kann?

Daran glaube ich auch nicht. Natürlich war der Code für den Server Response Handler vorhanden, aber nur innerhalb der Geschäftslogik und nicht als Universalbibliothek.

Ja, ich kann es beweisen. Natürlich nur gegen eine bestimmte Summe Geld.
 
-Alexey-:
Ja, ich kann es beweisen. Natürlich gegen eine Gebühr.

Ich meine, es gibt auch keine Bibliothek für MT4.

Es war nicht so schwer zu beweisen.

 
Renat:

Das heißt, auch für MT4 gibt es keine Bibliothek.

Es war nicht so schwer zu beweisen.

Das heißt, es gibt sie tatsächlich. Nach der Überweisung des Geldes wird es Ihnen sofort zur Verfügung gestellt. Aber Sie haben es weder für 4 noch für 5.
 
Renat:

Renat, ich habe das Gefühl, dass die Verwendung der Standardbibliothek unter den Refrain: "OOP oder nicht OOP" fällt.

Ansonsten kann ich nicht verstehen, warum manche Leute der Meinung sind, dass ein OOP-Wrapper, der die Handelsoperationen vereinfacht, nicht verwendet werden sollte.

Einige fordern einen Wrapper, der die gesamte Logik übernimmt, Fehler behandelt, Abfragen wiederholt, usw. Und gleichzeitig ist seine Verwendung angeblich gefährlich und in jeder Zeile steckt ein Fehler...

 
-Alexey-:
Das heißt, sie ist da.

Sie haben es nicht. Alle Fehler werden von der Geschäftslogik behandelt.
Sie verwenden die Eigenschaft der Synchronität in MT4, was die Verarbeitung bis zu einem gewissen Grad vereinfacht, aber Ihre Methoden garantieren nicht 100 % aller Fälle. Wahrscheinlich 95 %, und das ist nur Ihre Bibel, auf der der gesamte Handelsprozess beruht.
Aber MT5 ist um ein Vielfaches komplexer in Bezug auf die Handhabung von Return Codes und Asynchronität.

Du verlangst Unmögliches von einem Wrapper. Die Standardbibliothek ist keine Geschäftslogik. Es ist ein Wrapper "über" die Funktionen des Terminals. Eine Umhüllung über der Füllung eines Schokoriegels.
Es handelt sich um eine benutzerfreundliche Schnittstelle, die einen Teil der Routine abnimmt. Übernahme der gleichen Art von Code. Man isst keine Papierverpackung und beschwert sich dann, dass sie nicht essbar ist. :)

Aber der Wrapper kann nichts garantieren, denn Sie sind der Bürge. Ihre Geschäftslogik. :)
Genauso wenig wie die Druckfunktion freien Speicherplatz garantieren kann, kann auch die Protokollierung von Fehlern nicht garantiert werden. Für die Fehlerbehandlung müssen Sie andere Funktionen verwenden, und diese sind fallspezifisch.


-Alexej, lass uns über bestimmte Mängel sprechen, und du nennst bestimmte Mängel, die du gerne beheben würdest.

Wenn Sie möchten, können Sie jeden Rückgabecode durchgehen und die wichtigsten möglichen Situationen betrachten.

 
papaklass:


Beantworten Sie die Fragen:
- Warum sollte ich all diese 61 Methoden hinter mir herschleifen? Ist sie rational?

Die Frage geht in die Richtung, ob man OOP-Programmierung braucht oder nicht. Darauf kann ich keine eindeutige Antwort geben.
In meiner Praxis verwende ich OOP für High-Level-Modelle.
Natürlich verwende ich eine Menge davon in meiner Basis, gerade in den Funktionen.

Wenn ich eine OOP-Klasse verwende, enthält sie dementsprechend viele unnötige Dinge für eine bestimmte Aufgabe, wie z.B. die Funktionalität der Kanvas-Zeichenbibliothek. Es gibt Linien und Quadrate und Text. Aber es gibt keinen Grund, darüber zu streiten, ob diese Klasse ein Quadrat haben sollte oder nicht. Sie ist einfach da. Für eine bestimmte Aufgabe.


Es gibt zu viele Probleme, die sie innerhalb einer einzigen Klasse zu lösen versuchen.

Sie irren sich. Sie lösen überhaupt keine Probleme. Sie haben sich um RUTINA gewickelt. Ist das schwer zu verstehen?


Folglich sollte eine Fehlerbehandlung für alle zu lösenden Aufgaben erfolgen.

Sie kann nicht dort sein. Denn die Bibel löst kein einziges Problem. Es vereinfacht die RUTINE, das ist alles. Mehr kann es nicht, und es muss auch nicht kompliziert sein.

Die Lösung ist ganz einfach: Man teilt eine schwerfällige Klasse in mehrere kleinere Klassen auf, je nach den zu lösenden Problemen:
In diesem Fall werde ich nur die Klassen einbeziehen, die zu meiner Strategie passen und nichts Überflüssiges. Und es wird viel einfacher sein, die Fehlerbehandlung zu implementieren, als es jetzt der Fall ist.

Nun, es ist keine Rundum-Routine. Er ist bereits ein Problemlöser mit der spezifischen Logik IHRES Experten.
Man kann nicht einmal in einer einzigen Funktion - beim Öffnen oder Schließen - eine Fehlerbehandlung vorsehen. Es werden immer 1001 Fälle gefunden, in denen die beabsichtigten Fehler nicht passen und man etwas anderes tun muss.

Wenn Sie eine universelle Funktion für alle Situationen kennen, zeigen Sie sie bitte. Ich kann mir nicht einmal vorstellen, wie es möglich ist, alle möglichen Fehlerbehandlungen im Voraus zu berücksichtigen, ohne die Logik eines bestimmten EA zu kennen.
Selbst wenn ich eine solche Funktion ausübe - sie widerspricht all Ihren obersten Worten - "Sie haben wieder zu viel Lärm gemacht".

Und wenn Sie Ihre Methode des Schreibens von Code durch Makros mit Richtung (ORDER_TYPE_BUY / ORDER_TYPE_SELL) anwenden, dann werden die Klassen ziemlich kompakt sein.
Wo ist das alles?

Aber auch Makros haben keine Fehlerbehandlung, sondern werden von der Geschäftslogik eines bestimmten Expert Advisors bei einem bestimmten Fehler behandelt. Es ist nicht so schwer zu verstehen, dass es keine universellen Situationen gibt.

Wenn Renat lernen würde, auf die Vorschläge aus dem Forum zu hören und zu versuchen, die Bedeutung dieser Vorschläge zu verstehen, wäre MT5 in diesem Entwicklungsstadium schon viel weiter als heute.

Renat wiederholt immer wieder, dass wir uns in einem technischen Forum befinden und hier nicht über abstrakte Dinge sprechen können.

Geben Sie uns also bitte einige Einzelheiten an. Lassen Sie uns über die Aufgabenstellung, die von ihm benötigten Handelsfunktionen und mögliche Fehler und deren Behandlung nachdenken, ok?

 
papaklass:

Beantworten Sie die Fragen:

- wenn ich nur einen Marktauftrag oder einen schwebenden Auftrag erteilen muss, warum sollte ich dann all diese 61 Methoden hinter mir herziehen? Ist das rational?

- Wenn ich eine offene Position habe und nur Stops setzen muss, warum sollte ich dann all diese Funktionen mit 61 Methoden nachziehen? Ist das rational?

- Wenn ich eine offene Position mit Stops habe, die ausgelöst werden, wenn der Kurs ihr Niveau erreicht, warum sollte ich dann all diese 61 Methoden anwenden? Ist das rational?

Niemand verbietet es Ihnen:

  1. Verwenden Sie keine vorgefertigten Lösungen in Form von Bibliotheken, die bereits von jemand anderem geschrieben wurden, sondern schreiben Sie Ihren eigenen Code von Grund auf.
  2. Schreiben Sie eine bereits vorbereitete Bibliothek in Form von geänderten Klassen um und entfernen Sie dabei die Ihrer Meinung nach "überflüssigen" Methoden.
  3. Überschreiben von Methoden aus einer Standardbibliothek durch Vererbung
 
papaklass:

Welchen Sinn hat die "Aufteilung der Vorgänge für den Handel in verschiedene Klassen"?

Es ist dasselbe, als wenn Sie verschiedene EAs für das Öffnen, Schließen und Ändern hätten. Es scheint möglich zu sein, aber niemand tut es (mit seltenen Ausnahmen, speziellen Aufgaben).

Und mir gefällt der Satz : "Wenn ich nur einen Marktauftrag oder einen schwebenden Auftrag erteilen muss, warum sollte ich dann all diese 61 Methoden mit mir herumschleppen? Ist das vernünftig?"

Nun, pro Expert Advisor fallen etwa 100kb Speicherplatz an. Oje...


Übrigens, hier ist eine Umfrage Verwenden Sie die Standardbibliothek für Handelsoperationen?

 
papaklass:

Offen gesagt, hätte ich meinen Beitrag nicht veröffentlichen sollen.

Nicht umsonst habe ich festgestellt, dass ich nicht der Einzige bin, der unkonventionell ist :) In der Umfrage - ich habe meinen Respekt gezollt