Fehler, Irrtümer, Fragen - Seite 2615

 

Im Moment funktioniert bei den MT5-Indikatoren die Größenänderung der Pfeile nicht. Bitte beheben Sie das Problem oder geben Sie Hinweise, wie Sie es ändern können.

PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_ARROW);
PlotIndexSetInteger(0, PLOT_ARROW, 233);
PlotIndexSetInteger(0, PLOT_LINE_WIDTH, 2); //1,2,3 - размер не меняется
PS. Ich habe den Grund herausgefunden. Sogar interessant. Im Gegensatz zu MT4 skaliert MT5 die Größe der Pfeile willkürlich auf das Minimum, wenn Sie aus der Chartbreite herauszoomen (Zoom Out).
 
Können Sie mir sagen, wie ich das Handle Ihres Terminals von einem EA, der im Tester läuft, mithilfe von WinAPI herausfinden kann?
 
fxsaber:
Können Sie mir sagen, wie ich das Handle Ihres Terminals von einem EA, der im Tester läuft, mit WinAPI herausfinden kann?

Ich könnte mich irren, aber ich denke, Sie suchen nach einer Prozess-PID, dann googeln Sie "winapi id of your program".

ZS: GetCurrentProcessId

 
Igor Makanu:

Ich könnte mich irren, aber es scheint, dass Sie nach der PID des Prozesses suchen, dann googeln Sie die Abfrage "winapi id of your program".

Der EA, der auf dem Agenten läuft, muss in der Lage sein, das Terminal-Handle abzurufen, von dem er zur Ausführung im Agenten gesendet wurde.

 
 return a++;

Es stellt sich heraus, dass das nicht geht :( ++ funktioniert in diesem Fall nicht, obwohl es in einer komplexeren Form "a" zurückgibt und dann irgendwie ++ ausführt, d.h. der zurückgegebene Wert ist nicht gleich "a".

 int tt=0;
 #define AAA (0==0) ? (tt++):0
int Primer() {return AAA;}
void OnStart()
  {
  int a=Primer();
  Print(a," ",tt, a!=tt? " WTF?!!": "");
  
  }

2019.12.09 16:17:51.363 proba (EURUSD,H1) 0 1 WTF?!


Baujahr 2093
 
fxsaber:

Ich möchte, dass ein EA, der auf einem Agenten läuft, in der Lage ist, das Terminal-Handle abzurufen, von dem er zur Ausführung im Agenten gesendet wurde.

komplexe Aufgabe, ich habe keine Ahnung, wie Agenten ausgeführt werden, ich denke, wenn man die PID des übergeordneten Prozesses googelt, wird es noch komplizierter

Ich weiß nicht, was zu tun ist, aber ich denke, ich muss eine Art von Identifikator (magische Zahl) an Agenten übergeben und dort verarbeiten


SZZ: Ich habe das Gefühl, dass sogar das Lesen einer Datei auf der RAMDisk schneller ist als der mehrmalige Aufruf von WinAPI bei der Suche nach einem übergeordneten Prozess, d.h. das Schreiben in eine Datei in einem gemeinsamen Ordner

 
Alexandr Andreev:

2019.12.09 16:17:51.363 proba (EURUSD,H1) 0 1 WTF!!!

Das ist richtig. a bekommt das tt vor dem Inkrement.

 
Igor Makanu:

kennen die Aufgabe nicht

https://www.mql5.com/ru/forum/321656/page31#comment_14170117

 
fxsaber:

Das ist richtig. a bekommt tt vor increment.

Ja, ich habe das "i++" "++i" völlig vergessen.

 

Ich verstehe, d.h. Sie lösen das ewige Problem des Datenaustausches zwischen Terminals, ich habe nicht in diese Richtung gedacht, ich schreibe normalerweise alles in dll, was nicht in MQL gelöst ist, ich suche selten nach Lösungen in WinAPI - es dauert lange

SZZY: Gestern habe ich über SQLite gelesen, in der Beschreibung wird deutlich erklärt, dass die Datenbank sowohl zum Schreiben als auch nur zum Lesen geöffnet werden kann, die DB dll selbst kann separat installiert werden, ich hätte nach einer optimalen Lösung für den Datenaustausch gesucht, ich werde diese Sachen studieren müssen