Strukturregeln. Lernen, wie man Programme strukturiert, Erforschung von Möglichkeiten, Fehlern, Lösungen usw. - Seite 9

 
hrenfx:

Glauben Sie nicht, dass ich schlau bin, aber sehen Sie sich diese Architektur des Schreibens einer Kampf-TK noch einmal an. Es gibt keine Rückmeldung.

Es gibt virtuelle Positionen und es gibt eine reale Handelsumgebung, die an die Virtualität angepasst ist.

In diesem Fall spielt es keine Rolle, ob die Aufrechnung in der Plattform oder in einem anderen Buchhaltungssystem erfolgt.

Ich denke, es ist eine sehr interessante Struktur, insbesondere für Hochgeschwindigkeitsstrategien, die mit dem normalen Tester nicht überprüft werden können.

Es ist nur nicht ganz klar, was der "intelligente Synchronisierer" ist. Wahrscheinlich meinen sie einen adaptiven Kopierer von Handelsaufträgen, dessen Aufgabe, wenn ich es richtig verstehe, darin besteht, die virtuelle Rentabilität / Rentabilität der Strategie und den aktuellen Zustand des Marktes - Liquidität, Ausführungsgeschwindigkeit, usw. - anzupassen.

Im Allgemeinen wäre es gut, wenn ein solcher Tester und Synchronisierer nicht monolithisch in den Expert Advisor eingebaut wäre, sondern als separates externes Modul.
In diesem Fall kann jeder beliebige Expert Advisor oder mehrere mit ihm verbunden werden und sogar selektiv die am besten geeigneten Signale verwenden.

Ich frage mich, ob dies nur mit MMS realistisch ist...

 

Dies ist ein separates Modul in Bezug auf die Logik.

So ist beispielsweise der Signaldienst ein separates Modul, das in keiner Weise mit dem TS verbunden ist:

Es überträgt einfach virtuelle Ausgangspositionen (sie sind für Sie virtuell) in Ihre Handelsumgebung.

Seltsam (natürlich nicht optimal), aber es lässt sich übersetzen.

Торговые сигналы
Торговые сигналы
  • www.mql5.com
Торговые Сигналы для MetaTrader: копирование сделок, мониторинг счета, автоматическое исполнение сигналов и социальный трейдинг
 
hrenfx:

Es handelt sich also um ein separates Modul, was die Logik betrifft.

So ist beispielsweise der Signaldienst ein separates Modul, das in keiner Weise mit dem TS verbunden ist:

Es überträgt einfach virtuelle Ausgangspositionen (sie sind für Sie virtuell) in Ihre Handelsumgebung.

Seltsam (natürlich nicht optimal), aber es lässt sich übersetzen.

Es hat sich herausgestellt, dass es einen Google-Übersetzer gibt, der zwar schief übersetzt, aber ausreicht, wenn man es nicht verstehen muss, aber wenn man es genau verstehen muss, sollte man die Sprache lernen).

Ich wäre mit einer Zwischenlösung zufrieden - einem persönlichen, hochwertigen Übersetzer (Modul), wenn die Übersetzung gut ist und nicht in jedem EA Code geschrieben werden muss.

 

Das Verständnis für die Strukturierung eines Programms kommt mit der Erfahrung. Jeder von uns hat andere Erfahrungen gemacht, und so werden auch die Reihenfolge und die Regeln für die Strukturierung einzigartig sein. Außerdem werden sich diese Regeln im Laufe der Zeit ändern, d. h. was vor ein paar Jahren noch als ideale Struktur erschien, hält heute vielleicht nicht einmal mehr der geringsten Kritik stand.

Die Struktur von Programmen in MQL ist ein eigenes Kapitel, da es sich im Wesentlichen um eine DSL handelt, die durch Ereignisse aus dem Terminal gesteuert wird (obwohl große Schritte unternommen wurden, um sie näher an Allzwecksprachen heranzuführen). Imho ist für die Beschreibung von Handelsstrategien ein Zustandsautomat der beste Weg, und es gab bereits einige Artikel darüber hier. Tatsächlich degeneriert die Struktur zu einem großen Fall mit einer Menge von Encludes für die Realisierung jedes Falles.

