Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

EAs, Indikatoren, Symbole und mehrere MT-Instanzen

Geschrieben

Hallo zusammen,

 

durch die Entwicklung des Indikators Daily-Range beschäftigen mich zurzeit einige Fragen bzgl. eines produktiven Einsatzes und der damit verbundenen MT-Instanz. Leider habe ich in meiner einzigen MT-Instanz immer noch ein merkwürdiges Verhalten des Indikators, wenn ich mehrere Charts offen habe und dann auch noch von Live-Konto auf Demo-Konto wechsle. Der Indikator sieht bei Symbol- oder Kontowechsel komisch aus. Nachdem ich ihn gelöscht und wieder hinzugefügt habe, scheint er wieder einen guten Eindruck zu hinterlassen. Ich kann mir das Verhalten nicht erklären, deswegen habe ich folgende Fragen:

 

1. Kann ich denselben EA / Indikator in einer MT-Instanz und einem Konto mit mehreren Symbolen laufen lassen? Also ein Chart mit dem FDAX, einen mit GOLD ...

 

2. ... oder ist es eher empfehlenswert pro Symbol eine eigene MT-Instanz zu installieren?

 

3. Wie sieht es mit verschiedenen EAs aus? Kann ich EA1 und EA2 zusammen auf einem / mehreren Symbolen laufen lassen?

 

4. Gibt es zu oben angesprochenen Themen "Best-Practices", die man beachten sollte? Ich meine gelesen zu haben, das einige von Euch, mehrere MT-Instanzen laufen lassen, aber der Hintergrund ist mir noch nicht ganz klar.

 

5. Kann es irgendwie sein, dass sich Indikatoren / EAs gegenseitig beeinträchtigen und Werte untereinander verfälschen, wenn sie in einer MT-Instanz, auf mehreren Symbolen laufen?

 

Danke

DT

Featured Replies

Geschrieben
Leider habe ich in meiner einzigen MT-Instanz immer noch ein merkwürdiges Verhalten des Indikators, wenn ich mehrere Charts offen habe und dann auch noch von Live-Konto auf Demo-Konto wechsle. Der Indikator sieht bei Symbol- oder Kontowechsel komisch aus.

Was heißt denn "Komisch"? Kannst Du da bitte einen Screenshot posten oder es zumindest etwas näher beschreiben ?

Im Moment klingt es für mich eher wie ein Updateproblem. Sprich, Reste vom Indikator sind noch in dem Chart drin und nicht gelöscht worden, neue Teile sind aber zusätzlich hineingemalt worden.

Was zwischendurch fehlt, ist ein Neuzeichnen des kompletten Charts (Hintergrundfarbe) etc.

Vielleicht musst Du auch explizit in der deinit()-Funktion alle Objekte entfernen... Könnte vielleicht helfen.

 

 

Ich muss dazu sagen, ich schreibe die folgenden Sachen von nem theoretischen Standpunkt aus, hab das nicht in der Praxis getestet, da bei mir das Problem mit mehreren EAs gleichzeitig noch nicht aufkam. FinGer oder andere können das sicher besser als ich beantworten, aber vielleicht hilfts ja dennoch schon mal etwas.

 

1. Kann ich denselben EA / Indikator in einer MT-Instanz und einem Konto mit mehreren Symbolen laufen lassen? Also ein Chart mit dem FDAX, einen mit GOLD ...

Ja, separaten Chart öffnen, EA draufziehen, fertig.

 

2. ... oder ist es eher empfehlenswert pro Symbol eine eigene MT-Instanz zu installieren?

Ich würde mal vermuten, dass unter den EAs C++-Threads stecken, die ihrerseits per Socket mit dem Metatrader-Server kommunizieren.

THEORETISCH sollten sie sich nicht ins Gehege kommen. Praktisch gibt es aber beliebig viele Varianten, wo Flaschenhälse auftreten können, z.B. Zugriff auf Dateien oder globale Variablen (siehe unten), es kann nur einer rechnen, wenn man nur 1 Prozessor hat, usw.). Kommt halt auf die Anzahl gemeinsam genutzter Ressourcen an.

 

3. Wie sieht es mit verschiedenen EAs aus? Kann ich EA1 und EA2 zusammen auf einem / mehreren Symbolen laufen lassen?

Nein, es geht immer nur 1 EA auf einem Chart. Die werden ausgewechselt. Du musst nen 2. Chart aufmachen, um dort den 2. EA drauflaufen zu lassen.

 

 

4. Gibt es zu oben angesprochenen Themen "Best-Practices", die man beachten sollte? Ich meine gelesen zu haben, das einige von Euch, mehrere MT-Instanzen laufen lassen, aber der Hintergrund ist mir noch nicht ganz klar.

Dazu kann ich leider nichts sagen.

FinGer, Henriiiik ? :wub:

 

5. Kann es irgendwie sein, dass sich Indikatoren / EAs gegenseitig beeinträchtigen und Werte untereinander verfälschen, wenn sie in einer MT-Instanz, auf mehreren Symbolen laufen?

Ja. Z.B. wenn sie globale Variablen verwenden.

The global variables are places to store data between the instances of MQL4 programs and MetaTrader launches too.

 

In MQL4 you use the normal variables to store the data temporary and it exists only at the time that program is running and vanishes with the un-initialization of the program. But the global variables exist when you un-initialize the program and even if you shut down the terminal itself. The terminal can store the global variables for four weeks from the last store.

Siehe ic.arrow.right.png hier

Immer schön aufräumen, heißt es also.

Geschrieben
  • Autor
Was heißt denn "Komisch"? Kannst Du da bitte einen Screenshot posten oder es zumindest etwas näher beschreiben ?

Im Moment klingt es für mich eher wie ein Updateproblem. Sprich, Reste vom Indikator sind noch in dem Chart drin und nicht gelöscht worden, neue Teile sind aber zusätzlich hineingemalt worden.

 

Wenn ich es beschreiben könnte, dann wäre ich einen Schritt weiter ... :wub:

Sofern ich das Problem mal auf frische Tat erwische, mache ich natürlich einen Screenshot.

 

Siehe ic.arrow.right.png hier

Immer schön aufräumen, heißt es also.

 

Habe gerade nochmal den Artikel zur MagicNumber gelesen. Ich muss also auch bei denselben

EAs unterschiedliche MagicNumbers verwenden. Also mir über MathRand() oder ähnlichen

eine UniqueNumber erzeugen, damit ich nicht immer im Code etwas ändern muss.

 

Danke auf jeden Fall. Ich bin auf weitere Antworten gespannt, besonders

wann es Sinn macht mehrere Instanzen von MT einzusetzen.

Geschrieben
Nimm als Magic das DATUM seiner Geburt (V1.0) :-) z.b. für heute 240309... geht am einfachsten
Geschrieben
  • Autor
Nimm als Magic das DATUM seiner Geburt (V1.0) :-) z.b. für heute 240309... geht am einfachsten

 

Geht m.E. nicht, da ich doch auch ein und denselben EA in einer MT-Instanz auf mehreren Symbolen handeln

kann und will. Das heißt ich brauche 2 unterschiedliche MagicNumbers für denselben EA.

Habe es jetzt so gelöst:

 

// -----
// Initialisierung
// -----
int init ()
{
  ....
  
  // Random-Funktion initialisieren
  MathSrand (TimeLocal());
  
  // Eindeutige MagicNumber generieren
  MAGIC_NUMBER = MathRand();   
  
  ...   
  return (0);
}

 

 

Ach ja, kam gerade wieder und musste sehen, dass der Indikator wieder Mist gezeichnet hat. Die Range sollte ab 10 Uhr anfangen

und jeden Tag um 21 Uhr aufhören:

 

screenshot_2.jpg screenshot_3.jpg

 

 

Nach Löschen und wieder hinzufügen sieht es wieder korrekt aus. Alle Objekte wurde auf jeden Fall

gelöscht, das habe ich nochmal verifiziert:

 

screenshot_1.jpg screenshot_4.jpg

 

So langsam zweifle ich an meinem Verständnis für die Sache. MT lief die ganze Zeit im Hintergrund,

nachdem ich von einem Termin wieder kam habe ich nichts geändert und sofort hat sich der Chart wie

oben angegeben dargestellt.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.