Fehler, Irrtümer, Fragen - Seite 2339

 
pavlick_:

Kompilieren schlägt fehl, Fehler:
a' - zu komplex, vereinfachen Sie das Makro temp.mq5 24 10
s' - Strukturmitglied undefiniert temp.mq5 24 10
...

D.h. der Präprozessor scheint zu versuchen, a.m rekursiv zu erweitern

Zurück zum Thema Hintergrundbeleuchtung

#define a       s.a

Wenn .a nicht hervorgehoben ist - dann betrachtet der Compiler es nicht als Makro. Zugleich ist es ein Fehler. Es stellt sich heraus, Hervorhebung durch sich selbst ... und die eigentliche Kompilierung durch sich selbst, während sie in den folgenden Beispielen synchron arbeiten sollten:

#define b       b.x

void OnStart()
{
        int b = 1;
#define b   b + 2
        Print( b ); //Error: 'b' - too complex, simplify the macro
}
Das ist an sich schon falsch (denn in C++ wird es ohne Fehler kompiliert, Ergebnis: 3), aber zumindest ist es synchron (Illuminator und Compiler werden von derselben Logik geleitet)
 
fxsaber:

Mit echten Daten funktioniert es bei mir auch nicht.

Ich habe einen Test-EA erstellt:

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
input int BreakTick = 5;
int OnInit()
  {
   count = 0;
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
  }
//+------------------------------------------------------------------+
static int count = 0;
void OnTick()
  {
   if(count++>5) DebugBreak();
   Print("count = ",count," , Ask = ",Ask);
   
  }
//+------------------------------------------------------------------+

DebugBreak() funktioniert nicht, wenn Sie im MetaEditor die Schaltfläche "Start profiling on real data" drücken, aber es funktioniert, wenn Sie "Start/continue debugging on real data F5" drücken

Im Testprogramm funktioniert überhaupt nichts - ich kann die Programmausführung nicht stoppen und nicht zum Debugger oder Protokoll wechseln:

2018.12.05 14:46:19.413 tst EURUSD,H1: count = 6 , Ask = 1.13397

2018.12.05 14:46:18.740 tst EURUSD,H1: count = 5 , Ask = 1.13396

2018.12.05 14:46:09.004 tst EURUSD,H1: count = 4 , Ask = 1.13396

2018.12.05 14:46:03.079 tst EURUSD,H1: count = 3 , Ask = 1.13395

2018.12.05 14:46:02.830 tst EURUSD,H1: count = 2 , Ask = 1.13395

2018.12.05 14:46:02.595 tst EURUSD,H1: count = 1 , Ask = 1.13394

2018.12.05 14:45:53.889 tst EURUSD,H1: initialisiert

2018.12.05 14:45:53.869 tst EURUSD,H1 inputs: BreakTick=5;

2018.12.05 14:45:52.131 expert tst EURUSD,H1: erfolgreich geladen

2018.12.05 14:45:45.899 Expert tst EURUSD,H1: entfernt

2018.12.05 14:45:45.814 tst EURUSD,H1: uninit Grund 1

2018.12.05 14:45:44.510 tst EURUSD,H1: count = 14 , Ask = 1.13393

2018.12.05 14:45:44.177 tst EURUSD,H1: count = 13 , Ask = 1.13392

2018.12.05 14:45:42.966 tst EURUSD,H1: count = 12 , Ask = 1.13393

2018.12.05 14:45:42.152 tst EURUSD,H1: count = 11 , Ask = 1.13393

2018.12.05 14:45:41.996 tst EURUSD,H1: count = 10 , Ask = 1.13392

2018.12.05 14:45:39.544 tst EURUSD,H1: count = 9 , Ask = 1.13393

2018.12.05 14:45:39.345 tst EURUSD,H1: count = 8 , Ask = 1.13392

2018.12.05 14:45:35.605 tst EURUSD,H1: count = 7 , Ask = 1.13394

2018.12.05 14:45:32.049 tst EURUSD,H1: count = 6 , Ask = 1.13394

2018.12.05 14:45:29.085 tst EURUSD,H1: count = 5 , Ask = 1.13393

2018.12.05 14:45:27.735 tst EURUSD,H1: count = 4 , Ask = 1.13393

2018.12.05 14:45:27.580 tst EURUSD,H1: count = 3 , Ask = 1.13393

2018.12.05 14:45:26.212 tst EURUSD,H1: count = 2 , Ask = 1.13393

2018.12.05 14:45:25.853 tst EURUSD,H1: count = 1 , Ask = 1.13392

2018.12.05 14:45:25.684 tst EURUSD,H1: initialisiert

2018.12.05 14:45:25.664 tst EURUSD,H1 inputs: BreakTick=5;

2018.12.05 14:45:24.163 expert tst EURUSD,H1: erfolgreich geladen

Zuerst gab es einen Lauf aus dem Meta-Editor über "Run profiling on real data" - ich habe den Experten von Hand gelöscht, erst dann bin ich in den Editor gekommen, dann einen Lauf über F5 - hier hat alles funktioniert, aber es ist verwirrend, dass Print("count = ",count," , Ask = ",Ask); der nach dem Breakpoint ausgeführt wurde
 
Igor Makanu:

einen Test-EA erstellt:

DebugBreak() funktioniert nicht, wenn Sie im MetaEditor die Schaltfläche "Start profiling on real data" drücken, aber es funktioniert, wenn Sie "Start/continue debugging on real data F5" drücken

Im Tester funktioniert überhaupt nichts - ich kann die Programmausführung nicht stoppen und nicht zum Debugger oder zum Protokoll wechseln:

Zuerst gab es einen Lauf aus dem Meta-Editor über "Run profiling on real data" - löschte den EA von Hand, kam erst dann in den Editor, dann ein Lauf über F5 - hier funktionierte alles

Vielen Dank, es funktioniert. Etwas, das erschreckend oft anfing, fehlerhafte Aussagen zu posten...

 
fxsaber:

Vielen Dank, es funktioniert wirklich. Etwas, das erschreckend häufig vorkommt, um falsche Aussagen zu posten...

Mein Großvater sagte immer: Nur wer nichts tut, ist nicht im Unrecht!

;)

mein Beispiel sollte so funktionieren, oder besser gesagt, es sollte nach 5 Ticks aufhören:

void OnTick()
  {
   if(++count>5) DebugBreak();
   Print("count = ",count," , Ask = ",Ask);
  }

Protokoll:

2018.12.05 15:27:06.815 tst EURUSD,H1: count = 5 , Ask = 1.13563

2018.12.05 15:27:06.488 tst EURUSD,H1: count = 4 , Ask = 1.13563

2018.12.05 15:27:05.469 tst EURUSD,H1: count = 3 , Ask = 1.13563

2018.12.05 15:27:04.795 tst EURUSD,H1: count = 2 , Ask = 1.13563

2018.12.05 15:27:04.288 tst EURUSD,H1: count = 1 , Ask = 1.13563

2018.12.05 15:27:03.057 tst EURUSD,H1: initialisiert

2018.12.05 15:27:03.024 tst EURUSD,H1 inputs: BreakTick=5;

2018.12.05 15:27:01.376 expert tst EURUSD,H1: erfolgreich geladen

 

Ich muss testen, ob die Synchronisierung der virtuellen Handelsumgebung mit der realen korrekt funktioniert.

Dazu muss ich einen Test-EA im Visualizer laufen lassen und von Hand eingreifen - Positionen platzieren, schwebende Aufträge löschen, usw.


Es ist klar, dass MT5 aufgrund verschiedener Einschränkungen (nur Tasten können gedrückt werden und Indikatoren können nicht gehandelt werden) dafür absolut nicht geeignet ist.

Ich suche einen Indikator (keinen Expert Advisor oder EA, der sich leicht in einen Indikator umwandeln lässt) für MT4, der im Visualizer-Fenster platziert werden kann und mit dem man "herumspielen" kann, indem man von Hand Handelsaufträge an den Tester sendet.


Wenn Sie einen solchen EX4-Indikator haben, senden Sie ihn bitte als private Nachricht an mich. Auf dem Markt gibt es viele von ihnen, aber sie sind alle Berater.

SZY Auf der Suche nach so, konnte der Indikator nicht finden, sondern fand eine Bibel. Ich werde mich darum kümmern, danke.

 
fxsaber:

Ich muss testen, ob die Synchronisierung der virtuellen Handelsumgebung mit der realen korrekt funktioniert.

Dazu muss ich einen Test-EA im Visualizer laufen lassen und von Hand eingreifen - Positionen platzieren, schwebende Aufträge löschen, usw.


Es ist klar, dass MT5 aufgrund verschiedener Einschränkungen (nur Tasten werden gedrückt und Indikatoren können nicht gehandelt werden) dafür absolut nicht geeignet ist.

Ich suche einen Indikator (keinen Expert Advisor oder EA, der sich leicht in einen Indikator umwandeln lässt) für MT4, der im Visualizer-Fenster platziert werden kann und mit dem man "herumspielen" kann, indem man von Hand Handelsaufträge an den Tester sendet.


Wenn Sie einen solchen EX4-Indikator haben, senden Sie ihn bitte als private Nachricht an mich. Auf dem Markt gibt es viele von ihnen, aber sie sind alle Berater.

SZY suchte also, konnte den Indikator nicht finden, fand aber eine Bibel. Ich werde es nachschlagen, danke.

Die Verwendung von Handelsfunktionen in Indikatoren ist untersagt. Das heißt, sie können nicht handeln.

 
Andrey Barinov:

Die Indikatoren dürfen keine Handelsfunktionen verwenden. Das heißt, sie können nicht handeln.

Auch in MT4?

 
fxsaber:

Auch in MT4?

Leider ist der Aufruf von Handelsfunktionen in jedem Indikator verboten.
Haben Sie meine Bibliothek ausprobiert, was haben Sie gefunden?

 
Vladislav Andruschenko:
Leider ist in jedem Indikator der Aufruf von Handelsfunktionen nicht erlaubt.
Haben Sie meine Bibliothek ausprobiert, was haben Sie gefunden?

Ich habe mich noch nicht damit befasst. Die Variante mit der Bibliothek sollte funktionieren - ich werde die Bibliothek in den Expert Advisor schreiben, mit dem ich mich herumschlagen werde, um ein Panel für den manuellen Handel zu haben.


Ist es möglich, ein unendliches Handelsskript parallel zu einem Test Expert Advisor im MT4 Visualizer anzuhängen (auszuführen)?

 
fxsaber:

Ich habe mich noch nicht damit befasst. Die Bibliotheksoption sollte funktionieren - ich werde eine Bibliothek in den EA schreiben, mit dem ich mich herumschlagen werde, um ein Panel für den manuellen Handel zu haben.

Ja. Bei Gelegenheit werde ich die Biblah auf die neueste Version aktualisieren.