Fragen von einem "Dummy" - Seite 70

 
Expert:

Hallo. Können Sie mir das bitte sagen? Warum haben Orders und Trades ein Ticket, Positionen aber nicht?

Und was ist der Unterschied zwischen einem Ticket und einer Kennung?

RTFM
 
sergeev:
RTFM
))))))))))
 
sergeev:
RTFM
Oh... Sie ist zu groß, um dort schnell die nötigen Informationen zu finden.
 
Expert:
Oh... Sie ist zu groß, um dort schnell die nötigen Informationen zu finden.
Und Sie nehmen sich Zeit. )) Sie müssen es studieren. Und dann werden Sie sehr schnell und einfach viele Antworten auf Ihre Fragen finden. Werfen Sie einen Blick auf den Abschnitt Handelsfunktionen für Ihre Frage.
Документация по MQL5: Торговые функции
Документация по MQL5: Торговые функции
  • www.mql5.com
Торговые функции - Документация по MQL5
 
rlx:

Aufruf von importierten Funktionen aus der ex5-Bibliothek.

Erklären Sie das bitte. Lesen Sie https://www.mql5.com/ru/docs/runtime/imports

Die Systembibliotheken (DLL) werden nach den Regeln des Betriebssystems geladen. Wenn die Bibliothek bereits geladen ist (z. B. von einem anderen Expert Advisor oder sogar von einem anderen parallel laufenden Client-Terminal), dann bezieht sich der Verweis auf die bereits geladene Bibliothek.

Wie werden ex5-Bibliotheken geladen?Wenn die Bibliothek bereits geladen ist (z.B. von einem anderen Expert Advisor und sogar von einem anderen parallel laufenden Client-Terminal),

Und immer noch: Wie kann ich erreichen, dass nur eine Instanz der ex5-Bibliothek geladen wird?

Und weitere EAs werden sich nur mit dieser Instanz verbinden.

Ich habe eine Bibliothek angelegt.

#property library
static int      i=0;
int lib[10 000 000]; /// разделил пробелами для наглядности
int Get(void) export {return(i++);}

Ich habe einen Expert Advisor erstellt, der die Bibliothek enthält.

#import "lib.ex5"
  int Get(void);
#import
void OnTick(){}

1. Es ist kein einziger Expert Advisor geladen. Der Prozess terminal.exe ist 91.000 KB groß.

2. Verbinden eines Expert Advisors mit EURUSD. Terminal.exe Prozess - 131 000 KB. (+41 MB).

3. Ich verbinde den gleichen Expert Advisor (zusätzlich) mit GBPUSD. terminal.exe Prozess - 171 000KB.(+41MB).

Wie mit Hilfe von MT5 nur (durch Klassen oder Bibliotheken oder Skripte, EAs, etc.) erstellen Sie den Zugriff auf bestimmte Daten (die sich dynamisch ändern) gemeinsam?

PS// Versucht, beides zu tun

static  int lib[10 000 000]
Auf jeden Fall wird für jeden EA eine andere Instanz der Bibliothek geladen.
 

rlx:

Es lädt immer noch eine andere Bibliotheksinstanz für jeden EA.

Möglicherweise ist es möglich, dies mit globalen Terminalvariablen zu realisieren. Das heißt, beide Instanzen verwenden die globalen Variablen des Terminals für Berechnungen.
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
 
rlx:

Dennoch: Wie kann ich erreichen, dass nur eine Instanz von ex5 geladen wird?

Nachfolgende EAs werden nur mit dieser Instanz verbunden.

Ich habe eine Bibliothek angelegt.

Ich habe einen Expert Advisor erstellt, der diese Bibliothek enthält.

1. Es ist kein einziger Expert Advisor geladen. Der Prozess terminal.exe ist 91.000 KB groß.

2. Verbinden eines Expert Advisors mit EURUSD. Terminal.exe Prozess - 131 000 KB. (+41 MB).

3. Ich verbinde den gleichen Expert Advisor (zusätzlich) mit GBPUSD. terminal.exe Prozess - 171 000KB.(+41MB).

Wie mit Hilfe von MT5 nur (durch Klassen oder Bibliotheken oder Skripte, EAs, etc.) erstellen Sie den Zugriff auf bestimmte Daten (die sich dynamisch ändern) gemeinsam?

PS// Versucht, beides zu tun

Es lädt immer noch eine andere Bibliotheksinstanz für jeden EA.

Ich denke, globale Terminal-Variablen können Ihnen helfen, oder schreiben Sie Daten in eine Datei
 
tol64:
Vielleicht kann es mit globalen Terminalvariablen implementiert werden. Das heißt, beide Instanzen verwenden globale Terminalvariablen für Berechnungen.
sergey1294:
Ich denke, globale Terminalvariablen können Ihnen helfen, oder schreiben Sie die Daten in eine Datei

Danke für die Anregung.

Vielleicht gibt es andere Wege.

 
rlx:

Danke für die Anregung.

Vielleicht gibt es andere Wege.

Ich denke, es gibt keine anderen Möglichkeiten, die gleichen Daten mit verschiedenen EAs, Skripten und Indikatoren zu verwenden
 
sergey1294:
Ich denke, es gibt keine anderen Möglichkeiten, dieselben Daten mit verschiedenen Expert Advisors, Skripten und Indikatoren zu verwenden.

Ich wünschte, ich könnte es.

Ich habe mir zum Beispiel eine solche Variante ausgedacht. Sie kann nicht durch globale Variablen implementiert werden.

berater.ex5

struct Info
  {
   uint      id;
   uint   info1;
   uint   info2;
   double info3;
  };
Info   test;
void OnTick()
  {
//---
   test.info3 = 78;
  }
bool  GetInfo(Info& massiv[]) export
  {
   ArrayResize(massiv, 10);
   massiv[0].id = 123;
   massiv[0].info1= 56;
   massiv[0].info3=test.info3;
   return(true);
  }

trader.ex5

struct Info
  {
   uint      id;
   uint   info1;
   uint   info2;
   double info3;
  };
#import "advisor.ex5"
  bool  GetInfo(Info& massiv[]);
#import
void OnTick()
  {
   Info req[];
   GetInfo(req);
   Print(req[0].info3);
  }

Übergabe des Arrays!!! Strukturen!! an einen anderen Expert Advisor, der dieses Array füllt.

Dieser Code funktioniert korrekt. BUT trader.ex5 verknüpft sich nicht mit einem bereits laufenden advisor.ex5, sondern erstellt eine weitere Instanz vonadvisor.ex5.

Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Основы языка / Переменные / Глобальные переменные - Документация по MQL5
Grund der Beschwerde: