Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 1109

 
Vitaly Muzichenko:

Allora non otterrò un numero frazionario.

Probabilmente hai bisogno di qualcosa del genere:

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

 
Artyom Trishkin:

typename(TralingStop)=="double" ?

Non esattamente, se hai inserito "input" nei parametri di input, per esempio 15 o 15.0, allora visualizza solo 15 nel campo di input, cioè un numero intero. Se avete inserito 12.3 nei parametri di input, visualizzate 12.3 nel campo di input

 
Vitaly Muzichenko:

Non esattamente, se hai inserito "input" nei parametri di input, per esempio 15 o 15.0, allora visualizza solo 15 nel campo di input, cioè un numero intero. Se hai inserito 12.3 nei parametri di input, visualizza 12.3 nel campo di input.

Allora si tratta di determinare il numero di cifre decimali di qualsiasi numero. C'era un topic come questo da qualche parte - è stato discusso lì.

 
Artyom Trishkin:

Allora si tratta di determinare il numero di cifre decimali di qualsiasi numero. C'era un topic come questo da qualche parte - è stato discusso lì.

Penso che ce ne fosse uno, ma non l'ho trovato, così l'ho scritto qui (

 
Vitaly Muzichenko:

Non esattamente, se hai inserito "input" nei parametri di input, per esempio 15 o 15.0, allora visualizza solo 15 nel campo di input, cioè un intero. Se hai inserito 12.3 nei parametri di input, allora il campo di input dovrebbe visualizzare 12.3.

Sperimentate con uno script come questo:

#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


sembra che la settima posizione decimale a volte sia sbagliata

 
Vitaly Muzichenko:

Sembra che lo sia stato, ma non sono riuscito a trovarlo, così ho scritto qui (

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

sperimentare con uno script come questo:

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


Penso che la settima posizione decimale sia sbagliata a volte

Artyom Trishkin:

Grazie a tutti, lo proverò!

 
Come posso registrare informazioni su una posizione aperta (lotto, tipo) in modo che possa essere letta da un EA in un altro terminale MT5?
 
Ragazzi, potete spiegare questa domanda, se c'è l'ottimizzazione sugli agenti remoti e EA scrive i dati in un file, allora capisco che non riceverò questi dati, perché solo i miei agenti locali sono nella cartella tester, e non ci sono quelli remoti...
O sto cercando nel posto sbagliato?
se è così, c'è un modo per implementare la possibilità di ottenere file da agenti remoti?
 
Vitaly Muzichenko:

Penso che ce ne fosse uno, ma non l'ho trovato, così l'ho postato qui (

È così che viene descritto nella documentazione. In fmod si mette il divisore 1 e si ottiene la parte frazionaria del numero o 0. Non vi interessa quante cifre decimali sono inserite nel campo o nella variabile di input.

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