Weniger Code, mehr Action... einen EA schreiben - Seite 3

 

Jetzt geht's los:

Maxim Kuznetsov:

Ich werde versuchen, einen Rahmen für EAs zu schaffen (oder zu versuchen, falls Interesse besteht). Möglichst nur für einfache Dinge geeignet und ohne große Anforderungen an die Kenntnisse des angewandten Programmierers.

Im Gegensatz zu der lokal üblichen Praxiswird der Entwurf von oben nach untendurchgeführt. Ausgehend vom gewünschten Anwendungsfall des Benutzers, nicht von den technischen Grundlagen des Terminals.

Das heißt, Sie erklären das Design nicht aus der technischen Basis des Terminals heraus, und mit der ersten Auflistung sind Sie tief an die technische Basis der Terminals gebunden. Sie sind so gefesselt, dass Sie sogar Makros für die bedingte Kompilierung verwenden, weil Sie ohne sie nicht auskommen, selbst auf höchster Benutzerebene.
 
Maxim Kuznetsov:

Im Prinzip können Sie einen Eintrag wie diesen innerhalb von GetData OnCrossSignal verwenden. Möglicherweise können Sie sogar Skripte schreiben :-) Aber alles zu seiner Zeit... Die Datenverarbeitung ist wie eine elektronische Tabelle aufgebaut.

So ist es besser, Sie beginnen zu verstehen, was ich Ihnen sagen will. Wenn Sie einen Ansatz von oben nach unten deklarieren, beginnen Sie von oben. Deshalb funktioniert "alles zu seiner Zeit" nicht mehr. Dies ist die wichtigste Aufgabe.

 
 

Wird EasyLanguage gerade erfunden? Wie viele MT4-Advisors, die ich gesehen habe, sind alle über MT4-API geschrieben, ohne komplexe Wrapper. Offenbar ist es einfacher und zuverlässiger, da der Code sehr übersichtlich ist.

Wenn wir zum Beispiel einen solchen MT5-Wrapper für den Handel oder einen solchen für MAX verwenden, dann wäre es nur für den Autor dieser Wrapper einfach.

 
fxsaber:

Wird EasyLanguage gerade erfunden? Wie viele MT4-Advisors, die ich gesehen habe, sind alle über MT4-API geschrieben, ohne komplexe Wrapper. Offenbar ist es einfacher und zuverlässiger, da der Code sehr übersichtlich ist.

Wenn wir zum Beispiel einen solchen MT5-Wrapper für den Handel oder einen solchen für MAX verwenden, dann wäre es nur für den Autor dieser Wrapper einfach.

Ich stimme zu, und die Entwicklung und Unterstützung in der Zukunft ist wichtig, um etwas zu benutzen und zu lernen. Dummes Beispiel, aber trotzdem, mql6 oder eine neue Art von Aufträgen wird herauskommen, der Punkt war, sich mit diesen Wrappern zu beschäftigen, wenn man immer noch Mana auf dieser Seite lesen muss.
 
Aleksei Beliakov:
Ich stimme zu, und die Entwicklung und Unterstützung in der Zukunft ist wichtig, um etwas zu benutzen und zu lernen. Dummes Beispiel, aber immer noch, mql6 wird herauskommen oder neue Art von Aufträgen, war der Sinn, mit diesen Wrappern zu beschäftigen, wenn Sie noch zu lesen Mana auf dieser Website.
Du liest Mana, du trinkst Pita, du isst Essen...
Es ist sehr einfach, neue Objekte zu einer gut organisierten Struktur hinzuzufügen, während man Hühner raucht und Gerüchten zuhört :)
 
Artyom Trishkin:.
Es ist sehr einfach, neue Objekte zu einer gut organisierten Struktur hinzuzufügen
Habe ich etwas anderes gesagt?
 
Vasiliy Sokolov:

Nun, Sie schreiben es richtig. Aber der Benutzer versteht einen solchen Pseudocode viel besser:

Eine andere Sache ist, dass es viel schwieriger ist, es in dieser speziellen Form (verfahrensorientiert, wie ich feststelle) zu realisieren, aber es ist trotzdem möglich. Das ist es, was man erreichen sollte - Anweisungen auf Benutzerebene so einfach und abstrakt wie möglich zu gestalten. In Ihrem Fall muss der Benutzer bedingte Kompilierungsmakros, spezifische Funktionen für die Berechnung von Durchschnittswerten und andere technische Details angeben, die er einfach nicht bewältigen kann.

if(SMA(Close, 12) > SMA(Close, 24))
   BUY();
else
   SELL();

Man schreibt eine universelle Klasse, wie sie von TC entworfen wurde, und fügt sie mit einem Inluder und darunter einem weiteren Inluder mit Defines ein, in denen wir Methodenaufrufe verpacken:

#define  BUY()   EA.SendOrder(cmdbuy)
#define  SELL()  EA.SendOrder(cmdsell)

die Implementierung ist für den Benutzer nicht sichtbar, aber die Benutzerfreundlichkeit wird benötigt

also

 
Bitte keinen Kommerz und keine kommerziellen Links von Dritten.
 
Vladimir Karputov:
Bitte keinen Kommerz.
Warum haben Sie den Beitrag über den nächsten Schritt gelöscht?