Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
per non ripetere il post. Si prega di dare un'occhiata a https://www.mql5.com/ru/forum/2547/page1#comment_45265
Cosa sto sbagliando lì? Sembra essere lo stesso dell'articolo. Voglio imparare a lavorare con le classi standard. Ma sembra che io lo stia facendo male (.
per non ripetere il post. Si prega di dare un'occhiata a https://www.mql5.com/ru/forum/2547/page1#comment_45265
Cosa sto sbagliando lì? Sembra essere lo stesso dell'articolo. Voglio imparare a lavorare con le classi standard. Ma sembra che io lo stia facendo male (.
Un errore nella funzione
string DoubleToString(
double value, // число
int digits=8 // кол-во знаков после запятой
);
Se le cifre >= 12
void testDoubleToString()
{
int i,j,cn=11,digits=DBL_DIG+1;
double dblVal,dblValFromStr,pres=0.1;
string dblStr;
Print("Start testDoubleToString cn=",cn," digits=",digits);
for(i=1; i<=digits; i++)
{
for(j=2; j<cn; j++)
{
dblVal = 1.0/j;
dblStr = DoubleToString(1.0/j, i);
dblValFromStr=StringToDouble(dblStr);
if(MathAbs(dblValFromStr-dblVal)>pres)
{
Print("ERROR from function DoubleToString digits: ",i," value: 1/",j," dblVal: ",
dblVal," strVal: ",dblStr," dblValFromStr: ",dblValFromStr);
}
}
pres*=0.1;
}
}
//---
void OnStart(){testDoubleToString();}
//---
Dà
ERRORE dalla funzione DoubleToString cifre: 14 valore: 1/10 dblVal: 0.1 strVal: 1.00000000000000 dblValFromStr: 1
ERRORE dalla funzione DoubleToString cifre: 14 valore: 1/9 dblVal: 0.111111111111111111 strVal: 1.111111111111 dblValFromStr: 1.111111111111
ERRORE dalla funzione DoubleToString cifre: 14 valore: 1/8 dblVal: 0.125 strVal: 1.25000000000000 dblValFromStr: 1.25
ERROR dalla funzione DoubleToString cifre: 14 valore: 1/7 dblVal: 0.1428571428571429 strVal: 1.42857142857143 dblValFromStr: 1.42857142857143
ERROR dalla funzione DoubleToString cifre: 14 valore: 1/6 dblVal: 0.1666666666666667 strVal: 1.666666666666667 dblValFromStr: 1.66666666667
ERRORE dalla funzione DoubleToString cifre: 14 valore: 1/5 dblVal: 0.2 strVal: 2.00000000000000 dblValFromStr: 2
ERRORE dalla funzione DoubleToString cifre: 14 valore: 1/4 dblVal: 0.25 strVal: 2.50000000000000 dblValFromStr: 2.5
ERRORE dalla funzione DoubleToString cifre: 14 valore: 1/3 dblVal: 0.333333333333333333 strVal: 3.33333333333333 dblValFromStr: 3.333333333333
ERRORE dalla funzione DoubleToString cifre: 14 valore: 1/2 dblVal: 0.5 strVal: 5.00000000000000 dblValFromStr: 5
ERRORE dalla funzione DoubleToString cifre: 13 valore: 1/10 dblVal: 0.1 strVal: 1.0000000000000 dblValFromStr: 1
ERRORE dalla funzione DoubleToString cifre: 13 valore: 1/9 dblVal: 0.1111111111111111111111 strVal: 1.1111111111111 dblValFromStr: 1.11111111111
ERRORE dalla funzione DoubleToString cifre: 13 valore: 1/8 dblVal: 0.125 strVal: 1.2500000000000 dblValFromStr: 1.25
ERROR dalla funzione DoubleToString cifre: 13 valore: 1/7 dblVal: 0.1428571428571429 strVal: 1.4285714285714 dblValFromStr: 1.4285714285714
ERROR dalla funzione DoubleToString cifre: 13 valore: 1/6 dblVal: 0.1666666666666667 strVal: 1.666666666667 dblValFromStr: 1.6666666667
ERRORE dalla funzione DoubleToString cifre: 13 valore: 1/5 dblVal: 0.2 strVal: 2.0000000000000 dblValFromStr: 2
ERRORE dalla funzione DoubleToString cifre: 13 valore: 1/4 dblVal: 0.25 strVal: 2.50000000000 dblValFromStr: 2.5
ERRORE dalla funzione DoubleToString cifre: 13 valore: 1/3 dblVal: 0.333333333333333333 strVal: 3.333333333333333 dblValFromStr: 3.3333333333333
ERRORE dalla funzione DoubleToString cifre: 13 valore: 1/2 dblVal: 0.5 strVal: 5.0000000000000 dblValFromStr: 5
ERRORE dalla funzione DoubleToString cifre: 12 valore: 1/10 dblVal: 0.1 strVal: 1.000000000000 dblValFromStr: 1
ERRORE dalla funzione DoubleToString cifre: 12 valore: 1/9 dblVal: 0.111111111111111111 strVal: 1.111111111111 dblValFromStr: 1.1111111111
ERRORE dalla funzione DoubleToString cifre: 12 valore: 1/8 dblVal: 0.125 strVal: 1.250000000000 dblValFromStr: 1.25
ERROR dalla funzione DoubleToString cifre: 12 valore: 1/7 dblVal: 0.1428571428571429 strVal: 1.428571428571 dblValFromStr: 1.428571428571
ERRORE dalla funzione DoubleToString cifre: 12 valore: 1/6 dblVal: 0.16666666666667 strVal: 1.6666666666667 dblValFromStr: 1.66666666667
ERRORE dalla funzione DoubleToString cifre: 12 valore: 1/5 dblVal: 0.2 strVal: 2.000000000000 dblValFromStr: 2
ERRORE dalla funzione DoubleToString cifre: 12 valore: 1/4 dblVal: 0.25 strVal: 2.500000000000 dblValFromStr: 2.5
ERROR dalla funzione DoubleToString cifre: 12 valore: 1/3 dblVal: 0.333333333333333333 strVal: 3.33333333333333 dblValFromStr: 3.333333333333
ERRORE dalla funzione DoubleToString cifre: 12 valore: 1/2 dblVal: 0.5 strVal: 5.000000000000 dblValFromStr: 5
OS: WIN7
Costruire: 387
Un errore nella funzione
string DoubleToString(
double value, // число
int digits=8 // кол-во знаков после запятой
);
Quando le cifre >= 12
Come posso impostare l'altezza della sottofinestra del grafico? se una funzione? o solo attraverso un modello?
Come posso impostare l'altezza della sottofinestra del grafico? se una funzione? o solo attraverso un modello?
Tutte le funzioni sono descritte nell'aiuto.
Fatelo attraverso il modello.
В классе CArray #include <Arrays\Array.mqh> забыли прописать виртуальные методы Reserve()и Resize()
Ecco una cosa divertente: quando si esegue lo STRATEGY TESTER di default
è impostato su priorità bassa, ora devo cambiarlo manualmente su media ogni volta.
Forse è così che deve essere?
alexluek:
Forse è così che deve essere?
Sì, è specificamente progettato per eseguire più agenti locali in modalità di ottimizzazione.
Il punto è che il tester usa la CPU molto intensamente e prende facilmente il 100% di tutti i core del sistema. Se lasciate la priorità "media", la CPU sarà caricata al 100% e anche il terminale mancherà di risorse. La situazione è particolarmente brutta con i processori single-core.
Questo è il motivo per cui l'impostazione predefinita per gli agenti in modalità di ottimizzazione è a bassa priorità, il che permette agli altri programmi di lavorare ugualmente. Se un computer non è occupato con altri lavori, allora anche a bassa priorità, gli agenti otterranno tutte le risorse della CPU (abbassare la priorità della CPU non significa ridurre direttamente le risorse).
Molto probabilmente, cambieremmo la priorità da "bassa" a "sotto la media" - questo sarebbe sufficiente per mantenere il sistema operativo reattivo sotto pieno carico con agenti locali in modalità di ottimizzazione.
È importante notare che quando si esegue un singolo agente e si ha più di 1 core, questo agente funziona a priorità "media". Un singolo agente con core aggiuntivi potrebbe non influenzare così tanto l'intero sistema.
ps: guarda il tuo screenshot - anche a bassa priorità il carico della CPU è del 95%.
Sì, questo è fatto specificamente per eseguire più agenti locali in modalità di ottimizzazione.
....ps: guarda il tuo screenshot - anche a bassa priorità il carico della CPU è del 95%.