Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1109

 
Vitaly Muzichenko:

Dann erhalte ich keine gebrochene Zahl.

So etwas brauchen Sie wahrscheinlich:

typename(TralingStop)=="double" ? ...

 
Artyom Trishkin:

typenname(TralingStop)=="double" ?

Nicht ganz, wenn Sie in den Eingabeparametern "input" eingeben, zum Beispiel 15 oder 15.0, dann wird im Eingabefeld nur 15 angezeigt, also eine ganze Zahl. Wenn Sie in den Eingabeparametern 12,3 eingegeben haben, erscheint im Eingabefeld 12,3

 
Vitaly Muzichenko:

Nicht ganz, wenn Sie in den Eingabeparametern "input" eingeben, zum Beispiel 15 oder 15.0, dann wird im Eingabefeld nur 15 angezeigt, also eine ganze Zahl. Wenn Sie bei den Eingabeparametern 12,3 eingegeben haben, wird im Eingabefeld 12,3 angezeigt.

Dann geht es darum, die Anzahl der Dezimalstellen einer beliebigen Zahl zu bestimmen. Es gab irgendwo ein ähnliches Thema - es wurde dort diskutiert.

 
Artyom Trishkin:

Dann geht es darum, die Anzahl der Dezimalstellen einer beliebigen Zahl zu bestimmen. Es gab irgendwo ein ähnliches Thema - es wurde dort diskutiert.

Ich glaube, es gab eine, aber ich konnte sie nicht finden, also habe ich sie hier geschrieben (

 
Vitaly Muzichenko:

Nicht ganz, wenn Sie in den Eingabeparametern "input" eingeben, zum Beispiel 15 oder 15.0, dann wird im Eingabefeld nur 15 angezeigt, also eine ganze Zahl. Wenn Sie bei den Eingabeparametern 12,3 eingegeben haben, sollte im Eingabefeld 12,3 angezeigt werden.

Experimentieren Sie mit einem Skript wie diesem:

#property script_show_inputs
input double inp1 = 15.0;
input double inp2 = 12.3;
//+------------------------------------------------------------------+
void OnStart()
  {
   int dig1 = GetDigitsInDouble(inp1);
   int dig2 = GetDigitsInDouble(inp2);
   printf("inp1 = %f --> %s",inp1,DoubleToString(inp1,dig1));
   printf("inp2 = %f --> %s",inp2,DoubleToString(inp2,dig2));
  }
//_______________________________________________________________________
int      GetDigitsInDouble(double doublevalue)
  {
   long l=long(doublevalue/0.0000001);int result=0,i=10000000; while(result<7 && l%i>0)
     {i/=10; result++;}return result;
  }

2019.08.06 22:40:44.668 tst1 (EURUSD,H1) inp1 = 15.000000 --> 15

2019.08.06 22:40:44.668 tst1 (EURUSD,H1) inp2 = 12.300000 --> 12.3


es scheint, dass die 7. Dezimalstelle manchmal falsch ist

 
Vitaly Muzichenko:

Das scheint der Fall gewesen zu sein, aber ich konnte ihn nicht finden, also habe ich hier geschrieben (

Получаем количество десятичных знаков после запятой любых чисел (не только котировок) в обход Digits() на MQL4 и MQL5
Получаем количество десятичных знаков после запятой любых чисел (не только котировок) в обход Digits() на MQL4 и MQL5
  • 2018.11.03
  • www.mql5.com
Думаю не у одного меня была редкая ситуация когда нужно было получить количество десятичных знаков после запятой, а функция Digits() работает тольк...
 
Igor Makanu:

experimentieren Sie mit einem Skript wie diesem:

2019.08.06 22:40:44.668 tst1 (EURUSD,H1) inp1 = 15.000000 --> 15

2019.08.06 22:40:44.668 tst1 (EURUSD,H1) inp2 = 12.300000 --> 12.3


Ich glaube, die 7. Dezimalstelle ist manchmal falsch.

Artyom Trishkin:

Vielen Dank an alle, ich werde es versuchen!

 
Wie kann ich Informationen über eine offene Position (Lot, Typ) aufzeichnen, damit sie von einem EA in einem anderen MT5-Terminal gelesen werden können?
 
Jungs, können Sie diese Frage erklären, wenn es eine Optimierung auf Remote-Agenten und EA schreibt Daten in eine Datei, dann verstehe ich, dass ich diese Daten nicht erhalten, weil nur meine lokalen Agenten in der Tester-Ordner sind, und es gibt keine Remote diejenigen ...
Oder suche ich an der falschen Stelle?
Wenn ja, gibt es eine Möglichkeit, die Möglichkeit, Dateien von entfernten Agenten zu erhalten, zu implementieren?
 
Vitaly Muzichenko:

Ich glaube, es gab eine, aber ich konnte sie nicht finden, also habe ich sie hier gepostet (

So ist es in der Dokumentation beschrieben. In fmod setzt man den Divisor 1 ein und erhält den Bruchteil der Zahl oder 0. Es ist egal, wie viele Dezimalstellen in das Feld oder die Eingabevariable eingegeben werden.

Документация по MQL5: Математические функции / MathMod
Документация по MQL5: Математические функции / MathMod
  • www.mql5.com
Функция MathMod рассчитывает вещественный остаток f от val / y таким образом, что val = i * y + f , где i является целым числом, f имеет тот же знак, что и val, и абсолютное значение f меньше, чем абсолютное значение y.