[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non potrei andare da nessuna parte senza di te - 2. - pagina 79

 
albion:
Chiedo a tutti gli esperti di esaminare l'argomento https://forum.mql4.com/ru/38745#429784.

Per favore, iniziate a scrivere il vostro codice e discutete tutto ciò che non capite in questo thread, e non dimenticate di mostrare la parte del codice dove incontrate delle difficoltà
 
drknn:

Qualche idea?
 
NameLess:


point_low=NormalizeDouble(iBands(NULL,0,50,2,0,PRICE_CLOSE,MODE_LOWER,0),Digits);

wot)


E a cosa corrispondono le cifre? Create un nuovo script in cui scrivete solo una riga:

Print("Дигитс данной валютной пары нормализует до ",Digits," знаков после запятой");
 
drknn:


A cosa corrispondono le cifre? Create un nuovo script in cui scrivete solo una riga:


già controllato, è corretto (è una costante terminale).
 
drknn:


A cosa corrispondono le cifre? Create un nuovo script in cui scrivete solo una riga:


Sto cercando di trovare il codice sorgente di iMA, forse la conversione non funziona correttamente, perché tutti i calcoli provengono da ima, non ho più idee((
 
NameLess:

già controllato, è corretto (è una costante terminale).

Non hai risposto alla mia domanda. Quali sono le cifre di questa coppia di valute? E a proposito, che tipo di coppia di valute è e quante posizioni decimali ha e quanti pips per tick si muove?
 
drknn:

Non hai risposto alla mia domanda. A cosa corrispondono le cifre per questa coppia di valute. E a proposito, che tipo di coppia di valute è?

Digits è 5, è una costante e non può prendere nessun altro valore.
 
NameLess:

è uguale a 5, questa costante non può assumere un valore diverso. coppia eurobucks


Prova in un altro modo. Scrivi quanto segue sulla prima riga della funzione Start:

string SMB=Symbol();
int DGS=MarketInfo(SMB,MODE_DIGITS);
Print("Дигитс = ",Digits,"  DGS = ",DGS);
string Val="";
Val = iBands(NULL,0,50,2,0,PRICE_CLOSE,MODE_LOWER,0);
double point_low=iBands(NULL,0,50,2,0,PRICE_CLOSE,MODE_LOWER,0);
Print("Val = ",Val,"  point_low до нормализации = ",point_low);
point_low = NormalizeDouble(point_low,5);
Print("point_low после нормализации = ",point_low);
 

Forse il valore lì finisce con uno zero e quest'ultimo zero viene semplicemente scartato nel processo di normalizzazione? Scartato perché la voce 0,1 è equivalente a 0,10 e lo zero è meglio scartato?

P.S.

Sapete, non avendo accesso al terminale e a quelle citazioni che usate, è problematico capire cos'è cosa - rimane solo una cosa: gli esperimenti.

 
drknn:


Prova in un altro modo. Scrivi quanto segue sulla prima riga della funzione Start


Grazie! Farò un tentativo!