Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Vor-/Nachteile bei MarketInfo (http://www.expert-advisor.com/forum/showthread.php?t=6066)

AVT 28.03.18 18:03

Vor-/Nachteile bei MarketInfo
 
Man kann ja Marktinformationen auf verschiedene Arten holen. Gibt es eigentlich irgendeinen Unterschied, auf welche Art ich das mache? Beispiel:
Code:

  int Digits1=Digits();
  int Digits2=(int)MarketInfo(NULL,MODE_DIGITS);
  int Digits3=_Digits;

Liefert ja alles dasselbe, aber gibt es irgendeinen Grund, warum man eine bestimmte Variante bevorzugen sollte? Oder ist das reine "Geschmackssache". Danke AVT

traderdoc 28.03.18 18:41

Nur zur Vollständigkeit:

Code:

  int Digits1 = Digits();
  int Digits2 = (int)MarketInfo(NULL, MODE_DIGITS);
  int Digits3 = _Digits;
  int Digits4 = Digits;

traderdoc

AVT 28.03.18 21:23

Zitat:

Zitat von traderdoc (Beitrag 40824)
Nur zur Vollständigkeit:
Code:

  int Digits4 = Digits;
traderdoc

Ups, habe ich doch tatsächlich eines übersehen :rolleyes:. Worum es mir dabei ging war die Frage, ob zum Beispiel _Digits schneller/effektiver ist als Digits(). Mein Gedanke dabei war, daß Digits() ja der Aufruf einer Funktion ist und diese Funktion ausgeführt werden muß bevor sie das Ergebnis liefert. _Digits ist aber eine Variable, die den Wert schon hat, ich ihn also direkt benutzen kann. Das entspricht in etwa dem Hinweis von new user, der mich schon mal darauf hingewiesen hatte, daß ein Wert, der sich nicht ändert besser in einer Variablen aufgehoben ist. Und der Wert von Digits ändert sich ja nicht. Oder bin ich da auf dem Holzweg?
AVT

traderdoc 28.03.18 22:28

@AVT: "daß ein Wert, der sich nicht ändert besser in einer Variablen"

Wenn sich der Wert nicht ändert, dann wäre er besser in einer Konstanten aufgehoben, z.B. über #define deklariert.

traderdoc

AVT 29.03.18 11:03

Zitat:

Zitat von traderdoc (Beitrag 40828)
Wenn sich der Wert nicht ändert, dann wäre er besser in einer Konstanten aufgehoben, z.B. über #define deklariert.
traderdoc

Mensch, das ist ein Superhinweis! Das funktioniert!
Code:

#property strict
#define MyDigits _Digits

void OnStart()
{ Print("MyDigits=",MyDigits); }

Vielen, vielen Dank! AVT


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:25 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum