Fehler, Irrtümer, Fragen - Seite 1655

 
coderex:
vielleicht ist es der Strukturkonstruktor? er ist auf jeden Fall da
Warum so unsicher? Natürlich ist es das :)
 
Andrey Barinov:
Warum so unsicher? Natürlich ist es das :)
Ich bin mir nicht sicher, weil ich nicht weiß, was ich erwarten soll. Ich habe das Terminal auf 1395 aktualisiert und weiß jetzt nicht, wie ich auf 1375 zurückgehen kann, weil der Roboter nicht mehr tut, was er tun soll...
 
Andrey Barinov:
Warum so unsicher? Natürlich ist es das :)
OK, wo ist der Destruktor?
 
Vladimir Pastushak:
OK, wo ist der Destruktor?
Und vor allem: Wo ist alles andere?
 

Der Offline-Tester kehrt nach dem Drücken von "Start" nicht in seinen Ausgangszustand zurück - die "Stop"-Taste leuchtet permanent. Dies geschieht, wenn das Prüfintervall die verfügbare Historie überschreitet.

2016.08.28 10:19:48     Core 1  RTS-9.16: read container failed
2016.08.28 10:19:48     Core 1  RTS-9.16: ticks synchronization started
2016.08.28 10:19:48     Core 1  RTS-9.16: history synchronized from 2015.06.22 to 2016.08.25
2016.08.28 10:19:48     Core 1  RTS-9.16: load 2651 bytes of history data to synchronize in 0:00:00.016
2016.08.28 10:19:48     Core 1  RTS-9.16: symbol synchronized, 3224 bytes of symbol info received
2016.08.28 10:19:48     Core 1  RTS-9.16: symbol to be synchronized
....
2016.08.28 10:19:41     Tester  RTS-9.16,M1 (BCS-MetaTrader5): testing of Experts\Test.ex5 from 2016.08.01 00:00 to 2016.08.28 00:00

 
Erklären Sie bitte, warum Sie nicht die Konstruktion verwenden können, die im Gesetzbuch steht? Und wie zu ändern (anscheinend, eine neue Art von Zeigern für MQL), um ein solches Konstrukt Arbeit zu machen? Und wird sie sich verlangsamen?
void f1( int i1, int i2, int i3, int i4, int i5 ) {}
void f2( int i1, int i2, int i3, int i4, int i5 ) {}

void OnStart()
{  
  bool Condition = true;
  
//  (Condition) ? f1(1, 2, 3, 4, 5) : f2(1, 2, 3, 4, 5); // 'f1', 'f2' - expression of 'void' type is illegal

  if (Condition)
    f1(1, 2, 3, 4, 5);
  else
    f2(1, 2, 3, 4, 5);
  
  (Condition ? f1 : f2)(1, 2, 3, 4, 5); // Почему так нельзя? Как сделать, чтобы можно было?
}
 
fxsaber:
Erklären Sie bitte, warum Sie nicht die Konstruktion verwenden können, die im Gesetzbuch steht? Und wie zu ändern (anscheinend, eine neue Art von Zeigern für MQL), um ein solches Konstrukt Arbeit zu machen? Und wird es zu Verzögerungen kommen?

Versuchen Sie dies

int b = (Condition) ? f1(1, 2, 3, 4, 5) : f2(1, 2, 3, 4, 5);
 

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Wanzen, Wanzen, Fragen

A100, 2016.08.25 14:49

Fehler beim Ausführen

In einer komplexeren Version, die wie folgt wiedergegeben wird: EX5 loading failed

In Build 1398 bleibt der Fehler "EX5-Laden fehlgeschlagen" bestehen (offenbar nicht im Zusammenhang mit diesem Beispiel)

//Script1.mq5
typedef void (*fn)();
#import "Script2.ex5"
        void g( fn );
#import "Script3.ex5"
        void h();
#import
void OnStart() { g( h ); }
//Script2.mq5
#property library
typedef void (*fn)();
void g( fn f ) export { f(); }
//Script3.mq5
#property library
void h() export {}
 
Vladimir Pastushak:
Verwenden Sie selbst Storage?

Ich antworte in vier Tagen. Aber wie man so schön sagt, besser spät als nie.

Selten, aber ich benutze den Tresor. Hauptsächlich, um meine Arbeit vor Verlust zu bewahren. Ich übertrage die Daten auch von Computer zu Computer, und zwar durch Speicherung. Ich habe früher Yandex-Disk verwendet. Aber um dies zu übertragen, sollten viele Manipulationen vorgenommen werden.

Auf dem ersten Computer öffnen Sie Yandex, wählen die Datei aus und laden sie hoch.

Auf dem zweiten Computer, der Empfänger: Yad öffnen, eine Datei auswählen, herunterladen, einen neuen Code im Editor erstellen, den heruntergeladenen Code kopieren und kompilieren.

Und es gibt keine zusätzliche Verwirrung mit den Versionen, die von JD gehostet werden.

Ich habe folgende Frage: Die Speicherung funktioniert. Verschiedene Computer werden verbunden, der Code wird übertragen. Aber ich kann sie von meinem Konto aus nicht sehen. Es gibt keine Schaltfläche "Vorschau". Im Ordner Projekte befinden sich Dateien.

 

Hallo, ich verwende die Funktion ChartSetInteger (MT5 1395 build), um die Höhe des Indikatorfensters zu ändern:

 if(!ChartSetInteger(0,CHART_HEIGHT_IN_PIXELS, 1, subWindowPixels))
    {
        Print(__FUNCTION__+", Error Code = ",GetLastError());
        return;
    } 
Nachdem die Größe des Fensters auf diese Weise geändert wurde, ist das Anzeigefenster gesperrt und kann nicht manuell geändert werden.
Im nächsten Thread https://www.mql5.com/en/forum/59754, die Lösung dieses Problems für MT4 war die Einstellung Indikator Fenstergröße auf 0 Pixel, aber auf MT5 diese Methode funktioniert nicht. Bitte teilen Sie mir mit, ob Sie dieses Problem irgendwie lösen können? Ich danke Ihnen.