//ARM
#property indicator_chart_window
//---- input parameters
extern int AR_Period = 14;
//-------------------------
string SYMB[100];
string TEXT[100];
double ARM[100];
//----------------
int init( )
{
return( 0 );
}
//-------------
int deinit( )
{
Comment( " " );
return( 0 );
}
//-------------
int start( )
{
int i;
string text;
int error = 0;
int Handle = FileOpen( "Symbols.txt", FILE_CSV | FILE_READ, "," );
if( Handle < 0 )
{
error = GetLastError( );
if( error == 4103 )
{
Alert( "ARM ôàéë ñ èìåíåì Symbols.txt íå íàéäåí" );
}
else
{
if( error != 0 )
{
Alert( "ARM íîìåð îøèáêè ïðè îòêðûòèè ôàéëà Symbols.txt ", error );
}
}
FileClose( Handle );
return( 0 );
}
else
{
if( Handle > 0 )
{
while( FileIsEnding( Handle ) == false )
{
i++;
text = FileReadString( Handle );
SYMB[i] = StringTrimRight( text );
if( FileIsEnding( Handle ) == true )
{
break;
}
double tick = MarketInfo( SYMB[i], MODE_TICKSIZE );
int e = 1;
double sum = 0;
int sma = 0;
while( e <= AR_Period )
{
sum = sum + ( iHigh( SYMB[i], PERIOD_D1, e ) - iLow( SYMB[i], PERIOD_D1, e ) );
e++;
}
if( tick != 0 )
{
sma = sum / AR_Period / tick;
}
ARM[i] = sma + 0.0001 * i;
} // ãðàíèöà öèêëà while( FileIsEnding( Handle ) == false )
} // ãðàíèöà óñëîâèé if( Handle < 0 )
} // else if( Handle > 0 )
FileClose( Handle );
//---------------------------
ArraySort( ARM, i, 0, MODE_DESCEND );
e = 0;
while( e < i )
{
int dd = MathFloor( ARM[e] );
double k = NormalizeDouble( 10000 * ( ARM[e] - dd ), 0 );
int f = k;
TEXT[e] = SYMB[f] + " " + dd;
e++;
}
error = 0;
//----------------------------
int y;
int handle0 = FileOpen( "ARM_f.txt", FILE_CSV | FILE_WRITE, "," );
if( handle0 < 0 )
{
error = GetLastError( );
if( error == 4103 )
{
Alert( "ARM ôàéë ñ èìåíåì ARM_f.txt íå íàéäåí " );
}
else
{
if( error != 0 )
{
Alert( "ARM êîä îøèáêè ïðè ïîïûòêå ñîçäàòü ôàéë ARM_f.txt ", error );
}
}
FileClose( handle0 );
return( 0 );
}
else
{
if( handle0 > 0 )
{
for( y = 1; y <= i; y++ )
{
if( TEXT[y] == "" )
{
break;
}
int c = FileWrite( handle0, TEXT[y] );
if( c < 0 )
{
Alert( "ARM êîä îøèáêè ïðè çàïèñè ôàéëà ARM_f.txt ", GetLastError( ) );
FileClose( handle0 );
return( 0 );
}
} // ãðàíèöà öèêëà for( y = 1; y <= i; y++ )
FileClose( handle0 );
} // ãðàíèöà óñëîâèé if( handle < 0 )
} // else if( handle > 0 )
Comment( TEXT[1],
"\n",TEXT[2],
"\n",TEXT[3],
"\n",TEXT[4],
"\n",TEXT[5],
"\n",TEXT[6],
"\n",TEXT[7],
"\n",TEXT[8],
"\n",TEXT[9],
"\n",TEXT[10],
"\n",TEXT[11],
"\n",TEXT[12],
"\n",TEXT[13],
"\n",TEXT[14],
"\n",TEXT[15],
"\n",TEXT[16],
"\n",TEXT[17],
"\n",TEXT[18],
"\n",TEXT[19],
"\n",TEXT[20],
"\n",TEXT[21],
"\n",TEXT[22],
"\n",TEXT[23],
"\n",TEXT[24],
"\n",TEXT[25],
"\n",TEXT[26],
"\n",TEXT[27],
"\n",TEXT[28],
"\n",TEXT[29],
"\n",TEXT[30],
"\n",TEXT[31],
"\n",TEXT[32] );
return(0);
}
Comments