
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Wenn Sie Probleme haben, ein Singleton zu entfernen, wird es wahrscheinlich nicht richtig verwendet. Aber auch Singles sind anders, wie zum Beispiel Phoenix.
Mein Favorit ist zum Beispiel die gemeinsame Nutzung von ptr.
Auch wenn es wahrscheinlich nicht der beste Weg ist, um es für die Dll zu tun.
Ich verwende keine Zeiger in C++.
Wie Speicherzuweisung, WinAPI-Aufrufe usw.
.
Oder man kann eine spezielle Funktion wie killInstance();
erstellen.
Vadim konnte Singletons empfehlen, weil
selbst das Initialisierungsproblem gelöst hat.
Es gibt keine andere Möglichkeit,
globale Instanzen ordnungsgemäß zu initialisieren.
.
Ich habe es im Internet bei jemand anderem nachgeschlagen.
Deadlock nach Symptomen. Offensichtlich hat das Terminal beim Starten eines entfernten Prozesses keine Zeit, eine Prozedur auszuführen. Vielleicht läuft das Skript im falschen Thread.
Alternativ können Sie Tick-Ereignisse anstelle von Slip ausführen - machen Sie asynchrone Skript-Emulation, es sollte helfen.
Nach all meinen Klassenbibliothekskonvertierungen in korrekte Singletons habe ich mich endlich wieder dem Hauptprojekt gewidmet.
Das Problem aus dem ersten Beitrag dieses Threads ist nun gelöst. Es ging um die falsche, nicht rechtzeitige Initialisierung von Klassen.
... zurück zum Hauptprojekt...
Ich hoffe, dass ich später einen Blick auf Ihren Entwurf werfen kann, zumindest in Form von Blockdiagrammen oder Screenshots: zum Staunen, sozusagen)))
:-)) Ja, es ist nichts Besonderes. Auch dieses Projekt ist ein Teilprojekt.
Es handelt sich um eine Konsolenanwendung, die mit Hilfe von MT4 unabhängig vom Hauptterminal (Battle-Terminal) die Historie zeitgesteuert lädt/aktualisiert.
Die Hauptfunktion dieser Anwendung ist bereits in Betrieb. Was noch zu tun bleibt, ist die Synthese einer nicht standardisierten TF zur Berechnung der Gewichte der Währungsindizes.
Die Erstellung von Nicht-Standard-TFs, die Berechnung von Gewichten und die Auffüllung der Datenbank werden in zusätzlichen Threads durchgeführt, unabhängig vom Laden von Quoten.
Konsolenanwendung:
1. Erzeugt ein Verzeichnis - eine Kopie des MT4-Stammverzeichnisses in MT4.
2. Erstellt, wenn nicht, Kopien der notwendigen Verzeichnisse und Dateien in diesem Verzeichnis mit Hilfe von harten und symbolischen Links, um die Festplatte nicht zu überfüllen.
D.h., es funktioniert tatsächlich mit den Originalen der Hauptdateien von MT4.
3. Führt MT4 aus dem neuen Verzeichnis aus.
4. Wechselt zwischen Tools und TFs und aktualisiert die Charts.
5. Schließt MT4 und speichert alles, was getauscht wurde, in History-Dateien.
6. Wartet, bis der MT4-Prozess abgeschlossen ist.
7. Beginnt mit der Erstellung von Nicht-Standard-TF.
8. Startet den Ablauf mit Berechnung und Speicherung der Gewichte.
9. Mit dem Timer noch einmal von vorn.
Wäre es richtig zu sagen, dass die Umgehungsmanöver hauptsächlich im Hinblick auf Punkt 5 organisiert werden?
All dies dient hauptsächlich dazu, die Zuverlässigkeit des Handels im Hauptterminal zu erhöhen. Durch das Aufpumpen aller Instrumente wird der Speicher von MT4 überlastet. Er funktioniert in diesem Modus nicht zuverlässig.
Und der mit verschiedenen Servicefunktionen überladene Expert Advisor ist, wie sich herausstellt, nicht sehr zuverlässig. Wir müssen die Aufgaben auf verschiedene Terminals aufteilen.
Vielleicht wird es einen dritten Terminal für den Handel geben.
Darf ich eine dumme Frage stellen? Woher weiß ich, welches der Diagrammfenster des Terminals gerade für den Benutzer sichtbar ist?
;)
Darf ich eine dumme Frage stellen? Woher weiß ich, welches der Diagrammfenster des Terminals gerade für den Benutzer sichtbar ist?
;)