Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1021

 
kashi_ann:

Buona sera,


Da qualche parte mi sono imbattuto in un articolo dove è stato scritto/decifrato tutto il codice di un EA "test". Ho dimenticato di salvarlo e non riesco a trovarlo. Forse qualcuno lo sa, ha visto questo articolo?

Praticamente ogni articolo ha un codice EA di prova in esso. Come si può sapere di cosa stai chiedendo?

 
ToNy_Nazarov:

Buon pomeriggio!
È possibile per un EA per MT4 lavorare con prezzi con 5 cifre decimali? Se sì, come devo fare? Sto lavorando tramite Forex Club.

La funzione Digits restituisce "5", ma il prezzo Bid restituisce "1,1094" invece di "1,10943", cioè senza il quinto segno.
Come posso far funzionare il prezzo pieno con la quinta cifra decimale?

Inoltre, la funzione Point emette un valore di 0 invece di 0,00001. Perché succede questo e come posso ottenere il valore corretto?

Certo che si può. Per impostazione predefinita.

Nessun codice, nessuna risposta.

 
Come si toglie una sola cifra da un numero? Diciamo che c'è un numero 1,2568. Come faccio a prendere l'ultima cifra "8"? Posso usare DoubleToStr() per convertirla in una stringa e poi usare StringSubstr() per ottenere l'ultimo numero e convertirlo in int. Ci sono altre opzioni?
 
Yevhenii Levchenko:
Come si toglie una sola cifra da un numero? Diciamo che c'è un numero 1,2568. Come faccio a prendere l'ultima cifra "8"? Posso usare DoubleToStr() per convertirla in una stringa e poi StringSubstr() per ottenere l'ultimo numero e convertirlo in int. Ci sono altre opzioni?

Ci sono sempre altre opzioni.

Se è un valore normalizzato, deve essere moltiplicato, in questo caso per 10000 o diviso per 0,0001 per ottenere l'intero 12568 e prendere ilresto della divisione per 10.

12568%10=8

 
Alexey Viktorov:

Ci sono sempre altre opzioni.

Se è un valore normalizzato, deve essere moltiplicato, in questo caso per 10000 o diviso per 0,0001 per ottenere l'intero 12568 e prendere il resto della divisione per 10.

12568%10=8

Grande opzione! Grazie Victor!
 
Yevhenii Levchenko:
Grande opzione! Grazie, Victor!

Quando ero più giovane il mio nome era Alexey. Ma mi piace anche Victor:)))

 
Artyom Trishkin:

Certo che si può. Per impostazione predefinita.

Nessun codice, nessuna risposta.


//--------------------------------------------------------------------
int start()
{
Comment("Bid = ", Bid,
"\nAsk = ", Ask,
"\nPoint = ", _Point,
"\nDigits = ", Digits);
ritorno(0);
}
//--------------------------------------------------------------------
File:
 
Alexey Viktorov:

Quando ero più giovane il mio nome era Alexey. Ma mi piace anche Victor :)))

Ops, qualcosa è andato storto ))))

Scusa, Alexei)))

 
ToNy_Nazarov:

//--------------------------------------------------------------------
int start()
{
Comment("Bid = ", Bid,
"\nAsk = ", Ask,
"\nPoint = ", _Point,
"\nDigits = ", Digits);
ritorno(0);
}
//--------------------------------------------------------------------

La funzione DoubleToString() è usata per stampare numeri reali

Документация по MQL5: Преобразование данных / DoubleToString
Документация по MQL5: Преобразование данных / DoubleToString
  • www.mql5.com
[in]  Формат точности. Если значение digits лежит в диапазоне от 0 до 16, то будет получено строковое представление числа с указанным количество знаков после запятой. Если значение digits лежит в диапазоне от -1 до -16, то...
 
Artyom Trishkin:

La funzione DoubleToString() è usata per stampare numeri reali

La questione è completamente risolta, grazie per l'aiuto!

//--------------------------------------------------------------------
int start()
{
doppio delta = Ask-Bid;
double delta2 = 1.10059-_Point;
Comment("Bid = ", DoubleToString(Bid,5),
"\nAsk = ", DoubleToString(Ask,5),
"\nDelta = ", DoubleToString(delta,5),
"\nDelta2 = ", DoubleToString(delta2,5),
"\nPoint = ", DoubleToString(_Point,5),
"\nDigits = ", Digits);
ritorno(0);
}
//--------------------------------------------------------------------



File: