Fehler, Irrtümer, Fragen - Seite 1330

 

Warum werden beim Kompilieren des Indikators alle Einstellungen dieses Indikators, die sich in den Diagrammen befinden, auf die Standardwerte zurückgesetzt?

 
iZer0:

Guten Tag, können Sie bitte den Nouveau führen. Ich benutze MT5 nicht für den Handel, sondern als Quelle für einige "zufällige" Daten (und fragen Sie nicht einmal warum - nicht meine Laune). Ist es möglich, historische Daten zu erhalten, die in Ticks gemessen werden (ich benötige Geld- und Briefdaten mehrmals pro Sekunde). Was sollte ich tun? Ich weiß, dass MT5 beim Testen eines Indikators Daten ausgibt - wie kann man das nutzen?

Ich habe die Aufgabe, einen benutzerdefinierten Indikator zu schreiben, der aktuelle Ticks an einen bestimmten Dienst sendet (kein Problem). Ich habe nirgendwo gefunden, wie man historische Daten in Ticks, aber nicht in M1 erhält.

Mit dem Tester können Sie Intra-Bar-M1-Ticks erhalten. Sie werden durch das Terminal simuliert. Wie zufällig ist das? Ich weiß es nicht. Apropos MT4. Dies sollte auch für MT5 gelten.
OnTick()
{Print("Bid=",Bid);}

Auf der Registerkarte "Log" des Strategietesters sehen Sie den Kurswert und die Ankunftszeit.

Dateien:
2107.PNG  7 kb
 

MT4/845, Windows 7/64bit. Ich habe ein Skript erstellt:

#property strict
double value=1/2;
//---
void OnStart()
  {
   Print("value = ",DoubleToString(value));
  }

Sie wird in den Protokollen ausgedruckt:

2015.07.22 10:13:26.134 Test EURUSD,H1: Wert = 0.00000000

und es sollte 0,50000000 sein.

 
Sie sollten 1.0/2 oder 1/2.0 oder 1.0/2.0 schreiben, dann wird es wie erwartet sein.
 
Аноним:
Sie sollten 1,0/2 oder 1/2,0 oder 1,0/2,0 schreiben, dann wird es das sein, was erwartet wird.
Ja, Ihr Rat hat geholfen. Obwohl es scheint, dass es auch ohne .0 funktionieren sollte.
 

Warum hat methaquotes die Funktion zum Hochladen von Kursen vom Server des Händlers deaktiviert? Jetzt ist es nur noch möglich, aus Metaquotes hochzuladen.

Aber auch dies ist nicht möglich, da die Meldung besagt, dass es keine Anführungszeichen gibt.

Natürlich fehlt sie, denn warum haben die Metaquotes Zitate mit Suffixen?

Zum Beispiel werden Suffixe in Währungspaarnamen von fortfs, roboforex, eksness usw. verwendet.

 
Maxim Khrolenko:
Ja, Ihr Rat hat geholfen. Obwohl es auch ohne .0 zu funktionieren schien.
Implizite Umwandlung von double in int.
 

Anderes Ergebnis: dies ist ein fragwürdiges Ergebnis

#import "Test.ex5"
        void f( uint, uint );
#import
        void f( uint, int  )   { Print( __FUNCSIG__ ); }
void OnStart()
{
        uint a = 0;
        f( 1, a ); //вызывается f(uint,int) - что само по себе сомнительно
}
und das ist normal
        void f( uint, uint )    { Print( __FUNCSIG__ ); }
        void f( uint, int  )    { Print( __FUNCSIG__ ); }
void OnStart()
{
        uint a = 0;
        f( 1, a ); //вызывается f(uint,uint) - нормально
  
}
Welchen Unterschied macht das?
 
A100:
aber ansonsten ist es in Ordnung, was macht das für einen Unterschied?
Wenn ich es richtig verstehe, sollte der Compiler abstürzen und überhaupt nicht kompilieren. Da dort uint uint, dort uint int und int, uint an die Funktion übergeben werden, besteht jedoch Unsicherheit.
 
Аноним:
Wenn ich es richtig verstehe, sollte der Compiler abstürzen und überhaupt nicht kompilieren. Da es uint uint gibt, gibt es uint int, und int, wird uint in die Funktion übergeben, allerdings mit Unsicherheit.

https://www.mql5.com/ru/docs/basis/function/functionoverload

Zitat: "Die gefundene Funktion muss für mindestens ein Argument die beste Wahl unter den anderen sein, und gleichzeitig muss sie für die anderen Argumente genauso gut passen wie die anderen."

Was ist also die beste Wahl für den Aufruf von f(int,uint) hier?

Hinweis: Der Rest des Arguments ist in diesem Fall das erste

Документация по MQL5: Основы языка / Функции / Перегрузка функций
Документация по MQL5: Основы языка / Функции / Перегрузка функций
  • www.mql5.com
Основы языка / Функции / Перегрузка функций - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5