Скрипты: Correlations - страница 2

 

у меня ошибка при компиляции 


Function "SymbolType" is not referenced and will be removed from exp-file

 
ex5:

Function "SymbolType" is not referenced and will be removed from exp-file

Это не ошибка, а Warning, который был намерено оставлен на тот случай, если кто-нибудь из пользователей захочет выводить информацию еще и о группах, содержащих символы (раскомментировав одну строчку).
 
Не записываются значения корреляции в файл Correlations.txt, хотя в журнале идут сообщения о вычислении корреляций. В чем дело?
 
Файл experts\files\Correlations.txt создается при завершении работы скрипта.
 

Added divide by zero protection and MathSqrt negative protection


double GetMean( int Pos )
{
double Sum = 0;

for (int i = 0; i < MatrixRows;, i++)
Sum += BaseMatrix[Pos][i];

if( MatrixRows != 0 )
Sum /= MatrixRows;

return(Sum);
}

double GetCorrelation( int Pos1, int Pos2 )
{
double Sum = 0;

for (int i = 0; i < MatrixRows;, i++)
Sum += BaseMatrix[Pos1][i] * BaseMatrix[Pos2][i];

if( MatrixRows != 0 )
Sum /= MatrixRows;

return(Sum);
}

int GetBaseMatrix( int StartTime)
{
int i, j, CurrTime, NextTime = StartTime;
double Mean, Variance;

MatrixRows = 0;

while (NextTime >= 0)
{
CurrTime = NextTime;

for (i = 0; i < TWO_SYMBOLS; i++)
BaseMatrix[i][MatrixRows] = MathLog(GetPrice(Symbols[i], CurrTime));

MatrixRows++;

NextTime = GetNextTime(CurrTime);
}

for (i = 0; i < TWO_SYMBOLS; i++)
{
Mean = GetMean(i);

for (j = 0; j < MatrixRows; j++)
BaseMatrix[i][j] -= Mean;
}

for (i = 0; i < TWO_SYMBOLS; i++)
{
Variance = GetCorrelation(i, i);

if( Variance > 0 )
Variance = MathSqrt(Variance);

if( Variance != 0 )
{
for (j = 0; j < MatrixRows; j++)
BaseMatrix[i][j] /= Variance;
}
}


return(CurrTime);
}

 
Ulterior:

Added divide by zero protection and MathSqrt negative protection

It is impossible, if the history data is correct.
 
Скачать: Correlations.mq4 (11.0 Kb) View
Скрипт Correlations.mq4 (11.0 Kb) не работает, его код отличается от того что представлен в View ( этот код работает при наличии, конечно, истории ).
 
Код в указанных двух местах идентичен. Скрипт работает. Рекомендация способа получения истории присутствует в описании скрипта.

В начале кода скрипта есть строчка:
#define MAX_POINTS 100000
Это максимальное количество баров для анализа. Если вы хотите анализировать большее количество баров, увеличьте данный параметр и перекомпилируйте (F5) скрипт.
 

есть ли версия для MT5?

или подскажите, может существует другой индикатор, показывающий коэффициент корреляции, опираясь на список инструментов в Обзоре рынка?? именно для MT5!

Причина обращения: