Fehler, Irrtümer, Fragen - Seite 1261
![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
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Die mobilen Anwendungen MetaTrader 4 und MetaTrader 5 für Android wurden aktualisiert
pav36krs, 2014.12.20 10:21
Meine Freunde helfen!!! Ich habe Metatrader heruntergeladen, und er startet nicht in 32 Bit auf meinem 64 Bit Windows. Das ist das erste Mal, dass ich auf ein solches Problem gestoßen bin, bevor ich Metatrader von alpha forex installiert habe, und es hat alles gut funktioniert.Fehler bei bitweisen Operationen.
Wir erhalten 4, was 0 sein sollte. Wie viele Jahre MT-Polieren und immer noch solche Fehler.
Und was, der Compiler hat diesen Offset nicht abgeschworen? Das bezweifle ich.
Jedenfalls ist es das, was wir wollten.
Und was, der Compiler hat diesen Offset nicht abgeschworen? Das bezweifle ich.
Jedenfalls ist es das, was wir wollten.
In den niederwertigen Bits kann dort nichts vorkommen.
In der MQL-Dokumentation steht nichts über eine zyklische Verschiebung, also wird die übliche Verschiebung angenommen. Aber ich habe dort den folgenden Satz gefunden
Es wird nicht empfohlen, mehr oder die gleiche Anzahl von Bits zu verschieben als die Anzahl der Bits in der zu verschiebenden Variablen, da das Ergebnis dieser Operation undefiniert ist.
Dies ist falsch. Bei bitweisen Operationen kann es kein undefiniertes Ergebnis geben. Es ist nur so, dass das abgehende Bit entweder in einem speziellen Flag gespeichert wird oder nicht, was aber keine Auswirkung auf den Verschiebealgorithmus hat, d.h. die rechten Bits werden sowieso mit Nullen aufgefüllt. Wenn es sich um eine zyklische Verschiebung handelt, muss dies explizit angegeben werden (obwohl eine normale C++-kompatible Verschiebung korrekter wäre).
Ist es möglich, einen mit dem alten Build kompilierten Indikator als Ressource mit einem anderen Indikator zu verbinden?
Ich kann es so nicht zum Laufen bringen:
........
#resource "\\Indicators\\тфьу.ex4"
........
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
........
ExtLimeBuffer[i]=iCustom(_Symbol,0,"::Indicators\\тьфу.ex4",pr1,pr2,pr3,pr4,pr5,pr6,pr7,2,i);
........
return(rates_total);
}
sagt der Compiler dies:
unknown resource type 'C:\Program Files\MT4\MQL4\Indicators\тфьу.ex4' тфьу1.mq4 10 1
In der MQL-Dokumentation steht nichts über eine zyklische Verschiebung, also wird eine normale Verschiebung angenommen. Allerdings habe ich dort einen solchen Satz gefunden:
Dies ist falsch. Bei bitweisen Operationen kann es kein undefiniertes Ergebnis geben. Es ist nur so, dass das abgehende Bit entweder in einem speziellen Flag gespeichert wird oder nicht, aber das hat keinen Einfluss auf den Verschiebungsalgorithmus, d.h. die rechten Bits werden sowieso mit Nullen aufgefüllt. Wenn es sich um eine zyklische Verschiebung handelt, muss man das explizit angeben (obwohl eine plain++-kompatible Verschiebung korrekter wäre).
Das mag sein.
Maximal 5 Bits bei 32-Bit-Ganzzahlen (bzw. 6 Bits bei 64-Bit-Ganzzahlen) dürfen an Verschiebeoperationen beteiligt sein. Wenn ein Verschiebungswert mehr als 5 (oder 6) Bits benötigt, behandeln verschiedene Prozessoren diese Situation unterschiedlich. In der Dokumentation haben wir diese Tatsache nur dadurch berücksichtigt, dass wir sagen, dass das Ergebnis der Operation undefiniert ist.
...
schreibt der Compiler wie folgt:
unknown resource type 'C:\Program Files\MT4\MQL4\Indicators\тфьу.ex4' тфьу1.mq4 10 1