Non ci capisco niente, MT5 versione 1545. Nelle versioni precedenti c'erano funzioni nell'elenco Math.mqh:
//+------------------------------------------------------------------+//| Computes the minimum value in array[] |//+------------------------------------------------------------------+doubleMathMin(constdouble &array[],constint start=0,constint count=WHOLE_ARRAY)
{
int size=ArraySize(array);
int data_count=0;
//--- set data countif(count==WHOLE_ARRAY)
data_count=size;
else
data_count=count;
//--- check data rangeif(data_count==0)
return(QNaN);
if(start+data_count>size)
return(QNaN);
//--- set indexesint ind1=start;
int ind2=ind1+data_count-1;
//--- first element by default, find minimumdouble min_value=array[ind1];
for(int i=ind1+1; i<=ind2; i++)
min_value=MathMin(min_value,array[i]);
//--- return minimum valuereturn(min_value);
}
//+------------------------------------------------------------------+//| Computes the maximum value in array[] |//+------------------------------------------------------------------+doubleMathMax(constdouble &array[],constint start=0,constint count=WHOLE_ARRAY)
{
int size=ArraySize(array);
int data_count=0;
//--- set data countif(count==WHOLE_ARRAY)
data_count=size;
else
data_count=count;
//--- check data rangeif(data_count==0)
return(QNaN);
if(start+data_count>size)
return(QNaN);
//--- set indexesint ind1=start;
int ind2=ind1+data_count-1;
//--- first element by default, find maximumdouble max_value=array[ind1];
for(int i=ind1+1; i<=ind2; i++)
max_value=MathMax(max_value,array[i]);
//--- return maximum valuereturn(max_value);
}
//+------------------------------------------------------------------+//| Computes the range of the values in array[] |//+------------------------------------------------------------------+double MathRange(constdouble &array[],constint start=0,constint count=WHOLE_ARRAY)
{
int size=ArraySize(array);
int data_count=0;
//--- set data countif(count==WHOLE_ARRAY)
data_count=size;
else
data_count=count;
//--- check data rangeif(data_count==0)
return(QNaN);
if(start+data_count>size)
return(QNaN);
//--- set indexesint ind1=start;
int ind2=ind1+data_count-1;
//--- default values, find minimum and maximum valuesdouble min_value=array[ind1];
double max_value=array[ind1];
for(int i=ind1+1; i<=ind2; i++)
{
double value=array[i];
min_value=MathMin(min_value,value);
max_value=MathMax(max_value,value);
}
//--- return rangereturn(max_value-min_value);
}
//+------------------------------------------------------------------+//| Computes the sum of the values in array[] |//+------------------------------------------------------------------+double MathSum(constdouble &array[],constint start=0,constint count=WHOLE_ARRAY)
{
int size=ArraySize(array);
int data_count=0;
//--- set data countif(count==WHOLE_ARRAY)
data_count=size;
else
data_count=count;
//--- check data rangeif(data_count==0)
return(QNaN);
if(start+data_count>size)
return(QNaN);
//--- set indexesint ind1=start;
int ind2=ind1+data_count-1;
//--- calculate sumdouble sum=0.0;
for(int i=ind1; i<=ind2; i++)
sum+=array[i];
//--- return sumreturn(sum);
}
//+------------------------------------------------------------------+//| Computes the standard deviation of the values in array[] |//+------------------------------------------------------------------+double MathStandardDeviation(constdouble &array[],constint start=0,constint count=WHOLE_ARRAY)
{
int size=ArraySize(array);
int data_count=0;
//--- set data countif(count==WHOLE_ARRAY)
data_count=size;
else
data_count=count;
//--- check data rangeif(data_count<=1)
return(QNaN);
if(start+data_count>size)
return(QNaN);
//--- set indexesint ind1=start;
int ind2=ind1+data_count-1;
//--- calculate meandouble mean=0.0;
for(int i=ind1; i<=ind2; i++)
mean+=array[i];
//--- average mean
mean=mean/data_count;
//--- calculate standard deviation double sdev=0;
for(int i=ind1; i<=ind2; i++)
sdev+=MathPow(array[i]-mean,2);
//--- return standard deviationreturnMathSqrt(sdev/(data_count-1));
}
//+------------------------------------------------------------------+//| Computes the average absolute deviation of the values in array[] |//+------------------------------------------------------------------+double MathAverageDeviation(constdouble &array[],constint start=0,constint count=WHOLE_ARRAY)
{
int size=ArraySize(array);
int data_count=0;
//--- set data countif(count==WHOLE_ARRAY)
data_count=size;
else
data_count=count;
//--- check data rangeif(data_count<=1)
return(QNaN);
if(start+data_count>size)
return(QNaN);
//--- set indexesint ind1=start;
int ind2=ind1+data_count-1;
//--- calculate meandouble mean=0.0;
for(int i=ind1; i<=ind2; i++)
mean+=array[i];
mean=mean/data_count;
//--- calculate average deviationdouble adev=0;
for(int i=ind1; i<=ind2; i++)
adev+=MathAbs(array[i]-mean);
adev=adev/data_count;
//--- return average deviationreturn(adev);
}
//+------------------------------------------------------------------+//| Computes the median value of the values in array[] |//+------------------------------------------------------------------+double MathMedian(double &array[],constint start=0,constint count=WHOLE_ARRAY)
{
int size=ArraySize(array);
int data_count=0;
//--- set data countif(count==WHOLE_ARRAY)
data_count=size;
else
data_count=count;
//--- check data rangeif(data_count==0)
return(QNaN);
if(start+data_count>size)
return(QNaN);
//--- set indexesint ind1=start;
int ind2=ind1+data_count-1;
//--- prepare sorted valuesdouble sorted_values[];
ArrayCopy(sorted_values,array,0,start,count);
ArraySort(sorted_values);
//--- calculate median for odd and even cases//--- data_count=oddif(data_count%2==1)
return(sorted_values[data_count/2]);
else//--- data_count=evenreturn(0.5*(sorted_values[(data_count-1)/2]+sorted_values[(data_count+1)/2]));
}
//+------------------------------------------------------------------+//| Computes the mean value of the values in array[] |//+------------------------------------------------------------------+double MathMean(constdouble &array[],constint start=0,constint count=WHOLE_ARRAY)
{
int size=ArraySize(array);
int data_count=0;
//--- set data countif(count==WHOLE_ARRAY)
data_count=size;
else
data_count=count;
//--- check data rangeif(data_count<1)
return(QNaN); // need at least 1 observationif(start+data_count>size)
return(QNaN);
//--- set indexesint ind1=start;
int ind2=ind1+data_count-1;
//--- calculate meandouble mean=0.0;
for(int i=ind1; i<=ind2; i++)
mean+=array[i];
mean=mean/data_count;
//--- return meanreturn(mean);
}
//+------------------------------------------------------------------+//| Computes the variance of the values in array[] |//+------------------------------------------------------------------+double MathVariance(constdouble &array[],constint start=0,constint count=WHOLE_ARRAY)
{
int size=ArraySize(array);
int data_count=0;
//--- set data countif(count==WHOLE_ARRAY)
data_count=size;
else
data_count=count;
//--- check data rangeif(data_count<2)
return(QNaN); // need at least 2 observationsif(start+data_count>size)
return(QNaN);
//--- set indexesint ind1=start;
int ind2=ind1+data_count-1;
//--- calculate meandouble mean=0.0;
for(int i=ind1; i<=ind2; i++)
mean+=array[i];
mean=mean/data_count;
//--- calculate variancedouble variance=0;
for(int i=ind1; i<=ind2; i++)
variance+=MathPow(array[i]-mean,2);
variance=variance/(data_count-1);
//--- return variancereturn(variance);
}
//+------------------------------------------------------------------+//| Computes the skewness of the values in array[] |//+------------------------------------------------------------------+double MathSkewness(constdouble &array[],constint start=0,constint count=WHOLE_ARRAY)
{
int size=ArraySize(array);
int data_count=0;
//--- set data countif(count==WHOLE_ARRAY)
data_count=size;
else
data_count=count;
//--- check data rangeif(data_count<3)
return(QNaN); // need at least 3 observationsif(start+data_count>size)
return(QNaN);
//--- set indexesint ind1=start;
int ind2=ind1+data_count-1;
//--- calculate meandouble mean=0.0;
for(int i=ind1; i<=ind2; i++)
mean+=array[i];
mean=mean/data_count;
//--- calculate variance and skewnessdouble variance=0;
double skewness=0;
for(int i=ind1; i<=ind2; i++)
{
double sqr_dev=MathPow(array[i]-mean,2);
skewness+=sqr_dev*(array[i]-mean);
variance+=sqr_dev;
}
variance=(variance)/(data_count-1);
double v3=MathPow(MathSqrt(variance),3);
//---if(v3!=0)
{
skewness=skewness/(data_count*v3);
//--- return skewnessreturn(skewness);
}
elsereturn(QNaN);
}
//+------------------------------------------------------------------+//| Computes the kurtosis of the values in array[] |//+------------------------------------------------------------------+double MathKurtosis(constdouble &array[],constint start=0,constint count=WHOLE_ARRAY)
{
int size=ArraySize(array);
int data_count=0;
//--- set data countif(count==WHOLE_ARRAY)
data_count=size;
else
data_count=count;
//--- check data rangeif(data_count<4)
return(QNaN); // need at least 4 observationsif(start+data_count>size)
return(QNaN);
//--- set indexesint ind1=start;
int ind2=ind1+data_count-1;
//--- calculate meandouble mean=0.0;
for(int i=ind1; i<=ind2; i++)
mean+=array[i];
mean=mean/data_count;
//--- calculate variance and kurtosisdouble variance=0;
double kurtosis=0;
for(int i=ind1; i<=ind2; i++)
{
double sqr_dev=MathPow(array[i]-mean,2);
variance+=sqr_dev;
kurtosis+=sqr_dev*sqr_dev;
}
//--- calculate variance
variance=(variance)/(data_count-1);
double v4=MathPow(MathSqrt(variance),4);
if(v4!=0)
{
//--- calculate kurtosis
kurtosis=kurtosis/(data_count*v4);
kurtosis-=3;
//--- return kurtosisreturn(kurtosis);
}
elsereturn(QNaN);
}
e ora non sono in questo elenco, ho cercato in altri elenchi di Math, ma non ho trovato queste funzioni neanche lì.
Sono stati rimossi del tutto o sono stati cancellati accidentalmente?
Alexey Viktorov: Perché avete bisogno di loro quando avete tutto l'insieme delle funzioni matematiche.
Prima di rispondere, confrontalo con quelli che ho postato nell'annuncio. A proposito, queste funzioni sono elencate nell'aiuto della libreria standard, quindi è più probabile che qualcuno le abbia accidentalmente cancellate.
Prima di rispondere, confrontalo con quelli che ho postato nell'annuncio. A proposito, queste funzioni sono elencate nell'aiuto della libreria standard, quindi è più probabile che qualcuno le abbia accidentalmente cancellate.
La risposta di servicedesk, le funzioni dati della libreria standard sono state rimosse di proposito, il problema è risolto. Anche l'aiuto dovrebbe essere messo in fila, perché a volte si perde tempo a cercare qualcosa che non è più nella funzionalità.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Forse è già stato fatto, ma lasciatemi chiedere:
perchéPOSITION_COMMISSION non è evidenziato e non è nell'aiuto?
Questa costante non è più rilevante, ma purtroppo non possiamo rifiutarla. Ecco perché è lasciato spento nel compilatore
Non vedo una contraddizione.
Contraddizione con cosa?
Ho mostrato un saldo negativo nel tester. Inoltre, l'equity stava andando sotto zero. Devo supporre che sia un bug.
Non ci capisco niente, MT5 versione 1545. Nelle versioni precedenti c'erano funzioni nell'elenco Math.mqh:
e ora non sono in questo elenco, ho cercato in altri elenchi di Math, ma non ho trovato queste funzioni neanche lì.
Sono stati rimossi del tutto o sono stati cancellati accidentalmente?
Ho controllato fino alla versione 1554 di MT5, stessa storia, queste funzioni non ci sono più
Perché avete bisogno di loro quando avete tutto l'insieme delle funzioni matematiche.
Prima di rispondere, confrontalo con quelli che ho postato nell'annuncio. A proposito, queste funzioni sono elencate nell'aiuto della libreria standard, quindi è più probabile che qualcuno le abbia accidentalmente cancellate.
Prima di rispondere, confrontalo con quelli che ho postato nell'annuncio. A proposito, queste funzioni sono elencate nell'aiuto della libreria standard, quindi è più probabile che qualcuno le abbia accidentalmente cancellate.
La risposta di servicedesk, le funzioni dati della libreria standard sono state rimosse di proposito, il problema è risolto. Anche l'aiuto dovrebbe essere messo in fila, perché a volte si perde tempo a cercare qualcosa che non è più nella funzionalità.
Come può essere? Apro un conto demo su un server della società btc-e.com, ma si apre su un server completamente diverso di un'altra società!