Ich abstrahiere von den Handelsaufgaben und weise normalerweise einen Kernteil zu, der nichts über die Besonderheiten der Interaktion mit dem Benutzer weiß. Sein Zweck ist es, eine Möglichkeit zu bieten, sich selbst mit Daten zu füllen, das Problem auf der Grundlage der empfangenen Daten zu lösen und das Ergebnis auszugeben. Der Kern kann physisch aus mehreren Dateien bestehen, aber alle müssen logisch miteinander verbunden sein und nach außen nur Methoden zum Empfangen von Daten und Methoden zum Zurückgeben von Daten und nichts anderes bereitstellen. Die einfachste Analogie ist ein Fleischwolf.

Der zweite Punkt, den ich für wichtig halte, ist die Lokalisierung der zu ändernden Teile (oder der Teile, die potenziell geändert werden könnten) und deren Aufteilung in eine separate Abstraktion. Mit diesem Ansatz können wir nahtlos zwischen verschiedenen Implementierungen des Mechanismus wechseln (z. B. können wir den Handel virtualisieren, indem wir den Mechanismus zur Positionseröffnung wechseln). Verschiedene Implementierungen werden bequem in einem separaten Ordner mit einem generischen Namen gespeichert.

Die Projektstruktur wird einem Baum ähneln, dessen Stamm (Core) aus verschiedenen Subsystemen (Subsystems) besteht und von dem Zweige mit veränderlichem Verhalten (Behaviour) abzweigen. Daneben gibt es ein Fernglas (Reporting, GUI), um den Baum aus dem richtigen Blickwinkel zu betrachten, und eine Axt und eine Kettensäge (Actions, GUI), um uns die nötige Interaktion mit dem Baum zu ermöglichen.

 
Простые стейт-машины на службе у разработчика
Простые стейт-машины на службе у разработчика
  • habrahabr.ru
Представьте на минутку обычного программиста. Допустим, его зовут Вася и ему нужно сделать анимированную менюшку на сайт/десктоп приложение/мобильный апп. Знаете, которые выезжают сверху вниз, как меню у окна Windows или меню с яблочком у OS X. Вот такое. Начинает он с одного выпадающего окошка, тестирует анимацию, выставляет ease out 100% и...
 
Geben Sie zumindest ein grobes Beispiel, das sich auf unsere Realität anwenden lässt.
 
FAQ:
Geben Sie zumindest ein annäherndes Beispiel, das sich auf unsere Realität anwenden lässt.
Sie sind wirklich etwas Besonderes :) Die Umsetzung jeder Strategie ist im Wesentlichen eine Zustandsmaschine.
 
TheXpert:
Sie sind wirklich etwas Besonderes :) Die Umsetzung jeder Strategie ist im Wesentlichen eine Zustandsmaschine.
Das ist verständlich, denn ich habe im Zusammenhang mit einem Artikel über Harabra nach einem Beispiel für eine solche Maschine gefragt.
 
FAQ:
Ich verstehe. Ich habe nach einem Beispiel für eine solche Maschine im Zusammenhang mit dem Artikel über Charabra gefragt.

Oh, okay. Es gab einen Artikel, in dem der Typ ein "Analogon" einer Zustandsmaschine gebaut hat. Und er propagierte diese Technologie als bahnbrechende Programmierinnovation).

Aber ich kann mich nicht an einen substantiellen Artikel über Zustandsautomaten hier erinnern. Ich kann mich hier nicht daran erinnern.

 
FAQ:
Nennen Sie zumindest ein grobes Beispiel, das sich auf unsere Realität bezieht.

Ahaha, das erinnert mich an "Was wird Ihr Beweis sein".

Ich habe einfach nach "state machine" gegoogelt, den Inhalt herausgesucht, der mir am besten gefiel, und ihn hier hochgeladen.

Das beweist nichts und widerlegt nichts. Interessanter Artikel.

Im Allgemeinen bin ich gegen Dogmen: Wenn eine Person sie anwendet, bedeutet das nicht, dass sie auch für eine andere Person geeignet ist.

Aber wenn ich den Code von anderen lese, stoße ich oft auf Analogien mit Zustandsautomaten. Nur eine Feststellung.