Fehler, Irrtümer, Fragen - Seite 2612

 
Vladimir Simakov:
Ist er komplett eingefroren, oder wird der EA nach einiger Zeit wieder entladen? Wenn letzteres der Fall ist, dann suchen Sie nach einer Schleife.

Noch interessanter. Im Debug-Modus bleibt er nicht hängen. Aber im voll funktionsfähigen Modus bleibt es dabei.

 
Hallo Kollegen, weiß jemand, warum das MT4-Terminal auf Android einige geschlossene Positionen nicht als Gewinn zählt, obwohl sie in der Historie angezeigt werden?

Vielleicht ist es ein Fehler?
 
fxsaber:

Noch interessanter. Im Debug-Modus bleibt er nicht hängen. Aber im voll funktionsfähigen Modus ist sie eingefroren.

Ich habe das Problem lokalisiert.

#include <WinAPI\WinAPI.mqh>

#define  GA_ROOT           0x00000002

void OnDeinit( const int )
{
  static const int ControlID[] = {0xE81E, 0x804E, 0x2712, 0x4196};
  
  long Handle = user32::GetAncestor(::ChartGetInteger(0, CHART_WINDOW_HANDLE), GA_ROOT);
                                                                                        
  for (int i = 0; i < sizeof(ControlID) / sizeof(int); i++)                             
    Handle = user32::GetDlgItem(Handle, ControlID[i]);

  ushort Str[6];
  user32::GetWindowTextW(Handle, Str, sizeof(Str) / sizeof(ushort)); // Freeze
}


Sie lassen diesen Expert Advisor auf einem Chart laufen und bauen ihn dann von Hand ab. Das Terminal bleibt dann hängen.

Die Ausführung desselben Codes in einer anderen On-Funktion wird nicht hängen bleiben.

 
Plötzlich gibt es im Tester-Ordner einen Ordner für einen dritten Agenten (Port 3002), den es vorher nicht gab. Ich habe nichts verändert und ich habe den Manager nicht gestartet. In den Ordnern der beiden anderen (normalen) Agenten befinden sich ebenfalls frische Dateien von heute. Was kann das sein? Kann ich den zusätzlichen Mann töten?
 
Stanislav Korotky:
Kann ich den zusätzlichen Nagel einschlagen?

Sie könnten den gesamten Ordner "Tester" löschen und nur den Cache zurücklassen.

 

Können Sie mir sagen, ob dies ein Fehler ist oder nicht?

struct A { int i; };

struct B : public A { int j; };

void OnStart()
{
  B b;
  
  DebugBreak();
}

Es fehlt das Feld i.

 

Es gibt ein ständiges Problem mit dem Terminal:

1- Wir schalten die Zeichnungs- und Zeitrahmen-Panels ein. Platzieren Sie sie in einer Linie mit dem Hauptgerät.

2 - Komprimieren des Terminals auf die Hälfte des Bildschirms

3 - Öffnen Sie das Terminal auf den vollen Bildschirm und die Zeichnung und der Zeitrahmen erscheinen als "zweite Zeile"! Ein großer Teil des Bildschirms wird also von einer nutzlosen Leere eingenommen!

Das Terminal sollte jedoch in der Lage sein, sich ihre Positionen zu merken und sie wiederherzustellen.

Wenn Sie den ersten von ihnen nehmen, nimmt er außerdem nicht 2 auf einmal, wie Sie erwarten, sondern nur einen... Sie müssen sie also nur einzeln nach hinten ziehen!

Und überhaupt - sie sind so groß, dass man dort alles halbieren/dreifachen muss!

Und es wäre auch besser, die Rahmen für die Fenster der Karten schlanker zu gestalten! Jetzt sind sie so konventionell - alles aus Ziegeln...

Das ist nur Ergonomie, das ist ein allgemeiner Eindruck und allgemeine Bequemlichkeit!

Es gibt immer wieder Probleme mit der Ergonomie in unserem Land! Sie wird ständig übersehen. Ausländische Produkte gewinnen in der Regel in diesem Sinne. Ich spreche nicht von Terminals anderer Hersteller, ich meine allgemein! Sie können die Autoindustrie oder die Elektronikindustrie nehmen... Alles... Das ist schon seit den Tagen der UdSSR und der Planwirtschaft so.

Es wäre schön, dieses Ding endlich zu besiegen!

 
Михаил:

Und überhaupt - sie sind so groß, dass sie dort alles halbieren / verdreifachen müssen!

Müssen Sie nicht auch an Menschen denken, die nicht hundertprozentig sehen können? Können sie bereits verschrottet werden? Wäre es nicht einfacher für Sie, eine Brille zu tragen, damit die Knöpfe nicht so groß erscheinen?

 
Alexey Viktorov:

Müssen Sie nicht auch an Menschen denken, die nicht hundertprozentig sehen können? Können sie bereits verschrottet werden? Wäre es nicht einfacher für Sie, eine Brille zu tragen, damit die Knöpfe nicht so groß erscheinen?

Sie brauchen eine Anpassung... Ich weiß, dass es verschiedene Arten der Sehkraft gibt. Der Bildschirm kann groß oder der Laptop kann klein sein... Deshalb brauchen Sie eine Anpassung! Und damit das Terminal die Position der Elemente nicht vergisst...

Die Menschen wechseln allmählich von Monitoren zu Fernsehgeräten statt zu Monitoren... Das ist sehr praktisch. Auf einem Fernsehgerät sind große Bedienelemente reine Platzverschwendung. Auf einem Laptop ist es praktisch, größere Bedienelemente zu haben... Sie brauchen Optionen.

Die Plattform ist nicht mehr klein. Es wurden so viele komplexe und ernste Dinge getan. Und das Design ist in vielerlei Hinsicht alt, hat sich seit langem nicht verändert...

 

Frage zu GetMicrosecondCount()

Die Funktion GetMicrosecondCount() gibt die Anzahl der Mikrosekunden zurück, die seit Beginn der Arbeit des MQL5-Programms vergangen sind.

Verstehe ich das richtig, dass diese Funktion einfriert, wenn ich Close - Open - Modify Order - Position aufrufe?


Methode zur Überprüfung

Eröffnung von 20 Stellen

Änderung von 20 Positionen

Messung GetMicrosecondCount()

20 Positionen schließen

GetMicrosecondCount() Messung


Infolgedessen werden alle Positionen im Abstand von 70 000 Mikrosekunden geschlossen. Alle 20, aber wenn wir visuell im Terminal schauen, können wir sehen, dass einige Positionen warten, um für 2-5 Sekunden geschlossen werden!

Grund der Beschwerde: