Diskussion zum Artikel "Automatenbasierte Programmierung als neue Herangehensweise an die Erstellung automatisierter Handelssysteme" - Seite 4

 
Integer: Aber immerhin haben wir so ein universelles, schnell umprogrammierbares Ding. Das ist ein gutes Thema für einen Artikel.
Warum schreiben Sie nicht einen Artikel? Ich denke, viele Leute wären daran interessiert, ihn zu lesen.
 
Integer:

Der Artikel geht überhaupt nicht auf das Thema ein, außer dass es einen Schalter gibt. Es spielt keine Rolle, ob er existiert oder nicht, er kann durch if's geschaltet werden.

Als ich einmal einen EA schrieb, gab es ein sehr komplexes System mit Aufträgen. Ich musste es ernsthaft analysieren und eine Liste von Zuständen erstellen: keine Aufträge, ein schwebender Auftrag, ein Marktauftrag, zwei schwebende Aufträge, ein schwebender und ein Marktauftrag, usw. Nur auf diese Weise konnte ich das Problem lösen. Aber es hat sich herausgestellt, dass es ein so universelles, schnell umprogrammierbares Ding ist. Ein gutes Thema für einen Artikel.

Ich ziehe es auch vor, das übliche if zu verwenden. Generell gibt es zwei Herangehensweisen: mit Hilfe von if und mit Hilfe von speziellen Funktionen, die durch den Schaltzustandschalter aufgerufen werden. Die Frage ist, welcher Ansatz besser/einfacher ist.
 
Rosh:
Vielleicht könnten Sie dann einen Artikel schreiben? Ich denke, dass viele Leute daran interessiert wären, ihn zu lesen.

Okay, mache ich.

 
C-4:
Ich ziehe es auch vor, ein reguläres if zu verwenden. Im Allgemeinen gibt es zwei Ansätze: mit Hilfe von if und mit Hilfe von speziellen Funktionen, die durch den Schalterzustandschalter aufgerufen werden. Die Frage ist, welcher Ansatz besser/einfacher ist.

Es ist notwendig, sich mit dem Thema zu befassen, der Zähler ist schneller bei der Auswahl einer Lösung, aber if ist einfacher aufzurufen.

Wenn es viele verschachtelte Zähler gibt, dann arbeitet if schneller, weil ein Aufruf von if billiger ist als ein Aufruf von switch.

Gibt es jedoch mehrere Lösungen auf jeder Ebene, ist switch besser geeignet.

 
abolk:

Das ist etwas Neues. Gerade JEDER (ausnahmslos) TS basiert auf der Analyse und dem klaren Verständnis der TS-Zustände. Die einfachsten Zustände: die Verarbeitung von Signalen zur Eröffnung/Schließung/Änderung eines Auftrags usw. usw.

Wenn "der aktuelle Zustand des Expert Advisors nicht klar bekannt ist", dann handelt es sich definitiv nicht um einen Expert Advisor und definitiv nicht um ein Programm, und das Wort "Algorithmus" in Bezug auf einen Expert Advisor sollte für immer gestrichen und vergessen werden.

Marktinformationen kommen mit Verspätung, es können (und werden wahrscheinlich) Fehler in der Software auf dem Server und auf dem Computer auftreten, Aufträge können aus Millionen von Gründen nicht ausgeführt werden, die Netzwerkverbindung zum Provider kann ausfallen, der Strom kann jeden Moment unterbrochen werden (denken Sie an Ausfälle und Neustarts bei der Meisterschaft). Es gibt mehr als genug Unsicherheitsfaktoren. Und ein Expert Advisor oder ein Algorithmus sollte sie alle berücksichtigen. Es ist unmöglich, sich auf das perfekte Funktionieren des Servers, der Software, der Kommunikation, des Marktes, des Betreibers und der Stromversorgung zu verlassen.

Der aktuelle Stand der Aufträge, des Marktes, der Kommunikation, der Elektrizität ist dem Expert Advisor also nie bekannt, und der Expert Advisor oder der Algorithmus muss auch unter unscharfen Bedingungen korrekt arbeiten.

 
Virty:

Marktinformationen kommen verspätet, es kann (und wird wahrscheinlich) Fehler in der Software auf dem Server und dem Computer geben, Aufträge können aus Millionen von Gründen nicht ausgeführt werden, das Netz - die Verbindung zum Provider - kann ausfallen, der Strom kann jeden Moment abgestellt werden (denken Sie an die Ausfälle und Neustarts bei der Meisterschaft). Es gibt mehr als genug Unsicherheitsfaktoren. Und ein Expert Advisor oder ein Algorithmus sollte sie alle berücksichtigen. Es ist unmöglich, sich auf das perfekte Funktionieren des Servers, der Software, der Kommunikation, des Marktes, des Betreibers und der Stromversorgung zu verlassen.

Der aktuelle Stand der Aufträge, des Marktes, der Kommunikation, der Elektrizität ist dem Expert Advisor also nie bekannt, und der Expert Advisor oder Algorithmus muss auch unter unscharfen Bedingungen korrekt arbeiten.

Das ist Unsinn. Alles auf einen Haufen mischen.

- Überprüfung möglicher Kursverzögerungen; - Weigerung des Brokers, einen Auftrag auszuführen; - anormaler Neustart des EA - dies sind klare und eindeutige Zustände des EA - als Ergebnis der Identifizierung jedes solchen Zustands - Ausführung der entsprechenden Funktion

- Wenn eine Funktion als Reaktion auf einen möglichen Zustand nicht zur Verfügung gestellt wird, bedeutet das nicht, dass die Arbeit unscharf ist - der EA analysiert diesen Zustand einfach nicht (gemäß seinem klaren und eindeutigen Algorithmus).

Jedes Programm (auch ein Expert Advisor) arbeitet nach einem klaren, vorgegebenen Algorithmus. Und es gibt keine unscharfen, undefinierten Aktionen bei der Arbeit eines Programms. Andernfalls würde es sich um einen "eingefrorenen" Zustand handeln. Und das "Einfrieren" eines Programms ist, wie wir wissen, ein Algorithmusfehler und nicht die Folge einer ätherischen Unbestimmtheit.

 
Virty:
Für echte Expert Advisors ist es unmöglich, den Zustand eindeutig zu definieren. Der interne Zustand ist eindeutig bestimmt, aber der Zustand der Positionen auf dem Server kann unbekannt sein, mit einer Verzögerung bekannt sein, sich in einem unklaren Zustand befinden (einige Aufträge und Anfragen werden ausgeführt und einige nicht, und die Hölle weiß warum).
Virty:
Es gibt mehr als genug Unsicherheitsfaktoren. Und ein Expert Advisor oder ein Algorithmus sollte sie alle berücksichtigen. Es ist unmöglich, sich auf ein perfektes Funktionieren des Servers, der Software, der Kommunikation, des Marktes, des Betreibers, der Elektrizität zu verlassen. Der aktuelle Stand der Aufträge, des Marktes, der Kommunikation und der Elektrizität ist dem Expert Advisor im Allgemeinen nie bekannt.

Es gibt keine Ungewissheiten. Es gibt Fehler eines Programmierers, der etwas nicht bedacht hat.

"Nicht bekannt", "im unklaren Zustand" sind vollwertige Zustände wie alle anderen auch. Natürlich müssen sie berücksichtigt werden, sonst geht es nicht.

Wenn Sie die Zeile "c = a + b" schreiben, ist das theoretische Programmierung, die nur im Schulunterricht akzeptabel ist. Wenn Sie aber eine reale Industrieanlage programmieren, erfordert eine nützliche Operation wie "c = a + b" weitere 100500 Prüfvorgänge, um zu bestätigen, dass ein Eingang wirklich "a" ist, ein anderer Eingang wirklich "b" ist, und Sie müssen auch sicherstellen, dass "a" und "b" sich während der Addition nicht geändert haben, und wenn plötzlich "c" den Ausgang nicht erreicht hat, sollte die Operation als fehlerhaft erkannt und alles zurückgenommen werden, usw.usw. Willkommen in der realen Welt ))))

 
bas:

Es gibt keine Unwägbarkeiten. Es sind Fehler eines Programmierers, der etwas nicht bedacht hat.

"Nicht bekannt", "in unklarem Zustand" - das sind vollwertige Zustände wie alle anderen auch. Natürlich müssen sie berücksichtigt werden, sonst gibt es keinen anderen Weg.

Wenn Sie die Zeile "c = a + b" geschrieben haben, ist das theoretische Programmierung, die nur im Schulunterricht akzeptabel ist. Wenn Sie aber eine reale Industrieanlage programmieren, erfordert eine sinnvolle Operation wie "c = a + b" weitere 100500 Prüfvorgänge, um zu bestätigen, dass ein Eingang wirklich "a" ist, ein anderer Eingang wirklich "b" ist, und Sie müssen auch sicherstellen, dass "a" und "b" sich während der Addition nicht geändert haben, und wenn plötzlich "c" den Ausgang nicht erreicht hat, sollte die Operation als fehlerhaft erkannt und alles zurückgenommen werden, usw.usw. Willkommen in der realen Welt )))).

Das ist eine gute Analogie. )) Aber bei alledem darf man nicht vergessen, dass es immer noch unmöglich ist, alles zu berücksichtigen. Auch die Natur macht Fehler und verfehlt ihre Fehler in Form von Mutationen. Aber es ist natürlich notwendig, nach Perfektion zu streben. ))
 
tol64:
Das ist eine gute Analogie. )) Bei all dem darf man aber nicht vergessen, dass man ohnehin nicht alles erklären kann. Auch die Natur macht Fehler und verfehlt ihre Fehler in Form von Mutationen. Aber man sollte natürlich nach Perfektion streben. ))

Die Natur macht keine Fehler, weil sie sich nicht darum schert. Wir sind diejenigen, die mit rechtfertigenden Theorien aufwarten.

Und die Natur ist ein unbewusstes Wesen und folgt daher nicht der Frage, wer Recht hat und wer schuldig ist.

 
Urain:

...

Und die Natur ist unbewusst und deshalb ...

Nun, das ist auch eine Theorie und wir wissen das nicht sicher. )))