Fehler, Irrtümer, Fragen - Seite 2111

 
Vladimir Pastushak:

Alles innerhalb normaler Grenzen...


Es gab einmal etwas Ähnliches, als ein Indikator Daten aus einer Datei in ein Array las, aber ich kann mich jetzt nicht mehr erinnern...

 

Erstellt einen Auftrag, der auf

MQL5: Fehler
Unbearbeitet, Gestartet: 2018.01.24 16:17, #1940209

Terminalversion und Bitmodus

64 1755

Beschreibung des Problems

Indikator nicht entladen,

Ich installiere den Indikator, der Indikator funktioniert, ich entferne den Indikator, der Indikator wird entfernt und ist nicht in der Liste, aber er funktioniert und zeichnet Objekte, als ob er nicht entfernt worden wäre, er ist nicht in der Liste.

Wenn ich das Diagramm erneut öffne, funktioniert es, auch wenn das Diagramm ein anderes Symbol enthält.

Es funktioniert seit etwa 10 Minuten, keine Schleifen, alles ist im normalen Bereich, ich habe den Code beigefügt...
 

Ein Fehler bei der Kompilierung

#define \
    MACRO
Darüber hinaus wurde erwartet, dass Zeilenvorschübe in ALLEN Richtlinien funktionieren würden
 
Vladimir Pastushak:

Erstellt einen Auftrag, der auf

MQL5: Fehler
Unbearbeitet, Gestartet: 2018.01.24 16:17, #1940209

Terminalversion und Bitmodus

64 1755

Beschreibung des Problems

Indikator nicht entladen,

Ich installiere den Indikator, der Indikator funktioniert, ich entferne den Indikator, der Indikator wird entfernt und ist nicht in der Liste, aber er funktioniert und zeichnet Objekte, als ob er nicht entfernt worden wäre, er ist nicht in der Liste.

Wenn ich das Diagramm erneut öffne, funktioniert es, auch wenn das Diagramm eines anderen Instruments.

Es funktioniert seit etwa 10 Minuten, keine Schleifen, alles ist im normalen Bereich, ich habe den Code beigefügt...

Das gleiche Problem

 
Evgeny Belyaev:

Gleiches Problem


Rekursion?

 
Evgeny Belyaev:

Gleiches Problem


IndicatorRelease();

 

Fehler bei der Kompilierung

int  TerminalInfoInteger( 
   int  property_id      // идентификатор свойства 
   );

Anlage muss erstellt werden

Woher habe ich solche "Räume"? Davon gibt es hier eine ganze Menge https://www.mql5.com/ru/docs/check/terminalinfointeger. Ich habe das Fragment in Microsoft Edge mit meiner Maus kopiert

Документация по MQL5: Проверка состояния / TerminalInfoInteger
Документация по MQL5: Проверка состояния / TerminalInfoInteger
  • www.mql5.com
Проверка состояния / TerminalInfoInteger - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Dateien:
Error157.mq5  1 kb
 

Verwirrende Makro-Hervorhebung - kontextunabhängig

//вариант A
#ifdef   MACRO //1
#endif
#define  MACRO //2
#ifdef   MACRO //3
#endif
#undef   MACRO //4
#ifdef   MACRO //5
#endif

entweder immer vorhanden (Option B) oder immer abwesend (Option A)

//вариант B
#ifdef   MACRO //1
#endif
#define  MACRO //2
#ifdef   MACRO //3
#endif
//#undef  MACRO //4
#ifdef   MACRO //5
#endif
Es wurde erwartet, dass ein Makro, das in einer bestimmten Zeichenkette definiert ist, hervorgehoben wird, wenn es nicht definiert ist, wird es nicht hervorgehoben. Andernfalls ist nicht klar, was das Vorhandensein bzw. Fehlen der Hervorhebung bedeutet.
 

Hervorhebung von C2C++-Dateien in MetaEditor

https://www.mql5.com/ru/docs/basis/preprosessor/constant

Макрос __MQL5__  доступен при компиляции файла *.mq5, при компиляции *.mq4 доступен макрос __MQL4__.

Diese Makros (und auch __MQL__) sollten nicht verfügbar sein, wenn Dateien mit den Erweiterungen .c, cpp, .h hervorgehoben werden

//Test.h
#ifndef __MQL__
#define  MACRO
#endif
//Test.mq5
#include "Test.h"
#ifdef  MACRO //не подсвечивается... нормально
#endif
//Test.cpp
#include "Test.h"
#ifdef  MACRO //не подсвечивается... но этот .cpp файл не предназначен для компиляции в MetaEditor,
             //а компилируется в С\С++, где макрос __MQL__ не является предопределенным
             //в результате подсвечивается то что не должно и наоборот не подсвечивается что должно
#endif

Dies ist ein Fall (wie der vorherige), in dem eine falsche, irreführende Hervorhebung viel schlimmer ist als das Fehlen einer solchen.

Документация по MQL5: Основы языка / Препроцессор / Макроподстановка (#define)
Документация по MQL5: Основы языка / Препроцессор / Макроподстановка (#define)
  • www.mql5.com
Директива #define подставляет expression вместо всех последующих найденных вхождений identifier в исходном тексте. identifier заменяется только в том случае, если он представляет собой отдельный токен. identifier не заменяется, если он является частью комментария, частью строки, или частью другого более длинного идентификатора. expression...
 

Ich bin im Forum immer wieder auf Diskussionen von Anwendern gestoßen, die sich über das Fehlen eines vordefinierten Makros wie _WIN64 in MetaEditor beschwert haben. Die Antwort der Verwaltung lautete, dass kein Bedarf besteht, da MetaEditor gleichzeitig universellen 32-64-Bit-Code erzeugt.

Gleichzeitig verwenden viele Leute die https://www.mql5.com/ru/forum/225498/page2#comment_6401835 Ausrichtung, indem sie die Felder an die Struktur anhängen

Und in der Tat, wenn Sie eine vorgefertigte .dll verwenden (die nicht mehr geändert werden kann), können Sie auf eine zusätzliche Ausrichtung nicht verzichten. Aber in x86 und x64 kann dieser Zusatz anders aussehen, was bedeutet, dass das _WIN64-Analog noch benötigt wird, weil die Struktur in der Phase der Kompilierung der .mq5-Datei definiert wird, in der TerminalInfoInteger( TERMINAL_X64 ) nicht funktioniert

//Test.mq5
#ifdef _WIN64
#define  ALIGN (8-2) //добавить к элементу структуры 6 байт
#else
#define  ALING (4-2) //добавить к элементу структуры 2 байта
#endif

Jetzt müssen wir zusätzliche Informationen im Auge behalten. Durch die Einsparung einer Kleinigkeit besteht das Risiko, einen schwer fassbaren Fehler zu erhalten

Передача структуры в dll C++
Передача структуры в dll C++
  • 2018.01.26
  • www.mql5.com
Пишу dll, которая будет выполнять логику, и собственно возник вопрос. Можно ли передавать в dll структуру данных? Т.е...