Fehler, Irrtümer, Fragen - Seite 1059

 

Erklären Sie, warum der Compiler bei der globalen Deklaration einer Instanz der Klasse CCanvas die statische Variable 'CCanvas::m_default_colors' nicht auflöst.

Wenn sie lokal in einer beliebigen Funktion deklariert werden, ist alles in Ordnung.

#include <Canvas\Canvas.mqh>
//CCanvas canvas; если объявлять на глобальном уровне то - unresolved static variable 'CCanvas::m_default_colors'
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   CCanvas canvas; // тут компилируется
  }
//+------------------------------------------------------------------+

Die neueste Version des Terminals ist 842.


 
kPVT:

Erklären Sie, warum der Compiler bei der globalen Deklaration einer Instanz der Klasse CCanvas die statische Variable 'CCanvas::m_default_colors' nicht auflöst.

Wenn sie lokal in einer beliebigen Funktion deklariert werden, ist alles in Ordnung.

Die neueste Version des Terminals ist 842.


Die Anforderung, statische Klassenmitglieder zu platzieren, hat sich geändert.
Dieser Fehler in der Standardbibliothek wurde behoben.
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
Dateien:
Canvas.mqh  83 kb
 

Guten Tag,

Ich verwendeNormalizeDouble, um die Menge zu runden.

Allerdings werden nicht alle Zahlen auf zwei Stellen nach dem Komma gerundet.

Was ist das Problem?

NormalizeDouble(0.07000000000000001,2); //ergibt das gleiche Ergebnis0.07000000000000001 statt der erwarteten 0.07

vielen Dank im Voraus.

 
ArtiFex:

Guten Tag,

Ich verwendeNormalizeDouble, um die Menge zu runden.

Allerdings werden nicht alle Zahlen auf zwei Dezimalstellen gerundet.

Was ist das Problem?

NormalizeDouble(0.07000000000000001,2); //ergibt das gleiche Ergebnis0.07000000000000001 statt der erwarteten 0.07

vielen Dank im Voraus.

DoubleToString()
 

Kann mt5 nicht im /portable Modus auf Win2008 Server x64 R2 ausführen

erscheint das Protokoll

DO      2       14:25:17        Accounts        accounts base corrupted, file H:\MT5_Nord_0\config\accounts.dat deleted
EH      0       14:25:17        Terminal        stopped
IO      2       14:25:32        Accounts        accounts base corrupted, file H:\MT5_Nord_0\config\accounts.dat deleted
HH      0       14:25:32        Terminal        stopped
OO      2       14:26:08        Accounts        accounts base corrupted, file H:\MT5_Nord_0\config\accounts.dat deleted
QH      0       14:26:09        Terminal        stopped
RO      2       14:28:27        Accounts        accounts base corrupted, file H:\MT5_Nord_0\config\accounts.dat deleted
FH      0       14:28:28        Terminal        stopped
QO      2       14:39:26        Accounts        accounts base corrupted, file H:\MT5_Nord_0\config\accounts.dat deleted

Datei im angegebenen Pfad half, Datei manuell zu löschen

sagt nicht mehr und nur noch

OH      0       14:39:27        Terminal        stopped
ML      0       14:40:58        Terminal        stopped
EP      0       14:41:37        Terminal        stopped
CD      0       14:42:36        Terminal        stopped
KH      0       14:42:58        Terminal        stopped
NL      0       14:46:39        Terminal        stopped
HP      0       14:47:14        Terminal        stopped
LD      0       14:49:07        Terminal        stopped

erhalten von ....Roaming....

auf die angegebene Datei setzen - der Trick hat nicht funktioniert

Entfernen Sie /portable aus der Verknüpfung und das Terminal wird gestartet

 
Portable garantiert keinen lokalen Start, es bedeutet nur "spuckt alles aus und versucht es lokal zu starten, vielleicht habt ihr Glück".
 
Können Sie eine Software, eine Online-Ressource oder ein MQL5-Skript für die Betrachtung von Märkten auf Zeitrahmen über MN vorschlagen? Ich brauche eine Analogie zu MT5: japanische Candlesticks und die Möglichkeit, die Balkendicke einzustellen.
 
2013.09.07 02:39:36 iTester-SL (GBPUSD,M1) 1 Objekt vom Typ CTestStat übrig
2013.09.07 02:39:36 iTester-SL (GBPUSD,M1) 1 nicht gelöschte Objekte übrig

Speicherleck // Oder Compiler-Fehler.

Das Objekt wurde als statische globale Variable deklariert. (!) Das heißt, sie ist überhaupt nicht dynamisch.

Das Problem trat auf, nachdem der Teil des Codes, der diese Variable verwendet, in eine .mqh-Datei verschoben und in dieser Datei als extern deklariert wurde (vorher wurde kein Leck entdeckt):

extern CTestStat      Stat;

Das Programm funktioniert einwandfrei.

// Ich habe das Problem vermieden, indem ich das Objekt als dynamisch deklariert habe. Jetzt erstelle ich sie in OnInit() und lösche sie in OnDeinit(), und die Leckage (Leckagemeldungen) hat aufgehört.

 
ARTIFEX:

Guten Tag,

Ich verwende für NormalizeDouble Lose.

Allerdings werden nicht alle Zahlen auf zwei Dezimalstellen gerundet.

Was ist das Problem? / Lösung?

NormalizeDouble (0.07000000000000001,2) / / gibt immer noch +0.07000000000000001 statt der erwarteten 0.07 aus

Vielen Dank im Voraus.

Sie stammt aus einer Gleitkommadarstellung.
Число с плавающей запятой — Википедия
  • ru.wikipedia.org
Число с плавающей запятой (или число с плавающей точкой) — форма представления действительных чисел, в которой число хранится в форме мантиссы и показателя степени. При этом число с плавающей запятой имеет фиксированную относительную точность и изменяющуюся абсолютную. Используемое наиболее часто представление утверждено в стандарте IEEE 754...
 
x100intraday:
Können Sie eine Software, eine Online-Ressource oder ein MQL5-Skript für die Betrachtung von Märkten auf Zeitrahmen über MN vorschlagen? Ich brauche eine Analogie zu MT5: Japanische Candlesticks und die Möglichkeit, die Balkendicke einzustellen.
Sie sehen. Das Fehlen höherer Zeitrahmen ist für mich unwillkürlich gleichbedeutend mit dem Verdacht: "Die Entwickler verheimlichen mir etwas... "Ist das nicht auch bei jemand anderem so?
Grund der Beschwerde: