![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Es scheint mir, dass Sie jedes Element des Arrays einzeln übersetzen müssen.
Ich möchte Hilfe, keine Tiraden. Lassen Sie mich klarstellen, ich versucht, mit CharArrayToString mit CP_UTF16 zu übersetzen, aber es scheint nicht unterstützt werden. Vielleicht brauche ich eine weitere Code-Seite?
Frage an die Entwickler - in der Hilfe steht, dass die Seiten, die nicht in den Standardkonstanten enthalten sind, manuell hinzugefügt werden können. Werden alle von ihnen unterstützt oder nicht?
Ich möchte Hilfe, keine Tiraden. Lassen Sie mich das klar, ich habe versucht, CharArrayToString von CP_UTF16 zu verwenden, aber ich habe ein Gefühl, es wird nicht unterstützt. Vielleicht brauche ich eine weitere Code-Seite?
Frage an die Entwickler -- in der Hilfe steht, dass die Seiten, die nicht in den Standardkonstanten enthalten sind, manuell hinzugefügt werden können. Werden alle von ihnen unterstützt oder nicht?
Ich habe die Frage missverstanden. Wenn ich die Dokumentation für CP_UTF16 richtig verstanden habe, müssen Sie den erforderlichen numerischen Code angeben (welcher das ist, ist noch nicht klar).
Nun, das ist wahrscheinlich eine Frage für Entwickler.
Zusätzlich zu der Frage - https://www.mql5.com/ru/forum/1111/page455#comment_80246 -, auf die ich immer noch gerne eine Antwort hätte, werde ich die Situation präzisieren. Ich habe einen Multicurrency-Indikator, den ich auf MetaQuotes und Alpari teste. Ich benutze es für Alpari, aber mit MetaQuotes gibt es oft BarsCalculated für verschiedene Symbole und insbesondere Fehler 4806 oder nur 0 Bars gezählt. Bitte zeigen Sie mir, wo ich mehr über die Ursachen von 4806 und deren Behebung lesen kann. Ich verwende Metaquotes Code für die Datensynchronisation - CheckLoadHistory Funktion von https://www.mql5.com/ru/docs/series/timeseries_access Seite. Fehler von BarsCalculated treten auf, nachdem diese Funktion auf Null gesetzt wurde (d.h. die Daten für die Berechnung sollten vorhanden sein). Kann man ihr überhaupt trauen oder ist etwas anderes erforderlich? Um auf Nummer sicher zu gehen, möchte ich klarstellen, dass der Indikator die Standardmasken für die Berechnung verwendet und deren Bereitschaft durch den Aufruf von BarsCalculated überprüft wird.
Wenn die Aktualisierung nicht von Sami stammt, werden die Daten nach einer lächerlichen Zeitspanne synchronisiert. Synchronisiert gefangen, BarsCalculate=0.
Vielen Dank für die Informationen, obwohl ich "selbst" sagen kann, dass ich mit einem solchen Verhalten nicht sehr glücklich bin - es stellt eine erhebliche Unsicherheit in der Funktionsfähigkeit der Software dar. Ich habe z.B. schon vor mehr als einer Stunde einen Indikator aufgehängt, in dem ich ein paar neue Ticker angezeigt habe - in der Marktübersicht sind sie - wenn der Verweis auf die oben genannten Funktionen das Herunterladen und Zählen ausgelöst haben sollte, dann müsste alles längst fertig sein, aber das ist nicht so. Zumindest wäre es wünschenswert, im Systemjournal jedes Niesen des Terminals über das Hochladen und andere "unterirdische" Aktionen zu sehen, sonst ist nicht klar, aus welchem Grund es "heruntergefahren" ist - der letzte Eintrag im "Expert" mit dem 4806-Fehler, aber im System - sagt, dass das Terminal nicht mehr synchron ist. In Anbetracht der Tatsache, dass es am Wochenende keine Zecken gibt, habe ich die Einstellungen mehrmals geändert, aber immer noch keine Daten.
Ich habe zum Beispiel RTS-9.11 genommen, aber die oben erwähnte Refresh-Funktion von MetaQuotes liefert regelmäßig Load failed.
Eine andere Frage. In Quaternary könnte man multidimensional array func(int array[][]) als Funktionsargument schreiben. In der fünften erzeugt der Compiler einen Fehler mit einem ungültigen Indexwert - er verlangt die Angabe der Dimension. Ich schrieb func(int &array[][3]) - kein Fehler, aber es ist keine Lösung. Wie schreibt man dann Funktionen? Ihr Sinn besteht definitionsgemäß darin, ein abstraktes Codefragment zuzuweisen, das auf verschiedene Daten, verschiedene Arrays anwendbar ist.
Das ist meine Aufgabe:
Ich übergebe Objekte dieser Klasse als Argumente.
Mit anderen Worten, ich verwende ein eindimensionales Array als Datenspeicher beliebiger Dimension, wobei ich die "mehrdimensionalen" Indizes selbst in "eindimensionale" Indizes (und zurück) umrechne.
Es funktioniert mit einer recht akzeptablen Geschwindigkeit.
Sie können die Meta-Zitate verstehen. Wenn Sie die Einschränkung "nur eine Dimension ist undefiniert" nicht einführen, können Sie zur Kompilierzeit keinen Hochgeschwindigkeitscode für den Zugriff auf ein Array-Element erzeugen.
Vielen Dank für die Information, obwohl ich "selbst" sagen kann, dass ich mit einem solchen Verhalten nicht sehr glücklich bin - es stellt eine erhebliche Unsicherheit in der Funktionsfähigkeit der Software dar. Ich habe z.B. schon vor mehr als einer Stunde einen Indikator aufgehängt, in dem ich ein paar neue Ticker angezeigt habe - in der Marktübersicht sind sie - wenn der Verweis auf die oben genannten Funktionen das Herunterladen und Zählen ausgelöst haben sollte, dann müsste alles längst fertig sein, aber das ist nicht so. Zumindest wäre es wünschenswert, im Systemjournal jedes Niesen des Terminals über das Hochladen und andere "unterirdische" Aktionen zu sehen, sonst ist nicht klar, aus welchem Grund es "heruntergefahren" ist - der letzte Eintrag im "Expert" mit dem 4806-Fehler, aber im System - sagt, dass das Terminal nicht mehr synchron ist. In Anbetracht der Tatsache, dass es am Wochenende keine Zecken gibt, habe ich die Einstellungen mehrmals geändert, aber immer noch keine Daten.
Ich habe z.B. RTS-9.11 genommen, aber die Aktualisierungsfunktion von MetaQuotes, die im Link erwähnt wird, liefert regelmäßig Load failed.
Referenz:
Der Zugriff auf Indikator- und Zeitreihendaten erfolgt unabhängig von der Tatsache, dass die angeforderten Daten bereitstehen (der so genannte asynchrone Zugriff ). Dies ist für die Berechnung von benutzerdefinierten Indikatoren von entscheidender Bedeutung, so dass Funktionen wieCopy...() sofort einen Fehler zurückgeben, wenn die angeforderten Daten nicht vorhanden sind.
Am Wochenende gibt es keine Häkchen, der Indikator wird gestartet, und es wirdein Fehler zurückgegeben...
Imho gibt es nur eine Lösung, nämlich einen zusätzlichen Expert Advisor laufen zu lassen, der die gewünschte Historie lädt...
D.h. wenn Daten für den Expert Advisor verfügbar sind, sind sie auch für den Indikator verfügbar. Ich habe es nicht überprüft, die Lösung sieht schief aus.
Ich werde meine Frage wiederholen:
Hilfe:
Die Funktion Sleep() kann nicht vonbenutzerdefinierten Indikatoren aufgerufen werden, da Indikatoren im Schnittstellen-Thread ausgeführt werden und diesen nicht verlangsamen dürfen.
Das können Sie auf keinen Fall, oder wenn Sie wirklich wollen, können Sie es, aber vorsichtig? :)
Es gibt ein Problem beim Zugriff auf die Daten eines anderen Symbols aus dem Indikator.
wenn es keine Zecken gibt)d.h. es gibt keine Möglichkeit, dass der Indikator seine Daten am Wochenende erhält, nicht sein TF, nicht sein Symbol...
Metacvots sind verständlich. Solange die Einschränkung "nur eine Dimension ist undefiniert" nicht gilt, kann man zur Kompilierungszeit keinen Hochgeschwindigkeitscode für den Zugriff auf ein Array-Element erzeugen.